Tools Reference
The Secure MCP Server exposes 8 MCP tools to connected AI clients. This page documents each one - what it does, its parameters, and an example prompt you can give your AI client.
Three things apply to every tool:
- Everything runs as you. Each tool calls the Confluence REST API using your own session token (
api.asUser), so it can only ever see or change content your Confluence account already has permission to - read and write alike. - Availability depends on admin settings. An admin can enable or disable whole categories of tools for the site. If a category is disabled, its tools disappear from your client's tool list and any call to them is rejected. See Admin Guide β Controlling which tools are available.
- Availability also depends on your token. A read-only token reaches only the non-mutating tools; the page-editing and comment tools are hidden from the client and refused if called anyway. See Getting Started β Access level.
The tools fall into four categories, matching the admin toggles:
| Category | Tools | Admin toggle |
|---|---|---|
| Read | confluence_search_pages, confluence_get_spaces, confluence_get_page, confluence_get_page_comments | Read |
| Page editing | confluence_create_page, confluence_update_page | Create pages |
| Comments | confluence_add_comment | Add comments |
| Account info | confluence_get_current_user | Account info |
Storage Format: the page-editing and comment tools accept a body in Confluence Storage Format - an XHTML-based markup using tags like
<p>,<h2>, and<ul><li>. AI clients generally produce this for you; you don't need to write it by hand.
Read toolsβ
confluence_search_pagesβ
Search Confluence pages and blog posts using a CQL query or plain keywords. Returns titles, spaces, and version info.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | A CQL query, or plain natural-language keywords. Plain keywords match on any word (OR), so a short list of terms is safe. |
limit | number | No | Maximum results to return. Default 10, maximum 50. |
start | number | No | Pagination offset. Default 0; increment by limit for the next page. |
Example prompt: "Search Confluence for our Q3 roadmap"
confluence_get_spacesβ
List the Confluence spaces you can access, narrowed by any admin space restrictions.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Maximum number of spaces to return. Default 25. |
type | string | No | Filter by space type: global or personal. |
status | string | No | Filter by space status: current or archived. |
Example prompt: "List the spaces I have access to"
confluence_get_pageβ
Get the full rendered content and metadata (title, space, version, last-modified date, labels) of a page by its ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the Confluence page to retrieve. |
Example prompt: "Show me the content of the 'Onboarding Guide' page"
confluence_get_page_commentsβ
Get the comments on a page, one page of results at a time. Reads footer comments (the ones at the bottom of the page) by default, or inline comments (anchored to highlighted text within the page) with comment_type: "inline".
| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the Confluence page. |
comment_type | string | No | Which list to read: footer (default) or inline. |
limit | number | No | Comments per page. Default 25, maximum 100. |
cursor | string | No | Opaque cursor from a previous response; omit for the first page. |
parent_comment_id | string | No | Read the replies to this comment instead of the page's top-level comments. page_id is still required - it is what the admin space restriction is checked against. |
resolution_status | string | No | Return only inline comments in this state: open, reopened, resolved, dangling, or unresolved (open plus reopened). Requires comment_type: "inline" and cannot be combined with parent_comment_id. |
What comes back:
- Full comment bodies. Text is converted from Storage Format to plain text (tags stripped, entities decoded, line breaks kept) and is never truncated. Each comment shows its date and comment ID.
- Top-level comments only, with reply counts. Confluence returns replies separately, so each top-level comment is labelled with how many replies it has (
- 3 replies; more than 100 shows as100+). A comment with no label has no replies. To read a thread, call the tool again with that comment's ID asparent_comment_id. - When counts are unavailable. On a page with more than 50 top-level comments, or if the count lookup fails, the response says replies "could not be counted" rather than implying there are none.
- Resolution status. A comment whose thread has a resolution state shows it in brackets after the ID -
[open],[reopened],[resolved], or[dangling]. This appears on footer and inline comments alike, but only inline comments can be filtered by it. - Inline anchors. An inline comment also shows the page text it is anchored to, on a
> anchored to: "..."line, clipped at 200 characters. Adanglingcomment has lost its anchor, so no anchor line is shown. - Paging. When more comments exist, the response says so and includes the
cursorto pass on the next call.
Example prompt: "Get the comments on page 12345, and open any thread that has replies"
Example prompt: "Show me the unresolved inline comments on page 12345"
Page-editing toolsβ
confluence_create_pageβ
Create a new Confluence page. The body must be in Confluence Storage Format.
| Parameter | Type | Required | Description |
|---|---|---|---|
space_key | string | Yes | Key of the space to create the page in (e.g. DEV). |
title | string | Yes | Page title. |
content | string | Yes | Page body in Confluence Storage Format. |
parent_page_id | string | No | ID of a parent page to nest the new page under. |
The response confirms the new page's ID and version and includes a link to it, so your AI client can hand you the URL straight away.
Example prompt: "Draft a new page called 'Sprint 24 Notes' in the DEV space summarizing this conversation"
confluence_update_pageβ
Update an existing page. You must supply the page's current version number; the tool increments it for the update.
| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | ID of the page to update. |
title | string | Yes | New page title. |
content | string | Yes | New page body in Confluence Storage Format. |
current_version | number | Yes | The page's current version number (incremented automatically). |
As with page creation, the response includes a link to the updated page alongside its ID and new version number.
Example prompt: "Update page 12345 to add a new section about rollback steps"
Comment toolsβ
confluence_add_commentβ
Add a top-level footer comment to a page, posted as you. The body must be in Confluence Storage Format.
| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | ID of the page to comment on. |
content | string | Yes | Comment body in Confluence Storage Format. |
Example prompt: "Add a comment to page 12345 summarizing the decision we reached"
Account info toolsβ
confluence_get_current_userβ
Report who the session is acting as. Takes no parameters.
This tool always describes you - the account comes from your session token, never from the AI client - so it cannot be used to look up other people.
Returns: display name, account ID, email, account type, timezone, personal space key, and the Confluence site URL and version. Lines for fields Confluence does not return are omitted, and the personal space key is left out if an admin space restriction excludes that space. If the profile lookup itself is refused, the tool still reports your account ID and site rather than failing, which makes it useful for diagnosing a bad connection.
It exists so the AI client knows who it is acting as. That is what lets it resolve "my" and "me" (finding your personal space key before creating a page there, for example), read relative dates like "this week" in your own timezone, and confirm which site and account a session is bound to.
Example prompt: "Which Confluence account and site am I connected as?"
Example prompt: "Create a page in my personal space with these notes"