
jira-mini-mcp
io.github.proprock由 GitHub 账号 proprock 发布v1.3.0更新于 Oct 24, 2026
Minimal Jira Cloud MCP server: broad reads, a narrow 3-tool write surface, optional read-only mode.
概览
一个精简的 Jira Cloud MCP 服务器,让助手搜索和读取工单、评论、附件与变更记录,并可选地评论、流转或修改工单。
- 可以做什么
- 用 JQL 搜索工单,读取单个工单的核心状态与字段,提供准确总数和游标分页而非静默截断。分页读取讨论与字段变更历史,列出或下载附件元数据与文件。启用写入后可发布 Markdown 评论、按流转名或状态名推进工单、设置工单字段。出错时会列出可用流转,且不包含 Jira 地址、凭据或原始响应内容。
- 适用场景
- 适合处理 Jira Cloud 工单的编码助手,需要工单上下文并能回写结果,又不想承担大型通用 Atlassian 工具集的上下文开销。若助手只需查询,可使用只读模式。
- 运行要求
- 以 PyPI 包形式通过 uvx 或 pip 在本地以 stdio 运行,需要 Python 3.12+ 及 uv 或 pip。需要 JIRA_BASE_URL,以及 JIRA_EMAIL 与 JIRA_API_TOKEN,或使用 OAuth 2.0 应用的 JIRA_OAUTH_CLIENT_ID 与 JIRA_OAUTH_CLIENT_SECRET 并完成一次浏览器登录。
安装
在 SourceWeft 中
- 打开 控制台中的 jira-mini-mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
jira-mini-mcp
A Jira Cloud MCP server for coding agents: 6 read tools, 9 with writes enabled.
[CI] [M8ven Verified] [PyPI Version] [Python] [License: MIT]
[Model Context Protocol compatible] [MCP Registry: io.github.proprock/jira-mini-mcp] [Auth: API token | OAuth 2.0]
[One job. One tool. Done right.]One job. One tool. Done right.
General-purpose Atlassian MCP servers expose dozens to hundreds of tools. Every one costs context before the agent does any useful work, and every near-duplicate makes the agent's choice less certain. This server gives a coding agent the Jira context it needs for a ticket, the three ways to answer back, and nothing else.
- 6-9 tools, not 98 - every one earns its place in context, and the descriptions are tested so an agent picks the right one; see why so few and how it's compared with the alternatives.
- A write surface of exactly three tools - comment, transition, update.
Set
READ_ONLY_MODE=trueand they never register, not even as a disabled entry the agent can see. - Compact, predictable output - stable JSON schemas, Markdown for rich
text, no
nullspam, noselfURLs, emails, or avatars; see what the tools return. - Roughly 40% less output on the wire - each result is sent once, as JSON
in
content, rather than again asstructuredContent; setSTRUCTURED_OUTPUT=trueif your host needs the typed copy. See Cheaper output. - Nothing is silently cut short - exact totals on comments and changelog,
cursor paging on search, and
limit=0to fetch the rest. A failed request is an error, never an empty list. - Errors an agent can act on - a wrong transition name lists every valid transition and where it leads, so there is no separate discovery tool. Errors never contain your Jira URL, credentials, or raw response bodies.
- API token or OAuth - one minute with an API token, or a browser login through your own OAuth 2.0 app with automatic refresh; see Configure.
- On PyPI -
uvx jira-mini-mcporpip install jira-mini-mcp, no repo clone or git URL required.
[!TIP] Set
READ_ONLY_MODE=trueand only the six 🟢 read tools register - the three 🔴 write tools are withheld entirely, see Configure.
- Install
- Configure
- Writing to Jira
- Why so few tools
- Compared with the alternatives
- Contributing and security
More detail lives in docs/: configuration,
OAuth setup, and what the tools return, with
examples.
Install
or
Pin a version when you want a fixed surface: uvx jira-mini-mcp==1.1.0.
Running an unreleased commit straight from GitHub also works:
Requires Python 3.12+ and uv (or pip).
Configure
With an API token, three values:
Add READ_ONLY_MODE=true to withhold the write tools. Every setting, including
STRUCTURED_OUTPUT, is in configuration.md.
[!NOTE] Prefer OAuth to a stored token? Set
JIRA_AUTH_METHOD=oauth, register a free OAuth 2.0 (3LO) app, and runjira-mini-mcp loginonce to authorize in your browser. The server then refreshes its token by itself. Step by step: oauth.md.
Configuration is validated at startup, and an error names the missing setting without printing its value or your Jira URL. Keep the token in the host's own configuration and never commit it. The server acts with your account's permissions: an account that cannot transition an issue still cannot, whatever this server exposes.
Claude Code
Put at least one other option between the last --env and the server name, as
above - the CLI otherwise reads the name as another KEY=value pair.
Claude Desktop
In claude_desktop_config.json:
Codex CLI
Any other stdio host
Command uvx, argument jira-mini-mcp, and the three environment variables.
Add READ_ONLY_MODE=true to withhold the write tools. OAuth host examples are in
oauth.md.
Writing to Jira
Three tools, chosen so an agent can close the loop on a ticket it worked:
Issue creation, links, attachment upload, worklogs, and deletion are out of scope. Creation needs per-project, per-type required-field discovery and is a feature in its own right; a link, or a request for one, fits in a comment.
Three things are worth knowing before an agent writes:
transition_issuetakes a name, not an id. A transition name or the name of the status to reach, matched ignoring case. They differ in real workflows - a transition calledIn Progresscan produce a status calledIn Development, and two differently named transitions can reach one status - so prefer the transition name. When nothing matches, the error lists every available transition and where it leads. To see the options first, askget_issue(fields=["transitions"]). That is why there is no separateget_transitionstool.update_issuereplaceslabelsandcomponentswholesale. There is no add or remove verb, so read the issue first if you mean to add one value. It takes the same valuesget_issuereturns:assigneeas an account id, an email, a display name, or the literal"me",descriptionas Markdown,customfield_*as raw Jira JSON. It refusesstatusandcomment, naming the tool that does each.- Markdown is converted, not guessed at. Headings, lists, fenced code, inline marks, and links become Jira rich text; anything outside that set stays literal rather than being reinterpreted.
Each write tool is annotated readOnlyHint=false with honest destructiveHint
and idempotentHint values, which is what READ_ONLY_MODE filters on.
Why so few tools
A tool definition is a name, a description, an input schema, and often an output contract. Depending on the client, all of it enters the model's context before any work happens. A large toolset therefore spends context on capabilities the current task will never use, and raises the chance of picking the wrong tool, confusing similar ones, or passing bad parameters.
Six to nine compact schemas stay affordable for a whole session, leaving the context budget for source code, issue descriptions, stack traces, and reasoning. The design follows Anthropic's guidance for agent systems: keep toolsets small, role-scoped, and clearly differentiated.
This is a claim, so the repository tests it. The offline half runs with the suite
and checks that every tool is described substantially, that no two descriptions
are near-duplicates, and that every parameter whose behavior cannot be guessed
from its name is explained in prose. The other half puts the real tool
definitions in front of a real model and scores which one it picks - see
evals/README.md.
The same principle shapes the responses. get_issue does not dump hundreds of
comments, the full changelog, attachment contents, or every custom field; large
resources are fetched only when asked for.
Compared with the alternatives
The official server is the better choice when you need breadth across Atlassian products, OAuth without registering an app of your own, Jira Service Management, or organization-level controls such as permission groups, IP allowlisting, and audit logs. It is Atlassian's own product, it tracks their APIs, and nothing here competes with that.
mcp-atlassian is the better choice when you need Confluence alongside Jira,
Server/Data Center, or simply broader Jira coverage than six to nine tools.
This server is the better choice for one narrow case: a coding agent working a Jira ticket, where the context every tool definition costs is worth more than the coverage it buys.
Contributing and security
Setup, checks, the test and eval commands, the branch and commit conventions, and the release model are in CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md. Changes that affect someone running the server are recorded in CHANGELOG.md.
License
MIT. Not an official Atlassian product.
来源:README.md,提交 f51eb4f
工具
0版本历史
3- v1.3.0最新Sep 20, 2026
- v1.0.0Sep 18, 2026
- v0.9.3Sep 18, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
