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.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

精簡的 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 並完成一次瀏覽器登入。
安裝前請注意
伺服器以你的 Jira 帳號權限行事,寫入僅受該帳號權限限制。三個寫入工具會張貼留言、改變議題狀態並覆寫欄位;update_issue 會整批取代 labels 與 components。請將 JIRA_API_TOKEN 與 JIRA_OAUTH_CLIENT_SECRET 保存在主機設定中,切勿提交。設定 READ_ONLY_MODE 可隱藏寫入工具。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 jira-mini-mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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=true and they never register, not even as a disabled entry the agent can see.
  • Compact, predictable output - stable JSON schemas, Markdown for rich text, no null spam, no self URLs, 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 as structuredContent; set STRUCTURED_OUTPUT=true if 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=0 to 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-mcp or pip install jira-mini-mcp, no repo clone or git URL required.
ToolAccessPurpose
search_issues🟢 readFind issues with JQL
get_issue🟢 readOne issue's core state and fields
get_comments🟢 readRecent or historical discussion, paginated
get_attachments🟢 readAttachment metadata
download_attachment🟢 readFetch one attachment
get_changelog🟢 readField-change history, paginated
add_comment🔴 writePost one Markdown comment
transition_issue🔴 writeMove an issue through its workflow
update_issue🔴 writeSet issue fields

[!TIP] Set READ_ONLY_MODE=true and only the six 🟢 read tools register - the three 🔴 write tools are withheld entirely, see Configure.

More detail lives in docs/: configuration, OAuth setup, and what the tools return, with examples.

Install

bash
uvx jira-mini-mcp

or

bash
pip install jira-mini-mcp

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:

bash
uvx --from git+https://github.com/proprock/jira-mini-mcp jira-mini-mcp

Requires Python 3.12+ and uv (or pip).

Configure

With an API token, three values:

VariableMeaning
JIRA_BASE_URLYour site, e.g. https://example.atlassian.net
JIRA_EMAILThe email your API token belongs to
JIRA_API_TOKENA Jira Cloud API token

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 run jira-mini-mcp login once 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
bash
claude mcp add --env JIRA_BASE_URL=https://example.atlassian.net --env [email protected] --env JIRA_API_TOKEN=your-token --transport stdio jira-mini -- uvx jira-mini-mcp

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:

json
{  "mcpServers": {    "jira-mini": {      "command": "uvx",      "args": ["jira-mini-mcp"],      "env": {        "JIRA_BASE_URL": "https://example.atlassian.net",        "JIRA_EMAIL": "[email protected]",        "JIRA_API_TOKEN": "your-token"      }    }  }}
Codex CLI
bash
codex mcp add jira-mini --env JIRA_BASE_URL=https://example.atlassian.net --env [email protected] --env JIRA_API_TOKEN=your-token -- uvx jira-mini-mcp
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:

text
add_comment(issue_key, body)transition_issue(issue_key, to, comment=None)update_issue(issue_key, fields)

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_issue takes 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 called In Progress can produce a status called In 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, ask get_issue(fields=["transitions"]). That is why there is no separate get_transitions tool.
  • update_issue replaces labels and components wholesale. There is no add or remove verb, so read the issue first if you mean to add one value. It takes the same values get_issue returns: assignee as an account id, an email, a display name, or the literal "me", description as Markdown, customfield_* as raw Jira JSON. It refuses status and comment, 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

jira-mini-mcpOfficial Atlassian MCPsooperset/mcp-atlassian
ScopeJira onlyJira, Confluence, JSM, Bitbucket, Compass, Loom, and moreJira and Confluence
DeploymentsCloudCloudCloud, Server/Data Center
HostingLocal, stdioRemote, Atlassian-hostedLocal (stdio, Docker) or HTTP
AuthAPI token or OAuth 2.0 (own app)OAuth 2.1 or API tokenAPI token, PAT, or OAuth 2.0 (own app)
Tools6-9, always visibleA small default set with on-demand discovery98
Writes3 toolsYes, admin-gated by categoryYes
LicenseMITApache 2.0MIT

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
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v1.3.0最新Sep 20, 2026
  2. v1.0.0Sep 18, 2026
  3. v0.9.3Sep 18, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分