confluence-mcp
by YOSSTM
README.md
# confluence-mcp
A local MCP server for Confluence (Data Center/Server compatible) with token-based auth.
This server exposes a compact set of tools for page lookup, CQL search, page creation/updates, comments, and space discovery.
## What this server provides
- `confluence_get_page` — get a page by ID, or by spaceKey + title
- `confluence_search` — search content with CQL
- `confluence_create_page` — create a page
- `confluence_update_page` — update a page's title/body (auto-increments version)
- `confluence_add_comment` — add a comment to a page
- `confluence_list_spaces` — list spaces (useful to discover space keys)
## Requirements
- Node.js `>=20`
- Confluence account with API access
- Space/page permissions matching your actions (create, update, comment, etc.)
## Configuration
Set environment variables (for example in `.env`):
```env
# Required
CONFLUENCE_BASE_URL=https://your-confluence-host
# Optional (defaults shown)
CONFLUENCE_AUTH_TYPE=bearer
CONFLUENCE_DEFAULT_SPACE_KEY=
# For bearer auth (Data Center/Server personal access token)
CONFLUENCE_PAT=
# For basic auth (Confluence Cloud email + API token)
CONFLUENCE_EMAIL=
CONFLUENCE_API_TOKEN=
```
### Auth modes
- `CONFLUENCE_AUTH_TYPE=bearer` (default)
- Requires `CONFLUENCE_PAT` (Data Center/Server personal access token)
- `CONFLUENCE_AUTH_TYPE=basic`
- Requires `CONFLUENCE_EMAIL` + `CONFLUENCE_API_TOKEN`
Page and comment bodies use Confluence [storage format](https://confluence.atlassian.com/doc/confluence-storage-format-790796544.html) (XHTML-based), for example `<p>Hello world</p>`.
## Install and run
```bash
npm install
npm run build
npm start
```
Development mode:
```bash
npm run dev
```
Smoke test:
```bash
npm run test:confluence
```
## MCP client config example
```json
{
"mcpServers": {
"confluence": {
"command": "node",
"args": ["/absolute/path/to/confluence-mcp/dist/index.js"],
"env": {
"CONFLUENCE_BASE_URL": "https://confluence.your-company.local",
"CONFLUENCE_AUTH_TYPE": "bearer",
"CONFLUENCE_PAT": "your-personal-access-token",
"CONFLUENCE_DEFAULT_SPACE_KEY": "YOUR_SPACE_KEY"
}
}
}
}
```
## Tool inputs
### `confluence_get_page`
By ID:
```json
{ "pageId": "123456" }
```
By space + title:
```json
{ "spaceKey": "YOUR_SPACE_KEY", "title": "Sprint Planning Notes" }
```
### `confluence_search`
Input:
```json
{
"cql": "space = YOUR_SPACE_KEY AND type = page ORDER BY lastmodified DESC",
"start": 0,
"limit": 20
}
```
### `confluence_create_page`
Required fields:
- `title`
- `body` (storage format)
Optional fields:
- `spaceKey` (falls back to `CONFLUENCE_DEFAULT_SPACE_KEY`)
- `parentId` (create as a child page)
Example input:
```json
{
"title": "[MCP] Example page",
"body": "<p>Created from confluence-mcp</p>",
"parentId": "123456"
}
```
### `confluence_update_page`
Provide at least one of `title` or `body`. The current version is fetched automatically and incremented.
```json
{
"pageId": "123456",
"body": "<p>Updated content</p>"
}
```
### `confluence_add_comment`
Input:
```json
{
"pageId": "123456",
"comment": "<p>Investigation started</p>"
}
```
### `confluence_list_spaces`
Input:
```json
{ "limit": 25 }
```
## Troubleshooting
- **Update fails with version conflict (409)**
- Another edit happened concurrently. Re-fetch the page (`confluence_get_page`) and retry.
- **Create page fails with space permission errors (403)**
- These are Confluence permission-scheme restrictions for your user/token, not MCP runtime errors.
- **CQL search returns no results**
- Confirm the space key casing and that `type = page` (or `type = comment`, etc.) matches what you expect.
TDQS
B3.4/5.0
Scored across 6 tools
Disambiguation5/5
Each tool has a clear, distinct purpose: retrieving, searching, creating, updating, commenting, and listing spaces. There is no overlap or ambiguity between them.
Naming Consistency4/5
Most tools follow the verb_noun pattern (get_page, create_page, update_page, add_comment, list_spaces), but 'search' lacks a noun complement, creating a minor inconsistency.
Tool Count5/5
With 6 tools, the server is well-scoped for Confluence operations without being bloated or sparse. Each tool covers an essential action.
Completeness4/5
The set covers core page lifecycle (create, read, update) and adds useful search, comment, and space discovery capabilities. However, there is no delete page operation, a notable gap in CRUD completeness.
Maintenance
ActivitySlowing
ResponsivenessNo issues