atlassian-mcp
Provides read-only access to Atlassian Cloud Jira and Confluence APIs, allowing authenticated GET requests to site-relative API paths.
Allows retrieval of Confluence Cloud content via the Confluence REST API, read-only.
Enables querying Jira issues through the JQL search endpoint, with read-only access to Jira Cloud data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@atlassian-mcpsearch Jira for open high-priority issues assigned to me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Atlassian MCP
A focused, read-only Model Context Protocol server for Jira and Confluence Cloud. It works with Amp, Claude Code, Codex, and other clients that support local stdio MCP servers.
Tools
The server deliberately exposes only two tools:
atlassian_getperforms one authenticatedGETrequest to a site-relative Jira or Confluence API path.jira_searchperforms an authenticatedPOSTto Jira's read-only/rest/api/3/search/jqlendpoint.
It does not expose create, edit, assignment, transition, or deletion operations. Tool output is limited to 2,000 lines or 50 KB.
Related MCP server: MCP Atlassian Node Server
Requirements
Node.js 20 or newer
An Atlassian Cloud API token
Configure the process that runs your MCP client with these environment variables:
export ATLASSIAN_SITE_URL="https://your-company.atlassian.net"
export ATLASSIAN_EMAIL="you@example.com"
export ATLASSIAN_API_TOKEN="your-api-token"ATLASSIAN_SITE_URL must use HTTPS. Treat ATLASSIAN_API_TOKEN as a secret and do not commit it to an MCP configuration file.
Run the published package through an MCP client:
npx -y @andreimaxim/atlassian-mcp@0.1.0It communicates over standard input and output, so running it directly appears to do nothing while it waits for an MCP client.
Amp
The distributable using-atlassian skill includes the MCP launch configuration and exposes only atlassian_get and jira_search. Install that directory as a project, personal, or workspace skill.
For a project skill, copy it into the repository:
.agents/skills/using-atlassian/SKILL.mdFor an orb, add the three ATLASSIAN_* values under personal, project, or workspace Secrets & Env Vars. Store the API token as a secret. Amp starts the MCP server in the orb when it discovers the skill and reveals its tools only when the skill loads.
The previous amp.atlassian.* plugin settings are no longer read; the portable MCP server uses environment variables in every harness.
Claude Code
Register the same stdio server at user scope:
claude mcp add --scope user --transport stdio atlassian -- \
npx -y @andreimaxim/atlassian-mcp@0.1.0Start Claude Code with the three ATLASSIAN_* variables available in its environment. For team distribution, put the equivalent server entry in the project's .mcp.json and keep credentials as environment-variable references.
Codex
Add this entry to ~/.codex/config.toml, or to .codex/config.toml in a trusted project:
[mcp_servers.atlassian]
command = "npx"
args = ["-y", "@andreimaxim/atlassian-mcp@0.1.0"]
env_vars = [
"ATLASSIAN_SITE_URL",
"ATLASSIAN_EMAIL",
"ATLASSIAN_API_TOKEN",
]
enabled_tools = ["atlassian_get", "jira_search"]The env_vars list forwards existing variables without placing their values in the configuration file.
Development
npm install
npm run check
npm pack --dry-runRepository layout:
src/atlassian.tscontains credential handling, request validation, the Atlassian HTTP client, and bounded output formatting.src/server.tsregisters the MCP tools and their read-only annotations.src/index.tsstarts the stdio server.skill/using-atlassian/SKILL.mdcontains the Amp skill and its MCP launch configuration.test/contains HTTP-client and protocol-level integration tests.
Available Tools
2 toolsatlassian_getGet Atlassian dataARead-onlyIdempotent
Make one authenticated GET request to a site-relative Jira or Confluence API path. This tool is read-only and may truncate large output.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Site-relative API path beginning with /, for example /rest/api/3/issue/ENG-123 or /wiki/api/v2/pages/123 | |
| query | No | Optional query parameters. Array values are encoded as repeated parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not restate read-only safety. It adds useful behavioral context that large output may be truncated, which is not present in annotations or schema. However, it does not mention authentication details or response format beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core action, and includes the key caveat about truncation. Every word earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the schema clarity, and the annotations covering safety, the description is mostly complete. It notes potential truncation, which is critical for a generic GET endpoint. It does not explicitly describe return format, but the absence of an output schema and the generic nature of the tool make this acceptable. A 4 reflects the strong coverage of usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the two parameters (path and query). The description adds no parameter-level details beyond the schema (e.g., path must be site-relative, which is already in the schema description). Baseline 3 is appropriate because the schema fully documents each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Make one authenticated GET request to a site-relative Jira or Confluence API path.' This distinguishes it from sibling jira_search, which focuses on search rather than direct path-based retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for use (direct API GET requests on Jira/Confluence) but does not explicitly mention when to use this tool versus the sibling jira_search or any exclusions. Usage is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_searchSearch Jira issuesARead-onlyIdempotent
Search Jira issues using POST /rest/api/3/search/jql. This is the only read-only POST exposed by the server. Returns Jira's raw response and may truncate large output.
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | A Jira Query Language expression | |
| fields | No | Fields to include. Omit to use Jira's defaults. | |
| maxResults | No | ||
| nextPageToken | No | Token returned by a previous search page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds beyond annotations by stating it returns Jira's raw response and may truncate large output—useful behavioral context. It could mention pagination behavior, but the nextPageToken parameter hints at that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: the endpoint, the read-only uniqueness, and the response behavior. It is front-loaded with the main action and remains compact without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema covers 75% of params, annotations cover safety, and no output schema exists, the description provides the essential context: endpoint, POST method, raw return, and truncation. It stops short of explaining pagination flow or error behavior, but the nextPageToken param implies pagination. Overall, a solid contextual package.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (75% of params described), so the description need not repeat param details. The description adds no extra parameter semantics beyond the schema, but the schema already explains jql, fields, and nextPageToken. maxResults has constraints but no description; the description does not compensate for that gap. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Search Jira issues' and references the exact endpoint. It distinguishes from the sibling 'atlassian_get' by noting this is a POST operation, clarifying its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context signal: 'This is the only read-only POST exposed by the server,' which implies its usage when a read-only POST is needed. It does not explicitly compare against atlassian_get, but the unique read-only POST framing offers practical guidance. No explicit exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
atlassian_get - First observed
jira_search
TDQS
Scored across 2 tools
The two tools serve distinct purposes: one is a generic authenticated GET for any Jira or Confluence path, while the other is specifically a Jira JQL search. Although there is some overlap in that the GET could be used for search, the specific search tool is clearly targeted at JQL queries, making confusion unlikely.
The naming is inconsistent: one tool uses the 'atlassian_' prefix while the other uses 'jira_', and the verbs 'get' and 'search' do not follow a clear pattern. With only two tools, the lack of a unified convention is noticeable and could confuse agents expecting a consistent prefix.
Two tools is borderline thin for a server covering Atlassian's broad API surface, but it is not extreme enough to warrant a 1 or 2. The count is on the low end, feeling somewhat sparse but not entirely unreasonable for a focused read-only utility.
The server only offers read-only operations: a generic GET and a Jira search. It lacks write capabilities, Confluence-specific search, and any other common Atlassian operations, making it significantly incomplete for a platform with such a wide API. Agents would frequently hit dead ends when needing update or create functionality.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that enables querying and searching Atlassian Confluence pages and Jira issues through their REST APIs. Supports retrieving content by ID or URL, searching using CQL/JQL, and listing spaces and projects.1MIT
- AlicenseNot gradedqualityDmaintenanceProduction-ready MCP server for Atlassian Jira and Confluence, providing tools for issue management, page retrieval, and content operations.43 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that provides AI agents structured access to Jira Cloud, enabling project listing, sprint overview, issue retrieval, and JQL search.43 npmMIT
- AlicenseAqualityDmaintenanceRead-only MCP server for self-hosted Confluence that lets AI agents search pages, fetch content, and navigate page trees via the REST API.52 npmMIT