Atlassian (Jira + Confluence)
Read + write Jira issues + Confluence pages — work-tracker and wiki access in one server.
5,735 stars 1,308 forks Last commit 1d ago Language TypeScript License Apache-2.0
Install
uvx mcp-atlassian Maintain this server? Add the badge
Show your README readers it's in a curated directory — and give them a one-click path to install docs and config.
Markdown
[](https://prismix.dev/mcp/atlassian) Theme-aware version (auto dark/light on GitHub) →
<a href="https://prismix.dev/mcp/atlassian"><picture><source media="(prefers-color-scheme: dark)" srcset="https://prismix.dev/api/badge/mcp/atlassian.svg?theme=dark"><img alt="Listed on Prismix" src="https://prismix.dev/api/badge/mcp/atlassian.svg"></picture></a> About
Atlassian's official MCP server. Jira issue CRUD + JQL search, Confluence page reads + edits, attachment handling, user lookups across both products. OAuth or API-token auth.
Recent releases (5)
All releases →- v0.23.0 Latest Jul 18, 2026
This release adds JSM customer-request and internal-comment support, epic hierarchy and dependency tools, PAC/WPAD and mTLS connectivity, external auth passthrough, and Live Docs page creation, plus a broad batch of Jira/Confluence content fixes and security updates to Starlette and FastMCP. ## ✨ Features ### Jira - New JSM customer request tools — `jira_get_request_types`, `jira_get_request_type_fields`, and `jira_create_customer_request` — let clients list request types, inspect their visible fields, and raise customer requests with participants, base64 attachments, and on-behalf-of support (#1241) - New `jira_get_project_epic_hierarchy` groups a project's epics under their cross-project parent issues with direction-aware link classification, and `jira_get_cross_project_dependencies` maps issue links by target project and link type (#1286) - `jira_get_issue` and `jira_search` accept `use_display_names` to return human-readable custom field keys such as `Story Points` instead of opaque IDs like `customfield_10243`; conflicting names safely fall back to the raw ID (#1156) - Jira issue and search results now include a `browse_url` pointing at the issue's `/browse/` page, for quick open-ticket-in-browser workflows (#1471) - `jira_update_issue` accepts `return_fields` to trim the post-update re-fetch and cut response tokens; the full-issue default is unchanged (#1466) - Markdown `{expand:Title}` blocks in issue descriptions convert to native collapsible sections on Cloud, including nested headings, lists, and code blocks (#1309) - Development information queries discover case-sensitive application types from the dev-status summary endpoint when `application_type` is omitted, so custom connectors are found without guessing exact casing (#1329) ### Confluence - GFM task lists (`- [ ]` / `- [x]`) convert to native Confluence task macros instead of literal checkbox text, and new page template tools let you list Cloud templates, fetch them, and create pages from them (#1180) - Page creation accepts a `subtype` — including `live` for Live Docs — on Cloud, and page responses expose the subtype (#1479) ### Server/Transport - Opt-in external authentication passthrough: forward an operator-allowlisted set of incoming MCP headers to Jira and Confluence per request, supporting external proxy-managed auth without local Atlassian credentials. Dynamic per-request destinations require `MCP_ALLOWED_URL_DOMAINS` to prevent credential exfiltration (#1457) - Opt-in PAC/WPAD proxy auto-configuration for environments where the outbound route is selected by a PAC file. WPAD stays disabled by default, explicit proxy settings take precedence, and the SSRF/DNS-pinning defenses are preserved when PAC routing is enabled (#1367, #1461) - New `cert` auth type for Server/DC deployments that use mutual TLS: a client certificate/key pair alone now authenticates — previously setting `JIRA_CLIENT_CERT` / `CONFLUENCE_CLIENT_CERT` without a username or token left the service silently disabled (#1196) ## 🐛 Fixed ### Jira - `jira_get_issue_comments` no longer crashes with a `TypeError` on Cloud, where REST v3 returns comment bodies as ADF — bodies are converted to text the same way the add/edit comment paths already do (#1489) - Transition comments are routed through the correct API version: Cloud uses REST v3 with ADF in one atomic request (so workflows whose transition screen requires a comment now work), while Server/DC keep wiki-markup via v2 (#1355) - `jira_download_attachments` returns non-image attachments as `TextContent` with a JSON envelope (base64 payload, filename, MIME type) instead of an `EmbeddedResource` blob that some MCP clients reject; images keep the embedded form (#1469) - Bare Jira issue keys in Cloud markdown are autolinked to the configured `/browse/` URL when converted to ADF (#1468) - `jira_add_comment` accepts `comment` as a compatibility alias for the `body` parameter, so clients sending the older shape no longer fail argument validaView on GitHub ↗ - v0.22.1 Jul 11, 2026
## 🔒 Security ### Jira - Prevented caller-supplied `projects_filter` values from injecting JQL operators that could escape the configured project allowlist. Filter values with JQL syntax are now quoted as literals, and generated project clauses are explicitly grouped. (#1450) ### Transport - Kept caller-controlled destinations on the direct DNS-pinned connection path when deployment proxies are configured, so proxy-side DNS resolution cannot bypass the SSRF rebinding defense. Operator-configured Jira, Confluence, OAuth gateway, and allowlisted hosts continue to support proxies. (#1450) - Resolved relative and scheme-relative redirect locations against the response URL before SSRF validation, restoring safe same-host redirects while continuing to block unsafe destinations. (#1450) **Full Changelog**: https://github.com/sooperset/mcp-atlassian/compare/v0.22.0...v0.22.1
View on GitHub ↗ - v0.22.0 Jul 10, 2026
# v0.22.0 This release bundles three months of community contributions with a coordinated security hardening pass across the attachment, transport, SSRF-validation, filtering, and OAuth layers. ## 🔒 Security A security audit (37 advisories, consolidated into root-cause families) was resolved in this release. Advisories are being published with "fixed in 0.22.0" — highlights: - **Attachment & content-file path confinement** — `upload_attachment` / `download_attachment` (Jira & Confluence) and the new `content_file` page input now validate every caller-supplied path against the workspace via `validate_safe_path`, closing arbitrary file read/exfiltration and an intra-CWD overwrite RCE variant. Note: paths passed to these tools must now resolve inside the server's working directory. (GHSA-wm45-qh3g-v83f, GHSA-vc25-24vv-fxxm, GHSA-93xw-j965-9mx3, GHSA-6cr4-ccf3-x7h4, GHSA-f4p7-qx46-wc5j, GHSA-f6pj-qv47-g96w, GHSA-2xj6-xx86-cwwc, GHSA-mrq8-fv7v-hhjg, GHSA-wv8v-v4c5-v75j, GHSA-p6hp-93wp-fh6p, GHSA-h7wj-5v37-59r2, GHSA-mfv2-4wvm-9pgp, GHSA-f26r-j276-ggg4, GHSA-g5r6-gv6m-f5jv, GHSA-6vmq-24h2-pj7j) - **HTTP transport authentication** (critical) — unauthenticated streamable-http requests no longer fall back to the operator's global credentials; the fallback is now opt-in via `ALLOW_GLOBAL_CRED_FALLBACK` (default off), and unauthenticated requests are rejected with 401 at the transport boundary. (GHSA-wrhw-j3f9-8vc6, GHSA-vc8m-84rp-53hx, GHSA-cc5h-2pwp-pvcc) - **SSRF hardening** — redirect validation now covers every client session and auth branch, backslash authority-confusion URLs are rejected, and a DNS-pinning transport adapter resolves each host exactly once (validate → connect on the same address), eliminating the DNS-rebinding TOCTOU against the CVE-2026-27826 fix. Hosts from your configured `JIRA_URL` / `CONFLUENCE_URL` and `MCP_ALLOWED_URL_DOMAINS` are exempt from the non-global-address rejection, so on-prem DC instances on private networks keep working; caller-supplied URLs (multi-user HTTP headers) remain fully guarded. (GHSA-6529-c226-h328, GHSA-hgcf-4mq8-5266, GHSA-v9m3-wfh8-5646, GHSA-5wf4-jqxh-8gm3, GHSA-49xv-9743-pw8w, GHSA-72fm-whvq-jghf, GHSA-489g-7rxv-6c8q, GHSA-6rrj-86cw-gg9j) - **Tool authorization enforcement** — tools hidden by `ENABLED_TOOLS` / toolset / read-only mode can no longer be invoked by name; authorization is enforced at dispatch, not just listing. (GHSA-3r68-hf9h-887v) - **Project/space filter boundary** — `JIRA_PROJECTS_FILTER` / `CONFLUENCE_SPACES_FILTER` are now a hard boundary: always ANDed into queries (callers can narrow but never widen), covering search and board issues. Sprint IDs are validated numeric to prevent JQL injection. (GHSA-w66g-j6c4-hcfc, GHSA-rqwg-9346-fjjv) - **OAuth token file permissions** — fallback token files are written owner-only (0600, dir 0700). (GHSA-g5xv-mhgm-v5f6, GHSA-76pr-5669-3xf5, GHSA-4596-2p6p-28cv) - **Reflected XSS** — the OAuth callback page HTML-escapes its output. (GHSA-g2r2-3j32-j27x) Each fix ships with permanent regression tests. Thanks to everyone who reported — including @rainfantry for GHSA-g5r6-gv6m-f5jv, and overlapping public reports from @failsafesecurity and @rober15. ## ✨ Features ### Jira - Dedicated `assign_issue` tool (#1152) and `search_assignable_users` for free-form user lookup (#1358) - `jira_move_issue` for cross-project moves (#1273) and `move_issues_to_backlog` (#1333) - `jira_search_projects` using the projects picker API (#1247) - `update_version` tool (#1349) - `get_issue` gains an `include` param for inline enrichments (#1125) - Issue type and field discovery tools (#1123) - ADF/markdown: panel nodes (#1219), task lists `- [ ]` → taskList (#1280), `[~accountid:UUID]` mentions (#1307), display-name mentions (#1228) - `account_id` exposed in simplified user profiles (#1347) ### Confluence - Inline comment tools with Server/DC v1 payload fix (#1264) - `confluence_update_page_section` for lossless partial page updates (#1141) - `c
View on GitHub ↗ - v0.21.1 Apr 10, 2026
This release fixes a critical startup crash caused by an upstream dependency break and ships a few community-contributed features that landed on main since v0.21.0. ## 🐛 Fixed ### Server / Transport - **Startup crash on fresh `uvx` installs**: `fakeredis 2.35.0` renamed `FakeConnection` without a backward-compatible alias, breaking `pydocket`'s runtime import and making FastMCP's lifespan fail with `ImportError: cannot import name 'FakeConnection' from 'fakeredis.aioredis'`. Pinned `fakeredis>=2.32.1,<2.35.0` as a downstream constraint until upstream ships a fix. Users no longer need the `--with fakeredis==2.34.1` workaround ([#1250](https://github.com/sooperset/mcp-atlassian/pull/1250), fixes [#1248](https://github.com/sooperset/mcp-atlassian/issues/1248)). ### Confluence - **`include_content` test coverage and descriptions**: Follow-up hardening for the new `include_content` option ([#1099](https://github.com/sooperset/mcp-atlassian/pull/1099)). ## ✨ Features ### Confluence - **`include_content` on create/update**: `confluence_create_page` and `confluence_update_page` now accept an `include_content` flag so callers can skip echoing full page bodies back in responses ([#1098](https://github.com/sooperset/mcp-atlassian/pull/1098)). - **`confluence_get_space_page_tree`**: New tool for discovering a space's page hierarchy in a single call ([#1090](https://github.com/sooperset/mcp-atlassian/pull/1090)). ### Deployment - **Helm: OAuth proxy + client storage configuration**: Helm chart now exposes FastMCP auth's OAuth proxy and client storage settings so operators can configure them declaratively ([#1084](https://github.com/sooperset/mcp-atlassian/pull/1084)). ## Contributors Thanks to @kimoto, @Poggen, and @Troubladore! **Full Changelog**: https://github.com/sooperset/mcp-atlassian/compare/v0.21.0...v0.21.1
View on GitHub ↗ - v0.21.0 Mar 2, 2026
This release adds 4 new tools (sprint management, page moves, page diffs, comment replies), OAuth proxy support, markdown table rendering, and multiple content processing fixes. ## ✨ Features ### Jira - **Sprint Management**: Move issues between sprints with the new `jira_add_issues_to_sprint` tool ([#1078](https://github.com/sooperset/mcp-atlassian/pull/1078)) - **Cloud Search Pagination**: `jira_search` now returns `next_page_token` for cursor-based pagination on Cloud ([#1079](https://github.com/sooperset/mcp-atlassian/pull/1079)) - **Field Options Filtering**: `jira_get_field_options` supports `contains`, `return_limit`, and `values_only` params for targeted lookups ([#1074](https://github.com/sooperset/mcp-atlassian/pull/1074)) - **Markdown Tables**: Markdown tables in descriptions and comments are now converted to native ADF table nodes on Cloud ([#1089](https://github.com/sooperset/mcp-atlassian/pull/1089)) ### Confluence - **Move Pages**: Relocate pages between parents or spaces with the new `confluence_move_page` tool ([#1080](https://github.com/sooperset/mcp-atlassian/pull/1080)) - **Page Version Diff**: Compare two page versions with the new `confluence_get_page_diff` tool ([#1083](https://github.com/sooperset/mcp-atlassian/pull/1083)) - **Comment Replies**: Reply to existing comments with the new `confluence_reply_to_comment` tool ([#1070](https://github.com/sooperset/mcp-atlassian/pull/1070)) - **Page Width Layout**: Library-level support for controlling page width (`default` / `full-width`) on Cloud. Available via the Confluence fetcher API; MCP tool integration planned for a future release ([#1091](https://github.com/sooperset/mcp-atlassian/pull/1091)) - **Server/DC User Search**: `confluence_search_user` now supports Server/DC via group member fallback ([#1081](https://github.com/sooperset/mcp-atlassian/pull/1081)) ### Authentication - **OAuth Proxy**: Opt-in OAuth 2.0 proxy with Dynamic Client Registration (DCR), PKCE, consent flow, and grant type hardening ([#1054](https://github.com/sooperset/mcp-atlassian/pull/1054)) - **Header Auth Bypass**: New `IGNORE_HEADER_AUTH` env var to ignore proxy-injected Authorization headers and use server-configured credentials ([#1073](https://github.com/sooperset/mcp-atlassian/pull/1073)) ## 🐛 Fixed ### Jira - **Code Block Corruption**: `{code}` and `{noformat}` blocks in Server/DC wiki markup are now protected from markup conversion corruption ([#1059](https://github.com/sooperset/mcp-atlassian/pull/1059)) - **Custom Field Preservation**: Complex custom field values (nested objects, arrays) are no longer silently converted to strings ([#1058](https://github.com/sooperset/mcp-atlassian/pull/1058)) - **Panel Block Handling**: `{panel}` blocks and bare URLs in wiki markup are now correctly converted to markdown ([#1055](https://github.com/sooperset/mcp-atlassian/pull/1055)) - **Field Name Matching**: `fixVersions`, `issuetype`, and other API field names are now correctly recognized in `should_include_field` checks, fixing field exclusion when users request specific fields ([#1076](https://github.com/sooperset/mcp-atlassian/pull/1076)) ### Preprocessing - **Code Span Truncation**: Inline code spans (`<code>`) are no longer broken by HTML content truncation ([#1094](https://github.com/sooperset/mcp-atlassian/pull/1094)) ## 🔒 Security - **URL Validation Bypass**: Prevented SSRF allowlist bypass where `evil-atlassian.net` could match the `atlassian.net` domain check — now uses strict `.{domain}` suffix matching ([#1087](https://github.com/sooperset/mcp-atlassian/pull/1087)) ## Contributors Thanks to @Poggen, @Troubladore, @djb2c, @Lama9, @iiiokojiadbi, @Arbuzov, @solganik, @johnny, @pibylick, @nulvox, @yliu, and @reneleonhardt! **Full Changelog**: https://github.com/sooperset/mcp-atlassian/compare/v0.20.1...v0.21.0View on GitHub ↗
Discussion (0)
Sign in to comment →No comments yet. Sign in to start the discussion.