使用说明
Jira MCP服务器
Jira Cloud的MCP(模型上下文协议)服务器。 通过REST API v3为AI助手提供读取、搜索、创建、更新、转换、链接、注释和将文件附加到Jira问题的工具。文本字段(描述、注释)支持Markdown格式。
先决条件
- Node.js 18+
- Jira云实例
- 您的Atlassian帐户的API代币(在此处创建一个)
设置
npm install
npm run build
创建一个 .env 文件(参见 .env.example):
JIRA_BASE_URL=https://jira.example.com
JIRA_EMAIL=user@example.com
JIRA_API_TOKEN=your-api-token
作为MCP服务器运行
添加到光标 mcp.json:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["C:\\repos\\Custom-MCP\\Jira\\dist\\index.js"]
}
}
}
或者直接运行以进行开发(无需构建):
npm run dev
工具
get_my-tasks
返回分配给当前用户的活动任务。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
max_results |
number | 10 | 要返回的最大任务数(1-50) |
jcl: assignee = currentUser() AND status NOT IN (Done, Cancelled) ORDER BY priority DESC
get_task_details
返回单个问题的完整上下文:摘要、描述、状态、受让人、评论、附件和问题链接。
| 参数 | 类型 | 说明 |
|---|---|---|
issue_key |
string | 问题密钥,例如。 PROJ-123 |
响应包括 issueLinks[] 和 id, linkType, direction, relation,以及链接的问题详细信息。使用链接 id 和 unlink_issues 删除链接。
搜索任务
通过文本查询或原始JQL搜索问题。提供其中之一 query 或 jql不是两者都有。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
query |
string | 要搜索的文本(使用 text ~ "...") |
|
jql |
string | 原始JQL查询 | |
max_results |
number | 5 | 最大结果(1-50) |
update_task_status
将问题转换为新状态。首先获取可用的转换,按名称匹配(不区分大小写),然后执行。
| 参数 | 类型 | 说明 |
|---|---|---|
issue_key |
string | 问题密钥,例如。 PROJ-123 |
transition_name |
string | 目标转换,例如。 In Progress |
创建任务
创建新的Jira问题。描述支持 Markdown格式.
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
project |
string | 项目密钥(例如。 PROJ) |
|
summary |
string | 问题标题 | |
issue_type |
字符串 | Task |
问题类型(任务、Bug、故事、史诗……) |
description |
string | 描述(支持Markdown) | |
parent |
string | 父发行密钥(例如epic密钥) |
update_task
更新现有Jira问题的字段。仅更改提供的字段。描述支持 Markdown格式.
| 参数 | 类型 | 说明 |
|---|---|---|
issue_key |
string | 问题密钥,例如。 PROJ-123 |
summary |
string | 新问题标题 |
description |
string | 新描述(支持Markdown) |
issue_type |
string | 新问题类型(故事、Bug、任务…) |
parent |
string | 新的父发行密钥(例如epic密钥) |
链接问题
在两个Jira问题之间创建链接。使用 get_task_details 查看现有链接。
| 参数 | 类型 | 说明 |
|---|---|---|
link_type |
string | 链接类型名称(例如。 Blocks, Relates, Duplicate) |
outward_issue |
string | 获取外部关系的Issue键(例如拦截器) |
inward_issue |
string | 获取内部关系(例如阻塞)的问题密钥 |
常见链接类型: 积木 (阻塞/被阻塞), 相关 (涉及), 重复 (复制/被复制), 克隆画笔 (克隆/被克隆)。
取消链接问题
按链接ID删除两个问题之间的链接。从获取链接ID get_task_details → issueLinks[].id.
| 参数 | 类型 | 说明 |
|---|---|---|
link_id |
string | 要删除的问题链接ID |
添加注释
向问题添加注释。支持 Markdown格式.
| 参数 | 类型 | 说明 |
|---|---|---|
issue_key |
string | 问题密钥,例如。 PROJ-123 |
comment |
string | 注释文本(支持Markdown) |
附件文件
从磁盘上传文件并将其附加到问题。在同一调用中添加注释(可选)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
issue_key |
string | yes | 问题密钥,例如。 PROJ-123 |
file_path |
string | yes | 磁盘上文件的绝对路径 |
comment |
string | no | 附加后要添加的可选注释 |
命令行界面
包含一个独立的CLI运行程序,用于在MCP之外进行手动测试。它使用相同的 .env config和相同的Jira客户端。
npm run cli -- <tool_name> [json_args]
示例(键=值——适用于所有地方)
推荐的传递论点的方式。在任何操作系统或shell上都没有引用问题。
npm run cli -- --help
npm run cli -- get_my_tasks
npm run cli -- get_my_tasks max_results=5
npm run cli -- get_task_details issue_key=PROJ-123
npm run cli -- search_tasks query="oauth bug" max_results=5
npm run cli -- search_tasks jql="project = PROJ AND status = Open"
npm run cli -- create_task project=PROJ summary="Fix login bug" issue_type=Bug description="**Steps:** ..." parent=PROJ-100
npm run cli -- update_task issue_key=PROJ-123 summary="Updated title" description="New **description**"
npm run cli -- update_task_status issue_key=PROJ-123 transition_name="In Progress"
npm run cli -- add_comment issue_key=PROJ-123 comment="Fixed in PR #42"
npm run cli -- attach_file issue_key=PROJ-123 file_path=C:\path\to\report.pdf
npm run cli -- attach_file issue_key=PROJ-123 file_path=C:\path\to\report.pdf comment="See attached report"
npm run cli -- link_issues link_type=Blocks outward_issue=PROJ-1 inward_issue=PROJ-2
npm run cli -- unlink_issues link_id=12345
示例(JSON——Bash/macOS/Linux)
当JSON被包裹在单引号中时,它也被接受为单个参数:
npm run cli -- get_task_details '{"issue_key": "PROJ-123"}'
npm run cli -- search_tasks '{"query": "oauth bug", "max_results": 5}'
Windows注意事项:
npm.cmd传递论点cmd.exe,它去掉了双引号。使用key=valueWindows上的格式,而不是JSON。
输出格式为JSON,打印到stdout。错误打印到stderr,退出代码为非零。
项目结构
src/
index.ts — MCP server entry point (stdio transport)
cli.ts — CLI entry point for manual testing
config.ts — .env loader, validates JIRA_BASE_URL / EMAIL / API_TOKEN
adf.ts — ADF ↔ Markdown/plain-text conversion
jira-client.ts — HTTP wrapper over native fetch with Basic Auth
response.ts — successResponse / errorResponse helpers
tools/
getMyTasks.ts
getTaskDetails.ts
searchTasks.ts
updateTaskStatus.ts
addComment.ts
attachFile.ts
createTask.ts
updateTask.ts
linkIssues.ts
unlinkIssues.ts
docs/
markdown-formatting.md — Supported Markdown syntax reference
