confluence-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CONF_MODE | No | Deployment mode: 'cloud' or 'server' (default 'server') | server |
| CONF_TOKEN | No | API token (Cloud) or bearer token (Server) | |
| CONF_BASE_URL | Yes | Confluence base URL, e.g. https://confluence.example.com | |
| CONF_PASSWORD | No | Password (used with CONF_USERNAME for basic auth) | |
| CONF_USERNAME | No | Username for basic auth (required for Cloud; for Server when using basic auth) | |
| CONF_AUTH_MODE | No | Authentication mode: 'auto', 'basic', or 'bearer' (default 'auto') | auto |
| CONF_DEFAULT_SPACE | No | Default space key (optional) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| confluence_get_current_userA | Get current authenticated Confluence user (whoami). |
| confluence_search_pagesB | Search Confluence pages by keyword. Returns unified fields: id, type, title, spaceKey, url, version. |
| confluence_execute_cql_searchB | Execute raw Confluence CQL search. Returns unified fields: id, type, title, spaceKey, url, version. |
| confluence_get_pageB | Get a Confluence page by ID. Returns unified fields and bodyStorageValue. |
| confluence_get_page_outlineA | Get a page outline by parsing headings from body.storage. Returns unified fields plus headings[] for low-token navigation. |
| confluence_get_page_sectionA | Get a single page section by heading. The server fetches full storage internally but only returns the matched section to save tokens. |
| confluence_get_page_anchor_blockA | Get a page block between two invisible anchor macros. Returns only the matched block to save tokens. |
| confluence_create_pageC | Create a Confluence page. Supports optional parentId. Returns unified fields. |
| confluence_update_pageA | Update a Confluence page content. Auto increments version. Returns unified fields. |
| confluence_update_page_sectionA | Update one page section by heading. The server fetches full storage internally, replaces the matched range, and writes back the whole page so the model only sends the section content. |
| confluence_preview_page_section_updateA | Preview a heading-based section update. Returns the currently matched section, the proposed replacement, and a hash that must be echoed to the confirmed update call. |
| confluence_update_page_section_confirmedA | Confirm a heading-based section update after preview. The server re-reads the page and only updates when the preview hash still matches current content. |
| confluence_stage_page_updateA | Stage a full-page update in MCP server memory without writing to Confluence. Use list/get to review, commit to save, or discard to drop it. |
| confluence_stage_page_section_updateA | Stage a heading-based section update in MCP server memory without writing to Confluence. Returns a draftId plus old/new/diff content for review. |
| confluence_stage_page_anchor_block_updateA | Stage an anchor-based block update in MCP server memory without writing to Confluence. Returns a draftId plus old/new/diff content for review. |
| confluence_list_pending_page_updatesA | List staged page updates kept in MCP server memory. These drafts have not been written to Confluence. |
| confluence_get_pending_page_updateA | Get one staged page update by draftId. The draft has not been written to Confluence. |
| confluence_discard_pending_page_updateA | Discard one staged page update by draftId without writing it to Confluence. |
| confluence_commit_pending_page_updateA | Commit one staged page update to Confluence by draftId after re-reading and hash-checking the current content. |
| confluence_add_anchor_block_to_sectionA | Insert invisible start/end anchor macros around a heading-based section so later updates can target a stable block instead of relying on heading matching. |
| confluence_preview_page_anchor_block_updateA | Preview an anchor-based block update. Returns the current block, the proposed replacement, and a hash that must be echoed to the confirmed update call. |
| confluence_update_page_anchor_block_confirmedA | Confirm an anchor-based block update after preview. The server re-reads the page and only updates when the preview hash still matches current content. |
| confluence_upload_attachmentA | Upload an attachment to a Confluence page. Supports local filePath or base64Data; same-name files are updated by default. Returns attachment fields and image storage markup when applicable. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Each tool has a unique purpose clearly indicated by its name and description. There is no overlap between tools like create_page, update_page, stage_page_update, etc., as they target different actions (create, read, update, stage, commit) and granularities (page, section, anchor block).
All tools follow the consistent pattern 'confluence_verb_noun' (e.g., confluence_create_page, confluence_get_page_section). The verbs are specific and the nouns clearly indicate the target, forming a predictable and uniform naming scheme.
With 23 tools, the server is on the higher side but justifiable for the domain. The staging/preview/commit workflow for sections and anchor blocks adds necessary tools for safe editing, but the count is slightly above the ideal range for a focused server.
The tool surface covers page creation, reading (with sections/blocks), updating, and attachment upload, plus search and user info. However, a delete page tool is missing, and updating page titles is not explicitly supported, leaving notable gaps in lifecycle coverage.