Skip to content

cosmix/confluence-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Confluence MCP

A Model Context Protocol (MCP) server for Confluence, enabling AI assistants to interact with Confluence content through a standardized interface.

ℹ️ There is a separate MCP server for Jira

Features

  • Authenticate to Confluence using a personal API token
  • Retrieve and search Confluence pages and spaces
  • Create and update Confluence content
  • Retrieve and add comments to pages
  • Retrieve and add attachments to pages
  • Clean and transform Confluence content for AI consumption
  • Handle API communication, error handling, and data transformation
  • Basic rate limiting to prevent API abuse

Prerequisites

  • Bun (v1.0.0 or higher)
  • Confluence account with API access

Installation

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

# Install dependencies
bun install

# Build the project
bun run build

Configuration

To use this MCP server, you need to set the following environment variables:

CONFLUENCE_API_TOKEN=your_api_token
CONFLUENCE_BASE_URL=your_confluence_instance_url  # e.g., https://your-domain.atlassian.net/wiki
CONFLUENCE_USER_EMAIL=your_email

Claude Desktop / Cline Configuration

Add this configuration to your settings file:

{
  "mcpServers": {
    "confluence": {
      "command": "bun",
      "args": ["/absolute/path/to/confluence-mcp/dist/index.js"],
      "env": {
        "CONFLUENCE_API_TOKEN": "your_api_token",
        "CONFLUENCE_BASE_URL": "your_confluence_instance_url/wiki",
        "CONFLUENCE_USER_EMAIL": "your_email"
      }
    }
  }
}

Development

# Run in development mode
bun run dev

# Run tests
bun test

Available Tools

The Confluence MCP server exposes the following tools:

get_page

Retrieve a Confluence page by ID. Format refers to the return format of the content and can be text or markdown.

{
  "pageId": "123456",
  "format": "text"
}

search_pages

Search for Confluence pages using CQL (Confluence Query Language). Format refers to the return format of the content and can be text or markdown.

{
  "query": "space = DEV and label = documentation",
  "limit": 10,
  "format": "text"
}

get_spaces

List all available Confluence spaces.

{
  "limit": 50
}

create_page

Create a new Confluence page. The parentId is optional and can be used to create a child page under an existing page.

{
  "spaceKey": "DEV",
  "title": "New Page Title",
  "content": "<p>Page content in Confluence Storage Format (XHTML)</p>",
  "parentId": "123456" 
}

update_page

Update an existing Confluence page.

{
  "pageId": "123456",
  "title": "Updated Page Title",
  "content": "<p>Updated content in Confluence Storage Format (XHTML)</p>",
  "version": 1
}

get_comments

Retrieve comments for a specific Confluence page. Format refers to the return format of the content and can be text or markdown.

{
  "pageId": "123456",
  "limit": 25,
  "format": "text"
}

add_comment

Add a comment to a Confluence page. The parentId is optional for creating threaded replies.

{
  "pageId": "123456",
  "content": "<p>This is a new comment.</p>",
  "parentId": "789012" 
}

get_attachments

Retrieve attachments for a specific Confluence page.

{
  "pageId": "123456",
  "limit": 25
}

add_attachment

Add an attachment to a Confluence page. The fileContentBase64 should be the base64 encoded string of the file content.

{
  "pageId": "123456",
  "filename": "document.pdf",
  "fileContentBase64": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+P...",
  "comment": "Uploaded new version of the document"
}

LICENCE

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

About

A Model Context Protocol server for Confluence.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published