Skip to main content
Glama

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_get performs one authenticated GET request to a site-relative Jira or Confluence API path.

  • jira_search performs an authenticated POST to Jira's read-only /rest/api/3/search/jql endpoint.

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.0

It 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.md

For 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.0

Start 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-run

Repository layout:

  • src/atlassian.ts contains credential handling, request validation, the Atlassian HTTP client, and bounded output formatting.

  • src/server.ts registers the MCP tools and their read-only annotations.

  • src/index.ts starts the stdio server.

  • skill/using-atlassian/SKILL.md contains the Amp skill and its MCP launch configuration.

  • test/ contains HTTP-client and protocol-level integration tests.

Available Tools

2 tools
atlassian_getGet Atlassian dataA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSite-relative API path beginning with /, for example /rest/api/3/issue/ENG-123 or /wiki/api/v2/pages/123
queryNoOptional query parameters. Array values are encoded as repeated parameters.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedatlassian_get
    • First observedjira_search

TDQS

A3.7/5.0

Scored across 2 tools

Disambiguation4/5

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.

Naming Consistency2/5

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.

Tool Count3/5

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.

Completeness2/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers