使用说明
Jira MCP服务器
作者 Ashish Kumar Kashyap(@阿卡什亚普3c)
A. 模型上下文协议 Atlassian Jira Cloud的MCP服务器。从Cursor、Claude Code或任何兼容MCP的客户端管理项目、问题、冲刺、公告板、工作日志、评论和工作流转换。
使用此服务器的两种方法
- 使用托管实例 (推荐)--将您的MCP客户端指向
https://mcp-jira-server.onrender.com/mcp您自己的Jira凭据作为标头传递。无需安装。见下文。 - 自托管 --克隆仓库并在本地运行(一个用户的stdio)或部署自己的HTTP实例(Render、Fly、Docker等)。看 自托管.
先决条件
- 吉拉云 帐户(例如。
https://yourorg.atlassian.net) - Atlassian API令牌 — 创建一个
- 仅适用于自主机: Node.js 18+
使用托管服务器(推荐)
托管实例位于 https://mcp-jira-server.onrender.com/mcp。您不需要克隆、安装或部署任何东西,只需将您的MCP客户端指向它,并将您自己的Jira凭据作为请求头传递。每个用户都以自己的身份进行身份验证;服务器端不存储凭据。
克劳德代码
选项A-CLI (为您编写配置):
claude mcp add --transport http --scope user jira-remote https://mcp-jira-server.onrender.com/mcp \
--header "X-Jira-Base-Url: https://YOUR-DOMAIN.atlassian.net" \
--header "X-Jira-Email: you@example.com" \
--header "X-Jira-Token: YOUR_JIRA_API_TOKEN"
选项B-JSON (进入 ~/.claude.json 在...之下 mcpServers,或本地项目 .mcp.json):
{
"mcpServers": {
"jira-remote": {
"type": "http",
"url": "https://mcp-jira-server.onrender.com/mcp",
"headers": {
"X-Jira-Base-Url": "https://YOUR-DOMAIN.atlassian.net",
"X-Jira-Email": "you@example.com",
"X-Jira-Token": "YOUR_JIRA_API_TOKEN"
}
}
}
}
证实 claude mcp list --你应该看看 jira-remote: ... (HTTP) - ✓ Connected.
克劳德桌面版
中的JSON形状相同 claude_desktop_config.json (根据 mcpServers).
光标
添加 ~/.cursor/mcp.json:
{
"mcpServers": {
"jira-remote": {
"type": "streamable-http",
"url": "https://mcp-jira-server.onrender.com/mcp",
"headers": {
"X-Jira-Base-Url": "https://YOUR-DOMAIN.atlassian.net",
"X-Jira-Email": "you@example.com",
"X-Jira-Token": "YOUR_JIRA_API_TOKEN"
}
}
}
}
支持的标头
| 标题 | 必填 | 目的 |
|---|---|---|
X-Jira-Base-Url |
是 | 您的Jira Cloud基础URL,例如。 https://yourorg.atlassian.net |
X-Jira-Email |
是 | Atlassian帐户电子邮件 |
X-Jira-Token |
yes | Atlassian API令牌- 创建一个 |
X-Jira-Read-Only |
没有 | true 拒绝非GET/HEAD调用 jira_platform_request / jira_agile_request |
健康检查
curl https://mcp-jira-server.onrender.com/health
# {"status":"ok","server":"jira-mcp"}
托管服务器在Render的免费计划上运行,该计划在不活动后休眠。睡眠后的第一个请求需要大约10-30秒才能醒来;后续通话很快。对于生产设置,请使用以下部分进行自托管。
自助主机(自己运行)
如果您不想依赖托管实例(用于生产、合规性或专用网络),请自己运行服务器。
克隆并安装
git clone git@github.com:akashyap3c/jira-mcp.git
cd jira-mcp
npm install
本地stdio(单用户,无网络)
最适合从一台机器单独使用。MCP客户端将服务器作为子进程生成,并通过 env。没有运行HTTP服务器。
添加到MCP客户端配置中(将路径替换为绝对路径):
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/jira-mcp/mcp-server/index.js"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
对于stdio,您还可以单独测试它:
npm run mcp # alias for: node mcp-server/index.js
# JIRA MCP server running on stdio
本地HTTP(多用户,在您自己的主机上)
运行HTTP服务器,让客户端使用每个用户的标头进行连接(与托管指令的形状相同,只需交换URL)。
npm start # alias for: node mcp-server/http.js
# JIRA MCP server (HTTP) listening on port 3000
然后客户指向 http://localhost:3000/mcp (或您自己的主机名/端口)并传递 X-Jira-Base-Url / X-Jira-Email / X-Jira-Token 每个请求的标头。
(可选)对于stdio或共享身份设置,请复制 .env.example 到 .env 并设置 JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN。这些仅在没有时用作后备 X-Jira-* 请求中存在标头。
部署到渲染(或任何平台)
此回购 render.yaml 提供运行的Web服务 npm start (HTTP传输) /health 探查。要部署自己的副本,请执行以下操作:
- 将此仓库分叉或推送到GitHub。
- 渲染仪表板→ 新建Web服务 → 连接您的GitHub仓库→ 渲染读取
render.yaml. - 无需环境变量 如果您希望用户通过标头对每个请求进行身份验证。托管实例以这种方式运行。
- (可选)设置
JIRA_BASE_URL,JIRA_EMAIL,JIRA_API_TOKEN仅当您希望在缺少标头时使用回退共享标识时,才使用env-vars。
包括 Dockerfile 还致力于:
- Fly.io:
fly launch从repo目录 - 铁路:连接GitHub仓库→ 它会自动检测Dockerfile
- 任何VPS:
docker build -t jira-mcp . && docker run -p 3000:3000 jira-mcp
API参考(PM/完整REST表面)
- docs/API-REFERENCE.md文件 --官方Swagger的链接、可选的环境变量以及策划的工具如何映射到PM工作流程。
jira_platform_request/jira_agile_request--调用任何有文档记录的平台或敏捷端点(具有路径安全和可选只读模式)。
可用工具
| 工具 | 说明 |
|---|---|
list_projects |
列出可访问的Jira项目 |
get_issue |
按密钥获取问题详细信息 |
search_issues |
使用JQL搜索问题 |
create_issue |
创建新问题(摘要、描述、优先级、标签、原始估计等) |
update_issue |
更新问题字段(摘要、描述、优先级、标签、原始估计) |
delete_issue |
永久删除问题(可选:删除子任务) |
assign_issue |
分配或取消分配问题(按accountId) |
get_transitions |
列出问题的可用工作流转换 |
transition_issue |
通过工作流移动问题(按转换ID) |
add_comment |
向问题添加评论 |
get_comments |
列出对某个问题的评论 |
log_work |
记录在问题上花费的时间(工作日志) |
get_worklogs |
列出问题的工作日志 |
get_link_types |
列出可用的问题链接类型(块、相关等) |
link_issues |
用关系类型链接两个问题 |
search_users |
按姓名/电子邮件搜索用户(返回assign_issue的accountId) |
list_boards |
列出Jira板(ID、名称、类型) |
list_sprints |
列出板的冲刺(分页) |
get_all_sprints |
获取具有ID和名称的板的所有冲刺(自动分页) |
get_sprint_issues |
在冲刺中解决问题 |
move_to_sprint |
将问题移动到sprint中(通过sprintId或sprintName+boardId) |
move_to_backlog |
将问题从冲刺阶段移回待办事项列表 |
get_sprint |
按ID(日期、状态、目标)列出的Sprint元数据 |
get_board_backlog |
板积压问题(可选JQL) |
get_board_issues |
董事会范围的问题(可选JQL) |
list_board_reports |
板可用的报告类型 |
aggregate_worklogs |
用户在JQL问题上记录的总时间(上限) |
list_board_epics |
棋盘上的史诗 |
get_epic_issues |
棋盘上史诗的问题 |
get_issues_without_epic |
董事会问题不属于任何史诗 |
list_fields |
所有字段(查找故事点自定义字段ID) |
list_filters |
搜索已保存的筛选器 |
get_filter |
按ID获取过滤器详细信息和JQL |
sprint_metrics |
按状态类别推导出冲刺的计数/故事点数 |
jira_platform_request |
低水平 GET/POST/... 在...之下 /rest/api/3 |
jira_agile_request |
低水平 GET/POST/... 在...之下 /rest/agile/1.0 |
项目结构
jira-mcp/
├── Dockerfile
├── mcp-server/
│ ├── index.js # Entry point (stdio transport, local)
│ ├── http.js # Entry point (HTTP transport, remote)
│ ├── jira-client.js # Jira REST API (v3 + Agile 1.0)
│ ├── formatters.js # ADF/plain text, markdown tables
│ └── tools/ # MCP tool handlers
│ ├── list-projects.js
│ ├── get-issue.js
│ ├── search-issues.js
│ ├── create-issue.js
│ ├── update-issue.js
│ ├── delete-issue.js
│ ├── assign-issue.js
│ ├── get-transitions.js
│ ├── transition-issue.js
│ ├── add-comment.js
│ ├── get-comments.js
│ ├── log-work.js
│ ├── get-worklogs.js
│ ├── get-link-types.js
│ ├── link-issues.js
│ ├── search-users.js
│ ├── list-boards.js
│ ├── list-sprints.js
│ ├── get-all-sprints.js
│ ├── get-sprint-issues.js
│ ├── move-to-sprint.js
│ ├── move-to-backlog.js
│ ├── get-sprint.js
│ ├── get-board-backlog.js
│ ├── get-board-issues.js
│ ├── list-board-reports.js
│ ├── aggregate-worklogs.js
│ ├── list-board-epics.js
│ ├── get-epic-issues.js
│ ├── get-issues-without-epic.js
│ ├── list-fields.js
│ ├── list-filters.js
│ ├── get-filter.js
│ ├── sprint-metrics.js
│ ├── jira-platform-request.js
│ └── jira-agile-request.js
├── docs/
│ └── API-REFERENCE.md
├── .env.example
├── package.json
└── README.md
许可证
麻省理工学院