Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CONFLUENCE_EMAILYesAtlassian account email used for Basic Auth
CONFLUENCE_BASE_URLYesThe Confluence Cloud site base URL, e.g. https://example.atlassian.net
CONFLUENCE_API_TOKENYesAtlassian API token
CONFLUENCE_ALLOW_RAW_WRITENoSet to 'true' to enable raw POST/PUT/PATCH/DELETE. Defaults to false.false
CONFLUENCE_ALLOW_CUSTOM_DOMAINNoSet to 'true' if using a managed custom domain rather than *.atlassian.net. Defaults to false.false
CONFLUENCE_ALLOW_LOCAL_FILE_UPLOADNoSet to 'true' to enable local file uploads as attachments. Defaults to false.false
CONFLUENCE_ALLOW_DESTRUCTIVE_OPERATIONSNoSet to 'true' to enable destructive operations like page delete/purge/raw DELETE. Defaults to false.false

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
confluence_get_content_treeA

HIGH-LEVEL: Get a page or folder hierarchy in one MCP call, rendered as an indented text tree (title [id], a trailing / marks folders). Prefer this over recursively calling confluence_list_children: the server reads v2 descendants, consumes cursor pagination, and rebuilds the hierarchy. output_mode=compact (default) returns the deepest view that fits the output budget and lists collapsed branches in omittedBranches, so a follow-up call can expand only what matters; output_mode=outline returns just the direct children with child counts and is the cheapest way to map a large or unknown tree first; output_mode=detailed returns raw node objects and is only worth it when parentId, childPosition or status are needed. Retained document versions, which Confluence stores as "Versions of ..." child content, are excluded by default so history cannot consume the item budget ahead of sibling branches; set include_version_history=true to include them, and status.excludedVersionHistory reports what was skipped. status separates fetchedItems from renderedItems and names every truncationReason. When status.nextCursor is returned, pass it back as cursor with the same root_id, depth and output_mode to continue the traversal; when truncationReasons contains output_budget, raising max_chars renders more of what was already fetched without extra API calls.

confluence_search_and_fetchA

HIGH-LEVEL: Find pages and read their bodies in one MCP call. Prefer this over confluence_search followed by confluence_get_page per result. Pass a plain query with search_mode instead of writing CQL: auto (default) tries exact title, then title prefix, then full text and stops at the first mode that matches, which keeps identifiers such as codes or part numbers from being diluted by full-text tokenization; exact_title, title_prefix and full_text pin one strategy; cql is the escape hatch for a hand-written query. strategy.cqlUsed reports what actually ran. Non-page or failed fetches come back as partial results.

confluence_get_page_contextA

HIGH-LEVEL: Gather the information commonly needed to understand one page in one MCP call: body/current version plus optional ancestors, attachments, and comments. Prefer this over calling several page context primitives separately; optional section failures are returned with partial status.

confluence_get_space_overviewA

HIGH-LEVEL: Get space metadata and the homepage/root content tree in one MCP call. Prefer this when first learning a space instead of listing spaces, fetching the space, and recursively listing children. Provide either space_id or space_key; with space_key (for example DOCS) the server resolves the numeric space id itself. status.nextCursor can be passed back as cursor to continue the tree traversal. The tree is always budgeted and reports partial/truncated state.

confluence_get_comment_threadA

HIGH-LEVEL: Get one footer or inline comment plus its reply tree in one MCP call. Prefer this over repeatedly calling confluence_get_comment and child-comment endpoints. max_depth and max_items bound recursive traversal; partial/truncated status is explicit.

confluence_searchA

Primitive: search Confluence content with raw CQL when only compact search metadata is needed, or when the query needs fields the high-level tool does not expose (label, space, type, ancestor, lastmodified). For search plus page bodies, and for plain queries that should not be hand-written as CQL, prefer confluence_search_and_fetch. CQL matching: title = "Exact Title" matches the whole title; title ~ "Prefix*" matches a partial title; text ~ "words" searches full text. Full text is tokenized, so an identifier such as AB12-C also matches pages containing only its fragments: when the exact title is known, try title = first, then title ~ "...", and use text ~ only as the fallback. Combine with and/or, for example space = "DOCS" and title ~ "Report".

confluence_list_pagesC

List Confluence pages with optional space, title, status, ID, and body format filters. Use cursor from the previous response for the next page.

confluence_get_pageA

Primitive: get one Confluence page by ID. Use it when a single page body or a specific field set is all that is needed. For the page plus its ancestors, attachments, or comments, prefer confluence_get_page_context.

confluence_get_contentA

Get a generic Confluence content item through REST API v1 when v2 does not expose the needed content shape or expansion.

confluence_list_spacesC

List Confluence spaces with optional key, type, status, and description format filters.

confluence_get_spaceA

Primitive: get one Confluence space by ID when only the space record is needed. When first understanding a space and its structure, prefer confluence_get_space_overview, which also accepts a space key.

confluence_get_folderA

Get one Confluence folder by ID, optionally including direct children, operations, properties, or collaborators.

confluence_create_folderB

Create a folder in a Confluence space, optionally under a parent page or folder.

confluence_list_childrenA

Primitive: list one direct level of page or folder children. Use it when exactly one immediate level is needed, or when the caller wants to drive cursor pagination itself. For recursive hierarchy exploration prefer confluence_get_content_tree; for a large or unknown hierarchy call it with output_mode=outline first and expand only the branches that matter.

confluence_list_descendantsA

Primitive: list one paginated descendants response below a page or folder, in flat top-to-bottom order. Returns the API response as-is, including the "Versions of ..." containers Confluence uses for retained document versions; set include_version_history=false to drop those and everything under them from this page of results. Use it when a raw page of descendants or manual cursor control is needed. For a rendered hierarchy with pagination handled server-side, and with version history excluded by default, prefer confluence_get_content_tree.

confluence_get_ancestorsA

Primitive: get the ancestor chain for a page or folder. When the surrounding page context is also needed, prefer confluence_get_page_context.

confluence_list_attachmentsA

Primitive: list attachments for a page with optional filename, media type, status, and cursor filters. For attachments together with the page body and comments, prefer confluence_get_page_context.

confluence_get_attachmentB

Get attachment metadata and optional version, labels, properties, operations, or collaborators.

confluence_list_commentsA

Primitive: list root footer or inline comments on a page. For one discussion and all bounded replies, prefer confluence_get_comment_thread; use this for a single page-level comment list.

confluence_get_commentA

Primitive: get one footer or inline comment by ID. For the comment plus its bounded reply tree, prefer confluence_get_comment_thread.

confluence_list_versionsB

List page version history with optional body representation and cursor pagination.

confluence_get_page_versionC

Get details for one historical page version.

confluence_get_content_historyB

Get v1 history details for generic Confluence content, useful when the v2 page model does not expose the required history shape.

confluence_create_pageB

Create a published or draft Confluence page in a space, optionally under a parent page. Body is Confluence storage or Atlas document format.

confluence_update_pageA

Update a page body and title using an explicit current version number. Read the page first when unsure; Confluence requires optimistic versioning.

confluence_update_page_titleC

Update only a page title using the v2 title endpoint and explicit version number.

confluence_create_commentC

Create a footer comment on a page or as a reply to an existing comment.

confluence_update_commentA

Update a footer comment body. Use confluence_get_comment first if you need to inspect its current version.

confluence_create_inline_commentC

Create an inline comment on a page. inline_comment_properties should contain the selection coordinates required by the Confluence v2 API.

confluence_update_inline_commentC

Update or resolve an inline comment.

confluence_delete_pageA

Move a page to the Confluence trash, or permanently purge a trashed page. Disabled unless CONFLUENCE_ALLOW_DESTRUCTIVE_OPERATIONS=true and confirm=true.

confluence_upload_attachmentA

Upload a local file to a page using REST API v1. Disabled unless CONFLUENCE_ALLOW_LOCAL_FILE_UPLOAD=true and confirm=true; the file path is read by this local process.

confluence_raw_requestA

Call an allowlisted Confluence REST API path for an operation not covered by a named tool. Path must be under /wiki/api/v2/ or /wiki/rest/api/. GET is enabled by default; non-GET requires CONFLUENCE_ALLOW_RAW_WRITE=true and confirm=true, and DELETE also requires destructive opt-in.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 33 tools

Disambiguation5/5

All 33 tools have clearly defined, non-overlapping purposes. High-level composite tools (e.g., confluence_get_content_tree, confluence_search_and_fetch) are explicitly distinguished from the primitives they wrap (e.g., confluence_list_children, confluence_search), with guidance on when to prefer each. No two tools appear to do the same thing.

Naming Consistency5/5

Every tool follows the same `confluence_` prefix plus a verb_noun convention (e.g., list_pages, get_page, create_page, update_page, delete_page, upload_attachment). Even composite tools like get_content_tree and get_space_overview fit the pattern with descriptive nouns. No mixed camelCase or inconsistent verbs observed.

Tool Count2/5

With 33 tools, this server exceeds the 25+ threshold that signals an overly heavy tool surface. While each tool is individually useful, the large number increases the risk of agent confusion and selection fatigue. A few composite tools absorb some redundancy, but the overall count is still high for a typical MCP server.

Completeness4/5

The tool surface covers core Confluence operations thoroughly: page and comment CRUD, folder management, attachments, version history, search, and content tree traversal. Minor gaps exist (e.g., no explicit move/copy page, no label management), but the raw_request escape hatch mitigates these, so the set is nearly complete for common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues