Skip to main content
Glama

Confluence MCP Server

Model Context Protocol (MCP) server for integrating Confluence with AI agents. This server allows AI assistants to search, read, and retrieve documentation from your Confluence workspace.

Features

  • 🔍 Search Confluence - Full-text and CQL search across spaces

  • 📄 Get Page by ID - Retrieve complete page content by ID

  • 📝 Get Page by Title - Find pages by exact title match

  • 📚 List Space Pages - Get all pages in a space

  • 🌲 Get Page Children - Navigate page hierarchies

  • 📥 Sync Docs - Sync Confluence pages to local markdown files

  • 📤 Push MD to Confluence - Push markdown files to Confluence (create/update pages)

Related MCP server: confluence-mcp-server

Installation

git clone https://github.com/harshpuri84/confluence-mcp.git
cd confluence-mcp
npm install
npm run build

Configuration

  1. Create a .env file from the example:

cp .env.example .env
  1. Configure your Confluence credentials:

CONFLUENCE_BASE_URL=https://your-domain.atlassian.net
CONFLUENCE_USER_EMAIL=your-email@example.com
CONFLUENCE_API_TOKEN=your-api-token
CONFLUENCE_SPACE_KEY=DOCS
CONFLUENCE_PAGE_LIMIT=10
CONFLUENCE_SYNC_DIR=./confluence-docs

Getting Confluence API Token

  1. Go to https://id.atlassian.com/manage-profile/security/api-tokens

  2. Click "Create API token"

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

  4. Copy the token and add it to your .env file

Usage with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "confluence": {
      "command": "node",
      "args": [
        "/Users/harsh.puri/Documents/AI-airlcl/mcp-servers/confluence-mcp/dist/index.js"
      ],
      "env": {
        "CONFLUENCE_BASE_URL": "https://your-domain.atlassian.net",
        "CONFLUENCE_USER_EMAIL": "your-email@example.com",
        "CONFLUENCE_API_TOKEN": "your-api-token",
        "CONFLUENCE_SPACE_KEY": "DOCS"
      }
    }
  }
}

Restart Claude Desktop after configuration.

Available Tools

search_confluence

Search Confluence for pages matching a query.

Parameters:

  • query (required): Search query or CQL statement

  • limit (optional): Maximum results (default: 10)

  • spaceKey (optional): Restrict to specific space

Example queries:

"freight operations"
"text ~ \"booking\" AND space = DOCS"
"title ~ \"API\" AND type = page"

get_page_by_id

Get a Confluence page by its ID.

Parameters:

  • pageId (required): The page ID

  • expandBody (optional): Include content (default: true)

get_page_by_title

Find a page by exact title match.

Parameters:

  • title (required): Exact page title

  • spaceKey (required): Space key

get_space_pages

List all pages in a space.

Parameters:

  • spaceKey (required): The space key

  • limit (optional): Max pages (default: 25)

get_page_children

Get child pages of a parent page.

Parameters:

  • pageId (required): Parent page ID

  • limit (optional): Max children (default: 25)

sync_confluence_docs

Sync Confluence pages to local markdown files. Supports syncing entire spaces, search results, or specific pages.

Parameters:

  • spaceKey (optional): Space key to sync all pages from

  • query (optional): CQL query to sync matching pages

  • pageIds (optional): Array of specific page IDs to sync

  • outputDir (optional): Output directory (default: ./confluence-docs)

  • includeChildren (optional): Include child pages (default: false)

  • recursive (optional): Recursively sync child pages (default: false)

Note: You must provide at least one of spaceKey, query, or pageIds.

Syncing Docs to Local Files

Using the Standalone Sync Script

The Confluence MCP includes a standalone CLI script for syncing documentation:

# Build the project first
npm run build

# Sync all pages from a space
node dist/sync.js space DOCS

# Sync to a custom directory
node dist/sync.js space DOCS ./my-docs

# Sync recursively (includes all child pages)
node dist/sync.js space DOCS --recursive

# Sync pages matching a query
node dist/sync.js query "API documentation"

# Sync with space filter
node dist/sync.js query "best practices" --space DOCS

# Sync specific pages by ID
node dist/sync.js pages 123456 789012 345678

Using the MCP Tool

You can also sync docs via the MCP sync_confluence_docs tool:

{
  "tool": "sync_confluence_docs",
  "arguments": {
    "spaceKey": "DOCS",
    "outputDir": "./confluence-docs",
    "recursive": true
  }
}

Output Format

Synced files are saved as Markdown with frontmatter:

  • Files are organized by space key: {outputDir}/{spaceKey}/{page-title}.md

  • Each file includes metadata (ID, title, space, URL, version, last modified)

  • HTML content is converted to Markdown

  • Child pages are included if recursive or includeChildren is true

Example output structure:

confluence-docs/
  DOCS/
    Getting-Started.md
    API-Reference.md
    Best-Practices.md
    Sub-Page.md

Pushing Markdown Files to Confluence

Using the Standalone Push Script

Push markdown files to Confluence using the CLI script:

# Build the project first
npm run build

# Push a single markdown file
node dist/push.js file document.md --space DOCS

# Push with parent page (create as child page)
node dist/push.js file document.md --space DOCS --parent 123456

# Push all markdown files from a directory
node dist/push.js dir ./docs --space DOCS

# Push directory with parent page
node dist/push.js dir ./docs --space DOCS --parent 123456

# Create new pages only (don't update existing)
node dist/push.js file document.md --space DOCS --no-update

# Or use npm script
npm run push file document.md --space DOCS

Using the MCP Tool

You can also push markdown files via the MCP push_md_to_confluence tool:

{
  "tool": "push_md_to_confluence",
  "arguments": {
    "filePath": "./document.md",
    "spaceKey": "DOCS",
    "updateExisting": true
  }
}

Or push an entire directory:

{
  "tool": "push_md_to_confluence",
  "arguments": {
    "directory": "./docs",
    "spaceKey": "DOCS",
    "parentPageId": "123456"
  }
}

File Format

Markdown files can include frontmatter for metadata:

---
id: 123456
title: My Document Title
spaceKey: DOCS
---

# My Document

Content goes here...

Frontmatter fields:

  • id (optional): Existing Confluence page ID - if provided, will update that page

  • title (optional): Page title - defaults to filename if not provided

  • spaceKey (optional): Space key - can be provided via CLI/API parameter instead

Behavior:

  • If id is in frontmatter and page exists → Updates the page

  • If title matches existing page in space → Updates the page (if updateExisting is true)

  • Otherwise → Creates a new page

  • Markdown is converted to HTML automatically

  • Supports standard markdown: headings, lists, code blocks, links, etc.

Example AI Prompts

Once configured, you can ask Claude:

  • "Search our Confluence for documentation about booking workflows"

  • "Get the AI Agentic Playbook page from Confluence"

  • "Show me all pages in the DOCS space"

  • "Find pages about rate determination in Confluence"

  • "Get the child pages of page ID 123456"

  • "Sync all pages from the DOCS space to local files"

  • "Sync all API documentation pages matching 'API' query"

  • "Push markdown file document.md to Confluence"

  • "Push all markdown files from ./docs directory to Confluence"

Integration with AI Agents

This MCP server enables your AI agents (from the playbook) to:

  1. Retrieve SOPs - Agents can fetch standard operating procedures

    // Rate Agent example
    const sopContent = await mcp.call('search_confluence', {
      query: 'text ~ "rate calculation SOP"'
    });
  2. Access Knowledge Base - Build RAG pipeline with Confluence as source

    // Learning Agent example
    const bestPractices = await mcp.call('get_page_by_title', {
      title: 'Best Practices - Booking Validation',
      spaceKey: 'DOCS'
    });
  3. Context-Aware Assistance - Provide agents with real-time documentation

    // Exception Handler example
    const dgProcedure = await mcp.call('search_confluence', {
      query: 'DG Class 3 handling procedure',
      spaceKey: 'COMPLIANCE'
    });

Use Cases (logistics agent examples)

1. SOP Retrieval

User: "What's the DG process for Class 3 cargo?"
  ↓
Agent searches Confluence: search_confluence("DG Class 3 procedure")
  ↓
Returns: Complete SOP with approval workflow
  ↓
Agent answers with citations

2. Master Data Validation

Booking Validator needs to check customer policies
  ↓
Searches: get_page_by_title("Customer X - Shipping Policy", "CUSTOMERS")
  ↓
Validates booking against documented policies

3. Learning Agent Improvement

Learning Agent detects pattern: "50% shipper mismatches"
  ↓
Searches Confluence: search_confluence("shipper master data rules")
  ↓
Finds updated SOP: "Always use legal name, not trade name"
  ↓
Updates agent prompt with Confluence documentation

4. Exception Handler Context

Exception: "Customs clearance delayed"
  ↓
Agent searches: search_confluence("customs clearance troubleshooting")
  ↓
Retrieves relevant procedures
  ↓
Suggests actions to operator with documentation links

Troubleshooting

Authentication Errors

  • Verify your API token is correct

  • Check that your email matches your Atlassian account

  • Ensure the token has sufficient permissions

Page Not Found

  • Verify the space key is correct

  • Check page permissions (must be readable by your account)

  • Try searching by ID instead of title

Connection Errors

  • Verify CONFLUENCE_BASE_URL format (include https://)

  • Check network/firewall settings

  • Ensure your Confluence instance is accessible

Development

# Watch mode for development
npm run dev

# Build
npm run build

# Run locally
npm start

Security Notes

⚠️ Important Security Considerations:

  1. API Token Storage: Never commit .env file to git

  2. Least Privilege: Create API token with minimum required permissions

  3. Token Rotation: Rotate tokens regularly (every 90 days)

  4. Access Logging: Monitor token usage in Atlassian audit logs

  5. Scope Restriction: Limit access to specific spaces if possible

Roadmap

Future enhancements:

  • Sync Confluence docs to local markdown files

  • Push markdown files to Confluence (create/update pages)

  • Add comments to pages

  • Attachment download

  • Page versioning and history

  • Advanced CQL query builder

  • Caching layer for frequently accessed pages

  • Webhook integration for real-time updates

  • Incremental sync (only sync changed pages)

  • Sync with git integration

License

MIT

Available Tools

7 tools
get_page_by_idA

Get a Confluence page by its ID with full content

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe Confluence page ID
expandBodyNoInclude page body content (default: true)

TDQS

A3.7/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 bear the full burden. It only mentions 'with full content', which is actually conditional on the expandBody parameter (default true). The description does not disclose that full content can be omitted, nor does it cover permissions, error behavior, rate limits, or return format. This is a meaningful gap for a tool with zero annotation support.

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, front-loaded sentence containing no filler. Every word contributes: the verb, resource, identifier method, and content scope are all communicated crisply. It is appropriately concise for a simple tool.

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?

For a simple get-by-ID tool, the minimal description is adequate, but it omits any differentiation from siblings (beyond 'by its ID'), does not explain what 'full content' means for the response, and lacks any error or access considerations. Given there is no output schema or annotations, the description could do more to fully contextualize the 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?

Schema description coverage is 100%, so the baseline is 3. The description adds no further meaning to the parameters beyond what the schema already provides. 'with full content' does not clarify the expandBody parameter beyond its existing description, so no extra value is added.

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 the verb 'Get' and the resource 'a Confluence page by its ID', which is specific and distinguishes it from sibling tools like get_page_by_title (which uses title) and get_space_pages (which lists pages). The phrase 'with full content' adds useful scope information.

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

Usage Guidelines4/5

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

The description provides clear context: use this tool when you have a Confluence page ID. It does not explicitly mention alternatives, but 'by its ID' implicitly differentiates it from get_page_by_title and search_confluence. No exclusions or when-not-to-use guidance is provided, so it misses the top 'explicit alternatives' criterion.

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

get_page_by_titleA

Get a Confluence page by title within a space

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe exact page title
spaceKeyYesThe space key where the page is located

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, yet it only states the basic lookup operation. It does not mention exact-match behavior, case sensitivity, what happens if multiple pages share the title, or the format of the response. This is a significant gap for a simple GET tool.

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, focused sentence that fully conveys the tool's purpose without any wasted words. It is front-loaded with the action and resource, making it easy to scan.

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?

The tool is simple and the parameter schema is complete, but the description lacks important behavioral details like return behavior or edge cases (e.g., no result, duplicate titles). Given the simplicity, the description is minimally adequate but not fully complete.

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 description coverage is 100%, with clear descriptions for both title and spaceKey. The tool description adds no extra meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 the action (Get), the resource (a Confluence page), and the method (by title within a space). This distinguishes it from sibling tools like get_page_by_id (by ID) and search_confluence (search-based).

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 when the exact title and space key are known, but does not explicitly contrast with alternatives such as search_confluence or get_space_pages. No exclusions or prerequisites are provided, leaving the when-to-use guidance implicit.

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

get_page_childrenA

Get child pages of a parent page

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of children to return (default: 25)
pageIdYesThe parent page ID

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic action and provides no details about pagination behavior, ordering, whether children are direct-only, or what fields are returned. This is a read operation, but the description does not disclose any safety or side-effect information.

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, clear sentence with no redundant words or filler. It is perfectly concise and front-loaded with the essential purpose.

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

Completeness2/5

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

With no output schema and no annotations, the description needs to explain what the tool returns and any notable behavior. It does not mention return format, pagination effects of 'limit', or potential errors. For an agent to use the tool correctly, this is a significant gap.

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 description coverage is 100% for both parameters, with 'pageId' described as 'The parent page ID' and 'limit' with a default and description. The tool description adds no extra meaning beyond the schema, so the 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 'Get child pages of a parent page' is specific with a clear verb ('Get') and resource ('child pages') and includes scope ('of a parent page'). It distinguishes from siblings like get_page_by_id (single page) and get_space_pages (pages in a space).

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

Usage Guidelines4/5

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

The description clearly implies the context of use: when you have a parent page ID and need its direct children. It does not explicitly name alternatives or exclusions, but the context is unambiguous and non-misleading.

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

get_space_pagesA

Get all pages in a Confluence space

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of pages to return (default: 25)
spaceKeyYesThe space key

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are present, so the description must convey behavioral traits. It indicates a read-only operation ('Get'), but it does not disclose that the 'limit' parameter prevents returning truly 'all' pages by default, nor does it mention pagination, authentication, or response format. This ambiguity is significant.

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 that gets straight to the point without any filler or redundant information.

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?

For a tool with two parameters and no output schema, the description provides a basic understanding but omits critical details like pagination limits and the fact that 'all' is constrained by the default limit. This leaves gaps for an agent to fully understand the tool's behavior.

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?

Both parameters (spaceKey and limit) have descriptions in the schema, covering 100% of parameters. The tool description adds no additional parameter semantics beyond the schema, matching the baseline expectation.

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 the tool lists pages within a Confluence space, using the specific verb 'Get' and resource 'pages.' It distinguishes itself from siblings like get_page_by_id or get_page_by_title by specifying space-level scope.

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

Usage Guidelines4/5

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

The description implies the tool is for retrieving a collection of pages in a specific space, which provides clear context for selection. However, it doesn't explicitly mention when not to use it (e.g., for searching across spaces or finding a single page by title) or name alternatives.

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

push_md_to_confluenceA

Push markdown files to Confluence. Creates new pages or updates existing ones based on frontmatter or title/space.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNoPath to markdown file to push (single file)
spaceKeyNoSpace key to create/update pages in (required if not in frontmatter)
directoryNoDirectory containing markdown files to push (all .md files)
parentPageIdNoOptional parent page ID to create pages under
updateExistingNoUpdate existing pages if found (default: true)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does reveal key behavior: it creates or updates pages based on frontmatter or title/space, indicating mutation and idempotency. However, it does not disclose details like whether existing content is overwritten, how conflicts are handled, or any side effects beyond page creation/update.

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 two short, front-loaded sentences that state the primary action and the core decision logic. Every word contributes value, with no filler or repetition of schema details.

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

Completeness4/5

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

Given the tool's complexity (write operation, 5 parameters) but high schema coverage, the description is reasonably complete. It explains the main behavioral nuance (create vs update) and the matching strategy, though it omits return value details and failure modes. Since no output schema exists, some return information could be expected, but the core functionality is well covered.

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?

All five parameters are fully described in the schema (100% coverage), so the baseline is 3. The description adds context by mentioning 'frontmatter or title/space', which ties to filePath and spaceKey, but does not offer additional parameter-specific semantics beyond the schema.

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 the tool's function with a specific verb ('Push') and resource ('markdown files to Confluence'), and distinguishes it from sibling tools that retrieve or search. It also clarifies the dual behavior of creating new pages or updating existing ones, making the purpose unambiguous.

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 context (pushing markdown to Confluence) but does not provide explicit guidance on when to choose this tool over siblings like 'sync_confluence_docs' or when one approach (e.g., using frontmatter vs title/space) is preferred. No exclusions or alternatives are mentioned.

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

search_confluenceC

Search Confluence for pages matching a query using CQL (Confluence Query Language)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 10)
queryYesSearch query or CQL statement (e.g., "text ~ \"freight\" AND space = DOCS")
spaceKeyNoOptional: Restrict search to specific space

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only repeats the tool's function and mentions CQL, but does not describe expected behavior such as result ordering, pagination, authentication requirements, or error conditions.

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, focused sentence with no filler or redundant information. It is appropriately concise and front-loaded with the core purpose.

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

Completeness2/5

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

Given no annotations and no output schema, the description provides minimal context. It fails to explain return values, result structure, or practical usage considerations, making it incomplete for a tool with multiple retrieval-focused siblings.

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 provides 100% coverage with descriptions for all three parameters, so the baseline is 3. The description adds no extra parameter insights beyond mentioning CQL, which is already referenced in the query parameter's schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches Confluence pages using CQL, specifying both the action and method. This distinguishes it from sibling tools that retrieve by ID, title, space, or children, though it doesn't explicitly name those alternatives.

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 is provided on when to use this tool versus the sibling tools. The description implies it is for search, but does not state exclusions or suggest alternatives for direct lookups, leaving the agent to infer proper usage.

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

sync_confluence_docsA

Sync Confluence pages to local markdown files. Can sync a space, search results, or specific pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoCQL query to sync matching pages (optional)
pageIdsNoArray of specific page IDs to sync (optional)
spaceKeyNoSpace key to sync all pages from (optional if using query or pageIds)
outputDirNoOutput directory for synced files (default: ./confluence-docs)
recursiveNoRecursively sync child pages (default: false)
includeChildrenNoInclude child pages when syncing (default: false)

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It mentions that it syncs to local markdown files, but it doesn't disclose critical side effects such as whether it overwrites existing files, whether it performs a one-way or two-way sync, or whether it deletes files that are not in Confluence. The word 'sync' is ambiguous and could imply destructive behavior, making this a significant gap.

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 sentence, 15 words long, that efficiently states the core action, the target, and the primary modes of use. It front-loads the verb 'Sync' and is free of any filler, making it extremely concise and well-structured.

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 moderate complexity (6 parameters, no required ones, no output schema), the description provides the essential purpose and input modes but omits details about return values, sync behavior (e.g., overwrite policy), and prerequisites like authentication. The schema partially compensates for parameter details, but the description alone is not fully complete. It's adequate for basic use but leaves significant gaps for an agent trying to predict behavior.

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 schema descriptions are thorough, covering all 6 parameters with meaning and defaults (100% coverage). The description adds only a high-level grouping of parameters (space, search results, pages) without adding new semantic depth to individual parameters. Per the rubric, when schema coverage is high, the baseline is 3, and here the description doesn't provide sufficient additional value to exceed that.

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 the tool's purpose: syncing Confluence pages to local markdown files. It distinguishes itself from the sibling getter tools and push_md_to_confluence by explicitly mentioning the download direction and the write-to-local-file aspect. The three sync modes (space, search results, pages) further clarify its scope.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: when you need to sync a space, search results, or specific pages. It doesn't explicitly exclude alternatives or mention when not to use it (e.g., 'use get_page_by_id for a single page'), so it falls short of a perfect score, but the guidance is clear enough for a basic understanding.

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. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.0
    • First observedget_page_by_id
    • First observedget_page_by_title
    • First observedget_page_children
    • First observedget_space_pages
    • First observedpush_md_to_confluence
    • First observedsearch_confluence
    • First observedsync_confluence_docs

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct operation: retrieval by ID, by title, listing space pages, listing children, search, importing from Confluence, and exporting to Confluence. There is no meaningful overlap, and the descriptions make the boundaries clear.

Naming Consistency5/5

All tool names use snake_case and follow a clear pattern: get_* for retrieval operations, search_* for querying, sync_* and push_* for transfer operations. The naming is consistent and predictable.

Tool Count5/5

With 7 tools, the server is well-scoped. Each tool serves a necessary function for reading, searching, and syncing Confluence content, without unnecessary bloat or redundancy.

Completeness4/5

The tool set covers the primary lifecycle for Confluence content: read (by id, title, space, children, search) and write/update via push_md_to_confluence. The main gap is lack of a direct delete or page management operation, but the core workflows are well supported.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/harshpuri84/confluence-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server