mcp-atlassian
Provides integration with Atlassian products, specifically Confluence and Jira, supporting both Cloud and Server/Data Center deployments.
Allows interaction with Confluence, providing tools for searching with CQL, retrieving, creating, and updating pages, and adding comments.
Allows interaction with Jira, providing tools for searching with JQL, retrieving, creating, and updating issues, and transitioning issue statuses.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-atlassianFind issues assigned to me in PROJ project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Atlassian
Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Supports both Cloud and Server/Data Center deployments.
https://github.com/user-attachments/assets/35303504-14c6-4ae4-913b-7c25ea511c3e
https://github.com/user-attachments/assets/7fe9c488-ad0c-4876-9b54-120b666bb785
Quick Start
1. Get Your API Token
Go to https://id.atlassian.com/manage-profile/security/api-tokens and create a token.
For Server/Data Center, use a Personal Access Token instead. See Authentication.
2. Configure Your IDE
Add to your Claude Desktop or Cursor MCP configuration:
{
"mcpServers": {
"mcp-atlassian": {
"command": "uvx",
"args": ["mcp-atlassian"],
"env": {
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_USERNAME": "your.email@company.com",
"JIRA_API_TOKEN": "your_api_token",
"CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@company.com",
"CONFLUENCE_API_TOKEN": "your_api_token"
}
}
}
}Server/Data Center users: Use
JIRA_PERSONAL_TOKENinstead ofJIRA_USERNAME+JIRA_API_TOKEN. See Authentication for details.
Autohand Code
Use the same uvx server with your Atlassian credentials:
autohand mcp add mcp-atlassian env \
JIRA_URL=https://your-company.atlassian.net \
JIRA_USERNAME=your.email@company.com \
JIRA_API_TOKEN=your_api_token \
CONFLUENCE_URL=https://your-company.atlassian.net/wiki \
CONFLUENCE_USERNAME=your.email@company.com \
CONFLUENCE_API_TOKEN=your_api_token \
uvx mcp-atlassianAdd --scope project after add to keep the configuration in the current
project. See Autohand Code for current
installation and CLI details.
3. Start Using
Ask your AI assistant to:
"Find issues assigned to me in PROJ project"
"Search Confluence for onboarding docs"
"Create a bug ticket for the login issue"
"Update the status of PROJ-123 to Done"
Related MCP server: MCP Atlassian Server
Documentation
Full documentation is available at mcp-atlassian.soomiles.com.
Documentation is also available in llms.txt format, which LLMs can consume easily:
llms.txt— documentation sitemapllms-full.txt— complete documentation
Topic | Description |
uvx, Docker, pip, from source | |
API tokens, PAT, OAuth 2.0 | |
IDE setup, environment variables | |
SSE, streamable-http, multi-user | |
All Jira & Confluence tools | |
Common issues & debugging |
Compatibility
Product | Deployment | Support |
Confluence | Cloud | Fully supported |
Confluence | Server/Data Center | Supported (v6.0+) |
Jira | Cloud | Fully supported |
Jira | Server/Data Center | Supported (v8.14+) |
Key Tools
Jira | Confluence |
|
|
|
|
|
|
|
|
|
|
98 tools total — See Tools Reference for the complete list.
Security
Never share API tokens. Keep .env files secure. See SECURITY.md.
Contributing
See CONTRIBUTING.md for development setup.
License
MIT - See LICENSE. Not an official Atlassian product.
Available Tools
35 toolsconfluence_add_commentAdd CommentB
Add a comment to a Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The comment content in Markdown format | |
| page_id | Yes | The ID of the page to add a comment to |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint=false, so the description carries most of the behavioral disclosure burden. It simply says 'add a comment' without explaining whether this creates a top-level comment, whether it replaces or complements inline/reply comments, what side effects occur, or whether special permissions are required. This is thin for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler or repetition. It is appropriately sized for a simple two-parameter tool and front-loads the primary action immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, parameters are fully described by the schema, and an output schema exists, so return-value documentation is not required. However, the description omits usage context relative to closely related sibling tools, which leaves an agent without enough guidance to reliably choose this tool over reply_to_comment or add_inline_comment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both page_id and body are already documented. The description adds no additional parameter meaning, which is acceptable because the schema does the heavy lifting. The baseline of 3 applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Add'), resource ('a comment'), and target ('a Confluence page'), so an agent knows the basic operation. It does not explicitly distinguish from sibling tools like confluence_reply_to_comment or confluence_add_inline_comment, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as reply_to_comment or add_inline_comment. It does not state whether this creates a top-level comment, nor does it mention any exclusions or prerequisites. The agent must infer usage from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_add_inline_commentAdd Inline CommentADestructive
Add an inline comment anchored to a text selection on a page.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The comment content in Markdown format | |
| page_id | Yes | The ID of the page to add the inline comment to | |
| text_selection | Yes | The exact text on the page to anchor the inline comment to. Must match text that exists in the page content. | |
| text_selection_match_count | No | Total number of times the selected text appears on the page. Defaults to 1. | |
| text_selection_match_index | No | Zero-based index of which occurrence of the text to anchor to. Defaults to 0 (first occurrence). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal destructiveHint=true, so the mutation aspect is covered. The description adds the useful behavioral detail that the comment is anchored to a text selection, but it does not disclose side effects, anchoring failure behavior, or permission requirements. There is no direct contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It communicates the essential behavior immediately and every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple creation tool with a full output schema and 100% parameter coverage, the description sufficiently captures the core action and anchoring model. It lacks only explicit guidance about alternative tools and edge-case matching behavior, which are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already carry adequate documentation. The description only restates the text_selection concept and adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and a specific resource ('inline comment') with an explicit anchoring constraint ('text selection on a page'). This clearly distinguishes it from sibling tools like confluence_add_comment and makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool — when commenting on a specific passage of text — but it never explicitly states why to prefer it over confluence_add_comment or confluence_reply_to_comment, and provides no exclusions or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_add_labelAdd LabelA
Add label to Confluence content (pages, blog posts, or attachments).
Useful for:
Categorizing attachments (e.g., 'screenshot', 'diagram', 'legal-doc')
Tracking status (e.g., 'approved', 'needs-review', 'archived')
Filtering content by topic or version
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name to add (lowercase, no spaces). Examples: 'draft', 'reviewed', 'confidential', 'v1.0'. Labels help organize and categorize content. | |
| page_id | Yes | Confluence content ID to label. For pages/blogs: numeric ID (e.g., '123456789'). For attachments: ID with 'att' prefix (e.g., 'att123456789'). Use get_attachments to find attachment IDs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include destructiveHint=false, so the non-destructive nature is covered. The description adds the acceptable target types (pages, blog posts, attachments), but it does not disclose details like duplicate-label handling or permission requirements. This is acceptable for a simple add operation, but not exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation, and the bullet list adds practical context without excessive padding. It is slightly more verbose than strictly necessary, but each bullet earns its place by clarifying real use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with a fully described schema and an output schema present, the description covers the target types and use cases adequately. A note about duplicate-label behavior or idempotency would make it fully complete, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description reinforces why labels are useful, but it does not add meaningful parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Add label to Confluence content (pages, blog posts, or attachments).' This clearly identifies the operation and distinguishes it from read-only label retrieval tools like confluence_get_labels and from other content mutations like confluence_add_comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Useful for' bullets provide concrete application contexts such as categorizing attachments, tracking status, and filtering content. It does not explicitly name alternative tools or state when not to use it, but the intended use cases are clear enough for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_check_content_permissionsCheck Content PermissionsARead-only
Check whether a user or group can perform an operation on specific content.
Wraps POST /wiki/rest/api/content/{id}/permission/check.
Note: This tool is only available for Confluence Cloud. Server/Data Center instances use different permission APIs.
Returns a JSON object with a 'hasPermission' boolean indicating whether the subject has the requested permission on the content.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | The operation to check. Common values: 'read', 'update', 'delete', 'export', 'purge', 'administer', 'create_or_delete_from_view'. | |
| content_id | Yes | Confluence content ID (page, blog post, comment, or attachment). Example: '123456789' | |
| subject_type | No | Whether the subject is a 'user' or a 'group'. Defaults to 'user'. | user |
| user_identifier | Yes | Account ID of the user (for subject_type='user') or group ID (for subject_type='group'). Example user account ID: '5b10a2844c20165700ede21g' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only safety profile is covered. The description adds that it returns a 'hasPermission' boolean and is Cloud-only, but it does not disclose error behavior, permission-check edge cases, or what happens for invalid identifiers. This provides modest value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose, followed by endpoint, Cloud-only caveat, and return type. Each sentence is relevant, though the endpoint and return-type details are partially redundant with the schema and output schema. It is appropriately sized but not maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only permission-check tool, the description covers purpose, availability, response shape, and endpoint, while the schema fully documents all four parameters. It does not mention error cases or behavior on missing content, but for this simple contract those are not essential. Overall it is sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters, defaults, and examples. The description adds no new parameter-level meaning beyond restating the user/group and operation concepts. The baseline of 3 applies because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and object: 'Check whether a user or group can perform an operation on specific content.' This clearly identifies the tool's function and distinguishes it from sibling permission tools by focusing on an operation-level check rather than listing restrictions. However, it does not explicitly contrast itself with similar siblings like get_page_restrictions or get_space_permissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage boundary: the tool is only available for Confluence Cloud and explicitly warns that Server/Data Center instances use different permission APIs. It implies when to use the tool from the purpose statement, but it does not name or route to alternative sibling tools. This is clear context with an important exclusion, though not fully explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_copy_pageCopy PageADestructive
Copy a Confluence page to a new location.
On Confluence Cloud the native copy endpoint is used. On Server/Data Center the page body is fetched and a new page is created manually (attachments are not copied in the Server/DC path).
| Name | Required | Description | Default |
|---|---|---|---|
| new_title | Yes | Title for the new copied page | |
| source_page_id | Yes | The ID of the page to copy | |
| copy_attachments | No | (Optional) Whether to copy attachments to the new page. Defaults to true. Only supported on Confluence Cloud. | |
| destination_parent_id | No | (Optional) Parent page ID in the destination space. When omitted the page is created at the space root. | |
| destination_space_key | Yes | Space key for the new page (e.g. 'DEV', 'TEAM') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only destructiveHint=true available in annotations, the description adds meaningful implementation detail: Server/DC fetches the body and creates the page manually, and attachments are not copied in that path. This tells the agent what to expect beyond the annotation. The description does not contradict the destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, first is front-loaded with the core action; the subsequent sentences layer platform caveats without waste. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The main platform-specific behavior and attachment limitation are covered, and the output schema plus 100% parameter documentation handle return values and parameter details. It does not address alternatives or original-page side effects, but those are not required for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining why copy_attachments is only supported on Confluence Cloud ('attachments are not copied in the Server/DC path') and that the page body is fetched and recreated, clarifying the mechanism behind destination parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource statement: 'Copy a Confluence page to a new location.' The word 'copy' plus 'new location' distinguishes it from sibling create/move/delete operations, and later 'new page is created manually' reinforces that the original is being duplicated rather than moved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides platform context (Cloud native endpoint vs Server/DC manual fetch-and-create) but no explicit when-to-use guidance or alternatives. The intended use is implied by the title and first sentence, but there is no statement distinguishing this from move_page or create_page.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_create_pageCreate PageB
Create a new Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | No | (Optional) Page title emoji (icon shown in navigation). Can be any emoji character like '📝', '🚀', '📚'. Set to null/None to remove. | |
| title | Yes | The title of the page | |
| content | 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. | |
| subtype | No | (Optional) Confluence page subtype. Use 'live' to create a Confluence Live Doc. Only supported for Confluence Cloud. | |
| parent_id | No | (Optional) parent page ID. If provided, this page will be created as a child of the specified page | |
| space_key | Yes | The key of the space to create the page in (usually a short uppercase code like 'DEV', 'TEAM', or 'DOC') | |
| page_width | No | (Optional) Page layout width. Options: 'full-width', 'default'. Defaults to null (Confluence default). | |
| content_file | 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'. | |
| table_layout | 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'. | |
| content_format | 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 | markdown |
| include_content | No | (Optional) Whether to include page content in the response. Defaults to false since callers already have the content at create time | |
| enable_heading_anchors | No | (Optional) Whether to enable automatic heading anchor generation. Only applies when content_format is 'markdown' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include destructiveHint: false, which correctly signals this is not destructive. The description adds little behavioral context beyond 'create' — it does not disclose that pages may be visible immediately, that permissions may govern creation, that Live Doc subtype is cloud-only (though schema says it), or what happens with duplicate titles. With weak annotations, the description carries some burden and only partially meets it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, direct sentence: 'Create a new Confluence page.' It is concise and front-loaded. It earns its place but is almost too minimal, providing no extra context beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, a rich schema, and an output schema, the description is not required to explain return values or parameters. However, it lacks guidance on when to use this tool versus create_page_from_template or copy_page, and lacks notes on prerequisites like space existence and permissions. It is minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already thoroughly documents every parameter. The description itself adds no additional parameter meaning. Baseline 3 is appropriate because the schema does the heavy lifting; the description does not need to repeat it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new Confluence page.' It is clear and distinguishes from siblings like update_page or delete_page. It could be slightly improved by noting it creates a standalone page (vs create_page_from_template or copy_page), but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit when-to-use guidance or mention alternatives. However, the schema gives substantial context, including mutually exclusive content vs content_file and format options. Sibling names imply alternatives like create_page_from_template, but the description itself does not state when to choose this over those. This is a moderate gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_create_page_from_templateCreate Page from TemplateA
Create a new Cloud page pre-populated with a template's body.
This operation is only available for Confluence Cloud. Fetches the named template and creates a page with its storage-format content. The page can be edited afterwards via confluence_update_page.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title for the new page. | |
| parent_id | No | Optional ID of the parent page. | |
| space_key | Yes | Key of the space in which to create the page. | |
| template_id | Yes | ID of the template to use as the page body. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint=false, so the description carries the behavioral load. It adds genuinely useful context beyond that: Cloud-only availability, that the template body is fetched and inserted as storage-format content, and that the created page remains editable afterward. It does not cover permissions or failure scenarios, but it gives a solid behavioral picture for a create tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The first sentence gives the core operation, the second states the Cloud-only limitation, and the third points to the subsequent editing tool. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an existing output schema and only a destructiveHint annotation, the description covers the essential context: what the tool does, the Cloud-only restriction, and the follow-up editing path. A note about prerequisites or permissions would be a minor enhancement, but the definition is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents title, parent_id, space_key, and template_id. The description's mention of the 'named template' does not add extra parameter-level meaning, so the 100%-coverage baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the operation creates a new Cloud page pre-populated with a template's body, and it notes the storage-format content. This distinguishes it from the generic confluence_create_page and related page-composition tools, though it does not explicitly name a sibling or draw a contrast with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It communicates a hard environment constraint (Confluence Cloud only) and a follow-up edit path via confluence_update_page, which implies when the tool is relevant. It stops short of explicitly saying when to use this over confluence_create_page or how to source a valid template_id, so the usage guidance remains mainly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_delete_attachmentDelete AttachmentADestructive
Permanently delete an attachment from Confluence.
Warning: This action cannot be undone! The attachment and ALL its versions will be permanently deleted.
Use this tool to:
Remove outdated or incorrect attachments
Clean up duplicate files
Delete sensitive information that was accidentally uploaded
Best practices:
Verify the attachment ID before deletion using get_attachments
Consider downloading the attachment first as a backup
Check with content owners before deleting shared attachments
| Name | Required | Description | Default |
|---|---|---|---|
| attachment_id | Yes | The ID of the attachment to delete. Attachment IDs can be found using the get_attachments tool. Example: 'att123456789'. **Warning**: This permanently deletes the attachment and all its versions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already include destructiveHint=true, but the description goes further by warning that the action cannot be undone and that all versions of the attachment are permanently removed. This is critical behavioral information for an agent handling a destructive operation and exceeds what the annotation alone conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loaded with the core purpose and danger, and uses concise bullet lists for use cases and best practices. It is slightly redundant in repeating warnings about permanence, but the repetition serves a safety-critical destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool, the description covers the essential information: what the tool does, the irreversibility, what data is affected, and safety-oriented usage guidance. An output schema exists, so return-value documentation is not required from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter attachment_id is already well documented in the schema with an example and a warning. The description body adds practical context about verifying the ID via get_attachments, but does not significantly augment the schema's parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Permanently delete an attachment from Confluence.' It also clarifies the full scope of the deletion—'the attachment and ALL its versions'—which distinguishes this from other deletion or content-modifying tools in the sibling list such as delete_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: removing outdated files, cleaning duplicates, and deleting accidentally uploaded sensitive data. It also gives best practices, including verifying the attachment ID with get_attachments and considering a backup download, though it does not explicitly enumerate when not to use the tool or name a non-deletion alternative in a structured way.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_delete_pageDelete PageADestructive
Delete an existing Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The ID of the page to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already communicates that this is a destructive operation. The description adds only 'existing' to indicate the page must already exist, but it does not elaborate on consequences such as permanence, cascade deletion, or permission requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly scoped sentence with every word earning its place. It opens with the action verb and names the target resource without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete operation, the description combined with the destructive annotation and output schema is nearly complete. A brief note about irreversible effects or cascading deletion of child pages would improve it, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—the page_id parameter is fully described as the ID of the page to delete. The description provides no additional information about the parameter format, source, or special considerations, so it adds no value beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete an existing Confluence page.' This is clearly distinct from sibling tools like create_page, update_page, and delete_attachment, so an agent can immediately understand what operation this tool performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the name and description: use this tool when you want to delete a particular page. However, there is no explicit guidance about when not to use it or reference to alternatives such as confluence_delete_attachment for attachments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_download_attachmentDownload AttachmentARead-only
Download an attachment from Confluence as an embedded resource.
Returns the attachment content as a base64-encoded embedded resource so that it is available over the MCP protocol without requiring filesystem access on the server. Files larger than 50 MB are not downloaded inline; a descriptive error message is returned instead.
| Name | Required | Description | Default |
|---|---|---|---|
| attachment_id | Yes | The ID of the attachment to download (e.g., 'att123456789'). Find attachment IDs using get_attachments tool. Example workflow: get_attachments(content_id) → use returned ID here. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful behavior: the response is a base64-encoded embedded resource, no filesystem access is required, and files over 50 MB will not be downloaded inline and instead yield an error message. This gives the agent a clear expectation of the tool's runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by essential return-format and size-limit details. Every sentence earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter, a simple read-only operation, no output schema, and readOnlyHint=true. The description sufficiently covers the return format, the base64 encoding rationale, and the 50 MB failure behavior, leaving no critical ambiguity for an agent deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for attachment_id, including an example, how to find IDs via get_attachments, and an example workflow. The tool description itself adds no additional parameter semantics beyond what the schema already documents, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Download an attachment from Confluence as an embedded resource." It also distinguishes this tool from sibling list/upload/delete tools by emphasizing the base64-encoded embedded-resource format, making its purpose clear without needing to inspect the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when attachment content needs to be available over MCP without server filesystem access. It also states a size limitation (files >50 MB are not downloaded inline), but it does not explicitly name alternatives or say when to prefer sibling tools like confluence_download_content_attachments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_download_content_attachmentsDownload All Content AttachmentsARead-only
Download all attachments for a Confluence content item as embedded resources.
Returns attachment contents as base64-encoded embedded resources so that they are available over the MCP protocol without requiring filesystem access on the server. Files larger than 50 MB are skipped with an error entry in the summary.
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | Yes | The ID of the Confluence content (page or blog post) to download attachments from. Example: '123456789' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful behavior: attachments are base64-encoded embedded resources, filesystem access is not required, and files over 50 MB are skipped with an error entry in the summary. This gives the agent important execution expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and every sentence adds value. It explains the format and the size limit without unnecessary fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description does a good job explaining the return behavior, including the base64 format and the skip/error handling for large files. It lacks only minor details like the exact structure of the summary, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents content_id with an example and explanation of what it refers to. The tool description adds no additional parameter meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download all attachments'), the resource ('Confluence content item'), and the output format ('embedded resources'). It also distinguishes itself from the sibling confluence_download_attachment by emphasizing 'all attachments', so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that this tool is for retrieving all attachments for a content item, so basic usage context is implied. However, it does not explicitly contrast with alternatives like confluence_download_attachment or confluence_get_attachments, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_attachmentsGet Content AttachmentsARead-only
List all attachments for a Confluence content item (page or blog post).
Returns metadata about attachments including:
Attachment ID, title, and file type
File size and download URL
Creation/modification dates
Version information
Important: Confluence API returns 'application/octet-stream' as the media type for most binary files (PNG, JPG, PDF) instead of specific types like 'image/png'. For filtering by file type, using the 'filename' parameter is more reliable (e.g., filename='*.png' pattern matching if supported, or exact filename).
Useful for:
Discovering what files are attached to a page
Getting attachment IDs for download operations
Checking if a specific file exists
Listing images/documents for processing
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | (Optional) Maximum number of attachments to return per request (1-100). Use pagination (start/limit) for large attachment lists. Default: 50 | |
| start | No | (Optional) Starting index for pagination. Use 0 for the first page. To get the next page, add the 'limit' value to 'start'. Default: 0 | |
| filename | No | (Optional) Filter results to only attachments matching this filename. Exact match only. Example: 'report.pdf' | |
| content_id | Yes | The ID of the Confluence content (page or blog post) to list attachments for. Example: '123456789' | |
| media_type | No | (Optional) Filter by MIME type. **Note**: Confluence API returns 'application/octet-stream' for most binary files (PNG, JPG, PDF) instead of specific MIME types like 'image/png'. For more reliable filtering, use the 'filename' parameter. Examples: 'application/octet-stream' (binary files), 'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' (for .docx) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, and the description adds substantial behavioral context: the API's application/octet-stream media type quirk, the reliability of filename filtering, and the returned metadata fields. This goes beyond the annotations and helps agents avoid a common filtering pitfall.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear lead sentence, bulleted return details, an highlighted important note, and a useful-for list. It is slightly longer than strictly necessary because the media type caveat is repeated from the schema, but the formatting keeps it scannable and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, parameters are 100% documented, and annotations indicate a read-only operation, the description provides complete context. It explains return fields, the core API behavior caveat, and common use cases, so an agent has everything needed to invoke the tool correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already well documented. The description reinforces the media type caveat and suggests filename as more reliable, adding a small amount of context beyond the schema. However, it doesn't substantially extend parameter semantics for the rest of the parameters, and the wildcard/pattern matching hint conflicts slightly with the schema's exact match statement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List all attachments') and resource ('Confluence content item (page or blog post)'), and differentiates from siblings by focusing on metadata listing rather than download or upload operations. This distinguishes it clearly from tools like confluence_download_attachment and confluence_get_page_images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('Discovering what files are attached', 'Getting attachment IDs for download operations', etc.), giving clear context for when to use the tool. However, it does not explicitly name alternative tools or state when not to use this tool in favor of a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_commentsGet CommentsCRead-only
Get comments for a specific Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Confluence page ID (numeric ID, can be parsed from URL, e.g. from 'https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title' -> '123456789') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this is a safe read, and the description does not contradict it. However, the description adds no behavioral detail beyond the basic retrieval action—no mention of pagination, comment scope (top-level vs replies vs inline), or ordering. With annotations present, the bar is lower, but the description still contributes nothing beyond what annotations and the name already suggest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no extraneous wording; the verb and target are front-loaded. It is appropriately concise for a simple getter, though the brevity contributes to the missing sibling differentiation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, a detailed schema, and an output schema, the structural context is strong. However, the presence of confluence_get_inline_comments among siblings makes the missing distinction between regular and inline comments a real gap for tool selection, and no usage exclusions are stated. Therefore the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the page_id property already includes a rich description with an example URL-to-ID parse. The tool description adds no parameter-level information, aligning with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource combination: 'Get comments' for 'a specific Confluence page.' However, it does not differentiate from the sibling confluence_get_inline_comments, leaving ambiguity about whether inline comments are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not mention that confluence_get_inline_comments is for a different comment type, nor any conditions for choosing this tool. The only hint is the generic page scoping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_inline_commentsGet Inline CommentsBRead-only
Get all inline comments for a Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The ID of the page to get inline comments from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile and the description is consistent with it. The description adds minimal behavioral context ('all' implies complete list, 'inline' defines scope) but does not disclose return-volume behavior, pagination, or whether resolved/hidden comments are included. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that delivers the action, the resource, and the scope with zero filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with an output schema and a readOnlyHint annotation, the description is nearly sufficient. A brief note on what 'inline' excludes (e.g., top-level page comments) would fully close the loop, but nothing essential is missing for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents page_id. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('inline comments' for a 'Confluence page'), and the qualifier 'inline' distinguishes this from generic comment tools among the siblings. It is clear about scope, though it does not explicitly name a sibling it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as a general comments tool or other page-related readers. There are no usage conditions, exclusions, or prerequisite notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_labelsGet LabelsARead-only
Get labels for Confluence content (pages, blog posts, or attachments).
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Confluence content ID (page, blog post, or attachment). For pages: numeric ID from URL (e.g., '123456789'). For attachments: ID with 'att' prefix (e.g., 'att123456789'). Works with any Confluence content type that supports labels. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as read-only (readOnlyHint=true), and the description is consistent with that. It adds the scope of content types but does not disclose other behavioral details such as pagination, response format, or error handling; however, an output schema exists to cover some of that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant words. It immediately states the action and the resource types, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read-only tool with a full input schema and an output schema, the description is nearly sufficient. It could have added a note about the label return structure or how this differs from fetching the full page, but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter coverage, including detailed explanations of the page_id format for pages vs attachments and support for any label-capable content. The description adds nothing about parameters beyond what the schema already documents, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get labels') on a well-defined resource ('Confluence content') and enumerates valid content types (pages, blog posts, attachments). It clearly differentiates from siblings like confluence_add_label and other content-fetching tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving labels from Confluence content, but it never explicitly tells the agent when to choose this over alternatives like confluence_get_page, nor does it state when not to use it. Usage is inferred rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_pageGet PageARead-only
Get content of a specific Confluence page by its ID, or by its title and space key.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | The exact title of the Confluence page. Use this with 'space_key' if 'page_id' is not known. | |
| page_id | 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. | |
| space_key | No | The key of the Confluence space where the page resides (e.g., 'DEV', 'TEAM'). Required if using 'title'. | |
| include_metadata | No | Whether to include page metadata such as creation date, last update, version, and labels. | |
| convert_to_markdown | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which already tells the agent this is a safe read operation. The description adds modest behavioral context by mentioning the convert_to_markdown option and its token usage impact, but the core description itself doesn't disclose much beyond what the schema already says. The schema describes the 'raw Confluence storage XHTML' behavior and its token implications, so the description plus schema together provide adequate transparency. Since annotations already cover the safety profile, a 3 is appropriate – the description adds some value but not rich behavioral context beyond what schema/annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence that conveys the core purpose and the two lookup mechanisms. The schema descriptions are detailed and well-formatted, with examples and clear warnings (e.g., token usage caution for storage format). Every sentence in the schema earns its place – there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus 100% schema coverage plus readOnlyHint annotation fully equips an agent to select and invoke this tool correctly. It explains identification methods, precedence, optional behaviors, output format choice, and token usage implications. The output schema exists, so return values need not be described. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with detailed explanations for every parameter, including examples for page_id, conditions for space_key, and boolean meanings for include_metadata and convert_to_markdown. The description itself adds the identity-OR-relationship between parameters beyond the individual property descriptions, and clarifies the precedence rule (page_id overrides title/space_key). With full schema coverage, the baseline is 3, but the description's clarification of the mutual exclusivity and precedence adds genuine value, warranting a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get content') and resource ('a specific Confluence page'), and explicitly names the two lookup paths (by ID, or by title and space key). This clearly distinguishes it from sibling tools like confluence_get_page_children, confluence_get_comments, or confluence_search, which have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The schema descriptions clearly state when to use title+space_key vs page_id, note that page_id takes precedence and title/space_key are ignored if page_id is provided, and explain the required relationship. The parameter descriptions effectively serve as usage guidance, telling the agent exactly how to select between alternatives. Additionally, the description's explicit mention of the two identification modes gives clear context for when to invoke this tool versus others like confluence_search or confluence_get_page_children.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_childrenGet Page ChildrenBRead-only
Get child pages and folders of a specific Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of child items to return (1-50) | |
| start | No | Starting index for pagination (0-based) | |
| expand | No | Fields to expand in the response (e.g., 'version', 'body.storage'). Defaults to 'version,history'. | version,history |
| parent_id | Yes | The ID of the parent page whose children you want to retrieve | |
| include_content | No | Whether to include the page content in the response | |
| include_folders | No | Whether to include child folders in addition to child pages | |
| convert_to_markdown | No | Whether to convert page content to markdown (true) or keep it in raw HTML format (false). Only relevant if include_content is true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description is consistent with that. It adds minor context by mentioning folders and page scoping, but does not disclose traits like direct-children-only behavior or pagination semantics beyond what the schema already covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or redundancy. It is front-loaded with the action and resource, making the core operation immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With readOnlyHint, a fully documented schema, and an output schema available, the definition is operationally self-sufficient. The main missing piece is guidance for choosing this tool over sibling tools, but that gap is already captured in the usage_guidelines dimension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have descriptions in the schema, so schema coverage is 100%, which sets the baseline at 3. The description itself adds no parameter-level detail, so it provides no additional value beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get), resource (child pages and folders), and scope (specific Confluence page). It is clear what the tool does, though it does not explicitly distinguish itself from sibling tools like get_space_page_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. An agent must infer usage from the tool name and generic intent, which is especially weak given the large set of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_diffGet Page Version DiffARead-only
Get a unified diff between two versions of a Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | 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'. | |
| to_version | Yes | Target version number | |
| from_version | Yes | Source version number |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile. The description adds the 'unified diff' format detail, which is a behavioral trait, but does not disclose additional traits such as version ordering direction, pagination, or error behavior. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with zero redundant words. It front-loads the core action and resource with no filler, earning its place completely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with three fully documented parameters and an output schema, the description is nearly complete. The only minor gap is that it doesn't explicitly clarify the direction of the diff (from from_version to to_version), but the schema field names and descriptions largely convey this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (page_id, from_version, to_version). The description adds no parameter-level meaning beyond what the schema provides, hence the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a clearly defined resource ('a unified diff between two versions of a Confluence page'). This distinguishes it from all sibling tools, none of which claim to produce diffs between versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies clear usage context: the agent should select this tool when it needs to compare two versions of a Confluence page. It doesn't explicitly name alternatives or exclusions, but the context is straightforward given the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_historyGet Page HistoryARead-only
Get a historical version of a specific Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | 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 | Yes | The version number of the page to retrieve | |
| convert_to_markdown | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description's 'Get a historical version' adds mild context that this returns non-current content. It does not disclose additional behavioral traits such as response shape or edge cases, but the schema and output schema carry much of that burden, and there is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler and the core action front-loaded. It is appropriately concise, though it relies entirely on the schema for parameter-level details, which is acceptable given the schema's richness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with fully documented parameters and an output schema, the description provides the essential purpose an agent needs. It could be slightly improved by naming sibling alternatives or explicitly stating when to choose this tool, but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for page_id (including an example URL), version (minimum and role), and convert_to_markdown (including token usage caveat). The tool description itself adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('historical version of a specific Confluence page'), and clearly distinguishes the tool from siblings like confluence_get_page (current version) and confluence_get_page_diff (version comparison). It is unambiguous about what the tool retrieves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when a historical version is needed—but gives no explicit guidance about alternatives or when not to use it. It does not mention related tools like confluence_get_page for current content or confluence_get_page_diff for comparing versions, so an agent must infer routing from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_imagesGet Page ImagesARead-only
Get all images attached to a Confluence page as inline image content.
Filters attachments to images only (PNG, JPEG, GIF, WebP, SVG, BMP) and returns them as base64-encoded ImageContent that clients can render directly. Non-image attachments are excluded.
Files with ambiguous MIME types (application/octet-stream) are detected by filename extension as a fallback. Images larger than 50 MB are skipped with an error entry in the summary.
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | Yes | The ID of the Confluence page or blog post to retrieve images from. Example: '123456789' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, the description discloses the base64 encoding, the MIME-type whitelist, the filename-extension fallback for ambiguous MIME types, and the 50 MB skip behavior with an error entry in the summary. These are non-obvious behaviors that an agent would not infer from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each carrying distinct operational information; the main action is front-loaded. No redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, a readOnly annotation, and no output schema, the description still delivers enough operational detail: output format, filtering rules, fallback behavior, and error handling. A caller can predict what will be returned and what edge cases occur.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully covers the only parameter, content_id, with a type, description, and example. The tool description adds nothing beyond that, which is acceptable given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), identifies the exact resource ('all images attached to a Confluence page'), and specifies the output contract (base64-encoded ImageContent). It also states a clear boundary (image-only filtering, non-image attachments excluded) that distinguishes it from general attachment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: retrieve page images for inline rendering. The description implicitly points away from the general attachment tools by stressing that non-image attachments are excluded, though it stops short of naming a sibling like confluence_get_attachments as the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_restrictionsGet Page RestrictionsARead-only
Get view and edit restrictions for a Confluence page.
Returns the current restriction lists for the read (view) and update (edit) operations. An empty list means the page is unrestricted for that operation.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The ID of the page |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral detail: it returns separate restriction lists for read and update operations, and an empty list means unrestricted for that operation. This clarifies the interpretation of results beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, then expands on what is returned and how to interpret empty lists. Every sentence adds useful, non-redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-parameter tool with a full output schema, the description is complete. It explains the key behavioral nuance (empty list = unrestricted) and needs no further context for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter page_id, so the schema already documents it fully. The description does not add additional parameter-level detail, but none is needed for this simple, well-covered parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') with a clear resource ('view and edit restrictions for a Confluence page') and specifies the two operations covered (read/view and update/edit). This clearly distinguishes it from sibling tools like confluence_set_page_restrictions and confluence_get_space_permissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this tool is for reading restriction lists, which gives clear context for when to use it. It does not explicitly state when not to use it or name alternatives, but the read-only framing and operation-specific detail make the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_templateGet Page TemplateARead-only
Get a Cloud page template by ID, including its storage-format body.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | The ID of the template to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already marks this as a safe read operation. The description adds context beyond that by specifying 'Cloud' scope and by clarifying that the returned body is in storage format, which is useful for an agent deciding if the output format matches its needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It front-loads the action and resource, then delivers the key extra detail about the storage-format body without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema and a readOnlyHint annotation, the description covers what is needed: the resource, the identifier, the Cloud scope, and the body format. Nothing significant is missing for an agent to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the only parameter, template_id, so the schema already explains that it is the ID of the template to retrieve. The description's 'by ID' phrase reinforces this but adds no further semantic detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource, 'Cloud page template by ID,' and adds the detail that the storage-format body is included. This distinguishes it from siblings like list_page_templates (listing) and get_page (regular pages rather than templates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage: retrieve a Cloud page template when you have its ID. However, it does not explicitly state when to prefer this tool over alternatives, such as using list_page_templates to find a template ID or get_page for ordinary pages, nor does it offer any negative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_viewsGet Page ViewsARead-only
Get view statistics for a Confluence page.
Note: This tool is only available for Confluence Cloud. Server/Data Center instances do not support the Analytics API.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | 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'. | |
| include_title | No | Whether to fetch and include the page title |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a safe read operation, and the description adds the Cloud-only availability note. It does not describe any quirks of the analytics data, such as aggregation period or permission requirements, but for a read-only analytics tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose, followed by a relevant availability note. Every sentence earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has a complete input schema, and an output schema exists, so the description does not need to explain return values. The Cloud-only note is the key missing context and is provided. Minor gaps like exact view-count semantics are not critical given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with page_id fully explained via a concrete URL example and include_title having a clear default and description. The tool description adds no parameter-specific nuance, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action ('Get view statistics') and resource ('Confluence page'), making it clear what the tool does. It does not explicitly differentiate from siblings like confluence_get_page or confluence_get_page_history, but the focus on view statistics is distinctive enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that the tool is only available for Confluence Cloud and not for Server/Data Center instances, giving clear when-not-to-use guidance. It does not name alternative tools for on-premise instances, but the platform limitation is directly useful for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_space_page_treeGet Space Page TreeARead-only
Get page hierarchy for a Confluence space as a flat list.
Returns pages with parent_id and depth attributes for token-efficient processing. Filter by depth to focus on relevant sections, or find pages by title. Much more efficient than rendering full ASCII trees.
Use this to understand space organization before creating/moving pages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max pages to fetch | |
| space_key | Yes | Space key |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark it read-only, and the description adds meaningful behavior beyond that: it returns a flat list with parent_id and depth attributes, emphasizes token-efficient processing, and contrasts with rendering full ASCII trees. This helps the agent know what to expect and why it is preferable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior, then lists return attributes, performance advantage, and a concrete use case. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool with an output schema, the description covers the purpose, output shape, token-efficiency rationale, and when to call it. Nothing essential for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both input parameters are already documented in the schema (space_key and limit), so schema description coverage is 100% and the baseline applies. The description mentions depth/title filtering, but those refer to returned attributes rather than input parameters, so it adds no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get the page hierarchy for a Confluence space as a flat list. The space-wide scope is evident, but it does not explicitly differentiate itself from the closely related sibling confluence_get_page_children, leaving that distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear intended use case: understand space organization before creating or moving pages. It does not state when not to use it or name an alternative tool, so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_space_permissionsGet Space PermissionsARead-only
List all permission assignments for a Confluence space.
Wraps GET /wiki/api/v2/spaces/{id}/permissions.
Note: This tool is only available for Confluence Cloud. Server/Data Center instances use different permission APIs.
Returns a JSON object with a 'results' list of permission assignment objects. Each entry contains the principal (user or group), the operation permitted, and the target. Use this to audit who has access to a space.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of permission entries to return. Defaults to 25. | |
| cursor | No | Optional pagination cursor from a previous response. | |
| space_id | Yes | Numeric ID of the Confluence space. This is the internal space ID, not the space key. Example: '98304'. You can find the space ID from the Confluence REST API (GET /wiki/api/v2/spaces) or from the space URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint=true already signals a read operation. The description adds useful behavior beyond that: it names the exact endpoint, discloses the Cloud-only restriction, and describes the returned structure as a results list with principal, operation, and target. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence adds value: endpoint, Cloud caveat, return shape, and intended use. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With readOnlyHint, full parameter descriptions, an output schema, and a description of the returned permission object shape, the definition is complete for safe and correct invocation. The Cloud-only note prevents a common failure mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with space_id explained in detail including how to find it. The description itself adds no parameter-level semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'List all permission assignments for a Confluence space.' The description also names the wrapped endpoint and the audit use case, making it easy to distinguish from page-level restriction tools like confluence_get_page_restrictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use it to audit who has access to a space, and explicitly notes it is only available for Confluence Cloud, warning that Server/Data Center instances use different permission APIs. It does not name sibling alternatives, but the when-to-use and when-not-to-use are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_list_page_templatesList Page TemplatesARead-only
List Confluence page content templates.
This operation is only available for Confluence Cloud. Returns template metadata (ID, name, description, type) without the full body. Use confluence_get_page_template to fetch a template's body.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of templates to return. | |
| space_key | No | Optional space key to list templates defined in that space. When omitted, global templates are returned. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful context beyond that: Cloud-only availability and the fact that responses include metadata but not the full body. This gives the agent a clear expectation of the operation's scope without contradicting the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The purpose is front-loaded, followed by the Cloud restriction, return scope, and a sibling pointer—each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation with an output schema, two well-documented optional parameters, and a clear sibling pointer, the description covers the essential invocation context. The Cloud-only caveat and metadata-only return behavior are both included, so nothing significant is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both limit and space_key clearly documented in the input schema. The description does not add parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair, 'List Confluence page content templates', and clarifies that it returns metadata (ID, name, description, type) without the body. This distinguishes it from sibling tools like confluence_get_page_template, which fetches a template's full body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly points to an alternative: 'Use confluence_get_page_template to fetch a template's body.' It also sets a clear prerequisite by noting the operation is only available for Confluence Cloud, so agents know when this tool is applicable and when to route to a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_move_pageMove PageBDestructive
Move a Confluence page to a new parent or space.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ID of the page to move | |
| position | No | Position: 'append' (default, move as child of target), 'above' (move before target as sibling), or 'below' (move after target as sibling) | append |
| target_parent_id | No | Target parent page ID. If omitted with target_space_key, moves to space root. | |
| target_space_key | No | Target space key for cross-space moves |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already marks this as destructive, and the description adds no behavioral context beyond the core function. It does not disclose side effects like URL changes, child page implications, permission requirements, or irreversibility, so it adds no value beyond what annotations already signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no unnecessary words. It front-loads the primary action and destination, making it easy to scan and quickly understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and output schema cover parameters and return values, and the destructiveHint annotation covers safety signaling. However, the description lacks usage guidance and behavioral side-effect detail, leaving an agent without enough context to choose this tool confidently among many page-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description's phrase 'new parent or space' loosely maps to target_parent_id and target_space_key but provides no additional semantic detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Move') and resource ('a Confluence page') and clearly identifies the destination ('a new parent or space'). It distinguishes itself from sibling tools like copy, delete, or create by precisely describing a relocation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as confluence_copy_page or confluence_update_page. It does not mention prerequisites, exclusions, or scenarios where a different sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_reply_to_commentReply to CommentB
Reply to an existing comment thread on a Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The reply content in Markdown format | |
| comment_id | Yes | The ID of the parent comment to reply to |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only restates the action already implied by the title and provides no disclosure about effects, permissions, or response behavior. Annotations provide only destructiveHint=false and no readOnlyHint, so the description carries most of the behavioral disclosure burden and does not meet it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words and the key action is front-loaded. It is appropriately concise, though it adds little beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema descriptions and an output schema, the minimal information needed to invoke it is present. However, contextual completeness suffers from missing usage guidance relative to sibling comment tools and from the sparse behavioral disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (comment_id, body) are already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Reply') and resource ('existing comment thread on a Confluence page'), making the core action clear. It does not explicitly name or contrast sibling tools like confluence_add_comment or confluence_add_inline_comment, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing comment thread' implies the tool is intended for replying to an existing thread rather than starting a new top-level comment or inline comment. However, there is no explicit guidance about when to choose this tool over alternatives such as confluence_add_comment or confluence_add_inline_comment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_searchSearch ContentARead-only
Search Confluence content using simple terms or CQL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-50) | |
| query | Yes | Search query - can be either a simple text (e.g. 'project documentation') or a CQL query string. Simple queries use 'siteSearch' by default, to mimic the WebUI search, with an automatic fallback to 'text' search if not supported. Examples of CQL: - Basic search: 'type=page AND space=DEV' - Personal space search: 'space="~username"' (note: personal space keys starting with ~ must be quoted) - Search by title: 'title~"Meeting Notes"' - Use siteSearch: 'siteSearch ~ "important concept"' - Use text search: 'text ~ "important concept"' - Recent content: 'created >= "2023-01-01"' - Content with specific label: 'label=documentation' - Recently modified content: 'lastModified > startOfMonth("-1M")' - Content modified this year: 'creator = currentUser() AND lastModified > startOfYear()' - Content you contributed to recently: 'contributor = currentUser() AND lastModified > startOfWeek()' - Content watched by user: 'watcher = "user@domain.com" AND type = page' - Exact phrase in content: 'text ~ "\"Urgent Review Required\"" AND label = "pending-approval"' - Title wildcards: 'title ~ "Minutes*" AND (space = "HR" OR space = "Marketing")' Note: Special identifiers need proper quoting in CQL: personal space keys (e.g., "~username"), reserved words, numeric IDs, and identifiers with special characters. | |
| spaces_filter | No | (Optional) Comma-separated list of space keys to filter results by. Overrides the environment variable CONFLUENCE_SPACES_FILTER if provided. Use empty string to disable filtering. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes safety, and the description/schema adds meaningful behavioral detail: simple queries use siteSearch by default with an automatic fallback to text search, and special CQL identifiers require quoting. This helps the agent predict how queries will be interpreted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The top-level description is a single front-loaded sentence. The extensive CQL examples are placed in the schema where they belong and each example earns its place by demonstrating distinct, non-obvious syntax. Nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with annotations, a complete input schema, and an output schema, the description plus parameter documentation covers query modes, limits, filtering, quoting caveats, and common use cases. An agent has enough context to invoke the tool correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the query parameter description goes far beyond a label by providing multiple CQL examples, quoting rules, and common search patterns. The spaces_filter parameter also explains its interaction with the CONFLUENCE_SPACES_FILTER environment variable and how to disable filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('Confluence content'), and clarifies the query styles ('simple terms or CQL'). This clearly separates it from sibling 'confluence_search_user', which targets users rather than content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the general usage context clear and the schema provides extensive CQL guidance, but it does not explicitly explain when to prefer this tool over alternatives such as confluence_search_user. Usage is implied rather than directly contrasted with sibling search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_search_userSearch UserARead-only
Search Confluence users using CQL (Cloud) or group member API (Server/DC).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-50) | |
| query | Yes | Search query - a CQL query string for user search. Examples of CQL: - Basic user lookup by full name: 'user.fullname ~ "First Last"' Note: Special identifiers need proper quoting in CQL: personal space keys (e.g., "~username"), reserved words, numeric IDs, and identifiers with special characters. | |
| group_name | No | Group to search within on Server/DC instances (default: 'confluence-users'). Ignored on Cloud. | confluence-users |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already present, the description adds meaningful behavioral context by revealing that the implementation differs by platform: CQL on Cloud versus group member API on Server/DC. This is useful for setting expectations about query syntax and the role of group_name, going beyond what the annotation alone provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that leads with the action and resource, then adds the key platform-dependent detail in a parenthetical. There is no filler or redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a straightforward read-only user search with three documented parameters, full schema coverage, an output schema, and a readOnly annotation. The description supplies the only missing contextual piece — the platform-specific search mechanism — making the definition complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters, defaults, and constraints. The tool description itself does not add further parameter details, but the query parameter schema includes CQL examples and quoting guidance. This fits the baseline of 3 where the schema carries the parameter-documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search Confluence users') and distinguishes the resource (users) from other Confluence search tools like confluence_search. It also names the two underlying mechanisms, CQL on Cloud and group member API on Server/DC, which leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when the tool is appropriate: it searches users, not content, and it explicitly adapts behavior based on Cloud vs Server/DC deployment. It does not name alternative sibling tools or state when not to use it, but the user-specific scope is clear enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_set_page_restrictionsSet Page RestrictionsADestructive
Set view and edit restrictions on a Confluence page.
Replaces all existing restrictions with the provided lists. Omitting all parameters (or passing empty lists) removes all restrictions.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The ID of the page to restrict | |
| edit_users | No | (Optional) Account IDs (Cloud) or usernames (Server/DC) allowed to edit the page. | |
| read_users | No | (Optional) Account IDs (Cloud) or usernames (Server/DC) allowed to view the page. Empty list = unrestricted. | |
| edit_groups | No | (Optional) Group names allowed to edit the page. | |
| read_groups | No | (Optional) Group names allowed to view the page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses the critical destructive behavior: it replaces all existing restrictions and can remove all restrictions when parameters are omitted or empty. This gives the agent the key safety-relevant context needed before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. It front-loads the purpose, then immediately covers the most important behavioral caveat (replacement), and ends with the removal edge case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema and destructiveHint covers return values and destructive intent, while the description covers the essential replacement/removal behavior. However, there is slight ambiguity about what happens if only some optional parameters are omitted, so it falls just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all five parameters, so the baseline is 3. The description adds extra value by clarifying the overall replace-all semantics and the special behavior of omitting all parameters or passing empty lists, which is not fully captured by individual parameter descriptions alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set view and edit restrictions') and the resource ('a Confluence page'), so an agent knows exactly what the tool does. It also differentiates from the sibling confluence_get_page_restrictions by emphasizing the write/set nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for modifying restrictions rather than reading them, but it does not explicitly say when to prefer it over alternatives or when not to use it. There is no mention of prerequisites or conditions that would rule it out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_pageUpdate PageCDestructive
Update an existing Confluence page.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | No | (Optional) Page title emoji (icon shown in navigation). Can be any emoji character like '📝', '🚀', '📚'. Set to null/None to remove. | |
| title | Yes | The new title of the page | |
| content | 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. | |
| page_id | Yes | The ID of the page to update | |
| parent_id | No | Optional the new parent page ID | |
| page_width | No | (Optional) Page layout width. Options: 'full-width', 'default'. Defaults to null (preserve existing). | |
| content_file | 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'. | |
| table_layout | 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'. | |
| is_minor_edit | No | Whether this is a minor edit | |
| content_format | 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 | markdown |
| include_content | No | (Optional) Whether to include page content in the response. Defaults to false since callers already have the content at update time | |
| version_comment | No | Optional comment for this version | |
| enable_heading_anchors | No | (Optional) Whether to enable automatic heading anchor generation. Only applies when content_format is 'markdown' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide destructiveHint=true, indicating mutation, but the description adds no behavioral detail beyond that. It does not disclose whether omitted fields preserve existing content, whether a new version is created, or what side effects update may have. Since annotations already carry the destructive signal, the description contributes almost nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is concise, but it is effectively a restatement of the tool name and title. For a tool with 13 parameters and multiple sibling operations, a one-sentence description that adds no constraints or usage context is under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich input schema and output schema carry most of the contextual load, making this minimally viable. However, the description fails to clarify important update semantics, such as whether omitted content is preserved or cleared, or how this update interacts with page versioning. It is adequate only because the schema fills in most operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter descriptions already define every field including defaults, formats, and mutual exclusions. The description adds no parameter-level meaning, which is acceptable given the schema is self-sufficient. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('update') and resource ('existing Confluence page'), which is understandable on its own. However, it does not distinguish itself from the sibling tool 'confluence_update_page_section', leaving some ambiguity about scope (full page vs section).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus create_page, update_page_section, move_page, or delete_page. The description simply says 'update an existing Confluence page' with no context about prerequisites, alternatives, or situations where a different sibling is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_page_sectionUpdate Page SectionADestructive
Update a single section of a Confluence page without affecting the rest.
Replaces only the content beneath a named heading, leaving all other sections, macros, layouts, and Confluence-specific elements completely intact. This avoids the data loss that occurs when a full page is downloaded as Markdown, edited, and re-uploaded.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The ID of the page to update | |
| new_content | Yes | Replacement content for the section body. Do NOT include the heading itself — only the body beneath it. Format is controlled by content_format. | |
| heading_text | 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. | |
| is_minor_edit | No | Whether this is a minor edit | |
| content_format | 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. | markdown |
| version_comment | No | Optional comment for this version |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds valuable behavioral context by explaining that only the section under the named heading is replaced while macros, layouts, and other sections remain intact. This clarifies the scope of the destructive operation beyond the annotation alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the core behavior stated in the first sentence. The second sentence adds valuable behavioral detail and rationale without unnecessary repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage, output schema, and destructive annotation, the description is largely complete. It explains what is and is not affected, provides rationale, and the parameter descriptions handle edge cases like case-sensitive heading text and content format. Minor gaps such as duplicate heading behavior are not addressed but are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented. The tool description reinforces that only body content is replaced and heading matching is exact, but most parameter-level meaning is appropriately handled by the input schema. This meets the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update a single section of a Confluence page' and clarifies exactly what is replaced. It clearly distinguishes itself from a full-page update by emphasizing that only the content beneath a named heading changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly identifies when to use this tool—updating one section without affecting the rest—and contrasts it with the riskier full-page Markdown round-trip workflow. It does not explicitly name the alternative tool, but the usage context is clear from the description and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_upload_attachmentUpload AttachmentADestructive
Upload an attachment to Confluence content (page or blog post).
Provide the file either as a server-readable path ('file_path') or as base64-encoded content ('content_base64' together with 'filename'). The base64 form is intended for remote or containerized servers that cannot read host file paths. Exactly one of the two must be supplied.
If the attachment already exists (same filename), a new version is created. This is useful for:
Attaching documents, images, or files to a page
Updating existing attachments with new versions
Adding supporting materials to documentation
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | (Optional) A comment describing this attachment or version. Visible in the attachment history. Example: 'Updated Q4 2024 figures' | |
| filename | No | (Optional) Attachment filename, including extension (e.g. 'report.pdf'). Required when using 'content_base64'; it determines the attachment title and file type. Ignored when 'file_path' is used. | |
| file_path | No | Full path to the file to upload. Can be absolute (e.g., '/home/user/document.pdf' or 'C:\Users\name\file.docx') or relative to the current working directory (e.g., './uploads/document.pdf'). If a file with the same name already exists, a new version will be created. Requires the server to be able to read the path; for remote or containerized servers use 'content_base64' instead. Provide either 'file_path' or 'content_base64', not both. | |
| content_id | Yes | The ID of the Confluence content (page or blog post) to attach the file to. Page IDs can be found in the page URL or by using the search/get_page tools. Example: '123456789' | |
| minor_edit | No | (Optional) Whether this is a minor edit. If true, watchers are not notified. Default is false. | |
| content_base64 | No | (Optional) Base64-encoded file content to upload directly, without the server reading from disk. Use this when the server cannot access host file paths (e.g. a remote or containerized MCP server). Requires 'filename'. Provide either 'file_path' or 'content_base64', not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint=true, and the description adds meaningful behavioral detail: existing attachments with the same filename get a new version, and base64 mode is for servers that cannot read host paths. This goes beyond the annotation without contradicting it. It does not discuss side effects like permission requirements or output details, but the output schema and schema parameter descriptions cover some of that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized, front-loaded with the core statement, and uses a short list for use cases. It is a bit longer than strictly necessary because some use cases restate the obvious purpose, but the length is justified by the two different upload modes and the versioning behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, six parameters, and full schema coverage, the description covers the essential decision points: which input form to use, when each is appropriate, and what happens on duplicate filenames. The output schema handles return value clarity. It is complete enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value on top by clarifying the mutually exclusive relationship between file_path and content_base64, explaining when each parameter is required, and describing the practical remote-server scenario for base64 use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Upload an attachment to Confluence content (page or blog post).' This clearly identifies the action and target, and it is distinct from sibling tools like confluence_upload_attachments by focusing on a single attachment to a single content item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong usage context: it explains the file_path vs content_base64 distinction, says exactly one must be supplied, and advises base64 for remote or containerized servers. It also notes the useful case of updating existing attachments by creating a new version. It does not explicitly call out alternatives like confluence_upload_attachments for batch operations, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_upload_attachmentsUpload Multiple AttachmentsADestructive
Upload multiple attachments to Confluence content in a single operation.
More efficient than calling upload_attachment multiple times. If files with the same names exist, new versions are created automatically.
Useful for:
Bulk uploading documentation assets (diagrams, screenshots, etc.)
Adding multiple related files to a page at once
Batch updating existing attachments with new versions
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | (Optional) Comment for all uploaded attachments. Visible in version history. Example: 'Q4 2024 batch upload' | |
| content_id | Yes | The ID of the Confluence content (page or blog post) to attach files to. Example: '123456789'. If uploading multiple files with the same names, new versions will be created automatically. | |
| file_paths | Yes | Comma-separated list of file paths to upload. Can be absolute or relative paths. Examples: './file1.pdf,./file2.png' or 'C:\docs\report.docx,D:\image.jpg'. All files uploaded with same comment/minor_edit settings. | |
| minor_edit | No | (Optional) Whether this is a minor edit. If true, watchers are not notified. Default is false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true, but the description adds valuable behavior beyond that by disclosing that same-named files automatically create new versions. It also clarifies that all files share the same comment and minor_edit settings, which is useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the primary purpose, followed by the efficiency comparison and key behavioral note. The bulleted use cases add a little length but are relevant and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a full input schema, an output schema, and annotations, the description covers the essential behavioral and usage context. It doesn't discuss permission requirements or limits, but those are not necessary for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't need to add much; it adds only general batch behavior, not parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: upload multiple attachments to Confluence content in one operation. It explicitly contrasts itself with the sibling tool upload_attachment, making its scope clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use it: bulk uploading, adding multiple related files, and batch updating attachments. It also names the alternative upload_attachment, though it doesn't explicitly state 'use upload_attachment for a single file'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
35 tool updates
v0.1.0- First observed
confluence_add_comment - First observed
confluence_add_inline_comment - First observed
confluence_add_label - First observed
confluence_check_content_permissions - First observed
confluence_copy_page - First observed
confluence_create_page - First observed
confluence_create_page_from_template - First observed
confluence_delete_attachment - First observed
confluence_delete_page - First observed
confluence_download_attachment - First observed
confluence_download_content_attachments - First observed
confluence_get_attachments - First observed
confluence_get_comments - First observed
confluence_get_inline_comments - First observed
confluence_get_labels - First observed
confluence_get_page - First observed
confluence_get_page_children - First observed
confluence_get_page_diff - First observed
confluence_get_page_history - First observed
confluence_get_page_images - First observed
confluence_get_page_restrictions - First observed
confluence_get_page_template - First observed
confluence_get_page_views - First observed
confluence_get_space_page_tree - First observed
confluence_get_space_permissions - First observed
confluence_list_page_templates - First observed
confluence_move_page - First observed
confluence_reply_to_comment - First observed
confluence_search - First observed
confluence_search_user - First observed
confluence_set_page_restrictions - First observed
confluence_update_page - First observed
confluence_update_page_section - First observed
confluence_upload_attachment - First observed
confluence_upload_attachments
TDQS
Scored across 35 tools
Most tools are clearly separated by resource and action, and detailed descriptions clarify singular/plural and inline/regular variants. A few pairs like get_page_images vs download_content_attachments and get_page_children vs get_space_page_tree could be confused, but the descriptions provide enough context to avoid misselection.
All tools share a confluence_ prefix and generally follow a verb_noun structure. The pattern is slightly inconsistent because list is only used for list_page_templates while other collection retrievals use get_ (get_comments, get_attachments, get_labels), and confluence_search omits a noun.
35 tools is a large surface for an MCP server, exceeding the comfortable well-scoped range. While most operations are legitimate, batching variants and niche endpoints like upload_attachments, download_content_attachments, page_views, and permission checks make the set feel heavy and would benefit from consolidation.
Page, attachment, and template coverage is strong, including move, copy, restrictions, history, and diff operations. However, comment lifecycle is incomplete with no update/delete comment tools, label deletion is missing, and there is no tool to list spaces or access space metadata; additionally, despite the Atlassian name, Jira is entirely absent.
Maintenance
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
Shared company knowledge, workflows, and connected apps for the AIs your team already uses.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Connect AI to your Attio CRM. Manage contacts, companies, deals, and sales pipelines. Create tasks…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Atlassian products (Confluence and Jira) through natural language, supporting both Cloud and Server/Data Center deployments. Allows searching, creating, and managing content across Jira issues and Confluence pages with flexible authentication options.Apache 2.0
- AlicenseAqualityDmaintenanceIntegrates with Atlassian Cloud products (Confluence and Jira) to enable AI assistants to search, read, create, and manage pages, issues, comments, attachments, and export content through natural language interactions.402,649 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Atlassian Confluence and Jira for searching, updating, and managing content and issues.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search, create, update, and transition Jira issues and Confluence pages, add comments, and manage Atlassian content across Cloud and Server/Data Center deployments.MIT