Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Supports both Cloud and Server/Data Center deployments.
mcp-atlassian-jira-demo.mp4
Confluence Demo
confluence-1k.mp4
Go to https://id.atlassian.com/manage-profile/security/api-tokens and create a token.
For Server/Data Center, use a Personal Access Token instead. See Authentication.
Add to your Claude Desktop or Cursor MCP configuration:
{
"mcpServers": {
"mcp-atlassian": {
"command": "uvx",
"args": ["mcp-atlassian"],
"env": {
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_USERNAME": "your.email@company.com",
"JIRA_API_TOKEN": "your_api_token",
"CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@company.com",
"CONFLUENCE_API_TOKEN": "your_api_token"
}
}
}
}Server/Data Center users: Use
JIRA_PERSONAL_TOKENinstead ofJIRA_USERNAME+JIRA_API_TOKEN. See Authentication for details.
Ask your AI assistant to:
- "Find issues assigned to me in PROJ project"
- "Search Confluence for onboarding docs"
- "Create a bug ticket for the login issue"
- "Update the status of PROJ-123 to Done"
Full documentation is available at mcp-atlassian.soomiles.com.
Documentation is also available in llms.txt format, which LLMs can consume easily:
llms.txt— documentation sitemapllms-full.txt— complete documentation
| Topic | Description |
|---|---|
| Installation | uvx, Docker, pip, from source |
| Authentication | API tokens, PAT, OAuth 2.0 |
| Configuration | IDE setup, environment variables |
| HTTP Transport | SSE, streamable-http, multi-user |
| Tools Reference | All Jira & Confluence tools |
| Troubleshooting | Common issues & debugging |
| Product | Deployment | Support |
|---|---|---|
| Confluence | Cloud | Fully supported |
| Confluence | Server/Data Center | Supported (v6.0+) |
| Jira | Cloud | Fully supported |
| Jira | Server/Data Center | Supported (v8.14+) |
| Jira | Confluence |
|---|---|
jira_search - Search with JQL |
confluence_search - Search with CQL |
jira_get_issue - Get issue details |
confluence_get_page - Get page content |
jira_create_issue - Create issues |
confluence_create_page - Create pages |
jira_update_issue - Update issues |
confluence_update_page - Update pages |
jira_transition_issue - Change status |
confluence_add_comment - Add comments |
72 tools total — See Tools Reference for the complete list.
This fork adds 67 user-facing tools for Jira Data Center — everything a day-to-day user needs that isn't in the upstream surface, including a read-only Git dev-panel view and saved-view lookups (dashboards + ALM Works Structure). All write operations honour READ_ONLY_MODE=true and carry destructiveHint annotations where appropriate.
Full tool-by-tool list with descriptions → TOOLS.md.
| Toolset | Tools | What it exposes |
|---|---|---|
jira_user_assets |
14 | Insight/Assets full CRUD: IQL search, get/create/update/delete object, attribute/reference helpers, attach/detach Assets to Jira issues |
jira_user_sprints |
5 | Sprint lifecycle: start_sprint, complete_sprint, delete_sprint, move_issues_to_backlog, rank_issues — complements upstream create_sprint / update_sprint / add_issues_to_sprint |
jira_user_issues |
11 | add_vote / remove_vote, upload_attachment (base64) / delete_attachment, delete_comment, delete_worklog, update_worklog, JQL-driven bulk_assign / bulk_label / bulk_add_comment, clone_issue |
jira_user_jsm |
8 | JSM user flows: jsm_create_request, jsm_answer_approval, jsm_add_request_comment, jsm_list_service_desks, jsm_list_request_types, jsm_list_participants, jsm_add_participants, jsm_remove_participants |
jira_user_filters |
7 | Personal filters (create/update/delete/share) + dashboards (create/update/copy) |
jira_user_versions |
6 | Version lifecycle: update_version, release_version, archive_version, move_version, merge_version, delete_version |
jira_user_components |
3 | Component extensions over upstream: update_component, delete_component (with moveIssuesTo), get_component_related_issue_counts |
jira_user_agile |
3 | Board extras: get_backlog_issues, get_epics_from_board, rank_epics (dedicated DC endpoint) |
jira_user_me |
3 | Current user context: get_myself (with groups/roles expand), list_favourite_filters, get_my_preference |
jira_user_git |
4 | Issue Git dev-panel view (read-only): get_issue_git_summary (counts of MRs/branches/commits), get_issue_git_panel (full unified view across providers), list_issue_commits + list_issue_branches via BigBrassBand Git Integration |
jira_user_filters (+1 tool) |
8 | list_dashboards added — search dashboards by name substring (server-side filter = favourite/my) |
jira_user_structure |
2 | ALM Works Structure plugin (public REST, no ScriptRunner): list_structures with name filter + get_structure |
Every endpoint was verified against the Atlassian DC docs before coding — key shape details that trip up naive implementations are honoured:
- Insight/Assets IQL search is
GET /aql/objects?qlQuery=…, not a POST — base path defaults to/rest/assets/1.0withJIRA_INSIGHT_BASE_PATHfor older JSM mounts. - Each Insight attribute payload includes
operationType: 0(ADD); list-types uses the mandatory/flatsuffix. - Sprint state transitions require
startDate+endDatetogether withstate:"active". - Rank endpoint is
PUT /rest/agile/1.0/issue/rank(not POST); filter share permission usesgroupname(DC) notgroup.name(Cloud). - Attachment upload sends
X-Atlassian-Token: no-checkto pass XSRF protection. - JSM uses DC usernames (not Cloud accountIds).
- Bulk edit — no
/rest/api/2/issue/bulk/editon DC;bulk_*tools here loop per-issue with a 500-cap. - Move issue to another project — UI-only per the platform docs.
- Convert issue ↔ subtask — JRASERVER-27893 tracks the missing endpoint; only achievable via ScriptRunner.
- JSM notification subscribe/unsubscribe —
/rest/servicedeskapi/request/{key}/notificationis Cloud-only; on DC use the core watcher API (add_watcher/remove_watcher, already upstream). /filter/myand/filter/search— Cloud-only; uselist_favourite_filtersor thecreator = currentUser()JQL pattern.
- Authenticate as usual (
JIRA_URL+JIRA_PERSONAL_TOKEN). The Insight client re-uses mcp-atlassian's authenticated session. - Set
TOOLSETSto include what you need, e.g.:TOOLSETS=default,jira_user_assets,jira_user_sprints,jira_user_issues - All user toolsets are opt-in (
default=false) and won't appear unless enabled.
Never share API tokens. Keep .env files secure. See SECURITY.md.
See CONTRIBUTING.md for development setup.
MIT - See LICENSE. Not an official Atlassian product.