Jira任务管理服务器

为Jira Cloud提供AI助手支持的模型上下文协议服务器,支持通过REST API v3读取、搜索、创建、更新、转换、链接、评论和附加文件到Jira问题。

  • by Eliya-56
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Eliya-56/MCP-Jira

使用说明

Jira MCP服务器

Jira Cloud的MCP(模型上下文协议)服务器。 通过REST API v3为AI助手提供读取、搜索、创建、更新、转换、链接、注释和将文件附加到Jira问题的工具。文本字段(描述、注释)支持Markdown格式。

先决条件

设置

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=value Windows上的格式,而不是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