Skip to main content
Glama

Confluence MCP Server

Model Context Protocol (MCP) server for Atlassian Confluence integration with Claude Code.

Features

  • šŸ” Search across Confluence pages using CQL (Confluence Query Language)

  • šŸ“„ Read pages by ID or title

  • āœļø Create and update pages

  • šŸ·ļø Manage labels and metadata

  • šŸ“ List spaces and attachments

  • šŸ” Secure Basic Auth with API tokens

Related MCP server: mcp-confluence

Installation

Prerequisites

  • Node.js 18+ and npm

  • Atlassian Confluence Cloud account

  • API token (see Configuration below)

Setup

git clone https://github.com/gkrauchunas-arlo/confluence-mcp.git
cd confluence-mcp
npm install

Configuration

  1. Copy .env.example to .env:

    cp .env.example .env
  2. Fill in your Atlassian credentials in .env:

    ATLASSIAN_SITE=your-domain.atlassian.net
    ATLASSIAN_EMAIL=your-email@example.com
    ATLASSIAN_API_TOKEN=your-token

Getting an API token:

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

  2. Click "Create API token"

  3. Give it a name (e.g., "Claude Code MCP") and copy the token to .env

Testing

# Test Confluence API connectivity
node test-confluence.js

# Test MCP protocol (via stdio)
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"0.1.0","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | node index.js

Connecting to Claude Code

Mode 1: stdio (Desktop/Web)

stdio mode works in Claude Code Desktop and Web versions.

cd confluence-mcp
npm run install:user

This will install the MCP server in user scope - available in all your Claude Code sessions!

Option 2: Manual CLI Installation

claude mcp add confluence --scope user \
  --env ATLASSIAN_SITE="your-domain.atlassian.net" \
  --env ATLASSIAN_EMAIL="your-email@example.com" \
  --env ATLASSIAN_API_TOKEN="your-token" \
  -- node /absolute/path/to/confluence-mcp/index.js

Replace /absolute/path/to/ with your actual installation path (e.g., /home/username/confluence-mcp).

Configuration File

Add to your Claude Code MCP configuration file:

{
  "mcpServers": {
    "confluence": {
      "command": "node",
      "args": ["/absolute/path/to/confluence-mcp/index.js"],
      "env": {
        "ATLASSIAN_SITE": "your-domain.atlassian.net",
        "ATLASSIAN_EMAIL": "your-email@example.com",
        "ATLASSIAN_API_TOKEN": "your-token"
      }
    }
  }
}

Configuration file locations:

  • Linux: ~/.config/claude-code/mcp_servers.json or ~/.claude/.mcp.json

  • macOS: ~/Library/Application Support/claude-code/mcp_servers.json

  • Windows: %APPDATA%\claude-code\mcp_servers.json

After configuration, the MCP server is immediately available in all Claude Code sessions!


Mode 2: HTTP (CLI)

HTTP mode is required for Claude Code CLI, as it doesn't support stdio MCP servers.

Step 1: Start HTTP server

cd confluence-mcp
npm run start:http

Or in background:

cd confluence-mcp
node http-server.js &

Server will run on http://localhost:3456 by default. Use PORT environment variable to change.

Step 2: Configure MCP

Add to ~/.claude/.mcp.json:

{
  "mcpServers": {
    "confluence": {
      "type": "http",
      "url": "http://localhost:3456/mcp"
    }
  }
}

Step 3: Restart Claude Code

exit
claude

Health Check

curl http://localhost:3456/health

Should return:

{
  "status": "ok",
  "service": "confluence-mcp-http"
}

Check Status

npm run status
# or
claude mcp list

Quick Reference

See CHEATSHEET.md for quick command examples and QUICKSTART.md for detailed usage guide.

Available Tools

Search & Navigation

  • confluence_search - CQL search across all content

    • Parameters: query (string), limit (number, optional), spaceKey (string, optional)

    • Example: Search for pages with "API" in title within a specific space

  • confluence_list_spaces - List all spaces

    • Parameters: limit (number, optional, default: 25)

    • Returns: List of all Confluence spaces accessible to your account

Read Content

  • confluence_get_page - Get page by ID

    • Parameters: pageId (string)

    • Returns: Complete page data including content, version, metadata, and attachments with download URLs

  • confluence_get_page_by_title - Find page by title and space

    • Parameters: title (string), spaceKey (string)

    • Returns: Page matching the exact title in the specified space, including attachments

  • confluence_get_space - Get space information

    • Parameters: spaceKey (string)

    • Returns: Space metadata and configuration

  • confluence_get_attachments - List page attachments

    • Parameters: pageId (string)

    • Returns: List of all attachments on a page

Create & Edit

  • confluence_create_page - Create a new page

    • Parameters: title (string), spaceKey (string), content (HTML string), parentId (string, optional)

    • Creates a new page in the specified space, optionally as a child of another page

  • confluence_update_page - Update existing page

    • Parameters: pageId (string), title (string), content (HTML string), version (number)

    • Updates a page with new content. Version number must match the current page version.

Metadata

  • confluence_add_labels - Add labels to a page

    • Parameters: pageId (string), labels (array of strings)

    • Adds one or more labels/tags to a page for categorization

Working with Attachments

Pages retrieved via confluence_get_page and confluence_get_page_by_title automatically include attachment information. Each attachment contains:

  • id: Attachment ID (e.g., att1322876959) - used for downloading

  • title: Filename

  • mediaType: MIME type (e.g., image/png, application/pdf)

  • fileSize: Size in bytes

Example attachment structure:

{
  "children": {
    "attachment": {
      "results": [
        {
          "id": "att1322876959",
          "title": "diagram.png",
          "extensions": {
            "mediaType": "image/png",
            "fileSize": 348053
          }
        }
      ]
    }
  }
}

Downloading Attachments

Use the confluence_download_attachment tool with the attachment ID:

// Get page with attachments
const page = await confluence_get_page({ pageId: "1320288861" });

// Find the attachment you need
const attachment = page.children.attachment.results.find(a => a.title === "diagram.drawio");

// Download it
const content = await confluence_download_attachment({
  pageId: "1320288861",
  attachmentId: attachment.id  // e.g., "att1322876959"
});

The download uses the REST API v1 endpoint (/wiki/rest/api/content/{pageId}/child/attachment/{attachmentId}/download) which supports API token authentication, unlike the browser-only download URLs.

Usage Examples

Once connected to Claude Code, you can use natural language to interact with Confluence:

Search for pages

Find all pages about "API documentation" in Confluence

Read a page

Read the contents of Confluence page with ID 12345

Create a new page

Create a new page in the DEV space titled "API Guidelines" with this content:
<h1>API Guidelines</h1>
<p>This document describes our API design principles.</p>

Update a page

Update Confluence page 12345 to add a new section about authentication

Add labels

Add labels "documentation" and "api" to Confluence page 12345

View page with diagrams

Read page 1320288861 and show me all attached diagrams

The response will include download URLs for all images and diagrams attached to the page.

CQL Query Examples

The confluence_search tool supports Confluence Query Language (CQL):

type=page AND title~"API"
type=page AND space=DEV
type=page ORDER BY lastmodified DESC
type=page AND label=documentation
type=page AND creator=currentUser()

API Reference

This MCP server uses the Confluence REST API:

  • Base URL: https://{site}.atlassian.net/wiki/rest/api

  • Authentication: Basic Auth with email + API token

  • API Version: Cloud REST API (stable)

  • Full API Documentation

Troubleshooting

"Authentication failed"

  • Verify your email and API token in .env

  • Ensure the token hasn't expired (API tokens don't expire but can be revoked)

  • Check you're using an API token, not your Atlassian account password

"MCP tools not showing up"

  • Restart Claude Code completely (close and reopen)

  • Check server logs for errors by running node index.js directly

  • Verify configuration with claude mcp list

  • Ensure the full absolute path is used in the configuration

"Permission denied" errors

  • Ensure your Atlassian account has access to the requested spaces/pages

  • Some operations require specific permissions (e.g., space admin for creating pages)

  • Check space permissions in Confluence web UI

"Page version conflict"

  • When updating a page, you must provide the current version number

  • Get the current version with confluence_get_page first

  • The server will automatically increment the version by 1

Content Format

Confluence pages use Storage Format (HTML with Confluence macros). For simple pages, standard HTML works:

<h1>Heading</h1>
<p>Paragraph with <strong>bold</strong> and <em>italic</em> text.</p>
<ul>
  <li>Bullet point 1</li>
  <li>Bullet point 2</li>
</ul>
<pre><code>Code block</code></pre>

For advanced features, see Confluence Storage Format documentation.

Architecture

Built on:

The server runs as a stdio-based MCP server, communicating with Claude Code via JSON-RPC 2.0 over standard input/output.

Development

Project Structure

confluence-mcp/
ā”œā”€ā”€ index.js              # Main MCP server implementation
ā”œā”€ā”€ package.json          # Dependencies and scripts
ā”œā”€ā”€ test-confluence.js    # Confluence API connectivity tests
ā”œā”€ā”€ test-mcp.js           # MCP protocol tests (WIP)
ā”œā”€ā”€ .env.example          # Example configuration
ā”œā”€ā”€ .env                  # Your configuration (gitignored)
└── README.md             # This file

Running Tests

# Test Confluence API directly
node test-confluence.js

# Test MCP server via stdio
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"0.1.0","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | node index.js

Contributing

Contributions welcome! Please:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Make your changes with tests

  4. Commit your changes (git commit -m 'feat: add amazing feature')

  5. Push to the branch (git push origin feature/amazing-feature)

  6. Open a Pull Request

Known Limitations

  1. Attachment uploads - Not yet implemented (requires multipart/form-data encoding)

  2. Rich text formatting - Only basic HTML supported, Confluence macros can be complex

  3. Pagination - Large result sets are limited by the limit parameter

  4. Permissions - API returns only content accessible to the authenticated user

License

ISC

Acknowledgments

Support


Created by: gkrauchunas-arlo
Status: Stable v1.0.0 - All core features implemented and tested

Available Tools

9 tools
confluence_add_labelsB

Add labels (tags) to a Confluence page

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe ID of the page
labelsYesArray of label names to add

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. Only states 'add labels' without clarifying whether labels are appended or replaced, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise, but lacks structure and front-loading of critical details.

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?

Simple tool with two straightforward parameters. Missing details on return value or success indication, but adequate for basic understanding.

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 covers 100% of parameters with basic descriptions. Tool description adds no additional meaning beyond schema, so baseline 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?

Clear verb ('Add labels') and resource ('Confluence page'), distinct from sibling tools which focus on page creation, retrieval, and search.

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. Does not mention prerequisites, limitations, or 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.

confluence_create_pageB

Create a new Confluence page in a specific space

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the new page
spaceKeyYesThe key of the space where the page will be created
contentYesThe page content in Confluence storage format (HTML)
parentIdNoOptional ID of the parent page (creates a child page)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description must carry the burden. It only says 'Create', implying mutation, but does not disclose permissions, side effects, or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise, one sentence with clear purpose. Front-loaded but could be slightly more descriptive without losing conciseness.

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?

No output schema, but description does not explain what the tool returns (e.g., page ID). Missing context about behavior after creation.

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%, so baseline 3. The description adds no extra meaning beyond what the schema already provides for parameters.

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 'Create', the resource 'a new Confluence page', and the scope 'in a specific space', which distinguishes it from siblings like update_page or get_page.

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 or when not to use this tool. Does not mention alternatives or prerequisites, such as needing an existing space or parent page.

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

confluence_get_attachmentsB

Get list of attachments for a Confluence page

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe ID of the page

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description is minimal and does not disclose behavioral traits like pagination, limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no waste, but could include more detail without harming conciseness.

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?

No output schema, no annotations; description does not explain return value structure or pagination, leaving gaps for a list operation.

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% with pageId described; tool description adds no extra meaning beyond the schema, meeting baseline.

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?

Description clearly states verb 'Get list' and resource 'attachments for a Confluence page', distinguishing it from siblings like confluence_add_labels or confluence_create_page.

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; lacks context about prerequisites or constraints.

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

confluence_get_pageA

Get a Confluence page by ID including its content, version, and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe ID of the page to retrieve

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It indicates a read operation but omits behavioral details such as required permissions, whether the operation is destructive, rate limits, or error handling.

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 that is concise and front-loaded with the key action and resource. No extraneous information.

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 no output schema, description usefully lists returned fields (content, version, metadata). However, it lacks details on response structure, potential errors, or pagination behavior. For a simple get by ID, it is mostly adequate but could be more comprehensive.

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 the single parameter 'pageId', which already has a clear description. The tool description adds no additional semantic value beyond what is in 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?

Description clearly states verb 'get', resource 'Confluence page by ID', and lists returned fields 'content, version, and metadata'. Distinguishes from sibling 'confluence_get_page_by_title' which retrieves by title.

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?

Implies use when page ID is known, but does not explicitly state when to use this tool over alternatives like 'confluence_get_page_by_title' or provide context on prerequisites or exclusions.

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

confluence_get_page_by_titleB

Find a Confluence page by its title and space key

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe exact title of the page
spaceKeyYesThe key of the space containing the page

TDQS

B3.2/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 full burden. It only says 'find', but does not disclose behavior on missing pages, return format (content vs metadata), or side effects. Highly insufficient for a retrieval 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?

Single short sentence with no unnecessary words. Efficiently conveys 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?

Tool has no output schema and 2 required params. Description does not specify what is returned (e.g., page content, metadata) or behavior on not found. Missing critical return value information for effective use.

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 already cover both parameters (title and spaceKey) with clear explanations. Description adds no extra meaning, but schema coverage is 100%, so baseline 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 (find), resource (Confluence page), and identifiers (title and space key). It distinguishes from siblings like 'confluence_get_page' which likely uses page ID, and 'confluence_search' which is broader.

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 like 'confluence_get_page' (by ID) or 'confluence_search'. No explicit context or exclusion criteria provided.

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

confluence_get_spaceB

Get information about a specific Confluence space

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceKeyYesThe key of the space to retrieve

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only says 'Get information', failing to disclose behavioral traits like return format, authentication requirements, rate limits, or potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently states the purpose. It is not verbose, but could include more detail without being wasteful.

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?

The tool has no output schema and no annotations, yet the description provides no hint about return values, pagination, or related data. This under-specifies the behavior for an agent.

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?

Input schema has 100% coverage for the single parameter 'spaceKey' with a description. The tool description adds no extra meaning beyond the schema, so baseline 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 'Get information about a specific Confluence space', which uses a specific verb and resource, and distinguishes from sibling tools like 'list_spaces' (list vs. get specific) and 'get_page' (different resource).

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?

Usage is implied: use when needing info on a specific space. There is no explicit guidance on when to use this vs. alternatives (e.g., 'list_spaces' for all spaces) or prerequisites, which leaves some ambiguity.

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

confluence_list_spacesA

List all Confluence spaces accessible to the user

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

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so description carries full burden. It mentions 'accessible to the user' implying personalization, but lacks details on pagination, rate limits, or edge cases.

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 redundant words. Perfectly concise for the tool's simplicity.

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?

For a simple list tool with one optional parameter and no output schema, the description is adequate. Could mention pagination or return format but not necessary.

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%, with limit parameter already described. Description adds no extra meaning 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 action (list) and resource (spaces), and distinguishes from sibling tools like get_space (specific) and search (content).

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 vs 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.

confluence_update_pageC

Update an existing Confluence page

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe ID of the page to update
titleYesThe new title for the page
contentYesThe new content in Confluence storage format (HTML)
versionYesCurrent version number of the page (will be incremented)

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description should detail behavioral traits like destructive overwrite, version incrementing, and content format. It only says 'update', omitting key details that are only in the schema (e.g., version requirement, storage format).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise, but lacks structure. It does not front-load critical information like required parameters or behavioral notes, making it minimally adequate.

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 four required parameters and no output schema, the description fails to explain versioning implications, content format, or error handling. It is incomplete for an AI agent to use correctly without additional context.

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%, and baseline is 3. The description adds no extra meaning beyond what the schema already provides, so it neither improves nor harms parameter understanding.

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?

Description uses specific verb 'update' and resource 'existing Confluence page', clearly distinguishing from sibling tools like create_page, get_page, etc. However, it does not specify which fields can be updated, which is partially covered by schema.

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 vs alternatives, no prerequisites mentioned, and no context about required version handling or page existence. The description solely states the action without any decision-making support.

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. 9 tool updatesv1.0.0
    • First observedconfluence_add_labels
    • First observedconfluence_create_page
    • First observedconfluence_get_attachments
    • First observedconfluence_get_page
    • First observedconfluence_get_page_by_title
    • First observedconfluence_get_space
    • First observedconfluence_list_spaces
    • First observedconfluence_search
    • First observedconfluence_update_page

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct resource or action. There is no overlap between getting a page by ID vs title, or between getting a space and listing spaces. All tools have clearly separate purposes.

Naming Consistency5/5

All tool names follow a consistent 'confluence_verb_noun' pattern, using snake_case. Verbs like add, create, get, list, search, and update are applied uniformly, making the set predictable.

Tool Count5/5

With 9 tools, the set is well-scoped for a Confluence MCP server. It covers essential CRUD operations for pages, spaces, attachments, labels, and search without being overly large or sparse.

Completeness4/5

Core workflows are covered: page create/read/update, space retrieval, search, and attachments. Minor gaps like delete operations and label management are absent, but the surface is sufficient for typical use.

Maintenance

ActivityInactive
ResponsivenessNo issues

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/gkrauchunas-arlo/confluence-mcp'

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