通过自然语言与 Jira 进行交互,获取项目信息并进行修改。结合 Claude Desktop 和自定义的 README 文件(包含项目信息),可以委派项目经理任务(例如,根据团队成员及其专长分配新问题)。
使用 Model Context Protocol 构建。
<a href="https://glama.ai/mcp/servers/lblw6pvk7i"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=2112205136,779516378&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Jira Server MCP 服务器" /> </a>该服务器支持:
所需环境变量:
JIRA_HOST: 您的 Jira 实例主机名JIRA_API_TOKEN: 从 https://id.atlassian.com/manage-profile/security/api-tokens 获取的 API 令牌 或者 个人访问令牌 (PAT)JIRA_AUTH_TYPE: 认证类型 - "basic"(默认)或 "bearer"可选环境变量:
JIRA_API_VERSION: 使用的 Jira API 版本(默认: "3")对于基本认证(默认):
JIRA_EMAIL: 您的 Jira 账户电子邮件(在使用基本认证时需要)对于个人访问令牌 (PAT) 认证:
JIRA_AUTH_TYPE=bearer 并提供您的 PAT 作为 JIRA_API_TOKENJIRA_EMAIL个人访问令牌 (PATs) 是推荐的 Jira Cloud 认证方法,因为它们比 API 令牌提供了更好的安全性。要创建一个 PAT:
JIRA_API_TOKENJIRA_AUTH_TYPE=bearer注意: 并非所有 Jira 实例都支持 PATs。如果您的实例不支持 PATs,请使用常规 API 令牌的基本认证方法。
// 通过电子邮件获取用户的账户ID
{
email: "user@example.com";
}
// 列出所有可用的问题类型
// 返回:id, name, description, 子任务状态
// 不需要参数
// 列出所有可用的问题链接类型
// 返回:id, name, 内向/外向描述
// 不需要参数
// 获取项目中的所有问题
{
projectKey: "PROJECT"
}
// 使用 JQL 过滤获取问题
{
projectKey: "PROJECT",
jql: "status = 'In Progress' AND assignee = currentUser()"
}
// 获取分配给用户的问题
{
projectKey: "PROJECT",
jql: "assignee = 'user@example.com' ORDER BY created DESC"
}
// 创建标准问题
{
projectKey: "PROJECT",
summary: "问题标题",
issueType: "任务", // 或 "故事", "错误" 等
description: "详细描述",
assignee: "accountId", // 从 get_user 工具获取
labels: ["前端", "紧急"],
components: ["UI", "API"],
priority: "高"
}
// 创建子任务
{
parent: "PROJECT-123",
projectKey: "PROJECT",
summary: "子任务标题",
issueType: "子任务",
description: "子任务详情",
assignee: "accountId"
}
// 更新问题字段
{
issueKey: "PROJECT-123",
summary: "更新后的标题",
description: "新的描述",
assignee: "accountId",
status: "正在进行",
priority: "高"
}
// 创建问题链接
{
linkType: "阻止", // 从 list_link_types 获取
inwardIssueKey: "PROJECT-124", // 被阻止的问题
outwardIssueKey: "PROJECT-123" // 阻止的问题
}
// 删除单个问题
{
issueKey: "PROJECT-123"
}
// 删除带有子任务的问题
{
issueKey: "PROJECT-123",
deleteSubtasks: true
}
// 删除多个问题
{
issueKeys: ["PROJECT-123", "PROJECT-124"]
}
描述字段支持 Markdown 样式的格式:
示例:
任务概述:
此任务涉及实现新功能:
- 实现功能A
- 测试功能B
步骤:
1. 设计组件
2. 实现逻辑
3. 添加测试
验收标准:
- 所有测试通过
- 文档更新
服务器提供详细的错误消息:
克隆仓库:
git clone https://github.com/George5562/Jira-MCP-Server.git
cd Jira-MCP-Server
安装依赖项:
npm install
配置环境变量:
在根目录下创建一个 .env 文件:
对于基本认证(默认):
JIRA_HOST=your-instance.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-api-token
JIRA_AUTH_TYPE=basic
对于个人访问令牌 (PAT) 认证:
JIRA_HOST=your-instance.atlassian.net
JIRA_API_TOKEN=your-personal-access-token
JIRA_AUTH_TYPE=bearer
构建项目:
npm run build
启动服务器:
npm start
要将此 MCP 服务器与 Claude Desktop 结合使用:
查找您的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json将 Jira MCP 服务器添加到您的配置中:
对于基本认证(默认):
{
"mcpServers": {
"jira-server": {
"name": "jira-server",
"command": "/path/to/node",
"args": ["/path/to/jira-server/build/index.js"],
"cwd": "/path/to/jira-server",
"env": {
"JIRA_HOST": "your-jira-instance.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token",
"JIRA_AUTH_TYPE": "basic"
}
}
}
}
对于个人访问令牌 (PAT) 认证:
{
"mcpServers": {
"jira-server": {
"name": "jira-server",
"command": "/path/to/node",
"args": ["/path/to/jira-server/build/index.js"],
"cwd": "/path/to/jira-server",
"env": {
"JIRA_HOST": "your-jira-instance.atlassian.net",
"JIRA_API_TOKEN": "your-personal-access-token",
"JIRA_AUTH_TYPE": "bearer"
}
}
}
}
替换 /path/to/jira-server 为您克隆的仓库的绝对路径。
替换 /path/to/node 为您 Node.js 可执行文件的绝对路径(您通常可以通过运行 which node 或 where node 在终端中找到它)。
推荐使用直接路径到 Node.js 可执行文件和构建的 JavaScript 文件(在运行 npm run build 后的 build/index.js)以确保可靠性。
重启 Claude Desktop 以应用更改。
要将此 Jira MCP 服务器与 Cursor 结合使用:
确保服务器已构建: 在 Jira-MCP-Server 目录中运行 npm run build 以创建必要的 build/index.js 文件。
定位或创建 Cursor 的 MCP 配置文件:
.cursor/mcp.json 在项目的根目录中。~/.cursor/mcp.json 在您的主目录中。将 Jira MCP 服务器配置添加到 mcp.json 中:
对于基本认证(默认):
{
"mcpServers": {
"jira-mcp-server": {
"command": "node", // 或提供 Node.js 可执行文件的绝对路径
"args": [
"/path/to/your/Jira-MCP-Server/build/index.js" // 服务器构建索引.js 的绝对路径
],
"cwd": "/path/to/your/Jira-MCP-Server", // Jira-MCP-Server 目录的绝对路径
"env": {
"JIRA_HOST": "your-jira-instance.atlassian.net",
"JIRA_EMAIL": "your-email@example.com", // 您的 Jira 电子邮件
"JIRA_API_TOKEN": "your-api-token", // 您的 Jira API 令牌
"JIRA_AUTH_TYPE": "basic"
}
}
// 您可以在这里添加其他 MCP 服务器配置
}
}
对于个人访问令牌 (PAT) 认证:
{
"mcpServers": {
"jira-mcp-server": {
"command": "node", // 或提供 Node.js 可执行文件的绝对路径
"args": [
"/path/to/your/Jira-MCP-Server/build/index.js" // 服务器构建索引.js 的绝对路径
],
"cwd": "/path/to/your/Jira-MCP-Server", // Jira-MCP-Server 目录的绝对路径
"env": {
"JIRA_HOST": "your-jira-instance.atlassian.net",
"JIRA_API_TOKEN": "your-personal-access-token", // 您的 Jira PAT
"JIRA_AUTH_TYPE": "bearer"
}
}
// 您可以在这里添加其他 MCP 服务器配置
}
}
/path/to/your/Jira-MCP-Server 为您克隆的 Jira-MCP-Server 仓库的正确绝对路径。node 不在您的系统 PATH 中或您更喜欢绝对路径,请替换 "node" 为 Node.js 可执行文件的完整路径(例如,/usr/local/bin/node 或 C:\Program Files\nodejs\node.exe)。env 部分正确填写您的 Jira 实例详细信息和 API 令牌。重启 Cursor 以应用更改。
为了使与 Jira 的交互更加顺畅,您可以在 Cursor 的规则中定义默认的 Jira 项目和用户标识符。这有助于 Cursor 的 AI 理解上下文,而无需在每个提示中指定。
创建或编辑您的 Cursor 规则文件(例如,在项目 .cursor/rules.json 或全局 ~/.cursor/rules.json 中(确切的文件和方法可能因规则而异,请参阅 Cursor 文档中的“规则”或“上下文管理”)。添加条目如:
作为 AI 助手,当被问及 Jira 任务时:
- 假设主要的 Jira 项目键是 'YOUR_PROJECT_KEY_HERE'。
- 假设 '我的分配的任务' 或分配给 '我' 的任务是指 Jira 用户电子邮件 'your_jira_email@example.com'(或您的 Jira 账户 ID)。
您可以然后在 JQL 查询中使用这些,例如:project = YOUR_PROJECT_KEY_HERE AND assignee = 'your_jira_email@example.com'。
替换 YOUR_PROJECT_KEY_HERE 和 your_jira_email@example.com 为您的实际详细信息。
一旦配置完成(特别是使用 Cursor 规则进行上下文),您可以询问 Cursor:
"使用 Jira MCP,列出我分配的任务。然后,基于这些任务,制定实施计划和工作时间表。"
如果您没有设置规则,或者需要指定不同的项目或用户,则需要更具体:
"使用 Jira MCP,列出分配给 'user@example.com' 的任务在项目 'PROJECT_KEY' 中。然后,基于这些任务,制定实施计划和工作时间表。"
Cursor 的 AI 将使用 Jira MCP 服务器来获取任务,然后继续进行规划和调度请求。
要通过 Smithery 自动安装 Jira MCP Server 用于 Claude Desktop:
npx -y @smithery/cli install @George5562/Jira-MCP-Server --client claude
克隆仓库:
git clone https://github.com/George5562/Jira-MCP-Server.git
cd Jira-MCP-Server
安装依赖项:
npm install
配置环境变量:
在根目录下创建一个 .env 文件:
对于基本认证(默认):
JIRA_HOST=your-instance.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-api-token
JIRA_AUTH_TYPE=basic
对于个人访问令牌 (PAT) 认证:
JIRA_HOST=your-instance.atlassian.net
JIRA_API_TOKEN=your-personal-access-token
JIRA_AUTH_TYPE=bearer
构建项目:
npm run build
启动服务器:
npm start