confluence-adf-mcp

confluence-adf-mcp

An MCP server for reading and writing Confluence pages in native Atlassian Document Format (ADF), enabling precise edits at the document node level without loss of formatting.

Category
Visit Server

README

confluence-adf-mcp

License: MIT

MCP server for reading and writing Confluence pages in native ADF (Atlassian Document Format).

Why this exists

Confluence stores pages in ADF (Atlassian Document Format), a structured JSON format. Most tools convert to/from HTML or plain text, losing structure, formatting, and metadata in the process. This MCP server works with ADF directly, so edits are precise — find/replace, table updates, and mention swaps happen at the document node level without corrupting the surrounding content.

Setup

Requirements

  • Python 3.12+
  • A Confluence Cloud instance with API access

Environment variables

export CONFLUENCE_URL="https://your-domain.atlassian.net/wiki"
export CONFLUENCE_USERNAME="you@example.com"
export CONFLUENCE_API_TOKEN="your-api-token"

Generate an API token at https://id.atlassian.com/manage-profile/security/api-tokens.

OAuth 2.0 (optional)

Instead of basic auth, you can use OAuth 2.0 (3LO). Set these three environment variables:

export CONFLUENCE_OAUTH_CLIENT_ID="your-oauth-client-id"
export CONFLUENCE_OAUTH_CLIENT_SECRET="your-oauth-client-secret"
export CONFLUENCE_OAUTH_REFRESH_TOKEN="your-initial-refresh-token"

If all three are set, the server uses OAuth automatically; otherwise it falls back to basic auth (CONFLUENCE_USERNAME / CONFLUENCE_API_TOKEN).

Rotating refresh tokens are persisted to .cache/confluence/.oauth_tokens.json so the server can restart without re-authorizing.

See Atlassian OAuth 2.0 (3LO) documentation for how to create an OAuth app and obtain the initial refresh token.

Claude Code configuration

Copy .env.example to .env and fill in your credentials. The server loads .env automatically.

Add to .claude/settings.json:

{
  "mcpServers": {
    "confluence-adf": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/confluence-adf-mcp", "confluence-adf-mcp"]
    }
  }
}

Tools

Pages

Tool Description
confluence_get_page Fetch a page and cache it locally
confluence_create_page Create a new page with ADF content
confluence_push_page Push cached page edits to Confluence
confluence_extract_text Extract plain text from a page
confluence_copy_page Duplicate a page
confluence_archive_page Archive a page (with confirmation)
confluence_move_page Move a page to a new parent (with confirmation)
confluence_revert_page Revert a page to a previous version

Editing

Tool Description
confluence_edit_page Find/replace text in cached page
confluence_find_replace Fetch, find/replace, and push in one step
confluence_regex_replace Regex find/replace on a page
confluence_replace_mention Swap @mentions between users
confluence_add_link Add a hyperlink to a page

Tables

Tool Description
confluence_update_table_cell Update a single table cell
confluence_insert_table_row Insert a row into a table
confluence_delete_table_row Delete a row from a table

Tasks

Tool Description
confluence_update_task Toggle task checkbox state (DONE/TODO)

Discovery

Tool Description
confluence_search_pages Search pages with CQL
confluence_list_pages List pages in a space
confluence_get_child_pages Get child pages
confluence_get_ancestors Get parent chain
confluence_list_spaces List spaces
confluence_get_contributors Get unique page contributors
confluence_get_user Resolve account ID to display name

Labels

Tool Description
confluence_get_labels Get labels on a page
confluence_add_labels Add labels to a page
confluence_remove_label Remove a label from a page

Versions

Tool Description
confluence_list_versions List version history
confluence_compare_versions Diff two versions as text

Comments

Tool Description
confluence_add_comment Add a footer comment
confluence_list_comments List footer comments
confluence_add_inline_comment Add an inline annotation comment
confluence_list_inline_comments List inline comments

Attachments

Tool Description
confluence_list_attachments List attachments on a page
confluence_upload_attachment Upload a file as an attachment
confluence_download_attachment Download an attachment to a local file
confluence_delete_attachment Delete an attachment (with confirmation)

Properties

Tool Description
confluence_get_page_properties Get content properties
confluence_set_page_property Set a content property

Access Control

Tool Description
confluence_set_restrictions Set read/update restrictions
confluence_watch_page Watch or unwatch a page

Cache

Tool Description
confluence_list_cache List locally cached pages
confluence_clear_cache Clear page cache

Contributing

See CONTRIBUTING.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured