Skip to main content
Glama

๐Ÿš€ Awesome Confluence MCP Server

The most token-efficient way for AI agents to browse and analyze Confluence documentation.

MCP Python License

Topics: mcp-server python confluence-api ai-agents token-optimization markdown fastmcp


๐Ÿ“Š Token Savings at a Glance

Typical Confluence Page (2,000 words):

Format

Tokens (Avg)

Cost (GPT-4o)

Savings

Raw HTML

2,500

$0.075

-

Your Markdown

600

$0.018

76%

Save 60-80% on LLM tokens by converting Confluence pages to clean Markdown format.

A professional Model Context Protocol (MCP) server that provides token-efficient Confluence integration. Fetch, search, and convert Confluence pages to Markdown, dramatically reducing token consumption while preserving formatting and structure.

Related MCP server: mcp-confluence

๐Ÿ’ก Why Markdown Matters

The Token-Saving Advantage:

When working with LLMs, every token counts. Confluence pages in raw HTML format consume 3-5x more tokens than the same content in Markdown:

  • HTML Format: ~2,500 tokens for a typical page

  • Markdown Format: ~500-800 tokens for the same page

  • Savings: 60-80% reduction in token usage

This means:

  • โœ… Lower API costs - Fewer tokens = less money spent

  • โœ… Faster responses - Less data to process

  • โœ… Better context - Fit more pages in your context window

  • โœ… Cleaner output - Markdown is easier for LLMs to understand and work with

โœจ Features

  • ๐Ÿ” List Spaces - Browse all accessible Confluence spaces

  • ๐Ÿ”Ž Search Pages - Find pages by title or content with optional space filtering

  • ๐Ÿ“„ Fetch as Markdown - Convert any Confluence page to clean, token-efficient Markdown

  • ๐Ÿ” Secure Authentication - Uses Atlassian API tokens (never store passwords)

  • โšก Fast & Reliable - Built with FastMCP for optimal performance

  • ๐Ÿ›ก๏ธ Error Handling - Comprehensive validation and helpful error messages

๐Ÿš€ Quick Start

1. Installation

# Clone the repository
git clone https://github.com/mazhar480/awesome-confluence-mcp.git
cd awesome-confluence-mcp

# Install with pip
pip install -e .

2. Get Your Atlassian API Token

  1. Go to Atlassian API Tokens

  2. Click Create API token

  3. Give it a name (e.g., "MCP Server")

  4. Copy the token (you won't see it again!)

3. Configure Environment

# Copy the example file
cp .env.example .env

# Edit .env with your credentials
CONFLUENCE_URL=https://your-domain.atlassian.net
CONFLUENCE_EMAIL=your.email@example.com
CONFLUENCE_API_TOKEN=your_api_token_here

4. Configure Your MCP Client

For Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "confluence": {
      "command": "python",
      "args": ["-m", "server"],
      "cwd": "/path/to/awesome-confluence-mcp",
      "env": {
        "CONFLUENCE_URL": "https://your-domain.atlassian.net",
        "CONFLUENCE_EMAIL": "your.email@example.com",
        "CONFLUENCE_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

For Cline (VS Code Extension)

Add to your MCP settings:

{
  "confluence": {
    "command": "python",
    "args": ["-m", "server"],
    "cwd": "/path/to/awesome-confluence-mcp"
  }
}

Make sure your .env file is configured in the project directory.

๐Ÿ”ง Available Tools

list_spaces

List all Confluence spaces you have access to.

Parameters:

  • limit (optional): Maximum number of spaces to return (1-100, default: 25)

Example:

List my Confluence spaces

Returns:

{
  "total": 3,
  "spaces": [
    {
      "key": "DOCS",
      "name": "Documentation",
      "type": "global",
      "id": "123456",
      "url": "https://your-domain.atlassian.net/wiki/spaces/DOCS"
    }
  ]
}

search_pages

Search for pages by title or content.

Parameters:

  • query (required): Search term to match against titles and content

  • space_key (optional): Limit search to a specific space

  • limit (optional): Maximum results to return (1-50, default: 10)

Example:

Search for pages about "API documentation" in the DOCS space

Returns:

{
  "total": 5,
  "query": "API documentation",
  "space_key": "DOCS",
  "pages": [
    {
      "id": "789012",
      "title": "REST API Documentation",
      "type": "page",
      "space": {
        "key": "DOCS",
        "name": "Documentation"
      },
      "version": 12,
      "url": "https://your-domain.atlassian.net/wiki/spaces/DOCS/pages/789012"
    }
  ]
}

fetch_page_markdown

Fetch a page and convert it to Markdown format.

Parameters:

  • page_id (required): The Confluence page ID

Example:

Fetch page 789012 as markdown

Returns:

# REST API Documentation

**Space:** Documentation (DOCS)
**Version:** 12
**URL:** https://your-domain.atlassian.net/wiki/spaces/DOCS/pages/789012
**Labels:** api, rest, documentation

---

## Overview

This page documents our REST API endpoints...

### Authentication

All requests require an API token...

๐ŸŽฏ Usage Examples

Example 1: Find and Read Documentation

1. "List my Confluence spaces"
2. "Search for 'onboarding' pages in the HR space"
3. "Fetch page 123456 as markdown"

Example 2: Research a Topic

"Search for pages about 'authentication' and fetch the top 3 results as markdown"

The MCP server will:

  1. Search for relevant pages

  2. Return the search results

  3. Fetch each page and convert to Markdown

  4. Provide clean, token-efficient content for analysis

๐Ÿ”’ Security Best Practices

  • โœ… Never commit your .env file to version control

  • โœ… Use API tokens instead of passwords

  • โœ… Rotate tokens regularly

  • โœ… Limit token scope to only what's needed

  • โœ… Store tokens securely in environment variables

๐Ÿ› ๏ธ Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black .

# Lint code
ruff check .

๐Ÿงช Testing with MCP Inspector

Want to test the tools without writing a full client? FastMCP includes a built-in MCP Inspector:

npx @modelcontextprotocol/inspector python server.py

This launches a web interface where you can:

  • โœ… Test all three tools interactively

  • โœ… See real-time request/response data

  • โœ… Validate your Confluence credentials

  • โœ… Experiment with different parameters

Perfect for: Quick testing, debugging, and demonstrating the server to others.

๐Ÿ’ฐ Sponsorship & Support

If this MCP server saves you time and tokens, consider sponsoring its development:

  • Individual Developers: GitHub Sponsors

  • Corporate Teams: I support GitHub Invoiced Billing for bulk sponsorships. Contact me for custom MCP development and enterprise support.

Why sponsor?

  • Priority bug fixes and feature requests

  • Custom tool development for your workflow

  • Direct support and consultation

  • Help maintain this free, open-source tool

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

๐Ÿ“ž Support


Made with โค๏ธ for the MCP community

Available Tools

3 tools
fetch_page_markdownA

Fetch a Confluence page and convert it to Markdown format.

This tool retrieves page content and converts it from HTML to Markdown, reducing token usage by 60-80% compared to raw HTML while preserving formatting, links, and structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesThe Confluence page ID to fetch

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions token reduction but omits critical details: it does not state whether the operation is read-only (only fetch), whether authentication is required, rate limits, or what happens if the page does not exist.

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 consists of two short sentences, front-loaded with the primary action. Every sentence provides meaningful context without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists but is not shown, so return values are expected to be documented there. The description does not mention error handling, prerequisites (e.g., page must exist), or limitations (e.g., only works on Confluence pages). Lacks completeness for a minimal tool.

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?

The input schema has 100% description coverage for the single parameter page_id. The description adds no additional semantic information beyond what the schema already states ('The Confluence page ID to fetch'). Baseline of 3 applies.

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 'Fetch a Confluence page and convert it to Markdown format', specifying the verb and resource. It distinguishes from siblings by implying that list_spaces and search_pages serve different purposes (listing spaces, searching pages).

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 implies usage for fetching page content but provides no explicit guidance on when to use this tool versus alternatives like list_spaces or search_pages. No exclusions or context for when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_spacesB

List all Confluence spaces accessible to the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of spaces to return (default: 25, max: 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides no behavioral details beyond a basic listing. It does not mention pagination, rate limits, permissions, or that the operation is read-only.

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 a single concise sentence with no wasted words. It is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to explain return values. However, it omits any mention of pagination behavior implied by the 'limit' parameter, which is relevant for completeness.

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 single parameter 'limit', which already has a description. The tool description adds no extra meaning to the 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 uses the specific verb 'List' and resource 'Confluence spaces' with scope 'accessible to the authenticated user'. It clearly distinguishes from siblings which operate on pages rather than spaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the siblings 'fetch_page_markdown' or 'search_pages'. The description does not mention alternative tools or contexts where one would be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_pagesB

Search for Confluence pages by title or content.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string to match against page titles and content
space_keyNoOptional space key to limit search to a specific space
limitNoMaximum number of results to return (default: 10, max: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose behavioral traits such as pagination, rate limits, or error handling. Minimal beyond basic action.

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?

Single sentence, front-loaded, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and 3 parameters, description is adequate but lacks details on result format, sorting, or edge cases. Not severely lacking but minimal.

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 descriptions cover all parameters (100% coverage). Description adds no new meaning beyond schema; 'title or content' is already in query parameter description.

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?

Clearly states verb 'Search' and resource 'Confluence pages' with criteria 'by title or content'. Distinct from sibling tools fetch_page_markdown and list_spaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No mention of when not to use or prerequisites.

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. 3 tool updatesv1.0.0-on-publish
    • Changedfetch_page_markdown1 field changed
      • addedInput schema / properties / page_id / description
        Added value: +"The Confluence page ID to fetch"
    • Changedlist_spaces1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of spaces to return (default: 25, max: 100)"
    • Changedsearch_pages3 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of results to return (default: 10, max: 50)"
      • addedInput schema / properties / query / description
        Added value: +"Search query string to match against page titles and content"
      • addedInput schema / properties / space_key / description
        Added value: +"Optional space key to limit search to a specific space"
  2. 3 tool updatesv1.0.0
    • First observedfetch_page_markdown
    • First observedlist_spaces
    • First observedsearch_pages

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a distinct purpose: fetching a specific page, listing spaces, and searching pages. No overlap exists.

Naming Consistency5/5

All tools use consistent snake_case naming with clear verb-noun patterns: fetch_page_markdown, list_spaces, search_pages.

Tool Count2/5

Only 3 tools for a Confluence API server is thin. Common operations like creating, updating, or deleting pages are missing.

Completeness2/5

The server covers only read operations (fetch, list, search). No create, update, or delete tools, leaving significant gaps for agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers