Jira MCP
一个基于Go语言的MCP(模型控制协议)连接器,用于Jira,使AI助手如Claude能够与Atlassian Jira交互。该工具为AI模型提供了无缝界面,以执行常见的Jira操作。
WHY
虽然Atlassian提供了官方的MCP连接器,但我们的实现提供了更优越的灵活性和实际问题解决能力。我们构建这个连接器是为了解决开发人员和项目经理实际面临的日常挑战,而不仅仅是基本的API操作。
主要优势:
- 更全面的工具:我们提供20多个专业工具,涵盖Jira工作流管理的各个方面
- 注重实际应用:专为解决实际日常问题而设计,如sprint管理、问题关系和工作流转换
- 增强的灵活性:支持复杂操作,如在不同sprint间移动问题、创建子问题和管理问题关系
- 更好的集成:与AI助手无缝集成,实现自然语言的Jira操作
- 实用设计:工具专为实际开发工作流设计,而不仅仅是基本的CRUD操作
功能
问题管理
- 获取详细的问题信息,支持自定义字段和扩展
- 创建新问题,支持所有字段
- 创建子问题(子任务),自动关联父问题
- 更新现有问题,支持部分字段更新
- 搜索问题,使用强大的JQL(Jira查询语言)
- 列出可用的问题类型,适用于任何项目
- 转换问题,通过工作流状态
- 将问题移动到sprint(一次最多50个问题)
评论与时间跟踪
- 向问题添加评论
- 检索问题的所有评论
- 添加工时记录,支持时间跟踪和自定义开始时间
- 灵活的时间格式支持(3h、30m、1h 30m等)
问题关系与历史记录
- 建立问题关系,支持关系类型(阻塞、重复、关联)
- 获取相关问题和关系
- 检索完整的问题历史记录和变更日志
- 跟踪问题转换和工作流变更
Sprint与项目管理
- 列出所有sprint,适用于看板或项目
- 获取当前sprint信息
- 通过ID获取详细sprint信息
- 列出项目状态和可用转换
- 看板和项目集成,自动发现
高级功能
- 批量操作支持(将多个问题移动到sprint)
- 灵活的参数处理(board_id或project_key)
- 丰富的响应格式,便于AI消费
- 错误处理,提供详细的调试信息
🚀 快速入门指南
前置条件
开始之前,您需要:
- Atlassian账户,可访问Jira实例
- Atlassian API令牌(我们会帮助您获取)
- Cursor IDE,带有Claude集成
第一步:获取您的Atlassian API令牌
- 前往 Atlassian API令牌
- 点击 "创建API令牌"
- 给它命名,如"Jira MCP连接器"
- 复制令牌(您将看不到它第二次)
第二步:选择您的安装方式
我们推荐使用Docker进行最简单的设置:
🐳 选项A:Docker(推荐)
# 拉取最新镜像
docker pull ghcr.io/nguyenvanduocit/jira-mcp:latest
# 测试是否正常工作(替换为您的信息)
docker run --rm \
-e ATLASSIAN_HOST=https://your-company.atlassian.net \
-e ATLASSIAN_EMAIL=your-email@company.com \
-e ATLASSIAN_TOKEN=your-api-token \
ghcr.io/nguyenvanduocit/jira-mcp:latest \
--http_port 3000
📦 选项B:下载二进制文件
- 前往 GitHub Releases
- 下载适用于您的平台:
- macOS:
jira-mcp_darwin_amd64 - Linux:
jira-mcp_linux_amd64 - Windows:
jira-mcp_windows_amd64.exe
- macOS:
- 使其可执行(macOS/Linux):
chmod +x jira-mcp_* sudo mv jira-mcp_* /usr/local/bin/jira-mcp
🛠️ 选项C:从源代码构建
go install github.com/nguyenvanduocit/jira-mcp@latest
第三步:配置Cursor
- 打开Cursor
- 前往设置 → 功能 → 模型上下文协议
- 添加新的MCP服务器,使用以下配置:
Docker用户:
{
"mcpServers": {
"jira": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "ATLASSIAN_HOST=https://your-company.atlassian.net",
"-e", "ATLASSIAN_EMAIL=your-email@company.com",
"-e", "ATLASSIAN_TOKEN=your-api-token",
"ghcr.io/nguyenvanduocit/jira-mcp:latest"
]
}
}
}
二进制文件用户:
{
"mcpServers": {
"jira": {
"command": "/usr/local/bin/jira-mcp",
"env": {
"ATLASSIAN_HOST": "https://your-company.atlassian.net",
"ATLASSIAN_EMAIL": "your-email@company.com",
"ATLASSIAN_TOKEN": "your-api-token"
}
}
}
}
第四步:测试您的设置
- 完全重启Cursor
- 打开一个新的聊天与Claude
- 尝试以下测试命令:
列出我的Jira项目
显示分配给我的问题
当前sprint中有哪些内容?
如果您看到Jira数据,恭喜!🎉 您已成功设置。
🔧 高级配置
使用环境文件
创建一个.env文件以便于管理:
# .env文件
ATLASSIAN_HOST=https://your-company.atlassian.net
ATLASSIAN_EMAIL=your-email@company.com
ATLASSIAN_TOKEN=your-api-token
然后使用它:
# 使用二进制文件
jira-mcp -env .env
# 使用Docker
docker run --rm -i --env-file .env ghcr.io/nguyenvanduocit/jira-mcp:latest
开发模式下的HTTP模式
对于开发和测试,您可以以HTTP模式运行:
# 在端口3000上启动HTTP服务器
jira-mcp -env .env -http_port 3000
然后配置Cursor:
{
"mcpServers": {
"jira": {
"url": "http://localhost:3000/mcp"
}
}
}
🎯 使用示例
配置完成后,您可以要求Claude使用自然语言帮助您处理Jira任务:
问题管理
- "创建一个关于登录问题的bug工单"
- "显示工单PROJ-123的详细信息"
- "将工单PROJ-456移动到进行中"
- "向PROJ-789添加评论,说明修复已完成"
Sprint管理
- "我们当前的sprint中有哪些内容?"
- "将这三个工单PROJ-1、PROJ-2、PROJ-3移动到下一个sprint"
- "显示当前sprint中分配给John的所有工单"
报告与分析
- "显示本周创建的所有bug"
- "列出所有被阻塞的工单"
- "哪些工单已准备好进行测试?"
🛠️ 故障排除
常见问题
❌ "连接失败"或"认证错误"
- 仔细检查您的
ATLASSIAN_HOST(应为类似company.atlassian.net的格式) - 验证您的API令牌是否正确
- 确保您的邮箱与您的Atlassian账户匹配
❌ "未找到MCP服务器"
- 添加配置后完全重启Cursor
- 检查Cursor设置中的MCP配置语法
- 验证二进制文件路径是否正确(对于二进制安装)
❌ "权限被拒绝"错误
- 确保您的Atlassian账户有权访问Jira项目
- 检查您的API令牌是否具有必要的权限
获取帮助
- 查看日志:使用
-http_port运行以查看详细的错误消息 - 测试您的凭证:尝试第2步中的Docker测试命令
- 验证Cursor配置:应用程序将显示您要使用的确切配置
📚 开发
用于本地开发和贡献:
# 克隆仓库
git clone https://github.com/nguyenvanduocit/jira-mcp.git
cd jira-mcp
# 创建包含您凭证的.env文件
cp .env.example .env
# 编辑.env文件,填写您的信息
# 以开发模式运行
just dev
# 或
go run main.go -env .env -http_port 3002
# 使用MCP检查器测试
npx @modelcontextprotocol/inspector http://localhost:3002/mcp
🤝 贡献
- 分支仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'feat: 添加一些惊人的功能') - 推送到分支 (
git push origin feature/amazing-feature) - 打开Pull Request
📄 许可证
本项目根据MIT许可证授权 - 详细内容请参阅LICENSE文件。
需要帮助? 请查看我们的CHANGELOG.md以获取最新更新,或在GitHub上打开问题。