A Model Context Protocol (MCP) server that provides tools for interacting with Confluence Cloud. This server enables AI assistants to manage Confluence spaces, pages, and content through a standardized interface.
- Space Management
- List spaces
- Get space details
- Page Operations
- Create, read, update pages
- List pages in a space
- Convert page content from Confluence storage format to Markdown
- Search & Labels
- Search content using CQL
- Manage page labels
The easiest way to use this server is with the pre-built Docker image:
docker run --rm -i \
-e CONFLUENCE_API_TOKEN=your-api-token \
-e CONFLUENCE_EMAIL=your-email@domain.com \
-e CONFLUENCE_DOMAIN=your-domain.atlassian.net \
ghcr.io/aaronsb/confluence-cloud-mcp:latest
- Clone the repository:
git clone https://github.com/aaronsb/confluence-cloud-mcp.git
cd confluence-cloud-mcp
- Build and run using the local build script:
# Build the Docker image
./scripts/build-local.sh
# Run the server
CONFLUENCE_API_TOKEN=your-token CONFLUENCE_EMAIL=your-email ./scripts/run-local.sh
- Install dependencies:
npm install
- Configure environment variables:
Create a
.env
file with your Confluence credentials:
CONFLUENCE_DOMAIN=your-domain.atlassian.net
CONFLUENCE_EMAIL=your-email@domain.com
CONFLUENCE_API_TOKEN=your-api-token
- Build the project:
npm run build
- Run the server:
node build/index.js
The server can be integrated with MCP-compatible AI assistants by adding it to their MCP configuration:
{
"mcpServers": {
"confluence": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/aaronsb/confluence-cloud-mcp:latest"],
"env": {
"CONFLUENCE_DOMAIN": "your-domain.atlassian.net",
"CONFLUENCE_EMAIL": "your-email@domain.com",
"CONFLUENCE_API_TOKEN": "your-api-token"
},
"disabled": false,
"autoApprove": []
}
}
}
Note for AI Assistants: If you're an AI assistant like Cline trying to install this MCP server, please refer to the llms-install.md file for detailed installation instructions.
list_confluence_spaces
: List all spaces in Confluenceget_confluence_space
: Get details about a specific space
list_confluence_pages
: List pages in a spaceget_confluence_page
: Get a specific page with its content (now includes Markdown conversion)create_confluence_page
: Create a new page in a spaceupdate_confluence_page
: Update an existing page
The get_confluence_page
tool now automatically converts Confluence storage format content to Markdown, making it easier to work with page content. The conversion handles:
- Headers (h1-h6)
- Lists (ordered and unordered)
- Links
- Emphasis (bold/italic)
- Code blocks
- Tables
- Paragraphs and line breaks
search_confluence_pages
: Search Confluence content using CQLget_confluence_labels
: Get labels for a pageadd_confluence_label
: Add a label to a pageremove_confluence_label
: Remove a label from a page
Note: All tool names follow the [verb]confluence[noun] naming convention for consistency and clarity.
This project is written in TypeScript and follows the MCP SDK conventions for implementing server capabilities. The codebase is organized into:
src/client/
- Confluence API client implementationsrc/handlers/
- MCP tool request handlerssrc/schemas/
- JSON schemas for tool inputssrc/types/
- TypeScript type definitionssrc/utils/
- Utility functions including content format conversion
This project uses GitHub Actions for continuous integration and deployment:
- Automated testing and linting on pull requests
- Automatic Docker image builds on main branch commits
- Multi-architecture image builds (amd64, arm64)
- Container publishing to GitHub Container Registry
For local development, use the provided scripts:
./scripts/build-local.sh
: Builds the project and creates a local Docker image./scripts/run-local.sh
: Runs the local Docker image with your credentials
MIT