confluence-mcp
by mainpart
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