使用说明
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代币
- 首选https://id.atlassian.com/manage-profile/security/api-tokens
- 点击“创建API令牌”
- 给它起一个有意义的名字
- 复制令牌并在配置中使用它
📚 完整的工具参考
🎯 问题管理(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未经授权”
修复:
- 生成新的API令牌
- 更新
JIRA_API_TOKEN在配置中 - 重新启动应用程序
“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报告
🤝 贡献
欢迎投稿!如需更改:
- 在本地进行彻底测试
- 更新此自述文件
- 更新package.json中的版本
- 以明确的信息承诺
- 创建带有描述的拉取请求
📧 支持
文档: 此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社区
