MCP Server Atlassian Confluence

Generic GET/POST/PUT/PATCH/DELETE access to the Confluence Cloud REST API for spaces, pages and comments

By Andi Ashari (individual) TypeScript Local · stdio Productivity

53 popularity score ★ 62 ↓ 8.6k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs ATLASSIAN_SITE_NAME, ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add atlassian-confluence -e ATLASSIAN_SITE_NAME=<ATLASSIAN_SITE_NAME> -e ATLASSIAN_USER_EMAIL=<ATLASSIAN_USER_EMAIL> -e ATLASSIAN_API_TOKEN=<ATLASSIAN_API_TOKEN> -- npx -y @aashari/mcp-server-atlassian-confluence
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "atlassian-confluence": {
      "command": "npx",
      "args": [
        "-y",
        "@aashari/mcp-server-atlassian-confluence"
      ],
      "env": {
        "ATLASSIAN_SITE_NAME": "<ATLASSIAN_SITE_NAME>",
        "ATLASSIAN_USER_EMAIL": "<ATLASSIAN_USER_EMAIL>",
        "ATLASSIAN_API_TOKEN": "<ATLASSIAN_API_TOKEN>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "atlassian-confluence": {
      "command": "npx",
      "args": [
        "-y",
        "@aashari/mcp-server-atlassian-confluence"
      ],
      "env": {
        "ATLASSIAN_SITE_NAME": "<ATLASSIAN_SITE_NAME>",
        "ATLASSIAN_USER_EMAIL": "<ATLASSIAN_USER_EMAIL>",
        "ATLASSIAN_API_TOKEN": "<ATLASSIAN_API_TOKEN>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "atlassian-confluence": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@aashari/mcp-server-atlassian-confluence"
      ],
      "env": {
        "ATLASSIAN_SITE_NAME": "<ATLASSIAN_SITE_NAME>",
        "ATLASSIAN_USER_EMAIL": "<ATLASSIAN_USER_EMAIL>",
        "ATLASSIAN_API_TOKEN": "<ATLASSIAN_API_TOKEN>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.atlassian-confluence]
command = "npx"
args = ["-y", "@aashari/mcp-server-atlassian-confluence"]

[mcp_servers.atlassian-confluence.env]
ATLASSIAN_SITE_NAME = "<ATLASSIAN_SITE_NAME>"
ATLASSIAN_USER_EMAIL = "<ATLASSIAN_USER_EMAIL>"
ATLASSIAN_API_TOKEN = "<ATLASSIAN_API_TOKEN>"
Gemini CLITerminal
gemini mcp add --scope user -e ATLASSIAN_SITE_NAME=<ATLASSIAN_SITE_NAME> -e ATLASSIAN_USER_EMAIL=<ATLASSIAN_USER_EMAIL> -e ATLASSIAN_API_TOKEN=<ATLASSIAN_API_TOKEN> atlassian-confluence npx -- -y @aashari/mcp-server-atlassian-confluence

Settings 6

ATLASSIAN_SITE_NAME Required: The first part of your Confluence Cloud address: mycompany for mycompany.atlassian.net.
ATLASSIAN_USER_EMAIL Required: Email of the Atlassian account the API token belongs to.
ATLASSIAN_API_TOKEN Required: Atlassian API token, created at id.atlassian.com under Security, API tokens.
TRANSPORT_MODE Optional: Set to http to serve over HTTP at /mcp instead of stdio.
PORT Optional: Port for HTTP mode; 3000 by default.
DEBUG Optional: Set to true for detailed logs, written under ~/.mcp/data/.

What it does

A community-built Node.js server that connects an assistant to one Confluence Cloud site. Rather than one tool per task, it exposes five tools named after HTTP methods: the assistant passes a REST path such as /wiki/api/v2/pages or /wiki/rest/api/search with a CQL query, plus optional query parameters and a JSON body, and the server sends the request with your Atlassian email and API token. That means it can read spaces, pages, blog posts, labels and comments, run CQL searches, and also create, replace, edit and delete content, as far as your account's Confluence permissions allow.

Responses come back in TOON, a compact text format, unless the call asks for JSON, and each call can take a JMESPath expression (the jq parameter) to keep only the fields it needs. Responses over roughly 40,000 characters are cut short, and the full raw response is written to a file under /tmp/mcp/ on your machine, with the path given in the notice.

Version 3.0 replaced the older task-specific tools (conf_ls_spaces, conf_get_page, conf_search and others) with these five generic ones, so guides written for 2.x no longer match. The npm package description still speaks of Markdown page content, which belongs to the 2.x design; the CHANGELOG for 3.3.0 records the switch. The package also works as a command-line tool (get, post, put, patch, delete subcommands) and can serve over HTTP instead of stdio.

What it needs

RuntimeNode.js 18+

Node.js 18 or newer (the launch command uses npx). A Confluence Cloud site at <name>.atlassian.net and an Atlassian account with access to the spaces you want, plus an API token created at id.atlassian.com. Confluence Server and Data Center are not supported.

Limits

Confluence Cloud only: the code builds every request URL as https://<ATLASSIAN_SITE_NAME>.atlassian.net, so self-hosted Server or Data Center sites and custom domains cannot be reached. There is no read-only mode: all five tools, including conf_delete, are registered every time (src/tools/atlassian.api.tool.ts at v3.3.0). The assistant has to know Confluence REST paths and numeric space and page ids; there are no shortcut tools for common tasks. Updating a page with conf_put needs the next version number in the body. Responses above about 40,000 characters are truncated, with the full text saved under /tmp/mcp/. Signs in with an API token only, with no OAuth.

Who it suits

Suits someone on Confluence Cloud who wants an assistant to read and also edit their wiki through the full REST API, and who is fine with the assistant writing the API calls itself. Because the tools are generic, it covers endpoints that task-specific servers leave out, but the assistant has to know the API paths, and every write method is always available. For a self-hosted Confluence, or if you want an assistant that can only read, look for another server: this one cannot point at a non-atlassian.net host and has no switch to turn off its write tools.

Tools 5

conf_get
Sends a GET request to any Confluence REST path, for example to list spaces, read a page or run a CQL search
conf_post
Sends a POST with a JSON body to create things such as pages, blog posts or comments
conf_put
Sends a PUT with a JSON body to replace a resource, such as a full page update
conf_patch
Sends a PATCH with a JSON body for a partial update
conf_delete
Sends a DELETE request to remove a resource such as a page or comment

Similar servers