Get Page
Get content of a specific Confluence page by its ID, or by its title and space key. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | No | Confluence page ID, full page URL, or tiny link. For example: ‘123456789’, ‘https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title’, or ‘https://example.atlassian.net/wiki/x/N4CIO’. Provide this OR both ‘title’ and ‘space_key’. If page_id is provided, title and space_key will be ignored. |
title | string | No | The exact title of the Confluence page. Use this with ‘space_key’ if ‘page_id’ is not known. |
space_key | string | No | The key of the Confluence space where the page resides (e.g., ‘DEV’, ‘TEAM’). Required if using ‘title’. |
include_metadata | boolean | No | Whether to include page metadata such as creation date, last update, version, and labels. |
convert_to_markdown | boolean | No | Whether to convert page to markdown (true) or return raw Confluence storage XHTML (false). Storage output preserves macros and task metadata for safe round-tripping, but CAUTION: it significantly increases token usage in AI responses. |
| Example: |
{"page_id": "12345678", "include_metadata": true}
Content is returned in Markdown format by default. Set
convert_to_markdown to false to retrieve exact Confluence storage XHTML when macro preservation matters. Use include_metadata for labels, version info, and last modified date. When Confluence supplies version details, the response metadata includes version_author (the author display name) and version_date (the raw ISO 8601 version timestamp).Create Page
Create a new Confluence page.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
space_key | string | Yes | The key of the space to create the page in (usually a short uppercase code like ‘DEV’, ‘TEAM’, or ‘DOC’) |
title | string | Yes | The title of the page |
content | string | No | The content of the page. Format depends on content_format parameter. Can be Markdown (default), wiki markup, storage format, or XHTML storage format. Either ‘content’ or ‘content_file’ must be provided, but not both. |
parent_id | string | No | (Optional) parent page ID. If provided, this page will be created as a child of the specified page |
content_format | string | No | (Optional) The format of the content parameter. Options: ‘markdown’ (default), ‘wiki’, ‘storage’, or ‘xhtml’. Use ‘xhtml’ when providing Confluence XHTML storage format (same as ‘storage’). Wiki format uses Confluence wiki markup syntax |
enable_heading_anchors | boolean | No | (Optional) Whether to enable automatic heading anchor generation. Only applies when content_format is ‘markdown’ |
include_content | boolean | No | (Optional) Whether to include page content in the response. Defaults to false since callers already have the content at create time |
emoji | string | No | (Optional) Page title emoji (icon shown in navigation). Can be any emoji character like ’📝’, ’🚀’, ’📚’. Set to null/None to remove. |
content_file | string | No | (Optional) Absolute or relative filesystem path to read the page body from (UTF-8). Use this instead of ‘content’ when the body is too large to pass comfortably as a tool argument. Mutually exclusive with ‘content’. |
page_width | string | No | (Optional) Page layout width. Options: ‘full-width’, ‘default’. Defaults to null (Confluence default). |
table_layout | string | No | (Optional) Table width preset applied to all markdown tables. Options: ‘full-width’ (1800 px), ‘wide’ (960 px), ‘default’ (760 px). Only applies when content_format is ‘markdown’. |
subtype | string | No | (Optional) Confluence page subtype. Use ‘live’ to create a Confluence Live Doc. Only supported for Confluence Cloud. |
| Example: |
{"space_key": "DEV", "title": "Architecture Decision Record", "content": "## Context\n\nWe need to decide...", "parent_id": "98765432", "subtype": "live"}
Use Markdown for content — it’s auto-converted to Confluence storage format. Specify
parent_id to create as a child page. Set subtype to live on Confluence Cloud to create a Live Doc.Exactly one of
content or content_file must be provided.Update Page
Update an existing Confluence page.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the page to update |
title | string | Yes | The new title of the page |
content | string | No | The new content of the page. Format depends on content_format parameter and may be Markdown (default), wiki markup, storage format, or XHTML storage format. Either ‘content’ or ‘content_file’ must be provided, but not both. |
is_minor_edit | boolean | No | Whether this is a minor edit |
version_comment | string | No | Optional comment for this version |
parent_id | string | No | Optional the new parent page ID |
content_format | string | No | (Optional) The format of the content parameter. Options: ‘markdown’ (default), ‘wiki’, ‘storage’, or ‘xhtml’. Use ‘xhtml’ when providing Confluence XHTML storage format (same as ‘storage’). Wiki format uses Confluence wiki markup syntax |
enable_heading_anchors | boolean | No | (Optional) Whether to enable automatic heading anchor generation. Only applies when content_format is ‘markdown’ |
include_content | boolean | No | (Optional) Whether to include page content in the response. Defaults to false since callers already have the content at update time |
emoji | string | No | (Optional) Page title emoji (icon shown in navigation). Can be any emoji character like ’📝’, ’🚀’, ’📚’. Set to null/None to remove. |
content_file | string | No | (Optional) Absolute or relative filesystem path to read the new page body from (UTF-8). Use this instead of ‘content’ when the body is too large to pass comfortably as a tool argument. Mutually exclusive with ‘content’. |
page_width | string | No | (Optional) Page layout width. Options: ‘full-width’, ‘default’. Defaults to null (preserve existing). |
table_layout | string | No | (Optional) Table width preset applied to all markdown tables. Options: ‘full-width’ (1800 px), ‘wide’ (960 px), ‘default’ (760 px). Only applies when content_format is ‘markdown’. |
| Example: |
{"page_id": "12345678", "title": "Updated Title", "content": "## Updated Content\n\nNew information...", "is_minor_edit": true}
Set
is_minor_edit: true to skip notification emails. The page version is auto-incremented.Exactly one of
content or content_file must be provided.Delete Page
Delete an existing Confluence page.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the page to delete |
Get Page Children
Get child pages and folders of a specific Confluence page. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
parent_id | string | Yes | The ID of the parent page whose children you want to retrieve |
expand | string | No | Fields to expand in the response (e.g., ‘version’, ‘body.storage’). Defaults to ‘version,history’. |
limit | integer | No | Maximum number of child items to return (1-50) |
include_content | boolean | No | Whether to include the page content in the response |
convert_to_markdown | boolean | No | Whether to convert page content to markdown (true) or keep it in raw HTML format (false). Only relevant if include_content is true. |
start | integer | No | Starting index for pagination (0-based) |
include_folders | boolean | No | Whether to include child folders in addition to child pages |
Get Space Page Tree
Get page hierarchy for a Confluence space as a flat list. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
space_key | string | Yes | Space key |
limit | integer | No | Max pages to fetch |
Get Page History
Get a historical version of a specific Confluence page. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | Confluence page ID (numeric ID, can be found in the page URL). For example, in ‘https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title’, the page ID is ‘123456789’. |
version | integer | Yes | The version number of the page to retrieve |
convert_to_markdown | boolean | No | Whether to convert page to markdown (true) or keep it in raw HTML format (false). Raw HTML can reveal macros (like dates) not visible in markdown, but CAUTION: using HTML significantly increases token usage in AI responses. |
Update Page Section
Update a single section of a Confluence page without affecting the rest.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the page to update |
heading_text | string | Yes | Exact text of the heading that starts the section to replace. Matching is case-sensitive. Use confluence_get_page with convert_to_markdown=false to inspect exact heading text when unsure. |
new_content | string | Yes | Replacement content for the section body. Do NOT include the heading itself — only the body beneath it. Format is controlled by content_format. |
content_format | string | No | (Optional) Format of new_content. Options: ‘markdown’ (default) or ‘storage’ (raw Confluence storage XML). Use ‘storage’ to insert macros or elements that markdown cannot express. |
is_minor_edit | boolean | No | Whether this is a minor edit |
version_comment | string | No | Optional comment for this version |
| Example: |
{"page_id": "12345678", "heading_text": "Weekly Update", "new_content": "- Shipped v2.1\n- Started v2.2 planning", "version_comment": "Weekly sync"}
Use this instead of
confluence_update_page when the page contains macros, layouts, task lists, or other Confluence-specific elements you don’t want to lose. The tool fetches the page as raw storage XML, surgically replaces only the target section, and writes the full XML back — so everything outside the section is preserved exactly.heading_text must match the heading exactly as it appears in Confluence (case-sensitive, no surrounding emoji — emoji in headings are stripped automatically). If the heading is not found, a ValueError is raised without updating the page.Move Page
Move a Confluence page to a new parent or space.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | ID of the page to move |
target_parent_id | string | No | Target parent page ID. If omitted with target_space_key, moves to space root. |
target_space_key | string | No | Target space key for cross-space moves |
position | string | No | Position: ‘append’ (default, move as child of target), ‘above’ (move before target as sibling), or ‘below’ (move after target as sibling) |
| Example: |
{"page_id": "12345678", "target_parent_id": "98765432"}
Use
target_space_key to move pages between spaces. Omit target_parent_id with a space key to move to the space root.At least one of
target_parent_id or target_space_key must be provided.Copy Page
Copy a Confluence page to a new location.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
source_page_id | string | Yes | The ID of the page to copy |
destination_space_key | string | Yes | Space key for the new page (e.g. ‘DEV’, ‘TEAM’) |
new_title | string | Yes | Title for the new copied page |
destination_parent_id | string | No | (Optional) Parent page ID in the destination space. When omitted the page is created at the space root. |
copy_attachments | boolean | No | (Optional) Whether to copy attachments to the new page. Defaults to true. Only supported on Confluence Cloud. |
| Example: |
{"source_page_id": "12345678", "destination_space_key": "DOCS", "new_title": "Copied Runbook", "destination_parent_id": "98765432"}
Get Page Restrictions
Get view and edit restrictions for a Confluence page. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the page |
Set Page Restrictions
Set view and edit restrictions on a Confluence page.This is a write tool. Disabled when
READ_ONLY_MODE=true.| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | The ID of the page to restrict |
read_users | array | No | (Optional) Account IDs (Cloud) or usernames (Server/DC) allowed to view the page. Empty list = unrestricted. |
read_groups | array | No | (Optional) Group names allowed to view the page. |
edit_users | array | No | (Optional) Account IDs (Cloud) or usernames (Server/DC) allowed to edit the page. |
edit_groups | array | No | (Optional) Group names allowed to edit the page. |
Omitting all restriction lists or passing empty lists removes all page restrictions.
Get Page Version Diff
Get a unified diff between two versions of a Confluence page. Parameters:| Parameter | Type | Required | Description |
|---|---|---|---|
page_id | string | Yes | Confluence page ID (numeric ID, can be found in the page URL). For example, in ‘https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title’, the page ID is ‘123456789’. |
from_version | integer | Yes | Source version number |
to_version | integer | Yes | Target version number |
| Example: |
{"page_id": "12345678", "from_version": 1, "to_version": 3}
Use
confluence_get_page_history to discover available version numbers. The diff is in unified format, showing additions and removals between versions.