Almost every failure report on a server like this is a missing scope: the README maps the error text to the cause — a scope mismatch means it is absent from the OAuth app, "current user not permitted" means the product permission is missing, and adding a scope later means re-running the authentication tool to get fresh tokens. The step people skip is installing the app to the site through the Authorization URL generator; nothing works before that. The discovery tools on the Service Management side exist for the same reason — ask what fields a request type needs rather than guessing.
An Atlassian Cloud server built around three separable clients — Jira, Confluence and Service Management — each of which can be turned off so you only load what you use. Authentication is OAuth 2.0 with PKCE, and tokens refresh automatically.
- `authenticate_atlassian` starts the flow: the browser opens, you authorise, and credentials are saved locally for next time
- Jira: `jira_search` with JQL, `jira_get_issue`, `jira_create_issue`, `jira_update_issue`, `jira_add_comment`
- Confluence content: `confluence_search`, `confluence_get_page`, `confluence_create_page`, `confluence_update_page`, plus `confluence_get_page_children` and `confluence_search_content`
- Confluence spaces: `confluence_list_spaces`, `confluence_get_space`, `confluence_get_space_pages`
- Confluence collaboration: comments with `confluence_get_page_comments`, `confluence_add_comment` and `confluence_get_comment`; labels with `confluence_get_page_labels`, `confluence_search_by_label` and `confluence_list_labels`; attachments and full version history including a specific past version
- Service Management discovery: `servicedesk_check_availability`, `servicedesk_list_service_desks`, `servicedesk_list_request_types` and `servicedesk_get_request_type_fields`, which tells you what a request type actually requires before you try to create one
- Service Management operations: create requests, comment publicly or internally, read status, list transitions and move a request through them, handle approvals and participants
Python 3.8 or higher and the PyPI package atlassian-mcp-server, version 0.4.4. Before it will run you need an OAuth 2.0 integration in the Atlassian Developer Console with the callback set to http://localhost:8080/callback and the required scopes added, then the app installed to your site through the Authorization URL generator. ATLASSIAN_SITE_URL, ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET go in the environment; ATLASSIAN_MODULES limits which of jira, confluence and service_desk load.
One command plus a key — pip3 install atlassian-mcp-server, then supply credentials
