Confluence MCP Server
# Confluence MCP Server
A Model Context Protocol (MCP) server that provides secure access to Atlassian Confluence through its REST API.
## Using with Claude Code
To use this MCP server with Claude Code, add it to your MCP configuration file:
### Option 1: Using claude mcp add-json (recommended)
The easiest way to add this server is using the `claude mcp add-json` command:
```bash
# First, build the server
npm run build
# Then add it using claude mcp add-json
claude mcp add-json confluence
```
When prompted, paste the following JSON configuration:
```json
{
"command": "node",
"args": ["/path/to/confluence_mcp/dist/index.js"],
"env": {
"CONFLUENCE_BASE_URL": "https://your-domain.atlassian.net",
"CONFLUENCE_USERNAME": "your-email@domain.com",
"CONFLUENCE_API_TOKEN": "your-api-token",
"ALLOWED_SPACES": "SPACE1,SPACE2,SPACE3"
}
}
```
### Option 2: Manual configuration
Alternatively, you can manually edit your MCP configuration file (`~/.config/claude-code/mcp_servers_config.json`):
```json
{
"mcpServers": {
"confluence": {
"command": "node",
"args": ["/path/to/confluence_mcp/dist/index.js"],
"env": {
"CONFLUENCE_BASE_URL": "https://your-domain.atlassian.net",
"CONFLUENCE_USERNAME": "your-email@domain.com",
"CONFLUENCE_API_TOKEN": "your-api-token",
"ALLOWED_SPACES": "SPACE1,SPACE2,SPACE3"
}
}
}
}
```
### Option 3: Using tsx for development
For development or if you prefer running TypeScript directly:
```json
{
"command": "npx",
"args": ["tsx", "/path/to/confluence_mcp/src/index.ts"],
"env": {
"CONFLUENCE_BASE_URL": "https://your-domain.atlassian.net",
"CONFLUENCE_USERNAME": "your-email@domain.com",
"CONFLUENCE_API_TOKEN": "your-api-token",
"ALLOWED_SPACES": "SPACE1,SPACE2,SPACE3"
}
}
```
### Configuration Notes
- Replace the environment variables with your actual Confluence credentials
- The `ALLOWED_SPACES` should be a comma-separated list of space keys you want to allow access to
- Restart Claude Code after updating the configuration
- Make sure you have built the project first with `npm run build` if using Option 1
Once configured, you can use commands like:
- "Search for API documentation in Confluence"
- "Create a new page in the DEV space"
- "Show me all pages in the PROJ space"
## Quick Start
1. **Install dependencies:**
```bash
npm install
```
2. **Configure environment:**
```bash
cp .env.example .env
# Edit .env with your Confluence credentials
```
3. **Build and run:**
```bash
npm run build
npm start
```
Or for development:
```bash
npm run dev
```
## Configuration
Create a `.env` file with your Confluence credentials:
```env
CONFLUENCE_BASE_URL=https://your-domain.atlassian.net
CONFLUENCE_USERNAME=your-email@domain.com
CONFLUENCE_API_TOKEN=your-api-token
ALLOWED_SPACES=SPACE1,SPACE2,SPACE3
DEBUG=false
```
### Getting an API Token
1. Go to [Atlassian Account Settings](https://id.atlassian.com/manage-profile/security/api-tokens)
2. Click "Create API token"
3. Give it a descriptive label
4. Copy the generated token (save it securely!)
## Available Tools
- **search_confluence** - Search content across allowed spaces
- **get_page** - Retrieve a specific page by ID
- **create_page** - Create a new page
- **update_page** - Update an existing page
- **delete_page** - Delete a page
- **list_spaces** - List accessible spaces
- **get_space_content** - Get pages from a specific space
## Security Features
- **API Token Authentication** - Secure access using Atlassian API tokens
- **Space Restrictions** - Configurable allowed spaces list
- **Permission Validation** - Respects Confluence permissions
- **Request Validation** - Input validation and sanitization
## Development
```bash
# Type checking
npm run typecheck
# Linting
npm run lint
# Testing
npm test
# Build
npm run build
```TDQS
Scored across 10 tools
Most tools have distinct purposes, but there is some potential confusion between get_space_by_id and get_space_by_key which serve similar functions with different identifiers, and get_space_content overlaps conceptually with listing pages in a space. However, descriptions clarify the distinctions, preventing major misselection.
All tool names follow a consistent verb_noun pattern with clear, descriptive actions (e.g., create_page, get_page, list_spaces). There are no deviations in style or convention, making the set predictable and easy to understand.
With 10 tools, the server is well-scoped for managing Confluence content, covering core operations like CRUD for pages, space management, and search. Each tool has a clear role without bloat or redundancy.
The tool set provides strong coverage for page and space operations, including create, read, update, move, and search. Minor gaps exist, such as no delete_page tool or advanced space management (e.g., create_space), but agents can handle most workflows effectively.