Confluence MCP Server
by aaronsb
Verified
# Confluence Cloud MCP Server
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.
[](https://github.com/aaronsb/confluence-cloud-mcp/actions/workflows/ci-cd.yml)
## Features
- 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
## Setup
### Option 1: Using Docker (Recommended)
The easiest way to use this server is with the pre-built Docker image:
```bash
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
```
### Option 2: Building Locally
1. Clone the repository:
```bash
git clone https://github.com/aaronsb/confluence-cloud-mcp.git
cd confluence-cloud-mcp
```
2. Build and run using the local build script:
```bash
# Build the Docker image
./scripts/build-local.sh
# Run the server
CONFLUENCE_API_TOKEN=your-token CONFLUENCE_EMAIL=your-email ./scripts/run-local.sh
```
### Option 3: From Source
1. Install dependencies:
```bash
npm install
```
2. 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
```
3. Build the project:
```bash
npm run build
```
4. Run the server:
```bash
node build/index.js
```
## Usage
The server can be integrated with MCP-compatible AI assistants by adding it to their MCP configuration:
```json
{
"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](llms-install.md) file for detailed installation instructions.
## Available Tools
### Space Tools
- `list_confluence_spaces`: List all spaces in Confluence
- `get_confluence_space`: Get details about a specific space
### Page Tools
- `list_confluence_pages`: List pages in a space
- `get_confluence_page`: Get a specific page with its content (now includes Markdown conversion)
- `create_confluence_page`: Create a new page in a space
- `update_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 & Label Tools
- `search_confluence_pages`: Search Confluence content using CQL
- `get_confluence_labels`: Get labels for a page
- `add_confluence_label`: Add a label to a page
- `remove_confluence_label`: Remove a label from a page
> **Note**: All tool names follow the [verb]_confluence_[noun] naming convention for consistency and clarity.
## Development
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 implementation
- `src/handlers/` - MCP tool request handlers
- `src/schemas/` - JSON schemas for tool inputs
- `src/types/` - TypeScript type definitions
- `src/utils/` - Utility functions including content format conversion
### CI/CD Pipeline
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
### Local Development
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
## License
MIT