Skip to main content
Glama
Olson3R
by Olson3R
README.md
# 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

B3.3/5.0

Scored across 10 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues