confluence mcp server

Local 2025-09-01 00:38:13 0

Enables querying and retrieving content from Confluence through CQL searches and page content fetching, allowing Claude to seamlessly access information stored in Confluence workspaces.


Interact with Confluence

This is a TypeScript-based MCP server that provides tools to interact with Confluence. It demonstrates core MCP concepts by providing:

  • Tools for executing CQL queries to search pages
  • Tools for retrieving the content of Confluence pages

Features

Confluence Tools

  • Purpose: Run a CQL query to search for Confluence pages.
  • Parameters: cql, limit (default: 10).

get_page_content

  • Purpose: Fetch the content of a Confluence page.
  • Parameters: pageId.

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "Confluence communication server": {
      "command": "node",
      "args": [
        "/PATH_TO_THE_PROJECT/build/index.js"
      ],
      "env": {
        "CONFLUENCE_URL": "https://XXXXXXXX.atlassian.net/wiki",
        "CONFLUENCE_API_MAIL": "Your email",
        "CONFLUENCE_API_KEY": "KEY_FROM: https://id.atlassian.com/manage-profile/security/api-tokens"
      }
    }
  }
}

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

[
  {
    "description": "Execute a CQL query on Confluence to search pages",
    "inputSchema": {
      "properties": {
        "cql": {
          "description": "CQL query string",
          "type": "string"
        },
        "limit": {
          "default": 10,
          "description": "Number of results to return",
          "type": "integer"
        }
      },
      "required": [
        "cql"
      ],
      "type": "object"
    },
    "name": "execute_cql_search"
  },
  {
    "description": "Get the content of a Confluence page",
    "inputSchema": {
      "properties": {
        "pageId": {
          "description": "Confluence Page ID",
          "type": "string"
        }
      },
      "required": [
        "pageId"
      ],
      "type": "object"
    },
    "name": "get_page_content"
  }
]