Jira CLI集成服务器

通过Model Context Protocol提供完整的Jira CLI集成,支持问题管理、工作日志、项目与冲刺管理等功能,适用于开发团队的项目协作与任务跟踪。

  • by GaryWenneker
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 GaryWenneker/jira-mcp-server

使用说明

Jira MCP服务器v2.0

🎯 通过模型上下文协议完成Jira CLI集成

此MCP服务器提供 完成 Jira集成通过:

  • 包装所有Jira CLI命令
  • 执行自定义PowerShell报告脚本
  • 直接调用REST API
  • 支持灵活的工作流自动化

🚀 2.0版-完整功能集

✨ v2.0中的新功能:

  • ⏱️ 工作日志管理(时间跟踪)
  • 👁️ 观看/取消观看问题
  • 👍 为问题投票/投票
  • 🗑️ 问题删除
  • 📋 发布克隆/复制
  • 🔗 问题链接(块、相关等)
  • 🏷️ 标签管理(添加/删除)
  • 🧩 组件管理
  • 🚀 版本/发布管理
  • 📎 附件支持
  • 🏃 高级冲刺操作(添加/删除问题)
  • 🔄 问题转换列表
  • 📝 子任务创建
  • 💾 问题导出(CSV/JSON)

✨ 完整功能列表

🎯 Jira核心运营

  • ✅ 问题管理:列表、获取、创建、更新、删除、克隆
  • ✅ 工作日志管理:添加时间,列出工作日志
  • ✅ 观看与投票:观看/不观看、投票/取消投票
  • ✅ 问题链接:链接问题,查看链接
  • ✅ 标签管理:添加/删除标签
  • ✅ 评论:添加/列出评论
  • ✅ 过渡:列出可用的状态转换
  • ✅ 子任务:创建子任务

📊 项目与Sprint管理

  • ✅ 项目:列出所有项目
  • ✅ 短跑:列表,查看sprint问题
  • ✅ Sprint运营:添加/删除sprint中的问题
  • ✅ 史诗:列出史诗
  • ✅ 板子:列出所有板
  • ✅ 组件:列表,创建组件
  • ✅ 版本:列表,创建版本/发布

🔍 高级功能

  • ✅ JQL查询:使用REST API完全支持JQL
  • ✅ 发布导出:CSV和JSON导出
  • ✅ 附件:添加/列出附件
  • ✅ 自定义报告:错误报告,最近的问题(PowerShell)
  • ✅ 浏览器集成:直接在浏览器中打开问题

🔧 安装

先决条件

  • Node.js>=18.0.0
  • 已安装Jira CLI(可选,用于高级功能)
  • PowerShell 5.1+(Windows)或兼容的shell
  • Jira API证书

再进行

cd jira-mcp-server
npm install

配置

选项1:GitHub包(推荐)

直接从GitHub安装,无需发布到npm:

{
  "mcpServers": {
    "JiraMCP": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "@garyw/jira-mcp-server@latest"
      ],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "YOUR_API_TOKEN_HERE",
        "JIRA_CLI_PATH": "/path/to/jira-cli/bin/jira"
      }
    }
  }
}

选项2:本地安装

克隆存储库并使用本地路径:

git clone https://github.com/garywenneker/jira-mcp-server.git
cd jira-mcp-server
npm install

然后配置:

{
  "mcpServers": {
    "JiraMCP": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/path/to/jira-mcp-server/src/index.js"
      ],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "YOUR_API_TOKEN_HERE",
        "PROJECT_ROOT": "/path/to/your/project",
        "JIRA_CLI_PATH": "/path/to/jira-cli/bin/jira"
      }
    }
  }
}

选项3:环境变量(最安全)

将凭据设置为环境变量,而不是在配置文件中:

export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_USERNAME="your.email@company.com"
export JIRA_API_TOKEN="YOUR_API_TOKEN_HERE"
export JIRA_CLI_PATH="/path/to/jira-cli/bin/jira"

然后使用简化配置:

{
  "mcpServers": {
    "JiraMCP": {
      "type": "stdio",
      "command": "npx",
      "args": ["@garyw/jira-mcp-server@latest"]
    }
  }
}

⚠️ 安全: 确保您的MCP配置文件位于 .gitignore!

IDE配置快速入门

使用以下模板在编辑器或AI助手中配置Jira MCP服务器。

Visual Studio代码(继续)

安装 继续 副驾驶扩展并将服务器添加到 .continue/config.json (或使用继续设置UI):

{
  "mcpServers": {
    "jira-mcp": {
      "command": "node",
      "args": ["${workspaceFolder}/src/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "${env:JIRA_API_TOKEN}"
      }
    }
  }
}

光标IDE

创建或更新 .cursor/mcp-config.json 在您的存储库中:

{
  "mcpServers": {
    "JiraMCP": {
      "type": "stdio",
      "command": "npx",
      "args": ["@garyw/jira-mcp-server@latest"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "${env:JIRA_API_TOKEN}"
      }
    }
  }
}

JetBrains IDE(人工智能助手)

在中添加服务器条目 ~/.config/JetBrains/ai-assistant/mcp.json (Linux/macOS)或 %APPDATA%\JetBrains\ai-assistant\mcp.json (Windows):

{
  "servers": {
    "jira": {
      "transport": "stdio",
      "command": "node",
      "args": ["/path/to/jira-mcp-server/src/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "${env:JIRA_API_TOKEN}"
      }
    }
  }
}

克劳德桌面和网络

在中注册服务器 claude_desktop_config.json (桌面)或浏览器MCP设置面板:

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["@garyw/jira-mcp-server@latest"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "${env:JIRA_API_TOKEN}"
      }
    }
  }
}

获取Jira API代币

  1. 首选https://id.atlassian.com/manage-profile/security/api-tokens
  2. 点击“创建API令牌”
  3. 给它起一个有意义的名字
  4. 复制令牌并在配置中使用它

📚 完整的工具参考

🎯 问题管理(15个工具)

jira_issue_list

列出过滤器的问题。

参数:

  • project (可选):项目密钥
  • assignee (可选):受让人
  • status (可选):状态
  • type (可选):问题类型
  • limit (可选):最大结果(默认值:50)

jira_issue_get

获取一个问题的详细信息。

参数:

  • issue_key (必填):问题密钥

jira_issue_create

创建新问题。

参数:

  • project (必填):项目密钥
  • type (必填):问题类型
  • summary (必填):标题
  • description (可选):描述
  • priority (可选):优先级
  • assignee (可选):受让人

jira_issue_update

更新现有问题。

参数:

  • issue_key (必填):问题密钥
  • status (可选):新状态
  • assignee (可选):新受让人
  • comment (可选):添加评论

jira_issue_delete

删除问题(⚠️ 小心使用!).

参数:

  • issue_key (必填):问题密钥

jira_issue_clone

克隆/复制问题。

参数:

  • issue_key (必填):要克隆的问题
  • summary (可选):新摘要

jira_issue_link

将两个问题联系在一起。

参数:

  • from_issue (必填):来源问题
  • to_issue (必填):目标问题
  • link_type (必填):链接类型(例如,“块”、“相关”)

jira_issue_links

列出问题的所有链接。

参数:

  • issue_key (必填):问题密钥

jira_issue_transitions

列出可用的状态转换。

参数:

  • issue_key (必填):问题密钥

jira_issue_watch

查看通知问题。

参数:

  • issue_key (必填):问题密钥

jira_issue_unwatch

别再看问题了。

参数:

  • issue_key (必填):问题密钥

jira_issue_vote

为某个问题投票。

参数:

  • issue_key (必填):问题密钥

jira_issue_unvote

删除您的投票。

参数:

  • issue_key (必填):问题密钥

jira_subtask_create

创建子任务。

参数:

  • parent_key (必填):家长问题
  • summary (必填):子任务标题
  • description (可选):描述
  • assignee (可选):受让人

jira_issue_export

将问题导出到CSV或JSON。

参数:

  • jql (必填):JQL查询
  • format (必填):“csv”或“json”
  • output_file (可选):输出文件路径
  • maxResults (可选):最大结果(默认值:100)

⏱️ 工作日志管理(2个工具)

jira_worklog_add

为问题增加时间。

参数:

  • issue_key (必填):问题密钥
  • time_spent (必填):时间(例如“2小时”、“30分钟”、“1天4小时”)
  • comment (可选):工作日志注释
  • date (可选):工作日期(YYYY-MM-DD)

例子:

"Log 3 hours work on issue PROJ-123 with comment 'Implemented feature X'"

jira_worklog_list

列出问题的所有工作日志。

参数:

  • issue_key (必填):问题密钥

🏷️ 标签管理(2个工具)

jira_label_add

为问题添加标签。

参数:

  • issue_key (必填):问题密钥
  • labels (必填):逗号分隔的标签(例如,“前端、错误、紧急”)

例子:

"Add labels 'frontend' and 'high-priority' to PROJ-123"

jira_label_remove

从问题中删除标签。

参数:

  • issue_key (必填):问题密钥
  • labels (必填):逗号分隔的标签

🧩 组件管理(2个工具)

jira_component_list

列出项目中的组件。

参数:

  • project (必填):项目密钥

jira_component_add

将组件添加到项目中。

参数:

  • project (必填):项目密钥
  • name (必填):组件名称
  • description (可选):描述
  • lead (可选):组件引线

🚀 版本/发布管理(2个工具)

jira_version_list

列出项目中的版本/发布。

参数:

  • project (必填):项目密钥

jira_version_create

创建新版本/发布。

参数:

  • project (必填):项目密钥
  • name (必填):版本名称(例如“1.0.0”)
  • description (可选):描述
  • release_date (可选):计划发布日期(YYYY-MM-DD)

📎 附件工具(2个工具)

jira_attachment_add

为问题添加附件。

参数:

  • issue_key (必填):问题密钥
  • file_path (必填):完整文件路径

例子:

"Attach /path/to/screenshot.png to PROJ-123"

jira_attachment_list

列出问题的附件。

参数:

  • issue_key (必填):问题密钥

🏃 高级Sprint操作(4个工具)

jira_sprint_list

列出板上的冲刺。

参数:

  • board_name (可选):板名称
  • state (可选):活动、未来、关闭、全部

jira_sprint_issues

从冲刺中获得问题。

参数:

  • sprint_name (必填):Sprint名称
  • board_name (可选):板名称

jira_sprint_add_issue

在sprint中添加问题。

参数:

  • sprint_name (必填):Sprint名称
  • issue_keys (必填):逗号分隔的问题密钥
  • board_name (可选):板名称

例子:

"Add issues PROJ-100,PROJ-101,PROJ-102 to Sprint 42"

jira_sprint_remove_issue

从sprint中删除问题。

参数:

  • sprint_name (必填):Sprint名称
  • issue_keys (必填):逗号分隔的问题密钥
  • board_name (可选):板名称

🔍 JQL和报告(3个工具)

jira_jql_query

执行自定义JQL查询。

参数:

  • jql (必填):JQL查询字符串
  • maxResults (可选):最大结果(默认值:100)

JQL示例:

project = PROJ AND type = Bug AND status = "To Do" AND priority = High

jira_report_bugs

包含统计数据的全面错误报告。

参数:

  • status (可选):按状态筛选
  • maxResults (可选):最大结果(默认值:100)
  • outputFormat (可选):表格、csv、json

jira_report_recent_issues

近期问题概述(过去N天)。

参数:

  • daysBack (可选):回顾的天数(默认值:7)
  • maxResults (可选):最大结果(默认值:100)

📊 项目和板工具(4个工具)

jira_project_list

列出所有项目。

jira_epic_list

列出项目中的史诗。

参数:

  • project (可选):项目密钥过滤器

jira_board_list

列出所有板。

参数:

  • project (可选):项目密钥过滤器

🔧 实用工具(3个工具)

jira_open

在浏览器中打开问题。

参数:

  • issue_key (必填):问题密钥

jira_me

显示有关已配置用户的信息。

jira_serverinfo

显示Jira服务器信息。

💡 使用示例

工作日志管理

User: "Log 4 hours work on PROJ-3475 with comment 'Implemented authentication'"
AI: → jira_worklog_add(
      issue_key="PROJ-3475",
      time_spent="4h",
      comment="Implemented authentication"
    )
    → ✅ Worklog added

冲刺计划

User: "Add issues PROJ-100 through PROJ-105 to current sprint"
AI: → jira_sprint_add_issue(
      sprint_name="Sprint 42",
      issue_keys="PROJ-100,PROJ-101,PROJ-102,PROJ-103,PROJ-104,PROJ-105"
    )
    → ✅ 6 issues added to sprint

问题链接

User: "Link PROJ-200 blocks PROJ-201"
AI: → jira_issue_link(
      from_issue="PROJ-200",
      to_issue="PROJ-201",
      link_type="blocks"
    )
    → ✅ Issues linked

标签管理

User: "Add labels 'frontend', 'bug' and 'urgent' to PROJ-150"
AI: → jira_label_add(
      issue_key="PROJ-150",
      labels="frontend,bug,urgent"
    )
    → ✅ Labels added

发布导出

User: "Export all bugs from last month to CSV"
AI: → jira_issue_export(
      jql="type = Bug AND created >= -30d",
      format="csv",
      output_file="/path/to/bugs-export.csv"
    )
    → ✅ 47 issues exported

🔍 JQL查询示例

# My open issues
assignee = currentUser() AND status != Done

# Bugs in current sprint
project = PROJ AND type = Bug AND sprint in openSprints()

# High priority issues this week
priority = High AND created >= -7d

# Issues with specific labels
labels in (frontend, urgent) AND status != Done

# Unassigned bugs
type = Bug AND assignee is EMPTY

# Issues with attachments
attachments is not EMPTY

# Issues without Epic
"Epic Link" is EMPTY

# Overdue issues
due < now() AND status != Done

# Recently updated issues
updated >= -24h

# Blocked issues
status = Blocked OR statusCategory = "To Do"

🔒 安全

凭证管理

  • ⚠️ 永不 将API令牌提交到Git
  • 将令牌存储在环境变量或密码管理器中
  • 将MCP配置文件添加到 .gitignore
  • 每3-6个月轮换一次代币
  • 使用最小权限

🐛 故障排除

“401未经授权”

修复:

  1. 生成新的API令牌
  2. 更新 JIRA_API_TOKEN 在配置中
  3. 重新启动应用程序

“403禁止”

修复:

  • 检查Jira项目权限
  • 验证帐户是否具有浏览/编辑权限
  • 请求管理员访问

“未找到Jira CLI”

修复:

  • 验证 JIRA_CLI_PATH 是正确的
  • 检查是否安装了Jira CLI: jira version
  • 更新配置中的路径

“JQL查询无效”

修复:

  • 在Jira UI中测试JQL(过滤器→ 高级搜索)
  • 检查语法:字段名、运算符
  • 验证项目密钥和字段名称

“命令超时”

修复:

  • 减少maxResults参数
  • 简化JQL查询
  • 检查网络连接

📊 演出

  • 缓存: 无缓存(始终为新数据)
  • 速率限制: 遵守Jira API费率限制
  • 缓冲区大小: 每条命令10MB
  • 超时: 每次操作60秒

🚀 用法

单独模式

npm start

开发模式(自动重新加载)

npm run dev

通过光标或克劳德桌面(MCP集成)

在MCP配置文件中配置并重新启动应用程序。

📝 更新日志

2.0.0版本(2025-11-01)

  • ✨ 主要更新: 完成Jira CLI功能奇偶校验
  • ✅ 工作日志管理(添加、列表)
  • ✅ 观看/取消观看问题
  • ✅ 投票/解锁问题
  • ✅ 问题删除
  • ✅ 发布克隆
  • ✅ 问题链接
  • ✅ 标签管理(添加、删除)
  • ✅ 组件管理
  • ✅ 版本/发布管理
  • ✅ 附件支持
  • ✅ 高级冲刺操作
  • ✅ 问题转换列表
  • ✅ 子任务创建
  • ✅ 问题导出(CSV/JSON)
  • 📚 全面检查文件

版本1.0.0(2025-10-31)

  • ✨ 初始版本
  • ✅ 基本问题管理
  • ✅ JQL查询执行
  • ✅ 项目和冲刺管理
  • ✅ 自定义PowerShell报告

🤝 贡献

欢迎投稿!如需更改:

  1. 在本地进行彻底测试
  2. 更新此自述文件
  3. 更新package.json中的版本
  4. 以明确的信息承诺
  5. 创建带有描述的拉取请求

📧 支持

文档: 此README+内联代码注释
Jira API文件: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
Jira CLI文档: https://github.com/ankitpokhrel/jira-cli

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件


v2.0.0版本 -完成Jira CLI集成✨

由以下材料制成❤️ 对于MCP社区