Skip to main content

Confluence Data Center MCP

Typed Python MCP server for Confluence Data Center raw storage operations.

Requirements

  • Python 3.11+
  • uv
  • Confluence Data Center REST API access
  • Either a Confluence Personal Access Token or username/password auth

Setup

uv sync
cp .env.example .env

Set the values in .env, then run:

set -a
source .env
set +a
uv run confluence-dc-mcp

Run with uvx

After the package is published, it can be run without cloning the repository:

CONFLUENCE_BASE_URL="https://confluence.example.com" \
CONFLUENCE_PAT="replace-with-token" \
uvx confluence-dc-mcp

Or with username/password authentication:

CONFLUENCE_BASE_URL="https://confluence.example.com" \
CONFLUENCE_USERNAME="alice" \
CONFLUENCE_PASSWORD="replace-with-password" \
uvx confluence-dc-mcp

For an MCP client using uvx with a Personal Access Token:

{
  "mcpServers": {
    "confluence-data-center": {
      "command": "uvx",
      "args": ["confluence-dc-mcp"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://confluence.example.com",
        "CONFLUENCE_PAT": "replace-with-token"
      }
    }
  }
}

For an MCP client using uvx with username/password authentication:

{
  "mcpServers": {
    "confluence-data-center": {
      "command": "uvx",
      "args": ["confluence-dc-mcp"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://confluence.example.com",
        "CONFLUENCE_USERNAME": "alice",
        "CONFLUENCE_PASSWORD": "replace-with-password"
      }
    }
  }
}

For MCP clients that pass environment variables directly, use:

{
  "mcpServers": {
    "confluence-data-center": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/mikhail/Projects/mcp-atlassian-confluence-raw-storage",
        "run",
        "confluence-dc-mcp"
      ],
      "env": {
        "CONFLUENCE_BASE_URL": "https://confluence.example.com",
        "CONFLUENCE_PAT": "replace-with-token"
      }
    }
  }
}

Environment

CONFLUENCE_BASE_URL is required and must be the root Confluence URL.

Use one authentication mode:

  • CONFLUENCE_PAT
  • CONFLUENCE_USERNAME and CONFLUENCE_PASSWORD

Optional settings:

  • CONFLUENCE_VERIFY_SSL, defaults to true
  • CONFLUENCE_TIMEOUT_SECONDS, defaults to 30

Tools

  • health_check: validates server configuration.
  • search_pages: searches content with CQL and returns page summaries.
  • get_page_storage: returns raw storage-format XHTML for a content ID.
  • get_page_storage_by_title: returns raw storage-format XHTML for a unique page title in a space.
  • get_page_children: returns direct child page summaries for a content ID.
  • get_page_history: returns page version history entries for a content ID.
  • create_page: creates a page from raw storage-format XHTML.
  • move_page: moves a page before, after, or under a target page.
  • get_comments: returns page comments with storage-format bodies.
  • add_comment: adds a storage-format comment to a page.
  • reply_to_comment: replies to an existing comment with storage-format XHTML.
  • get_labels: returns labels for a content ID.
  • add_label: adds a label to a content ID.
  • search_user: searches Confluence users through CQL-backed site search.
  • get_attachment_list: returns attachment metadata for a page content ID.
  • download_attachment: downloads an attachment as an embedded MCP resource for LLM analysis.
  • upload_attachment: uploads a local file as a page attachment.
  • upload_attachments: uploads multiple local files as page attachments.
  • download_attachment_to_file: downloads an attachment to a local file path.
  • get_page_images: downloads image attachments from a page as embedded MCP resources.
  • update_page_storage: replaces raw storage-format XHTML and increments the Confluence version.

Development

uv run ruff check .
uv run mypy
uv run pytest
uv build

CI and Release

GitHub Actions run linting, strict type checking, tests, and package build on push and pull requests.

Publishing runs when a GitHub Release is published. The workflow uses PyPI Trusted Publishing, so configure a PyPI trusted publisher for this repository with:

  • workflow: publish.yml
  • environment: pypi
  • package name: confluence-dc-mcp

Metadata

Release files for confluence-dc-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for confluence-dc-mcp 1.0.0
File Size Uploaded
confluence_dc_mcp-1.0.0.tar.gz 75.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for confluence-dc-mcp 1.0.0
File Interpreter ABI Platform
confluence_dc_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 88.4 kB

Release files / confluence_dc_mcp-1.0.0.tar.gz

Download URL confluence_dc_mcp-1.0.0.tar.gz
Size 75.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ea1dafaedde51998e1b971428b03cb6ff892a9c76eb1fc532cc225ca63c4d0e4
BLAKE2b-256 checksum
How to use checksums
ebe624191492df2640247584a30a67684792fcb54544daf72b2d26986a0a83d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.

Transparency log

Release files / confluence_dc_mcp-1.0.0-py3-none-any.whl

Download URL confluence_dc_mcp-1.0.0-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c94659ace29fd6c6739081e79f95aac3e2f589dae0db4bda25763a5f1488629
BLAKE2b-256 checksum
How to use checksums
2dd5a402db06d7fe92a9e1d9546b950dafa69b81d99b154f925d66fae8375d13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.2.3

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page