Jira issues and Confluence pages, Cloud or self-hosted.
- Started in our test
- ★ 6K GitHub stars
- 215.9K downloads a week
- Last commit 19 Sept 2026
At a glance
mcp-atlassian is the most used community server for Atlassian tools. It searches and updates Jira issues with JQL, manages sprints and transitions, and reads and writes Confluence pages, for both Cloud and Server/Data Center.
You can set it to read-only, and you can limit which Confluence spaces and Jira projects it sees.
- Made by
- sooperset and community contributors (not Atlassian)
- Latest version
- 0.23.1 (19 Aug 2026)
- PyPI package
- mcp-atlassian
- GitHub stars
- 6K
- Downloads
- 215.9K a week
- Last commit
- 19 Sept 2026
- Tools
- 98
- Runs on
- Your computer
Our check: We ran this exact config on 26 Oct 2026: it started and answered with 98 tools. The npm package called "mcp-atlassian" comes from a different repository (Vijay-Duke/mcp-atlassian). This project is a Python package of the same name, so it runs with uvx.
What's in the pod: its tools
We found 98 tools when we started it on 26 Oct 2026. 58 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.
Show all 98 tools
Changes things40 tools · Can create, edit, send or delete.
| Tool | What it is for |
|---|---|
confluence_add_comment | Comments on a page. |
confluence_add_inline_comment | Pins a comment to a piece of text. |
confluence_add_label | Adds a label. |
confluence_copy_page | Copies a page to a new place. |
confluence_create_page | Creates a page, from Markdown or storage format. |
confluence_create_page_from_template | Creates a page from a template (Cloud). |
confluence_delete_attachment | Deletes an attachment for good. |
confluence_delete_page | Deletes a page. |
confluence_move_page | Moves a page to a new parent or space. |
confluence_reply_to_comment | Replies in a comment thread. |
confluence_set_page_restrictions | Changes who can view or edit a page. |
confluence_update_page | Replaces a page's content. |
confluence_update_page_section | Rewrites one section of a page and leaves the rest alone. |
confluence_upload_attachment | Attaches a file to a page. |
confluence_upload_attachments | Attaches several files at once. |
jira_add_comment | Comments on an issue. |
jira_add_issues_to_sprint | Pulls issues into a sprint. |
jira_add_watcher | Adds someone as a watcher. |
jira_add_worklog | Logs time against an issue. |
jira_assign_issue | Assigns an issue to someone. |
jira_batch_create_issues | Opens many issues in one call, with a dry-run option. |
jira_batch_create_versions | Creates several fix versions at once. |
jira_create_customer_request | Raises a Jira Service Management request. |
jira_create_issue | Opens a new issue, sub-task or epic child. |
jira_create_issue_link | Links two issues, for example "blocks". |
jira_create_remote_issue_link | Adds a web or Confluence link to an issue. |
jira_create_sprint | Creates a sprint on a board. |
jira_create_version | Creates a fix version. |
jira_delete_issue | Deletes an issue. |
jira_edit_comment | Edits an existing comment. |
jira_link_to_epic | Puts an issue under an epic. |
jira_move_issue | Moves an issue to another project (Cloud only). |
jira_move_issues_to_backlog | Sends issues back to the backlog. |
jira_remove_issue_link | Removes a link between issues. |
jira_remove_watcher | Removes a watcher. |
jira_transition_issue | Moves an issue to a new status. |
jira_update_issue | Edits an issue's fields. |
jira_update_proforma_form_answers | Fills in answers on an issue's form. |
jira_update_sprint | Renames, starts, closes or re-dates a sprint. |
jira_update_version | Edits or releases a fix version. |
Only reads58 tools · Looks things up and changes nothing.
| Tool | What it is for |
|---|---|
confluence_check_content_permissions | Checks whether a person or group may do something with a page. |
confluence_download_attachment | Fetches one attachment. |
confluence_download_content_attachments | Fetches every attachment on a page. |
confluence_get_attachments | Lists a page's attachments. |
confluence_get_comments | Reads a page's comments. |
confluence_get_inline_comments | Reads comments pinned to text on a page. |
confluence_get_labels | Reads a page's labels. |
confluence_get_page | Reads a page by id, or by title and space. |
confluence_get_page_children | Lists the pages under a page. |
confluence_get_page_diff | Shows what changed between two versions. |
confluence_get_page_history | Reads an older version of a page. |
confluence_get_page_images | Fetches a page's images so the assistant can look at them. |
confluence_get_page_restrictions | Shows who can view or edit a page. |
confluence_get_page_template | Reads one template's body (Cloud). |
confluence_get_page_views | Reads view counts for a page (Cloud only). |
confluence_get_space_page_tree | Lists a whole space's page tree. |
confluence_get_space_permissions | Lists who has which rights in a space. |
confluence_list_page_templates | Lists page templates (Cloud). |
confluence_search | Finds pages by words or a CQL query. |
confluence_search_user | Finds Confluence users. |
jira_batch_get_changelogs | Reads the change history of many issues (Cloud only). |
jira_download_attachments | Fetches an issue's attachments. |
jira_get_agile_boards | Finds Scrum and Kanban boards. |
jira_get_all_projects | Lists every project you can see. |
jira_get_board_issues | Lists the issues on a board, with an optional JQL filter. |
jira_get_create_fields | Lists the fields needed to create a given issue type. |
jira_get_cross_project_dependencies | Finds links from a project's issues into other projects. |
jira_get_field_options | Lists the allowed values of a custom field. |
jira_get_issue | Reads one issue with its fields, epic and links. |
jira_get_issue_dates | Reads an issue's key dates and status history. |
jira_get_issue_development_info | Shows branches, commits and pull requests linked to an issue. |
jira_get_issue_images | Fetches an issue's image attachments so the assistant can look at them. |
jira_get_issue_proforma_forms | Lists the forms attached to an issue. |
jira_get_issue_sla | Works out cycle time and other SLA figures for an issue. |
jira_get_issue_watchers | Lists who watches an issue. |
jira_get_issues_development_info | The same for many issues at once. |
jira_get_link_types | Lists link types such as blocks or duplicates. |
jira_get_proforma_form_details | Reads one form's questions and answers. |
jira_get_project_components | Lists a project's components. |
jira_get_project_epic_hierarchy | Groups a project's epics under their parents across projects. |
jira_get_project_fields | Lists the fields used across a project's issue types. |
jira_get_project_issue_types | Lists the issue types a project allows. |
jira_get_project_issues | Lists the issues in a project. |
jira_get_project_versions | Lists a project's fix versions. |
jira_get_queue_issues | Lists the requests in a queue (Server and Data Center). |
jira_get_request_type_fields | Lists the fields a request type asks for. |
jira_get_request_types | Lists the request types of a service desk. |
jira_get_service_desk_for_project | Finds the service desk behind a project (Server and Data Center). |
jira_get_service_desk_queues | Lists a service desk's queues (Server and Data Center). |
jira_get_sprint_issues | Lists the issues in a sprint. |
jira_get_sprints_from_board | Lists a board's sprints by state. |
jira_get_transitions | Shows which statuses an issue can move to next. |
jira_get_user_profile | Looks up one Jira user. |
jira_get_worklog | Reads time logged on an issue. |
jira_search | Finds issues with a JQL query. |
jira_search_assignable_users | Finds people who can be assigned in a project or issue. |
jira_search_fields | Finds field names and ids by keyword, handy for custom fields. |
jira_search_projects | Finds projects by name or key. |
Grouped and described by us. The README on GitHub lists the inputs each tool takes.
Set it up
Pick your app for the exact snippet and where it goes.
Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"atlassian": {
"command": "uvx",
"args": [
"mcp-atlassian"
],
"env": {
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_USERNAME": "you@company.com",
"JIRA_API_TOKEN": "your-token",
"CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "you@company.com",
"CONFLUENCE_API_TOKEN": "your-token"
}
}
}
}Where it goes: Your terminal, in the project folder
claude mcp add-json atlassian '{"command":"uvx","args":["mcp-atlassian"],"env":{"JIRA_URL":"https://your-company.atlassian.net","JIRA_USERNAME":"you@company.com","JIRA_API_TOKEN":"your-token","CONFLUENCE_URL":"https://your-company.atlassian.net/wiki","CONFLUENCE_USERNAME":"you@company.com","CONFLUENCE_API_TOKEN":"your-token"}}'Where it goes: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
"mcpServers": {
"atlassian": {
"command": "uvx",
"args": [
"mcp-atlassian"
],
"env": {
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_USERNAME": "you@company.com",
"JIRA_API_TOKEN": "your-token",
"CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "you@company.com",
"CONFLUENCE_API_TOKEN": "your-token"
}
}
}
}Where it goes: .vscode/mcp.json in your project
{
"servers": {
"atlassian": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-atlassian"
],
"env": {
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_USERNAME": "you@company.com",
"JIRA_API_TOKEN": "your-token",
"CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "you@company.com",
"CONFLUENCE_API_TOKEN": "your-token"
}
}
}
}Where it goes: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"atlassian": {
"command": "uvx",
"args": [
"mcp-atlassian"
],
"env": {
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_USERNAME": "you@company.com",
"JIRA_API_TOKEN": "your-token",
"CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "you@company.com",
"CONFLUENCE_API_TOKEN": "your-token"
}
}
}
}Where it goes: Not supported
ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.
Add "READ_ONLY_MODE": "true" to env while you try it out.
New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.
Settings
Names are exactly as the project spells them. Required ones are marked.
| Setting | What it does |
|---|---|
JIRA_URLEnvironment variable · required | Your Jira address. Leave out the Jira variables to use Confluence only.https://your-company.atlassian.net |
JIRA_USERNAME + JIRA_API_TOKENEnvironment variable · required | For Atlassian Cloud: your account email and an API token from id.atlassian.com.you@company.com / ATATT3x... |
JIRA_PERSONAL_TOKENEnvironment variable | For Jira Server or Data Center: a personal access token instead of email plus API token.NjM0... |
CONFLUENCE_URLEnvironment variable | Your Confluence address, with /wiki on Cloud. Leave out to use Jira only.https://your-company.atlassian.net/wiki |
CONFLUENCE_USERNAME + CONFLUENCE_API_TOKENEnvironment variable | Confluence credentials, the same kind as Jira's. On Server and Data Center use CONFLUENCE_PERSONAL_TOKEN.you@company.com / ATATT3x... |
READ_ONLY_MODEEnvironment variable | Turns off every tool that creates, edits or deletes.true |
ENABLED_TOOLSEnvironment variable | Offers only the tools you list, which also keeps the prompt small.jira_search,jira_get_issue,confluence_search |
JIRA_PROJECTS_FILTER / CONFLUENCE_SPACES_FILTEREnvironment variable | Limits searches to the projects or spaces you list.PROJ,DEV |
What it can touch
It can read
- Every Jira project and Confluence space your account can open, including attachments and history
It can change
- Creates, edits, moves and deletes issues, pages, comments, sprints and attachments
- Can change page restrictions
Safer setup: Set READ_ONLY_MODE=true until you trust it, and narrow it with ENABLED_TOOLS and the project and space filters.
Before you start
- uv (for uvx)
- An Atlassian API token (Cloud) or personal access token (Server/Data Center)
If it does not work
- 401 Unauthorized on Atlassian Cloud
- Use your account email as the username and an API token, not your password. Check the URL has no trailing path for Jira and ends in /wiki for Confluence.
- 401 on Jira Server or Data Center
- Use JIRA_PERSONAL_TOKEN (and CONFLUENCE_PERSONAL_TOKEN) instead of username and API token.
- SSL certificate errors on a self-hosted instance
- Set JIRA_SSL_VERIFY=false and CONFLUENCE_SSL_VERIFY=false only if you trust the network, or add your company's certificate authority to the machine.
- The assistant ignores the right tool among almost 100
- Set ENABLED_TOOLS to the dozen you actually use.
Peas in a pod: similar servers
How MCP Atlassian (Jira and Confluence) lines up against other knowledge and work apps servers on the shelf.
| Server | Tools | Runs on | Licence | Stars |
|---|---|---|---|---|
| MCP Atlassian (Jira and Confluence) | 98 | Your computer | – | 6K |
| Basic Memory | 27 | Your computer | AGPL-3.0-or-later | 4.4K |
| LinkedIn MCP Server | 20 | Your computer | Apache-2.0 | 4K |
| arXiv MCP Server | 19 | Your computer | Apache-2.0 | 3.2K |
| Notion | 24 | Your computer or hosted | MIT | 4.7K |
Questions
Is mcp-atlassian made by Atlassian?
No. It is a popular open-source project. Atlassian also runs its own hosted Rovo MCP server for Cloud; mcp-atlassian is the one to use for Server and Data Center or when you want to self-host.
Does it work with Jira Server and Data Center?
Yes. Use personal access tokens for those. A few tools are Cloud only, and the service desk queue tools are Server and Data Center only.
Can I use it with just Jira, or just Confluence?
Yes. Set only the variables for the product you want and the other product's tools are left out.
Can it write Confluence pages in Markdown?
Yes. Page tools accept Markdown and convert it, or Confluence storage format if you need exact markup.
Something wrong on this page? Tell us.