jira-mcp
Jira MCP 服务器(只读)
一个本地 MCP 服务器,让 Claude Code 拉取 Jira 工单上下文(问题详情、评论线程、工单周围的引用图以及 JQL 搜索结果),并以紧凑的 Markdown 呈现。可以获取图片附件(例如 UI 缺陷工单上的截图)供 Claude 进行视觉分析。
它刻意不能做什么
该服务器严格只读。它不暴露任何创建、更新、转换、删除或评论的工具。强制措施是分层的:
在代码中: 每个 HTTP 请求都通过一个仅允许
GET的辅助函数,但有一个白名单例外:POST /rest/api/3/search/jql,这是 Atlassian 要求以 POST 发送的读取操作。任何其他方法都会引发ReadOnlyViolationError,因此未来添加写入调用的编辑会大声失败。在凭据级别: 仅使用读取范围(如下)创建 API 令牌,这样即使有 bug 也无法写入。
Related MCP server: JIRA MCP Server
工具
工具 | 用途 |
| 完整工单详情,包括所有非空自定义字段(验收标准、故事点等)及其显示名称,以及(默认)评论线程 |
| 仅讨论,包含作者/时间戳/已编辑/可见性 |
| 父工单、子任务、关联工单(含关联方向)和史诗子项,每个都包含键 + 类型 + 状态 + 摘要 |
| 紧凑的 JQL 搜索结果 |
| 下载图片附件(由 |
| 令牌解析到的账户;身份验证调试的第一站 |
设置
1. 创建 Atlassian API 令牌
前往 https://id.atlassian.com/manage-profile/security/api-tokens。
选择使用范围创建 API 令牌(Atlassian 正在弃用无范围令牌)。
选择 Jira 应用,并仅选择以下范围:
read:jira-workread:jira-user
立即复制令牌;它只显示一次。
较旧的无范围令牌也可以使用;服务器会自动处理两者(见下文)。
2. 配置 .env
cp .env.example .env # then edit必需的键(这是整个配置表面):
键 | 值 |
| 你的 Atlassian 账户的电子邮件 |
| 步骤 1 中的令牌 |
| 例如 |
.env 已被 gitignore;切勿提交它。真实环境变量优先于该文件。该文件位于项目目录(而非工作目录)的相对位置,因此无论从何处启动,服务器都能找到它。
3. 安装依赖
使用 uv(首选,因为此仓库有 uv.lock):
uv sync或者使用普通 pip 安装到虚拟环境:
python -m venv .venv
.venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip4. 使用 --check 验证
.venv/bin/python -m jira_mcp --check # connectivity + auth only
.venv/bin/python -m jira_mcp --check PROJ-123 # also fetch a ticket in full这会打印是否找到 .env、选择了哪个基础 URL(以及是否需要 cloud-ID 回退)、已认证的账户,以及当给定键时,Claude 将看到的工单的确切内容。
有范围与无范围令牌:基础 URL 问题
无范围令牌适用于你的站点 URL,
https://<site>.atlassian.net。有范围令牌针对同一 URL 会静默失败,返回看似匿名的响应。它必须改为调用
https://api.atlassian.com/ex/jira/{cloudId}。
你无需知道自己持有哪种类型。启动时,服务器使用 GET /rest/api/3/myself 探测站点 URL;如果未返回真实账户,它会从 {site}/_edge/tenant_info 获取你的 cloud ID,并针对 api.atlassian.com 重试。获胜者会在进程生命周期内缓存,并记录到 stderr。
如果检测失败:_edge/tenant_info 不属于 Atlassian 正式支持的 REST API(尽管 Atlassian 自己的支持文档指向它),因此它可能会更改。在这种情况下,在 .env 中设置 ATLASSIAN_CLOUD_ID 以跳过检测;错误消息会告诉你何时适用。你几乎不需要它。
PyCharm 设置
解释器: 设置 → 项目 → Python 解释器 → 添加解释器 → 现有 → 选择项目目录中的
.venv/bin/python。(如果你运行了uv sync,虚拟环境已存在并安装了所有内容。)用于调试的运行配置: 运行 → 编辑配置 → + → Python:
运行: 模块
jira_mcp(选择“模块”而不是“脚本路径”)参数:
--check PROJ-123工作目录: 项目根目录(任何目录都可以,但这样更整洁)
现在你可以在任何地方设置断点(例如在 client.py 中)并调试真实请求。否则,运行中的 MCP 服务器内部的错误是不可见的。
连接到 Claude Code
使用虚拟环境的 Python 绝对路径;当 Claude Code 启动服务器时,裸 python 不会解析到虚拟环境。
macOS/Linux:
claude mcp add jira -- /path/to/PythonProject/.venv/bin/python -m jira_mcpWindows:
claude mcp add jira -- C:\path\to\PythonProject\.venv\Scripts\python.exe -m jira_mcp注意:
--之后的所有内容都是 Claude 运行的命令;之前的所有内容都是 Claude 自己的选项。默认范围是
local(仅你自己,仅此项目,存储在~/.claude.json中)。添加--scope project以通过已检入的.mcp.json共享,或添加--scope user以在所有项目中使用。
验证已连接
在 Claude Code 会话中:
运行
/mcp;jira服务器应列为已连接,并带有六个工具。或者直接问:“使用 whoami 检查 jira 连接”。
故障排除
症状 | 可能的原因和修复 |
401 未授权 | 电子邮件或令牌错误,或令牌已被撤销/过期。重新创建令牌并更新 |
403 禁止 | 有范围令牌缺少 |
404 未找到 | 问题不存在,或者你的账户没有查看权限。Jira 将无法查看的问题报告为 404,令牌永远不会授予比其所属人类更多的访问权限。验证你可以使用该账户登录浏览器打开工单。 |
Claude 中工具列表为空 | 服务器在启动时崩溃。在终端中自行运行 |
服务器无法启动 | 运行 |
检测失败 / 匿名响应 | 启动日志(stderr)会说明探测了哪个基础 URL 以及为何被拒绝。如果 |
给 Python 新手的注意事项
虚拟环境(
.venv/)是 Python 的项目本地副本,加上此项目的包:相当于node_modules,但解释器本身也在其中。这就是为什么必须给 Claude Code 提供.venv/bin/python的绝对路径:没有全局安装可依赖。asyncio.run(...)是必需的,因为 Python 中的异步函数不会仅通过调用就运行;调用一个会返回协程对象,必须有东西来驱动它。没有像 Node 那样的环境事件循环;asyncio.run()创建一个循环,运行一个协程直到完成,然后拆除循环。MCP 服务器通过mcp.run()在内部执行此操作;--check模式显式执行。装饰器(
@mcp.tool)是接收其下方定义的函数并注册/包装它的函数,就像在定义时应用中间件工厂。FastMCP 的装饰器读取函数的名称、类型提示和文档字符串,以生成 Claude 看到的 MCP 工具架构;文档字符串就是工具的 API 文档。python -m jira_mcp运行包的__main__.py,这是 Python 最接近 npmbin条目的东西。它可以从任何目录运行,因为uv sync已将项目安装到虚拟环境中。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables fetching and viewing Jira issue details directly through Claude Desktop using secure API token authentication. Provides comprehensive issue information including status, assignee, priority, and descriptions in both human-readable and structured formats.104891MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, view, create, and update JIRA issues using natural language commands and JQL queries.98Apache 2.0
- AlicenseAqualityDmaintenanceProvides read-only access to JIRA REST API, enabling LLMs to query and retrieve information from JIRA instances.1418MIT
- FlicenseNot gradedqualityDmaintenanceProvides read-only issue and project management tools for Jira Server/DC, enabling querying issues, projects, and assignments via natural language.
Related MCP Connectors
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Catch up on Slack without reading it. Unreads, threads, search. Browser-session or hosted OAuth.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Satttoshi/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server