Skip to main content
Glama
README.md
# confluence-mcp

MCP server for Confluence REST API. Bearer token (PAT) auth.

API documentation:
- [REST API v1](https://developer.atlassian.com/cloud/confluence/rest/v1/)
- [REST API v2](https://developer.atlassian.com/cloud/confluence/rest/v2/)

## Setup

### Environment variables

| Variable | Required | Description |
|---|---|---|
| `CONFLUENCE_URL` | yes | REST API base URL, e.g. `https://wiki.example.com/rest/api` |
| `CONFLUENCE_TOKEN` | yes | Personal Access Token |
| `CONFLUENCE_VERIFY_SSL` | no | `true` (default) / `false` |

### Creating a Personal Access Token (PAT)

```bash
curl -s -u 'your-username:your-password' \
  -X POST -H "Content-Type: application/json" \
  -d '{"name":"my-mcp-token"}' \
  "https://wiki.example.com/rest/pat/latest/tokens"
# Save rawToken from the response — it won't be shown again
```

### Claude Desktop / Claude Code — uvx (no install)

```json
{
  "mcpServers": {
    "confluence": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/mainpart/confluence-mcp", "confluence-mcp"],
      "env": {
        "CONFLUENCE_URL": "https://wiki.example.com/rest/api",
        "CONFLUENCE_TOKEN": "your-pat-token"
      }
    }
  }
}
```


## Tools (6)

| Tool | Description |
|---|---|
| `get_content_by_id` | Page with body (storage format), ancestors, child pages, attachments |
| `download_attachment` | Download attachment by its `download` link |
| `get_spaces` | List spaces (key + name), filter by type, status, label |
| `get_comments` | Page comments (footer + inline with markerRef and originalSelection) |
| `search` | Full-text search with filters: title, space, type, creator, contributor, label, ancestor, parent, dates |
| `get_user` | User profile by username or userKey |

## Errors

Every tool returns errors as JSON instead of raising, so a caller can branch on
a field: `{"error": "api_error" \| "bad_request" \| "unexpected", "message": "...",
"status": 403}` (`status` only when the API answered with an HTTP code).

## License

MIT

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct resource and action: content, attachment, spaces, comments, search, and user. There is no overlap in purpose, making selection unambiguous.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern, with verbs like get, download, and search. The naming convention is uniform and predictable.

Tool Count5/5

Six tools is a well-scoped number for a Confluence integration, covering core read operations without being excessive. Each tool earns its place.

Completeness3/5

The surface covers read-only operations for content, comments, spaces, users, attachments, and search. However, there are no create, update, or delete operations, which is a notable gap for a full Confluence API.

Maintenance

ActivitySlowing
ResponsivenessNo issues