confluence-mcp
Allows managing Confluence Cloud wiki pages, spaces, blog posts, comments, attachments, labels, tasks, and content properties via the Confluence REST API v2.
Click on "Install 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., "@confluence-mcplist pages in space DEV"
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.
confluence-mcp
An MCP server for administering Atlassian Confluence Cloud wiki pages. Built with FastMCP and the Confluence REST API v2.
Features
Create, read, update, delete, and restore pages
Move (reparent) pages within a space; transfer page ownership
Navigate the page tree (children, ancestors, descendants)
Bulk-fetch multiple pages in a single request
Create, read, update, and delete spaces; manage space content properties
Full blog post CRUD (create, read, update, delete)
Read labels (list all labels, list pages/blogposts by label)
Inspect version history
Manage footer and inline comments (including creating inline comments)
List and delete attachments
Manage page and space content properties (key/value metadata)
Manage tasks
Bulk user lookup (resolve multiple account IDs to profiles)
Related MCP server: inhouse_confluence_mcp
Requirements
Python 3.11+
uvpackage managerAn Atlassian Confluence Cloud account with API access
Setup
1. Clone and install
git clone <repo-url>
cd confluence
uv sync2. Configure credentials
Copy .env.example to .env and fill in your values:
cp .env.example .envVariable | Required | Description |
| Yes | Your Confluence base URL, e.g. |
| Basic Auth | Atlassian account email |
| Basic Auth | |
| Bearer Auth | Personal Access Token (alternative to Basic Auth) |
Use either Basic Auth (EMAIL + API_TOKEN) or a Bearer token — not both.
3. Run
uv run confluence-mcpThe server communicates over stdio (standard MCP transport).
Integration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your OS:
{
"mcpServers": {
"confluence": {
"command": "uv",
"args": [
"--directory", "/path/to/confluence",
"run", "confluence-mcp"
],
"env": {
"CONFLUENCE_BASE_URL": "https://your-domain.atlassian.net",
"CONFLUENCE_EMAIL": "you@example.com",
"CONFLUENCE_API_TOKEN": "your-api-token"
}
}
}
}OpenCode
Add to your OpenCode MCP config:
{
"confluence": {
"command": "uv",
"args": [
"--directory", "/path/to/confluence",
"run", "confluence-mcp"
]
}
}Set the env vars in your shell or .env file.
Tool Reference
Pages
Tool | Description |
| List pages filtered by space, title, status, or parent |
| Get a page by ID (with optional body format and version) |
| Fetch multiple pages by ID in a single request |
| Create a new page in a space |
| Update content, title, parent (move), or owner of a page |
| Rename a page without changing its body or version metadata |
| Move a page to trash (or permanently delete with |
| Restore a trashed page to |
| List permitted operations for a page |
Moving a page: pass parent_id in update_page to reparent within the same space.
Cross-space moves are not supported by the Confluence v2 API.
Transferring ownership: pass owner_id (Atlassian account ID) in update_page.
Page Navigation
Tool | Description |
| All child pages (recursive, paginated) |
| Immediate children only |
| Full breadcrumb trail to the root |
| All descendants |
Spaces
Tool | Description |
| List spaces (filterable by type, status, key, label) |
| Get a space by ID |
| Create a new space |
| List permitted operations for a space |
| List all labels used on content within a space |
| List pages in a space |
| List blog posts in a space |
| List permission assignments for a space |
Space Properties
Tool | Description |
| List key/value properties on a space |
| Get a specific space property |
| Create a new space property |
| Update an existing space property |
| Delete a space property |
Blog Posts
Tool | Description |
| List blog posts (filterable by space, status) |
| Get a blog post by ID |
| Create a new blog post in a space |
| Update content, title, or status of a blog post |
| Move a blog post to trash (or permanently delete with |
Labels
Label add/remove is available via the Confluence v1 API only; the v2 API is read-only for labels.
Tool | Description |
| List all labels across the Confluence instance |
| Labels attached to a page |
| Labels used across a space |
| Pages that carry a specific label |
| Blog posts that carry a specific label |
Version History
Tool | Description |
| Version history of a page |
| Details of a specific page version |
Footer Comments
Tool | Description |
| Footer comments on a page |
| Get a footer comment by ID |
| Create a comment on a page, blog post, or as a reply |
| Update comment content |
| Delete a comment |
| List replies to a comment |
Inline Comments
Tool | Description |
| Inline comments on a page |
| Get an inline comment by ID |
| Create an inline comment anchored to a text selection |
| Update content or resolved state |
| Delete an inline comment |
Attachments
Tool | Description |
| List attachments on a page |
| Get an attachment by ID |
| Delete an attachment |
Uploading attachments requires multipart form data and is not supported by this server.
Content Properties
Tool | Description |
| List key/value properties on a page |
| Get a specific property |
| Create a new property |
| Update an existing property |
| Delete a property |
Tasks
Tool | Description |
| List tasks (filterable by status, space, page, assignee) |
| Get a task by ID |
| Update task status, assignee, or due date |
Utility
Tool | Description |
| Resolve content IDs to their types (page, blogpost, etc.) |
| Resolve multiple Atlassian account IDs to user profiles |
Notes
Body formats:
storage(XHTML, default for write),wiki(Confluence wiki markup),atlas_doc_format(Atlassian Document Format / ADF),view(rendered HTML, read-only).Versioning:
update_page,update_blogpost,update_footer_comment, andupdate_inline_commentall require passing the currentversion_number. The API increments it automatically. Always callget_page/get_blogpostfirst to obtain the current version.Labels: To add or remove labels, use the Confluence v1 REST API (
/wiki/rest/api/content/{id}/label) directly — this is not exposed in this server.
Available Tools
62 toolsbulk_get_pagesBulk Get PagesARead-only
Fetch multiple pages by their IDs in a single request.
Returns a results list with one entry per resolved page ID.
Args:
page_ids: List of page IDs to retrieve (up to 250).
body_format: Body representation — 'storage', 'atlas_doc_format', or 'view'.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | Yes | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral details: it returns a 'results list with one entry per resolved page ID' and specifies the parameter limit 'up to 250'. This goes beyond the annotations, though it does not cover all edge cases (e.g., behavior for invalid IDs).
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 well-structured, with a clear opening sentence followed by an 'Args' section. Every sentence adds value: it states the purpose, describes the return format, and defines the parameters without unnecessary fluff. It 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?
With only 2 parameters, no output schema, and strong annotations, the description is nearly complete. It clarifies the return type ('results list') and the parameter limits, which are critical for usage. It does not explain error handling or result ordering, but for a simple read-only batch operation, the provided information is sufficient.
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 no parameter descriptions (0% coverage), so the description fully compensates. It explains each parameter: 'page_ids: List of page IDs to retrieve (up to 250)' and 'body_format: Body representation — 'storage', 'atlas_doc_format', or 'view''. This provides meaning and allowed values that the schema lacks, making it highly useful for correct invocation.
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 exactly what the tool does: 'Fetch multiple pages by their IDs in a single request.' It uses a specific verb ('Fetch'), names the resource ('pages'), and clearly differentiates from sibling tools like 'get_page' by emphasizing the batch aspect. This makes the 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 you need multiple pages at once, saving multiple requests. It mentions 'a single request' and a limit of 250, providing clear context. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_user_lookupBulk User LookupARead-only
Resolve multiple Atlassian account IDs to user profiles in a single call.
Useful when you have a list of assignee/author IDs from tasks or comments
and want to retrieve display names and emails in bulk.
Args:
account_ids: List of Atlassian account IDs to look up (up to 200).
| Name | Required | Description | Default |
|---|---|---|---|
| account_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds valuable context beyond these: the batch limit ('up to 200') and the return content ('display names and emails'). This enriches the agent's understanding of behavior without contradicting 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?
The description is concise and well-organized: a one-sentence purpose, a usage hint, and an Args block. Every sentence contributes value. It is appropriately sized for a simple tool, though the Args block is minimal and could be formatted more explicitly.
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 simplicity (one parameter, read-only, no output schema), the description covers the core requirements: what it does, when to use it, the parameter format, the size limit, and the expected output fields. It is complete enough for an agent to select and 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?
The schema only defines 'account_ids' as an array of strings with no description. Schema description coverage is 0%, so the description must compensate. It does so by explaining the parameter as 'List of Atlassian account IDs to look up (up to 200)', adding meaning about what the IDs are and the maximum count. This is helpful, though it could provide more detail about format or duplicates.
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 tool's function: 'Resolve multiple Atlassian account IDs to user profiles in a single call.' This is a specific verb+resource combination, and it distinguishes itself from all sibling tools, which primarily handle pages, blogposts, spaces, and comments. The purpose is unmistakable.
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: 'Useful when you have a list of assignee/author IDs from tasks or comments and want to retrieve display names and emails in bulk.' This tells the agent when to use the tool, though it does not explicitly mention when not to use it or name alternatives. Since no other sibling handles user lookups, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_ids_to_typesConvert IDs to TypesARead-only
Convert a list of content IDs to their content types (page, blogpost, etc.).
Useful when you have an ID but don't know whether it refers to a page,
blog post, attachment, or other content type.
Args:
content_ids: List of content IDs to look up.
| Name | Required | Description | Default |
|---|---|---|---|
| content_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior, and the description adds context about resolving unknown IDs to their types, which goes beyond the annotations. However, it doesn't disclose edge cases like invalid IDs or the exact return shape.
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 well-structured: a clear first sentence, a helpful use-case note, and an explicit Args section. Every line adds value with no wasted words.
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 with one parameter and no output schema, but the description omits details about the return format (e.g., mapping vs. list) and error behavior. It covers the basics but leaves room for guesswork.
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 only parameter, content_ids, is described as 'List of content IDs to look up,' which just restates the schema. With schema description coverage at 0%, the description fails to add meaningful detail about the format, constraints, or behavior of the IDs.
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 function: converting content IDs to content types, listing examples such as page and blogpost. It distinguishes this tool from sibling tools that operate on specific content types, making the purpose unmistakable.
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 a clear scenario—'when you have an ID but don't know whether it refers to a page, blog post, attachment, or other content type'—that signals when to use it. It doesn't explicitly mention alternatives or exclusions, but the use case is specific enough to guide the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_blogpostCreate BlogpostA
Create a new blog post in a space.
Args:
space_id: The ID of the space to publish in.
title: Title of the blog post.
body_value: HTML/storage body content.
body_representation: Body format — 'storage', 'wiki', or 'atlas_doc_format'.
status: 'current' to publish immediately, or 'draft' to save as draft.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | current | |
| space_id | Yes | ||
| body_value | Yes | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a write operation (readOnlyHint=false), so the description adds value by explaining that 'status' controls whether the post is published immediately or saved as a draft, and that 'body_representation' supports specific formats. However, it does not disclose the return value, possible side effects, or any authorization requirements, which would be useful for a create 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 concise and well-structured: a one-sentence purpose followed by a clean argument list. Each line adds necessary clarification, but it does duplicate the parameter names already present in the schema, which is slightly 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?
All five parameters are thoroughly covered with additional context beyond the schema. However, the description omits any mention of the return value, error conditions, or prerequisites such as the existence of the space. For a create tool with no output schema, this leaves some uncertainty about expected outcomes.
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?
With 0% schema description coverage, the description fully compensates by explaining every parameter. It provides meaningful context for 'space_id', 'title', 'body_value', and crucially enumerates allowed values for 'body_representation' and 'status' that are absent from the schema. This is exemplary parameter documentation.
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 ('Create a new blog post') and the resource ('in a space'), which is specific and distinct from other tools like create_page. However, it does not explicitly differentiate from siblings such as create_page, so it loses a point for lacking that direct comparison.
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 like create_page or update_blogpost. It only lists parameters, leaving the usage context entirely implicit. This is a clear gap for a tool with many contextually similar siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_inline_commentCreate Inline CommentA
Create an inline comment anchored to a text selection on a page.
Args:
page_id: The ID of the page to comment on.
body_value: HTML/storage-format body of the comment.
inline_marker_ref: The marker reference identifying the text selection
(obtained from the page's inline marker data).
body_representation: Body format — 'storage', 'wiki', or 'atlas_doc_format'.
resolved: Whether to create the comment in a resolved state.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| resolved | No | ||
| body_value | Yes | ||
| inline_marker_ref | Yes | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false and destructiveHint=false. The description adds only minor context (e.g., inline_marker_ref origin) but does not mention side effects, required permissions, error behavior, or return value. It fails to enrich beyond the structured 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 succinct and well-structured: a one-sentence purpose followed by a clean Args list. Every sentence adds value, with no filler 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?
The description covers all parameters and purpose but omits the return value of the created comment, potential side effects, or error conditions. For a create operation with no output schema, return behavior is a meaningful gap.
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?
With 0% schema description coverage, the description compensates thoroughly by explaining each parameter: page_id as the page, body_value as HTML/storage-format, inline_marker_ref with origin, body_representation with allowed values, and resolved meaning. This is essential for correct invocation.
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 an inline comment anchored to a text selection on a page.' This clearly distinguishes it from sibling tools like get_inline_comment, update_inline_comment, or delete_inline_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 description implies usage for inline comments via 'anchored to a text selection' but does not explicitly mention alternatives (e.g., footer comments) or provide clear when-to-use/when-not-to-use guidance. The context is present but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pageCreate PageA
Create a new page in a space.
Args:
space_id: Target space ID.
title: Page title.
body_value: Page body content.
body_representation: Format of body_value — storage (default, XHTML), wiki, atlas_doc_format.
parent_id: Parent page ID (omit to create at space root).
status: 'current' (published, default) or 'draft'.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | current | |
| space_id | Yes | ||
| parent_id | No | ||
| body_value | Yes | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds parameter-level details but does not disclose behavior such as return values, permission requirements, or error handling. With annotations present, the description 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 concise: a one-line summary followed by a clear parameters list. Every sentence provides necessary information, no fluff. The structure is easily scannable for an agent.
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 has 6 parameters and no output schema, the description covers all parameter semantics and the core purpose. It lacks mention of return values or error edge cases, but for a create operation with visible sibling context, this is a minor gap.
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 0%, so the description fully compensates by explaining every parameter: space_id, title, body_value, body_representation (with formats), parent_id (with root omission), and status (with defaults). This goes well beyond the minimal schema labels.
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 'Create a new page in a space', which is a specific verb+resource. This clearly distinguishes the tool from sibling tools like create_blogpost or create_space_property. The parameter list also reinforces the purpose.
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 implies when to use this tool (when creating a page in a space) but does not explicitly mention alternatives or exclusions. It does provide guidance on parameter choices (e.g., body_representation formats, parent_id for root placement), but no direct comparison to other create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_page_propertyCreate Page PropertyA
Create a content property on a page.
Args:
page_id: Page ID.
key: Property key (must be unique on the page).
value: Property value — any JSON-serializable value.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the useful constraint that the key must be unique on the page, which gives some behavioral context. Annotations already indicate this is not read-only and not destructive, so the safety profile is partially covered. However, the description does not disclose what happens if the key already exists, what the return value is, or any other side effects, leaving a moderate transparency gap.
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 very compact, front-loaded with the purpose, and follows a clean 'Args' structure without any wasted words. Every sentence adds value.
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 three-parameter tool with no output schema, the description is nearly complete: it covers purpose, parameter meanings, and a key constraint. The only notable omission is the return value or error behavior, which would improve completeness, but the current level is adequate for the tool's simplicity.
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?
With 0% schema description coverage, the description compensates well by providing concise, meaningful explanations for all three parameters: page_id, key (with uniqueness note), and value (any JSON-serializable value). This is valuable beyond the bare schema and clarifies the intended use of each argument.
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 ('Create a content property on a page'), naming both the operation and the resource. It distinguishes itself from sibling tools like update_page_property and delete_page_property by its explicit 'create' verb and 'on a page' scoping, which also separates it from create_space_property.
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?
There is no explicit guidance on when to use this tool versus alternatives such as update_page_property or delete_page_property. The context is clear (creating a new property) but no exclusions or comparisons are provided. This falls short of helpful usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spaceCreate SpaceA
Create a new Confluence space.
Args:
key: Unique space key (e.g. 'ENG'). Must be uppercase letters/numbers.
name: Human-readable space name.
description: Optional plain-text description of the space.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| name | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the key format constraint and marks description as optional, but does not discuss failure behavior, idempotency, or side effects. It provides some context beyond annotations but not extensive.
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 concise: one purpose sentence plus a compact args list. It front-loads the purpose and uses a clean format with no wasted words.
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?
This is a straightforward creation operation with only 3 parameters. The description covers purpose and all parameters, and annotations provide the safety profile. It does not mention return value or error cases, but these can be inferred from typical create semantics and the tool's simplicity.
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 provides no parameter descriptions (0% coverage), so the description compensates by explaining all three parameters: key format with example, name purpose, and description optionality/nullability. This significantly aids correct invocation, though it could include more details like length limits or character sets for name.
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 the specific verb 'Create' and resource 'Confluence space', clearly distinguishing it from sibling tools like create_page or create_space_property. The purpose is unambiguous and directly stated in the first sentence.
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 context of creating a space is clear, but the description does not explicitly mention when to use this tool versus alternatives like create_space_property. There are no exclusions or prerequisites noted, so it lacks explicit usage guidance beyond the obvious purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_space_propertyCreate Space PropertyA
Create a new content property on a space.
Args:
space_id: The ID of the space.
key: Property key (must be unique within the space).
value: Property value (string, number, dict, or list).
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-idempotent operation. The description adds the unique key constraint ('must be unique within the space'), which is useful behavioral context not in the annotations. It doesn't fully explain error behavior if the key exists, but the annotations cover the main safety profile.
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 concise, with a one-sentence purpose followed by a clean Args list. No wasted words; every part contributes to understanding the tool's function and parameters.
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 create operation with only three parameters and no nested structures, the description covers all necessary details: what it creates, each parameter's meaning, and the uniqueness constraint. It is complete for the tool's 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?
The schema provides no per-parameter descriptions (0% coverage), but the description compensates by fully explaining all three parameters: space_id, key with a uniqueness constraint, and value with allowed types (string, number, dict, or list). This adds significant meaning beyond the bare 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?
The description clearly states the action: 'Create a new content property on a space.' This specifies a distinct verb and resource, distinguishing it from sibling tools like create_page_property (which targets pages) and update_space_property (which modifies existing properties).
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 is for creating a new property, which is implied by 'Create a new'. It doesn't explicitly mention when not to use it (e.g., for updating use update_space_property), but the create action is unambiguous and context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_attachmentDelete AttachmentCDestructiveIdempotent
Delete an attachment.
Args:
attachment_id: Attachment ID.
| Name | Required | Description | Default |
|---|---|---|---|
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description simply restates the action 'Delete' without adding behavioral depth. Although annotations mark it as destructive and idempotent, the description does not disclose whether deletion is permanent, what permissions are required, or any side effects on related data, missing the opportunity to add context beyond 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 concise, containing only the core action and an Arg list, with no redundant sentences. It is well-structured and front-loaded, but the extreme brevity leaves out essential details, which is more a completeness issue than a conciseness one.
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 destructive operation with no output schema, the description should explain the result of deletion, permanence, and any impact on associated pages or spaces. It provides none, causing significant gaps for the agent to predict the tool's behavior. The presence of annotations mitigates some risk, but the description itself is incomplete.
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 0%, so the description must compensate. The Args section says 'attachment_id: Attachment ID', which essentially repeats the parameter's title from the schema. It provides no details on where to find the ID, its format, or any constraints, insufficient for a single required 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 'Delete an attachment' with a specific verb and resource, making the tool's purpose clear. It distinguishes itself from sibling delete tools (e.g., delete_page, delete_blogpost) by naming 'attachment' as the resource. However, it does not elaborate on what constitutes an attachment, which would strengthen clarity.
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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an existing attachment ID) or context where this tool is preferred, leaving the agent without direction for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_blogpostDelete BlogpostADestructiveIdempotent
Delete a blog post (moves to trash, or permanently purges).
Args:
blogpost_id: The ID of the blog post to delete.
purge: If True, permanently delete instead of moving to trash.
| Name | Required | Description | Default |
|---|---|---|---|
| purge | No | ||
| blogpost_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds valuable context by explaining that deletion moves to trash by default and can be permanently purged with purge=True. This exceeds the annotation baseline by clarifying the destructive behavior and the reversible/irreversible distinction.
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 two short, front-loaded sentences plus a compact argument list. Every word earns its place; no fluff or redundancy. The structure is easy to scan and immediately conveys the core 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?
For a simple delete operation with two parameters and no output schema, the description is complete. It specifies the default behavior (trash), the purge option, and the required ID. No critical information is missing 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 0%, so the description carries the full burden. It clearly explains both parameters: blogpost_id is the ID of the post to delete, and purge controls whether deletion is permanent. This adds meaning beyond the schema's bare names and types.
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 'Delete' with a clear resource 'blog post', and immediately clarifies the two modes (moves to trash or purges). This distinguishes it from sibling tools like delete_page or delete_comment by explicitly targeting blog posts.
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 about the tool's use through the resource name and the trash/purge distinction, but does not explicitly name alternatives or state when to use this tool over delete_page. The resource-specific nature implies usage, but no explicit exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_inline_commentDelete Inline CommentCDestructiveIdempotent
Delete an inline comment.
Args:
comment_id: Comment ID.
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already convey. It does not mention permanence, cascading effects on replies, permissions required, or the return value. With destructiveHint=true and readOnlyHint=false already present, the description merely repeats the verb from the name.
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, but the 'Args' section is fully redundant with the input schema and does not earn its place. Clear structure, but no added value 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 destructive one-parameter tool with no output schema, the description provides the minimum: the action and the parameter. However, it lacks important context about side effects (e.g., whether deletion is permanent or removes replies), and with no output schema the agent cannot anticipate the result. Annotations cover safety profile, but the description itself is incomplete for confident 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 schema has 0% description coverage for the only parameter. The description states 'comment_id: Comment ID', which simply echoes the schema property title and provides no additional meaning such as where to find the ID, format, or relationships to other objects.
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 'Delete an inline comment' clearly states the action and resource, and the resource type distinguishes it from sibling tools like delete_footer_comment. However, it does not explicitly contrast it with related tools (update_inline_comment, create_inline_comment), so it lacks explicit 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?
No guidance is provided on when to use this tool versus alternatives such as update_inline_comment or delete_footer_comment. The description only states the action without any context on prerequisites, exclusions, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_pageDelete PageADestructiveIdempotent
Delete a page (moves to trash by default).
To permanently delete, first call delete_page to trash the page, then call
delete_page again with purge=True.
Args:
page_id: ID of the page to delete.
purge: If True, permanently delete a trashed page. The page must already
be in the trash; calling purge=True on a current page returns 400.
| Name | Required | Description | Default |
|---|---|---|---|
| purge | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint and idempotentHint. The description adds meaningful behavioral context: default trash behavior, the two-step workflow for purging, and the 400 error on invalid purge. This goes well beyond the structured hints and helps the agent predict outcomes.
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: three sentences plus a small Args list. Front-loaded with the primary action, then the nuanced purge workflow, with no filler. 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?
For a destructive tool with two-step state dependency, the description fully covers behavior, parameters, workflow, and failure modes. With no output schema, it appropriately focuses on inputs and side effects. It is complete and self-sufficient.
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 0%, so the description must fully explain parameters. It does: page_id is 'ID of the page to delete' and purge is explained with its effect and precondition. It even notes the 400 error case, giving the agent the reasoning needed to avoid misuse.
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 'Delete a page (moves to trash by default)', a specific verb+resource statement that clearly distinguishes it from sibling delete tools like delete_blogpost or delete_attachment. It also clarifies the default trash behavior, which adds precision beyond the title.
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 gives explicit guidance for permanent deletion: 'first call delete_page to trash the page, then call delete_page again with purge=True'. It also states the precondition for purge (must already be in trash) and the error condition (400 on current page). It doesn't name alternatives, but for a delete tool with no close resource-overlapping siblings, this is sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_page_propertyDelete Page PropertyBDestructiveIdempotent
Delete a content property from a page.
Args:
page_id: Page ID.
property_id: Property ID.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| property_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is covered. However, the description adds no behavioral context beyond the bare 'Delete', such as whether deletion is permanent, reversible, or requires special permissions. It does not contradict annotations but also does not enrich 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 with a single declarative sentence and a simple Args list. It is easy to scan, but the Args list is redundant with the input schema, so some elements could be trimmed without loss.
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 deletion tool with annotations covering destructiveness, the description is minimally viable. However, it lacks any mention of edge cases, effect on related data, or success/failure behavior, which would make it more complete for an agent.
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?
With 0% schema description coverage, the description merely repeats the schema field names ('page_id', 'property_id') and their types ('Page ID', 'Property ID'), adding no additional meaning. The schema already provides these titles, so the description fails to compensate for the lack of semantic detail.
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 'Delete a content property from a page' with a specific verb and resource. It distinguishes from sibling tools like delete_page, delete_blogpost, and delete_attachment by targeting content properties specifically.
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 update_page_property or delete_page. There are no explicit exclusions or context about prerequisites, making the usage context implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_space_propertyDelete Space PropertyADestructiveIdempotent
Delete a content property from a space.
Args:
space_id: The ID of the space.
property_id: The ID of the property to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | ||
| property_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false, so the tool's destructive nature is known. The description adds no additional behavioral context such as irreversibility, cascading effects, or required permissions. It only restates the action, which is already implied by the annotations and tool name.
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 very concise, front-loaded with the main action, and includes a clear argument list. No unnecessary words 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?
For a simple two-parameter delete operation, the description is largely complete. It explains the parameters, and the annotations cover the destructive and idempotent nature. However, it does not mention return values or side effects, but given the lack of an output schema and the simplicity of the tool, this is acceptable.
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 0%, but the description includes an 'Args' section explaining each parameter: 'space_id: The ID of the space' and 'property_id: The ID of the property to delete.' This adds meaning beyond the bare schema by clarifying the role of each parameter, especially that property_id is the one to delete.
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 ('Delete a content property from a space') with specific verbs and resource. It distinguishes itself from sibling tools like delete_page_property or update_space_property by clearly naming the target resource.
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. It does not mention any prerequisites, conditions, or alternative tools such as update_space_property or create_space_property. This is a clear lack of usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachmentGet AttachmentARead-only
Get an attachment by ID.
Args:
attachment_id: Attachment ID.
version: Specific version number.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds minimal behavioral context—only mentioning the version parameter without explaining behavior like default handling or not-found cases. This falls short of richer context but is not misleading.
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 structured with an Args list. Every sentence is informative with no wasted words.
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 simplicity (2 params, no output schema) and strong annotations, the description is largely sufficient. It doesn't explain return values, but for a get-by-ID tool, that may be implied. The optional version behavior could be more explicit, but overall it provides adequate context.
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 0%, but the description includes an Args section that explains attachment_id and version. These explanations are terse but add some meaning beyond the schema's bare property names and types. It partially compensates for the lack of 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 clearly states the tool gets an attachment by ID, using a specific verb and resource. It distinguishes itself from sibling tools like list_page_attachments (listing) and delete_attachment (destructive).
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 clear this is for retrieving a single attachment by ID, providing clear context. It doesn't explicitly mention when not to use it or alternatives, but for a simple get operation, the usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blogpostGet BlogpostARead-only
Get a blog post by ID.
Args:
blogpost_id: The ID of the blog post.
body_format: Body representation — 'storage', 'atlas_doc_format', or 'view'.
version: Retrieve a specific historical version number.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| blogpost_id | Yes | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about body_format and version retrieval but does not describe return structure or potential errors, so it provides moderate additional transparency.
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 very concise, using a clear Args list with no filler. Every sentence or line adds meaningful information, and the format is 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?
The core behavior of retrieving a blog post by ID is fully specified, and parameter nuances are documented. However, with no output schema, the description would benefit from stating the return type (e.g., the blog post object), leaving a minor completeness gap.
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 0%, but the description fully compensates by explaining the meaning of all three parameters. It defines blogpost_id as the ID, lists valid body_format values, and clarifies version as a historical version number, adding valuable semantics beyond the schema's bare types.
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 the specific action 'Get' with the resource 'blog post by ID', clearly distinguishing it from sibling tools like list_blogposts or create_blogpost. The purpose is immediately obvious and 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 clearly implies usage for retrieving a single blog post by its ID, which provides clear context. However, it does not explicitly mention when to prefer it over alternatives like list_blogposts or get_page, so it does not earn the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inline_commentGet Inline CommentARead-only
Get an inline comment by ID.
Args:
comment_id: Comment ID.
body_format: Body representation.
version: Specific version number.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| comment_id | Yes | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safe read nature is covered. The description adds context about the version parameter ('Specific version number') but does not disclose behavior like error handling, return output, or handling of optional body_format. It adds minimal value beyond 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 extremely concise with a clear front-loaded main sentence followed by an organized Args list. Every sentence and field contributes value, and there is no redundancy 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?
For a simple read tool with good annotations and a clear operation, the description is adequate. It covers the action and parameters, and the return value is implied as the inline comment itself. It could mention output format or error conditions, but given the simplicity and annotations, it is reasonably 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 0%, so the description's Args section is the only semantic source. It explains each parameter briefly ('comment_id: Comment ID', 'body_format: Body representation', 'version: Specific version number'), which is helpful but lacks detail such as allowed values for body_format or the meaning of null defaults. It compensates somewhat but not fully.
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 'Get an inline comment by ID' with a specific verb, resource, and scope. It distinguishes itself from sibling tools like list_page_inline_comments (which lists) and update/delete/create variants by emphasizing the ID-based single retrieval.
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. It does not mention list_page_inline_comments for getting multiple comments, nor does it explain any exclusions or prerequisites. The intended use is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pageGet PageARead-only
Get a page by ID.
Args:
page_id: Page ID.
body_format: Body representation — storage (XHTML), view, atlas_doc_format.
get_draft: If True, return the current draft instead of published version.
version: Return a specific historical version number.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| version | No | ||
| get_draft | No | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the effect of key parameters: get_draft returns the draft rather than the published version, and version returns a historical version. It also enumerates body_format options. These behavioral details go beyond the readOnly and openWorld hints provided by annotations, adding useful nuance about what the function returns.
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 well-structured: a one-sentence purpose followed by a compact Args list where each parameter gets a single, meaningful line. No unnecessary text 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?
The tool is a straightforward read operation with optional parameters that influence output. The description covers all parameter behaviors, which is sufficient for invoking the tool correctly. It doesn't describe the full return structure or error cases, but the absence of an output schema is mitigated by the clear parameter explanations.
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?
With 0% schema description coverage, the description fully compensates by explaining each parameter individually. body_format lists the three representation types, get_draft clarifies draft vs published logic, and version indicates historical retrieval. Even page_id is minimally identified as 'Page ID', matching its schema title.
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 'Get a page by ID', which clearly states the action (get), the resource (page), and the scoping key (ID). This distinguishes it from sibling tools like get_page_children or get_page_versions by focusing on the page entity itself.
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 used when you have a page ID and want the page's content or metadata. It does not explicitly mention when not to use it or name alternatives, but the context is clear enough for a basic retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_ancestorsGet Page AncestorsBRead-only
Get all ancestor pages (breadcrumb trail) for a page.
Args:
page_id: Page ID.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive behavior, but the description adds no additional behavioral context such as ordering, inclusion of the page itself, or response shape. It merely restates the action without enriching the agent's understanding beyond 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?
The description is very short and front-loaded with the main purpose. However, the 'Args:' section redundantly restates the schema, which does not earn its place. The purpose sentence is clear and 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?
With no output schema and minimal parameter documentation, the description is incomplete. It does not specify the return format, whether the result is ordered, or how the ancestor list is structured, making it difficult for an agent to anticipate the tool's behavior.
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?
With schema description coverage at 0%, the description must provide meaning for the page_id parameter. It only repeats the parameter name ('Page ID') without explaining the expected format, how to obtain it, or any relationship to other IDs. This adds no value beyond the schema's field name.
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 'ancestor pages' with the clarifying phrase 'breadcrumb trail'. This clearly distinguishes it from sibling tools like get_page_descendants or get_page_children.
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 use case of retrieving ancestor pages for breadcrumb navigation, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. The reader must infer usage from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_childrenGet Page ChildrenARead-only
Get all child pages of a page (recursive, paginated).
Args:
page_id: Parent page ID.
cursor: Pagination cursor.
limit: Max results.
sort: Sort field.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'recursive' and 'paginated' as behavioral traits beyond the readOnly and non-destructive annotations, which is useful. However, it does not disclose return format, pagination mechanics, or potential pitfalls like very large result sets, so transparency is moderate.
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 well-structured, leading with a clear purpose statement followed by an Args list that adds necessary information without redundancy. Every element 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 the tool's modest complexity, good annotations, and lack of output schema, the description adequately covers the core behavior and parameter meanings. However, it omits return type details and does not disambiguate from closely related sibling tools, making it 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?
With 0% schema description coverage, the Args list provides basic semantics for all four parameters (parent ID, cursor, limit, sort). This is helpful, but it lacks detail such as valid sort fields, limit bounds, or how the cursor is obtained, leaving gaps.
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 tool gets all child pages of a parent page and specifies it is recursive and paginated. It distinguishes from direct children via 'recursive' but does not explicitly differentiate from the sibling get_page_descendants, causing minor ambiguity.
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 usage when recursive, paginated child page retrieval is needed, but provides no explicit guidance on when to use this tool over alternatives like get_page_direct_children or get_page_descendants. No exclusions or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_descendantsGet Page DescendantsARead-only
Get all descendants of a page.
Args:
page_id: Page ID.
limit: Max results.
cursor: Pagination cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false) already establish this as a safe read operation, lowering the bar. The description adds the behavioral fact that it returns 'all descendants' rather than just direct children, but it does not disclose pagination behavior, ordering, or whether the traversal is recursive. This provides modest additional context beyond 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 compact docstring with a clear one-sentence purpose followed by a parameter list. It is concise and front-loaded, with no wasted words, though the argument descriptions are minimal.
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?
This is a paginated list tool with no output schema. The description fails to explain what the response looks like, how pagination works (e.g., using the cursor), or what constitutes a descendant (recursive vs. direct). For a list operation, this leaves the agent without essential integration information.
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 0%, so the description must compensate. It provides terse but useful meanings: page_id ('Page ID'), limit ('Max results'), and cursor ('Pagination cursor'). These add clarity over the bare schema titles but omit details such as default values, maximum limits, or cursor format.
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 the specific verb 'Get' and identifies the resource as 'descendants of a page' with the qualifier 'all', clearly distinguishing it from sibling tools like get_page_children and get_page_direct_children. The title aligns perfectly with the description.
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 explicitly state when to use this tool versus alternatives. The word 'all' implies a broader scope, but there is no direct guidance such as 'use this for all generations, not just direct children' or mention of alternatives. Context is clear but not fully developed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_direct_childrenGet Page Direct ChildrenARead-only
Get the immediate (one-level-deep) children of a page.
Args:
page_id: Parent page ID.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=true, destructiveHint=false, and openWorldHint=true, the description's 'Get' aligns with the read-only safety profile. The description does not add significant behavioral detail beyond the one-level-deep scope, such as pagination behavior or error handling, but annotations cover the core safety traits effectively.
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 succinct: a single purpose sentence followed by a well-organized Args block. No redundant information; every line adds value.
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 paginated list tool with good annotation coverage and a clear purpose, the description covers purpose, parameters, and scope. The lack of an output schema is acceptable as the description need not explain return values. It is complete for the tool's simplicity.
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 provides no descriptions (0% coverage), but the description includes an Args block defining page_id as 'Parent page ID', cursor as 'Pagination cursor', and limit as 'Max results'. This adds essential meaning to each parameter, going beyond the schema's bare names and types.
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 'Get the immediate (one-level-deep) children of a page,' which clearly identifies the action (get), the resource (children of a page), and the scope (immediate/one-level-deep). This effectively distinguishes it from sibling tools like get_page_descendants and get_page_ancestors.
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 by specifying 'one-level-deep' children, implying this tool is for direct children only, while deeper hierarchies would need a different tool. However, it does not explicitly mention alternatives or when-not-to-use, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_operationsGet Page OperationsARead-only
Get the permitted operations (read, update, delete, …) for a page.
Args:
page_id: Page ID.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, covering the safety profile. The description adds semantic detail about the return content (read, update, delete operations) but does not disclose additional behavioral traits such as whether permissions are user-specific or how they are determined. With annotations present, this is acceptable but minimal.
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 two short sentences, front-loaded with the purpose and a minimal Args section. Every word earns its place with no unnecessary 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?
This is a simple single-parameter, read-only tool with strong annotations. The description communicates the core function clearly, and the lack of an output schema is partly mitigated by the description's mention of 'permitted operations'. Some return-value details are missing, but the overall context is sufficient for the tool's simplicity.
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 provides no description for the required page_id, and schema coverage is 0%. The description's Args section compensates with 'page_id: Page ID', which is the core semantic, but it lacks detail on format, source, or examples. Adequate but not rich.
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 tool's purpose with a specific verb ('Get') and resource ('permitted operations ... for a page'), distinguishing it from sibling tools like get_space_operations by explicitly scoping to pages.
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. There is no mention of when not to use it, prerequisites, or differences from similar operations tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_propertyGet Page PropertyARead-only
Get a specific content property on a page.
Args:
page_id: Page ID.
property_id: Property ID.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| property_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no extra behavioral context such as error handling, return format, or behavior when the property is not found, but it does not contradict 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?
The description is extremely concise, front-loaded with the core purpose, and follows with clearly separated parameter definitions. Every sentence earns its place, and there is no wasted verbiage.
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 solid annotations, the description covers the core action and the two required parameters adequately. However, the term 'content property' is somewhat ambiguous, and there is no mention of return value or potential error states, leaving a small gap in completeness.
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 0%, and the description merely restates the parameter names ('page_id: Page ID', 'property_id: Property ID') without adding meaningful context like where to find these IDs, expected formats, or relationships. It fails to compensate for the sparse 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?
The description uses a specific verb ('Get') and resource ('specific content property on a page'), clearly identifying the tool's action and scope. It implicitly distinguishes from sibling tools like list_page_properties by emphasizing 'specific'.
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 'a specific content property' implies this tool is for retrieving one property by ID as opposed to listing all properties, but it never explicitly says when to use this tool over alternatives like list_page_properties, nor provides exclusions. Usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_versionGet Page VersionARead-only
Get details for a specific version of a page.
Args:
page_id: Page ID.
version_number: Version number to retrieve.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| version_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description need not repeat safety traits. However, the description adds no extra behavioral context beyond the basic 'Get details' (e.g., return format, pagination, or error handling). It is consistent with annotations, so not contradictory, but adds minimal value.
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 concise: a single sentence for purpose and a compact args list. No filler or redundant content. Every word earns its place, and the structure is scannable.
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 only two parameters and no output schema, the description is adequate. It covers the purpose and param semantics, though it does not detail what 'details' include or any edge cases. Given the tool's low complexity, this is sufficient.
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?
With 0% schema description coverage, the description compensates by explaining both parameters: 'page_id: Page ID' and 'version_number: Version number to retrieve.' This provides clear, concise meaning beyond the raw schema types, though it does not delve into formats or constraints.
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 ('Get details') and the specific resource ('a specific version of a page'). This distinguishes it from sibling tools like list_page_versions (which lists versions) and get_page (which gets the current page), making the 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 usage when a specific version is needed, but does not explicitly contrast with alternatives such as list_page_versions or get_page. No when-not-to-use guidance is provided, so it falls short of explicit usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spaceGet SpaceBRead-only
Get a space by its ID.
Args:
space_id: Space ID.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. However, the description adds no additional behavioral context such as what happens if the space ID is invalid, permission requirements, or return format. It does not contradict the annotations, and the bar is lower due to annotation coverage.
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 concise, consisting of a one-sentence purpose and a minimal argument listing. It is front-loaded with the core functionality and contains no filler or 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 simple single-parameter read operation, the description is adequate but not complete. It lacks explanation of the return value (since no output schema exists) and does not address edge cases like non-existent spaces. Given the low complexity and strong annotations, this is a reasonable but not exemplary score.
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 0%, meaning the schema provides no parameter descriptions. The description's 'Args' section repeats the parameter name and a vague 'Space ID', which adds little beyond the schema's title 'Space Id'. It fails to provide meaningful semantics like format, examples, or constraints.
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 'Get a space by its ID', which specifies the exact action and resource. It effectively distinguishes this from sibling tools like 'list_spaces' (which lists all spaces) and 'get_blogpost' (which fetches a different resource type).
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 explicit guidance is provided on when to use this tool versus alternatives. While it implies use when you have a specific space ID, it does not mention scenarios where other tools like 'list_spaces' or 'get_space_permissions' might be more appropriate, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_space_content_labelsGet Space Content LabelsARead-only
List all labels used on content within a space.
Args:
space_id: The ID of the space.
prefix: Filter by label prefix (e.g. 'global', 'my', 'team').
cursor: Pagination cursor from a previous response.
limit: Max results to return (default 25, max 250).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| prefix | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is known. The description adds useful behavioral context by mentioning pagination via cursor and limit limits (default 25, max 250), which goes beyond the 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?
The description is extremely concise, with a single-sentence purpose followed by a clean parameter list. No unnecessary words 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?
For a simple read-only list tool with no output schema, the description covers the purpose and all parameters. While it doesn't describe the response format or provide explicit usage alternatives, the lack of an output schema makes this acceptable and the tool can be invoked 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 zero description coverage (0%), but the description fully compensates by documenting every parameter: space_id, prefix with concrete examples, cursor for pagination, and limit with default/max values. This is exemplary.
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 'List' and a clear resource 'labels used on content within a space'. It distinguishes itself from sibling tools like 'list_space_labels' (space-level labels) and 'list_page_labels' (single page labels) by focusing on content-level labels within a space.
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 explicitly state when to use this tool versus alternatives such as list_page_labels or list_space_labels. The scope 'within a space' implies a use case, but no explicit guidance or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_space_operationsGet Space OperationsBRead-only
Get the operations (permissions) available to the current user in a space.
Args:
space_id: The ID of the space.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the result is scoped to the current user and clarifies 'operations' as 'permissions', but does not disclose return format or any further behavioral details.
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 a clear purpose sentence. The Args block is slightly redundant with the schema but does not significantly bloat the description. Overall, every sentence earns its place, though some redundancy exists.
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 one parameter and good annotations, the description is minimally viable. However, it fails to distinguish itself from get_space_permissions and does not describe the output format, which could confuse an agent when selecting between similar tools.
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 description includes an Args section but only restates 'space_id: The ID of the space', adding little beyond the parameter name itself. With 0% schema coverage, the description fails to provide meaningful elaboration such as how to obtain the space_id or any format constraints.
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 tool gets operations/permissions for the current user in a space, with a specific verb and resource. However, it does not differentiate from the sibling tool get_space_permissions, which appears to serve a similar purpose.
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 like get_space_permissions or get_page_operations. The description simply states what it does without any contextual exclusions or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_space_permissionsGet Space PermissionsARead-only
Get permission assignments for a space.
Args:
space_id: Space ID.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no extra behavioral context (e.g., pagination behavior, return format) beyond what annotations and schema provide. No contradiction.
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 concise, with only two informative sentences. It is front-loaded with the tool's purpose and avoids filler, earning 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 tool is simple, but the description omits the return structure (e.g., list of assignments) and pagination semantics. With no output schema, the agent is left guessing what the response contains, though the basic purpose is clear.
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?
With 0% schema description coverage, the description carries the burden of explaining parameters. It provides brief meanings ('Space ID', 'Pagination cursor', 'Max results'), adding some value over bare schema titles, but lacks detail on formats or defaults.
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 'Get permission assignments for a space' with a specific verb and resource. It is unambiguous and distinct from all sibling tools, none of which target 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 implies when to use the tool (to fetch space permissions), but provides no explicit context, caveats, or alternatives. Since no sibling tool overlaps in function, this is acceptable but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_space_propertyGet Space PropertyARead-only
Get a single content property of a space by its ID.
Args:
space_id: The ID of the space.
property_id: The ID of the property.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | ||
| property_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, confirming this is a safe read operation. The description adds no additional behavioral context such as return format, error handling, or authorization requirements. It does not contradict annotations, but also does not go beyond what structured fields already convey, so a mid-range score is appropriate.
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 concise, with a single clear opening sentence followed by the parameter definitions. There is no redundancy or filler. Every word serves a purpose, and the essential information is 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 tool's simplicity (two ID parameters, no output schema, read-only annotations), the description is mostly sufficient. It clearly states what is retrieved and by what identifiers. However, it could be slightly more complete by noting that it retrieves a content property specifically (as opposed to other property types) or clarifying what a 'content property' is, but for a straightforward getter, this is adequate.
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 0%, meaning the schema provides only type and title without descriptions. The description compensates by defining both parameters: 'space_id: The ID of the space' and 'property_id: The ID of the property.' This adds semantic meaning beyond the schema, though the explanations are basic and do not include constraints or examples.
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: 'Get a single content property of a space by its ID.' This specifies the verb (get), resource (content property of a space), and method (by ID), which distinguishes it from siblings like list_space_properties, update_space_property, or delete_space_property. The purpose is explicit and 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 usage: when you need a single content property by its ID. However, it does not explicitly mention when to use this tool versus alternatives such as list_space_properties to retrieve multiple properties, or get_page_property for page properties. There is no exclusion or comparison provided, so guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskGet TaskARead-only
Get a task by ID.
Args:
task_id: Task ID.
body_format: Body representation for the task content.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, providing a clear safety profile. The description adds minimal behavioral context beyond this, only briefly mentioning body_format as a parameter that affects representation. It does not disclose authentication needs, error behavior, or other side effects, but the annotations cover the most critical safety aspect.
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 concise and front-loaded: the purpose appears in the first sentence, followed by a minimal parameter list. There is no redundant or extraneous content, making it efficient for quick parsing by an AI agent.
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 get-by-ID tool, the description provides enough context: the required ID parameter, an optional format parameter, and read-only intent via annotations. While it does not specify the exact response structure, the tool's simplicity and the clear purpose make this adequate. Sibling tools provide context for alternative operations.
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?
With schema description coverage at 0%, the description carries the burden of explaining the parameters. It does clarify that task_id is the identifier and body_format controls the body representation. However, it lacks specifics such as acceptable values for body_format or behavior when null, so it only partially compensates for the schema's lack of descriptions.
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 tool's function: 'Get a task by ID.' This uses a specific verb and resource, defining exactly what the tool does. It distinguishes itself from sibling tools like list_tasks (which lists tasks) and update_task (which modifies tasks) by focusing on retrieval of a single task by ID.
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 usage: when a specific task ID is known and the task details are needed. However, it does not explicitly mention alternatives (e.g., list_tasks) or any exclusion criteria. Since the purpose is clear, the usage is implicitly understood but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blogpostsList BlogpostsARead-only
List blog posts, optionally filtered by space.
Args:
space_id: Restrict to this space ID.
status: Filter by status — 'current' or 'draft'.
sort: Sort order (e.g. 'created-date', '-created-date', 'title').
cursor: Pagination cursor from a previous response.
limit: Max results to return (default 25, max 250).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| status | No | ||
| space_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds behavioral specifics: filtering by space/status, sort order examples, pagination via cursor, and limit constraints (default 25, max 250), which go beyond the structured data.
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 purpose line followed by a concise args list. Every sentence adds useful information, with no fluff. The main purpose is front-loaded, and the parameter descriptions are compact yet complete.
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 has no output schema, the description covers the parameter space and pagination behavior well. It does not explicitly describe the response structure or that results are returned under a key, which could be useful for a list tool. Still, the description is quite complete for the scope.
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?
With schema description coverage at 0%, the description carries full burden. It explains every parameter meaning: space_id restricts to a space, status filters to 'current' or 'draft', sort provides examples, cursor is from a previous response, and limit specifies default/max. This fully compensates for the schema's lack of enums and details.
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 'List blog posts, optionally filtered by space' — a specific verb and resource. However, it does not differentiate from sibling tools like list_blogposts_in_space or list_blogposts_with_label, so it misses explicit 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 description explains how to use each argument but gives no guidance on when to choose this tool over list_blogposts_in_space or list_blogposts_with_label. The optional space filter is implied as a unified interface, but no exclusions or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blogposts_in_spaceList Blog Posts in SpaceBRead-only
List blog posts in a space.
Args:
space_id: Space ID.
sort: Sort field.
status: Blog post status filter.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| status | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context beyond the parameter list, such as no mention of pagination behavior or return format, but this is acceptable given the annotations cover the key safety aspects.
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 quite short and gets to the point. The Args block is repetitive but each line is minimal and no unnecessary text is included. It loses one point for the awkward formatting of listing parameters, but overall it is efficient.
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 no output schema, the description should explain return values and edge cases, but it does not. It also fails to differentiate this tool from sibling tools like 'list_blogposts'. The tool is simple, but the lack of any behavioral or return details makes it incomplete for effective selection and 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 0%, so the description must fully compensate. However, the Args section provides only terse labels like 'Space ID', 'Sort field', and 'Blog post status filter' that add little beyond the schema's property names. No examples, allowed values, or format details are given for sort, status, cursor, or limit, leaving significant ambiguity.
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 'List blog posts in a space' with a specific verb and resource, and the space scope distinguishes it from the sibling tool 'list_blogposts' which likely lists across spaces. This is a clear, specific purpose.
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 like 'list_blogposts' or 'list_blogposts_with_label'. There are no exclusions or explicit alternative recommendations, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blogposts_with_labelList Blogposts With LabelARead-only
List blog posts that carry a specific label.
Args:
label_id: The ID of the label.
space_id: Restrict results to this space ID.
body_format: Body representation — 'storage', 'atlas_doc_format', or 'view'.
sort: Sort order (e.g. 'created-date', '-created-date', 'title').
cursor: Pagination cursor from a previous response.
limit: Max results to return (default 25, max 250).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| label_id | Yes | ||
| space_id | No | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about pagination (cursor, limit, default/max) and body_format options, but does not disclose behavior beyond these basics, such as return structure or default ordering. 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 clear sentence followed by a compact Args list. Every line adds value: no fluff, information is front-loaded, and parameter explanations are concise and complete.
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 6 parameters, no output schema, and no enums, the description covers all parameters meaningfully. It does not explicitly describe the return value, but the 'list' semantics and pagination parameters imply a paginated list of blog posts. Slightly more detail on the response shape would make it 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 description coverage is 0%, and the description fully compensates by explaining each parameter with concrete details: label_id, space_id, body_format allowed values, sort examples, cursor pagination, and limit default/max. This adds strong meaning beyond the bare 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?
The description states 'List blog posts that carry a specific label' with a specific verb and resource, clearly distinguishing it from list_blogposts (all posts) and list_pages_with_label (pages instead of posts). It unambiguously conveys the tool's function.
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 implies usage for filtering blog posts by label, but it does not explicitly compare with alternative tools or provide 'when-not-to-use' guidance. The context is clear, but there are no explicit exclusions or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_labelsList LabelsARead-only
List labels across the entire Confluence instance.
Args:
label_prefix: Filter by prefix — 'global', 'my', or 'team'.
body_format: Body representation for associated content.
cursor: Pagination cursor from a previous response.
limit: Max results to return (default 25, max 250).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| body_format | No | ||
| label_prefix | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds behavioral details such as pagination via cursor, a default limit of 25 and maximum of 250, and accepted label_prefix values. This enriches the agent's understanding of how the tool behaves without contradicting 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 a one-sentence summary, and then uses a clean Args list. No redundant or filler content is present.
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 list tool with four optional parameters and no output schema, the description provides sufficient context: purpose, scope, parameter semantics, and pagination behavior. Minor gaps remain around the exact return format and the meaning of 'body representation,' but these are not critical given the tool's simplicity.
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 zero description coverage, and the description fully compensates by explaining all four parameters in the Args block: label_prefix, body_format, cursor, and limit, including allowed values and defaults. This adds substantial semantic meaning beyond the raw 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?
The description clearly states it lists labels across the entire Confluence instance, using the specific verb 'list' and resource 'labels' with an explicit scope. This distinguishes it from sibling tools like list_page_labels and list_space_labels, which operate on narrower scopes.
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 that this is an instance-wide label listing, implying it should be used for global label queries rather than page or space-specific ones. However, it does not explicitly name alternative tools or provide when-not-to-use guidance, so it stops short of full differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_page_attachmentsList Page AttachmentsBRead-only
List attachments on a page.
Args:
page_id: Page ID.
sort: Sort field.
cursor: Pagination cursor.
status: Attachment status filter.
mediatype: MIME type filter, e.g. 'image/png'.
filename: Filename filter.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| status | No | ||
| page_id | Yes | ||
| filename | No | ||
| mediatype | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and destructiveHint=false, the description adds no additional behavioral context. It does not describe pagination behavior, sort defaults, or error conditions, which would be useful for a list 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 efficient: a one-sentence purpose followed by a compact Args list. Every line serves a purpose, and there is no unnecessary fluff. The front-loaded purpose aids quick scanning.
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?
Despite having 7 parameters and no output schema, the description does not explain the return format, pagination semantics, or how filters combine. It is insufficient for an agent to fully predict the tool's behavior beyond the schema and annotations.
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 0%, so the description must compensate. It lists all 7 parameters with brief comments, but most are redundant with the schema's titles. The mediatype example ('image/png') adds some value, but sort and status lack allowed values. Overall, minimal compensation.
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 is explicit: 'List attachments on a page' identifies the verb, resource, and scope. This clearly distinguishes it from sibling tools like get_attachment (single attachment) and delete_attachment (mutation).
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 get_attachment or list_page_properties. There are no exclusions or mention of filter combinations. It simply states the operation without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_page_inline_commentsList Page Inline CommentsCRead-only
List inline comments on a page.
Args:
page_id: Page ID.
body_format: Body representation.
sort: Sort field.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| page_id | Yes | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is clear. The description adds no further behavioral context (e.g., pagination semantics, ordering guarantees, or whether replies are included).
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. The Args list is minimal, though it partially duplicates the schema, which is acceptable given the lack of schema descriptions.
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 no output schema and a moderately complex paginated list operation, the description does not explain return shape, pagination behavior, or any filtering constraints. The information provided is insufficient for an agent to fully understand the invocation outcome.
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 0%, so the description must compensate. The Args section provides only terse labels like 'Body representation' and 'Pagination cursor,' which add marginal meaning beyond the schema titles but fail to explain valid values, formats, or relationships between params.
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 'List inline comments on a page' with a specific verb and resource, clearly distinguishing it from sibling tools like list_page_footer_comments. The scope 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?
No guidance is provided for when to use this tool versus alternatives, such as get_inline_comment or list_page_footer_comments. The description simply restates the action without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_page_labelsList Page LabelsARead-only
List labels attached to a page.
Args:
page_id: Page ID.
prefix: Filter by label prefix (e.g. 'global', 'team').
sort: Sort field.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| prefix | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safe read-only nature. The description adds minimal behavioral detail by listing pagination-related parameters (cursor, limit), implying pagination, but does not explain response format, permission requirements, or how prefix filtering interacts with sort. It adds some value but not extensive 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 extremely concise: a one-line purpose followed by a clean argument list. Every word earns its place, with no redundancy or fluff. The structure is scannable and appropriate for the tool's simplicity.
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 moderately complex with 5 parameters and pagination, but the description is fairly minimal. It does not explain the return structure (what a label object looks like), the default sort behavior, or how cursor-based pagination works. For a read-only list tool without an output schema, this is a noticeable gap, though the argument list covers the main input semantics.
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?
With schema description coverage at 0%, the description carries the full burden of explaining parameters. It provides brief but meaningful descriptions for all 5 parameters, including an example for prefix. However, it lacks specifics like allowed sort values or default limits, so it is helpful but not exhaustive.
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 ('List') and resource ('labels attached to a page'), distinguishing it from sibling tools like list_space_labels or list_pages_with_label. It is concise and 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 does not provide any context about when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. It only describes the basic action, leaving the agent to infer usage from the name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_page_propertiesList Page PropertiesBRead-only
List content properties on a page.
Args:
page_id: Page ID.
key: Filter by property key.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| limit | No | ||
| cursor | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds minimal behavioral context (key filtering, pagination) but does not explain return format, errors, or permission needs. 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 concise and well-structured with a one-sentence summary and a clearly formatted Args list. It is efficient, though the 'Page ID' explanation adds little value over the schema title, and the overall content is sparse.
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 strong annotations, and no output schema. The description covers the essential purpose and parameters but lacks contextual guidance like when to use it versus get_page_property or what the return structure represents. Adequate for a basic list tool but with clear 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 0%, so the description's arg explanations ('Filter by property key', 'Pagination cursor', 'Max results') add basic meaning beyond the schema's bare titles. However, these explanations are minimal and do not elaborate on formats or defaults beyond what is already inferable from 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?
The description 'List content properties on a page' uses the specific verb 'List' and clearly identifies the resource ('content properties') and scope ('on a page'), distinguishing it from sibling tools like get_page_property (singular) and create/update/delete property 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 provides no explicit guidance on when to use this tool versus alternatives such as get_page_property, nor does it mention pagination behavior or scenarios where the key filter would be appropriate. It merely states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesList PagesARead-only
List pages, optionally filtered by space, title, status, or parent.
Args:
space_id: Filter by space ID.
title: Exact title match.
status: Page status — current, archived, trashed, deleted.
ancestor_id: Filter by parent page ID.
sort: Sort field, e.g. 'title', '-title', 'created-date', '-modified-date'.
limit: Max results (1–250).
cursor: Pagination cursor from a previous response.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| title | No | ||
| cursor | No | ||
| status | No | ||
| space_id | No | ||
| ancestor_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds useful behavioral details: pagination via cursor, filtering by status values (current, archived, trashed, deleted), and sort options. It does not disclose potential rate limits or default ordering, but the annotations reduce the 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 opening sentence is concise and front-loaded, followed by a structured Args block. The parameter explanations are brief but informative. Slightly verbose due to the list of all seven parameters, but each earns its place given the lack of schema descriptions.
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 provides sufficient context for a read-only list operation: filters, pagination, and sort. However, there is no output schema and the return structure is not described (e.g., whether results include page metadata, total count). Given the tool's simplicity and the presence of pagination info, it is fairly complete but not exhaustive.
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?
With 0% schema description coverage, the description fully compensates by explaining every parameter: space_id, title (exact match), status (list of values), ancestor_id, sort (with examples), limit (range 1–250), and cursor ('from a previous response'). This goes well beyond the schema's bare field names.
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 'List pages, optionally filtered by space, title, status, or parent' clearly states the verb (list) and resource (pages) and distinguishes from sibling tools like list_pages_in_space by indicating it can filter across spaces. The parameter list further clarifies scope.
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 clear context on what the tool does and the available filters, implying when it would be used (general page listing with optional filters). However, it does not explicitly contrast alternatives like list_pages_in_space or list_pages_with_label, nor does it state when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pages_in_spaceList Pages in SpaceARead-only
List all pages in a space.
Args:
space_id: Space ID.
depth: 'all' (default) or 'root' (top-level pages only).
sort: Sort field.
status: Page status filter.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| depth | No | ||
| limit | No | ||
| cursor | No | ||
| status | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds depth semantics and hints at pagination via cursor/limit, but does not disclose pagination behavior, default limits, or potential large result sets.
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, followed by a compact list of parameter explanations. No fluff, though formatting is plain.
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 tool with annotations, the description covers essential invocation details, but lacks specifics on return structure, pagination mechanics, and allowed values for sort/status. With no output schema, more detail on expected response would improve completeness.
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 0%, so the description must carry parameter meaning. It provides brief explanations for all six parameters, including depth allowed values and the purpose of cursor/limit. However, sort and status are vague with no allowed values.
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 resource ('List all pages in a space'), clearly distinguishing it from sibling tools like list_blogposts_in_space or get_page_children. The depth parameter further clarifies scope.
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 that this tool lists pages within a specific space, but it does not explicitly mention when to prefer it over alternatives like list_pages or get_page_children. No exclusions or alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pages_with_labelList Pages with LabelBRead-only
List all pages that carry a specific label.
Args:
label_id: Label ID.
space_id: Narrow results to a specific space.
body_format: Body representation in the returned pages.
sort: Sort field.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| label_id | Yes | ||
| space_id | No | ||
| body_format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds context like 'Narrow results to a specific space' and 'Pagination cursor,' but does not disclose additional behavioral traits such as response format, pagination limits, or any potential anomalies. With annotations covering safety, a score of 3 is appropriate.
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: a single sentence followed by an Args list. Each line earns its place, though parameter names repeat schema titles. It is well-structured and front-loaded with the primary action, making it 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?
For a read-only list tool with 6 parameters and no output schema, the description covers the core purpose and parameter meanings. However, it omits behavioral details like response shape, pagination defaults, or the meaning of openWorldHint. It is adequate but not fully complete for an agent that has no other context.
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 0%, so the description's Args list must carry the parameter meaning. It provides brief explanations for all six parameters, with some being helpful (space_id, body_format, cursor, limit) and others tautological (label_id). It adds value beyond the bare schema titles but lacks detail on allowed values or formats.
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 tool's function: 'List all pages that carry a specific label.' It uses a specific verb and resource, and the label focus distinguishes it from generic page-listing tools. However, it does not explicitly mention sibling alternatives or contrast itself with them, so it falls short of a perfect 5.
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 is implied by the description: use this tool when you have a label_id and want pages with that label. However, there is no explicit guidance on when to prefer this over alternatives like list_pages or list_blogposts_with_label, nor any exclusion criteria. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_page_versionsList Page VersionsARead-only
List the version history of a page.
Args:
page_id: Page ID.
cursor: Pagination cursor.
limit: Max results.
sort: Sort field — 'created-date' (oldest first) or '-created-date' (newest first).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds sort order semantics and pagination parameters but does not disclose any additional behavioral traits such as response format or potential empty results. No contradiction exists.
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 well-structured. It opens with the core purpose in one sentence, followed by a clear Args block. No unnecessary words 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?
For a simple read-only list operation, the description adequately covers the essential details: what it lists and how to control results via pagination and sorting. It omits explicit mention of return shape, but given the low complexity and annotations, this is not a critical gap.
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 0%, but the description fully compensates by explicitly defining each parameter: page_id, cursor, limit, and sort (including allowed values 'created-date' and '-created-date'). This adds meaning well beyond the bare 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?
The description states 'List the version history of a page.' This is a specific verb-resource pair that clearly distinguishes from sibling tools like get_page_version (which fetches a single version) and other page-related list tools. The scope 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?
No guidance is provided on when to use this tool versus alternatives such as get_page_version or list_pages. The description only covers parameter semantics, so the agent is left to infer usage context from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_space_labelsList Space LabelsCRead-only
List labels used across a space.
Args:
space_id: Space ID.
prefix: Filter by label prefix.
sort: Sort field.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| prefix | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. It mentions the space scope and parameters but omits return format, pagination behavior, or any caveats. Given readOnlyHint=true and destructiveHint=false are already present, the description's contribution is limited.
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 compact argument list. No fluff or redundant explanations, and the argument list is useful given the schema lacks descriptions.
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 no output schema, so the description should explain return values and pagination details, but it doesn't. An agent cannot infer the response shape, sort options, or how to use the cursor, making the description incomplete for effective 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?
With 0% schema description coverage, the description must compensate for parameter meaning. It does provide terse definitions for each parameter, but some are nearly tautological ('sort: Sort field', 'space_id: Space ID'). 'prefix: Filter by label prefix' and 'cursor: Pagination cursor' add actionable semantics, though not deeply detailed.
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 tool lists labels used across a space, providing a specific verb and resource. However, it does not differentiate from sibling tools like list_labels or get_space_content_labels, which could confuse an agent about which tool to choose.
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. It lacks any mention of alternative tools, exclusions, or preconditions, leaving the agent without direction on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_space_propertiesList Space PropertiesARead-only
List content properties of a space.
Args:
space_id: The ID of the space.
key: Filter by property key.
cursor: Pagination cursor from a previous response.
limit: Max results to return.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| limit | No | ||
| cursor | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds some context by explaining the filtering and pagination parameters (key, cursor, limit), but it does not disclose any additional behavioral traits such as sorting, result structure, or error conditions.
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 minimal and well-structured: a one-sentence purpose followed by a clean args list. Every line is necessary and no information is wasted.
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 simple read-only list operation. Despite having no output schema, the description covers the purpose and all parameters. It could mention the return format or sorting behavior, but given the low complexity and annotation coverage, it is reasonably 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 0%, so the description is the only source of parameter meaning. It provides concise, clear explanations for all four parameters: space_id, key, cursor, and limit, compensating for the schema's lack of descriptions.
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 the specific verb 'List' and identifies the resource as 'content properties of a space.' This clearly distinguishes it from get_space_property (single retrieval) and list_page_properties (page-level properties), even though it doesn't name them.
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?
There is no guidance on when to use this tool versus alternatives such as get_space_property or list_page_properties. No prerequisites or exclusions are mentioned; the usage is only implied by the name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_spacesList SpacesARead-only
List Confluence spaces.
Args:
ids: Comma-separated space IDs to filter by.
keys: Comma-separated space keys to filter by.
type: Space type — 'global' or 'personal'.
status: Space status — 'current' or 'archived'.
labels: Comma-separated labels to filter by.
sort: Sort field, e.g. 'name', '-name', 'key'.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| keys | No | ||
| sort | No | ||
| type | No | ||
| limit | No | ||
| cursor | No | ||
| labels | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description discloses pagination parameters (cursor, limit) and sort, which is some behavioral context, but does not describe the return format or any default behavior like whether archived spaces are included.
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: a one-line purpose followed by a bullet-style arg list. No redundant text, front-loaded purpose.
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 list tool with 8 optional parameters and no output schema, the description thoroughly covers parameter semantics but omits the return shape/pagination metadata. Given the tool's complexity, this is a minor but notable gap.
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 0%, so this description is the sole source for parameter meaning. It explains all 8 parameters with concrete examples for sort, allowed values for type and status, and clarifies comma-separated formats for ids/keys/labels.
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 'List Confluence spaces', clearly stating the verb (List) and resource (Confluence spaces). This distinguishes it from sibling tools like get_space, list_pages, or list_blogposts.
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 states its function but does not explicitly guide when to use it over alternatives like get_space. The context implies it is for bulk listing with filters, but no exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList TasksARead-only
List tasks in Confluence.
Args:
status: Task status — 'open' or 'complete'.
space_id: Filter by space ID.
page_id: Filter by page ID.
assigned_to: Filter by assignee account ID.
created_by: Filter by creator account ID.
due_at_from: ISO 8601 — tasks due on or after this date.
due_at_to: ISO 8601 — tasks due on or before this date.
cursor: Pagination cursor.
limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| status | No | ||
| page_id | No | ||
| space_id | No | ||
| due_at_to | No | ||
| created_by | No | ||
| assigned_to | No | ||
| due_at_from | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context beyond parameter semantics; it does not mention return format, default limit, or ordering. With annotations present, the bar is lower, and the description adds some value but is not rich in behavioral disclosure.
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 well-structured: a one-line purpose followed by a clean list of arguments. Every sentence is informative, and 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 thoroughly covers all 9 parameters, which is good for a tool with no output schema. However, it lacks details about the return value shape, pagination behavior (beyond cursor/limit), or default limits. Since openWorldHint already implies some pagination, the description is adequate but not fully complete for a complex tool with many filters.
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 0%, so the description carries the full burden for parameter semantics. It provides meaningful explanations for all 9 parameters, including status enum values, ISO 8601 format for dates, and inclusive bounds for due_at_from/to. While some descriptions are terse (e.g., 'Filter by space ID'), they add essential meaning 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?
The description 'List tasks in Confluence' uses a specific verb and resource, clearly distinguishing this tool from siblings like get_task, list_pages, and list_blogposts. It states the core function without ambiguity.
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 lists many filter parameters, implying use cases like filtering by status, space, or page. However, it does not explicitly state when to use this tool over alternatives, mention exclusions, or provide context about pagination limits. Usage is implied but not directly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_pageRestore PageAIdempotent
Restore a trashed page by setting its status back to 'current'.
Args:
page_id: ID of the trashed page.
title: Page title (unchanged or new).
body_value: Page body content (unchanged or new).
version_number: The next version number to store — must be current version + 1.
body_representation: Format of body_value — storage (default), wiki, atlas_doc_format.
parent_id: Parent page ID (required if the original parent was also deleted).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| page_id | Yes | ||
| parent_id | No | ||
| body_value | Yes | ||
| version_number | Yes | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint false) and idempotent. The description adds meaningful behavioral constraints: version_number must be current version + 1, and parent_id is required if the original parent was deleted. This goes beyond what the schema 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 concise and well-structured: a one-sentence purpose followed by a clean parameter list. Every sentence adds value with no unnecessary words.
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 covers all parameters and discloses key behavioral constraints, but it does not mention return values or error conditions. Given the tool's complexity and the absence of an output schema, it is fairly complete but could go further.
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 description includes an Args block that explains all six parameters, including the meaning of body_representation and the critical requirement for version_number. This fully compensates for the schema's 0% description 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 clearly states the tool restores a trashed page by setting its status back to 'current'. This specific verb+resource distinguishes it from sibling tools like create_page, update_page, and 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 clear context that this tool is for restoring trashed pages, and adds a condition for parent_id when the original parent was also deleted. It doesn't explicitly contrast with alternatives, but the intended use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_blogpostUpdate BlogpostAIdempotent
Update an existing blog post.
Args:
blogpost_id: The ID of the blog post to update.
title: New title.
body_value: New body content.
version_number: The *new* version number (current version + 1).
body_representation: Body format — 'storage', 'wiki', or 'atlas_doc_format'.
status: 'current' or 'draft'.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | current | |
| body_value | Yes | ||
| blogpost_id | Yes | ||
| version_number | Yes | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, non-readOnly, and non-destructive behavior. The description adds key behavioral context by specifying that version_number must be 'current version + 1' and enumerating allowed values for body_representation and status. This goes beyond the schema's plain types and defaults.
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 short purpose sentence followed by a concise Args list. Every element is necessary and informative, with no fluff or repetition. The structure is clear and front-loaded with the primary action.
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 simplicity and the available annotations (idempotent, non-destructive), the description covers key usage aspects like required parameters and versioning. However, it omits what the tool returns or any potential error conditions, which the absence of an output schema might otherwise require.
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 0%, so the description must fully explain each parameter. It does so for all six parameters, clarifying version_number semantics (must be current+1) and providing value options for body_representation and status. This compensates completely for the lack of schema descriptions.
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 'Update an existing blog post' with a specific verb and resource, distinguishing it from sibling tools like create_blogpost and delete_blogpost. The resource is unambiguous and aligned with the tool name.
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 usage for existing posts via 'Update an existing blog post', but does not explicitly contrast with alternatives such as create_blogpost or update_page. There are no exclusions or when-not-to-use scenarios described, leaving guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_inline_commentUpdate Inline CommentAIdempotent
Update an inline comment (content or resolved state).
Args:
comment_id: Comment ID.
body_value: New comment content.
version_number: The next version number to store — must be current version + 1.
body_representation: Format of body_value — storage (default), wiki, atlas_doc_format.
resolved: Set to True to mark the comment thread as resolved, False to reopen.
| Name | Required | Description | Default |
|---|---|---|---|
| resolved | No | ||
| body_value | Yes | ||
| comment_id | Yes | ||
| version_number | Yes | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description needs only add extra behavioral context. It does that by disclosing the optimistic-locking requirement ('version_number must be current version + 1') and explaining how 'resolved' toggles the thread state. This adds meaningful operational insight beyond the annotations, though it omits potential errors or permission prerequisites.
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 brief and efficiently structured: one purpose sentence followed by a compact parameter list. Each line provides necessary information without filler, and the layout makes scanning easy.
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 five parameters and no output schema, and the description successfully covers all parameter semantics plus the critical versioning rule. However, it does not mention the return value, possible error scenarios, or permission requirements, leaving some contextual gaps for an update operation.
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 zero descriptions for its five properties, placing the full burden on the description. The description defines every parameter with intended semantics: comment_id, body_value, version_number (with the critical current+1 constraint), body_representation (listing accepted values), and resolved (explaining True/False behavior). This far exceeds the raw schema and clearly guides correct parameter usage.
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 'Update an inline comment (content or resolved state)' — a specific verb ('update'), clear resource ('inline comment'), and scope. It inherently distinguishes itself from sibling tools like create_inline_comment, delete_inline_comment, and get_inline_comment, so the agent knows exactly when this tool is relevant.
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 conveys this tool is for modifying an existing comment's content or resolution state. It does not explicitly state exclusions or alternatives, but the purpose is unambiguous from the summary and the context of sibling tools. The version_number constraint also implies usage requirements, though it does not fully elaborate on when to prefer this over create or delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pageUpdate PageAIdempotent
Update an existing page (content, title, parent, or owner).
To move a page to a different parent within the same space, pass the new
parent_id. Cross-space moves are not supported by the v2 API.
To transfer ownership, pass the new owner's account ID as owner_id.
Args:
page_id: ID of the page to update.
title: New (or unchanged) title.
body_value: New (or unchanged) body content.
version_number: The next version number to store — must be current version + 1.
body_representation: Format of body_value — storage (default), wiki, atlas_doc_format.
status: 'current' (published) or 'draft'.
parent_id: New parent page ID to move/reparent the page (same space only).
owner_id: Atlassian account ID of the new page owner.
version_message: Optional commit message stored in the version history.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | current | |
| page_id | Yes | ||
| owner_id | No | ||
| parent_id | No | ||
| body_value | Yes | ||
| version_number | Yes | ||
| version_message | No | ||
| body_representation | No | storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description adds valuable behavioral details: version_number must be current+1, version_message is stored in history, and cross-space moves are not allowed. These go beyond the schema and annotations, though it does not mention potential error responses or the operation's return value.
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 opens with a concise summary, followed by two focused usage notes and a well-organized Args list. Every sentence provides necessary information without redundancy, making it appropriately sized 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?
Although the description thoroughly documents inputs, it lacks details about the output (the updated page object) and does not discuss error conditions beyond the version_number constraint. Given the tool's complexity and absence of an output schema, this leaves some 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?
The schema itself has no descriptions (0% coverage), but the description's Args section explains all 9 parameters, including defaults, constraints (e.g., version_number must be current+1), and allowed formats (body_representation). This fully compensates for the schema's lack of documentation.
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 tool updates an existing page and enumerates the modifiable attributes (content, title, parent, owner). This distinguishes it from sibling tools like create_page, delete_page, and update_page_title, making its 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?
Provides clear usage context for reparenting (parent_id, same-space only) and ownership transfer (owner_id), including the limitation that cross-space moves are unsupported. However, it does not explicitly mention when to prefer this tool over alternatives like update_page_title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_page_propertyUpdate Page PropertyBIdempotent
Update a content property on a page.
Args:
page_id: Page ID.
property_id: Property ID.
key: Property key.
value: New property value.
version_number: The next version number to store — must be current version + 1.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes | ||
| page_id | Yes | ||
| property_id | Yes | ||
| version_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a writing, non-destructive, idempotent operation. The description adds the version_number constraint ('must be current version + 1') which is important for optimistic concurrency, but it does not explain the result of a version mismatch or other side effects.
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 action, using an efficient list to document parameters without redundancy. 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?
With 5 required parameters and no output schema, the description covers all inputs and the versioning constraint. However, it omits return values, error behavior on version conflict, and any possible side effects, despite openWorldHint being true. It is sufficient but 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?
The description includes an Args section that explains all five parameters, fully compensating for the 0% schema description coverage. version_number receives a crucial semantic constraint, adding significant meaning beyond the raw 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?
The description clearly states 'Update a content property on a page' with a specific verb and resource. It is implicitly distinguishable from sibling tools like update_page and update_page_title, though it does not explicitly call out the distinction.
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?
There is no guidance on when to use this tool versus alternatives such as create_page_property or update_page. The description only provides the operation and args, leaving usage context to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_page_titleUpdate Page TitleAIdempotent
Rename a page without changing its body or version metadata.
Args:
page_id: The ID of the page to rename.
title: The new title for the page.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) but non-destructive (destructiveHint=false) and idempotent. The description adds valuable context beyond these annotations by specifying that the body and version metadata are unchanged. This clarifies the exact scope of the mutation and avoids ambiguity about side effects.
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 concise, with a single front-loaded sentence stating the core action and scope, followed by a compact argument list. Every word earns its place; there is no fluff or repetition of schema 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 two-parameter, single-purpose tool, the description is adequately complete. It covers the essential behavioral nuance (preserving body and version metadata) and parameter meanings. Since there is no output schema, not explaining return values is acceptable. The only minor gap is the absence of explicit guidance on when not to use it, but the tool is simple enough that this isn't a critical omission.
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 no descriptions for parameters (0% coverage), but the description compensates by providing clear definitions: 'page_id: The ID of the page to rename' and 'title: The new title for the page.' This fully explains both parameters, making their purpose unambiguous despite the sparse 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?
The description clearly states the tool's function: 'Rename a page without changing its body or version metadata.' This uses a specific verb (rename) and resource (page), and explicitly distinguishes it from general page updates by scoping it to title changes only. The sibling update_page tool is implicitly contrasted, as this one is specialized for renaming.
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 tool is for renaming only, but it does not explicitly state when to use it versus alternatives like update_page. It provides clear context ('Rename a page...') but lacks explicit when-not-to-use guidance or named alternatives, which prevents a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_space_propertyUpdate Space PropertyAIdempotent
Update an existing content property on a space.
Args:
space_id: The ID of the space.
property_id: The ID of the property to update.
key: Property key.
value: New property value.
version_number: Current version number of the property (incremented automatically).
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes | ||
| space_id | Yes | ||
| property_id | Yes | ||
| version_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive. The description adds meaningful context by noting that version_number is 'incremented automatically', suggesting optimistic concurrency behavior. 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 one clear introductory sentence followed by a structured Args list. Every line serves a purpose with no fluff, making it easy to parse and front-loaded with the primary action.
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 5 required parameters and no output schema, the description covers the basics but omits potential side effects or behavior on version conflicts. The openWorldHint=true annotation suggests unforeseen effects that are not addressed, leaving some gaps for an update operation.
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 0%, so the description's Args list compensates by explaining each parameter. It clarifies that value is the 'New property value' and version_number is the 'Current version number', adding meaning beyond the schema's bare titles. Some descriptions like 'key: Property key' are tautological but overall helpful.
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 'Update an existing content property on a space', which specifies the verb (update) and resource (content property on a space). It distinguishes from sibling tools like create_space_property, delete_space_property, and get_space_property.
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 usage for updating existing properties but does not explicitly state when to use this tool versus alternatives like create_space_property or delete_space_property. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskUpdate TaskAIdempotent
Update a task's status, assignee, or due date.
Args:
task_id: Task ID.
status: New status — 'open' or 'complete'.
assigned_to: Account ID of the new assignee.
due_at: ISO 8601 due date.
| Name | Required | Description | Default |
|---|---|---|---|
| due_at | No | ||
| status | Yes | ||
| task_id | Yes | ||
| assigned_to | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover mutation safety (readOnlyHint=false, destructiveHint=false) and idempotency. The description adds useful behavioral details like the allowed status values ('open' or 'complete') and ISO 8601 date format, which go beyond the schema. No contradictions 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 purpose sentence plus a compact argument list. Every line provides necessary information without fluff, making it easy 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?
Given the simplicity of the tool (4 params, no output schema, annotations present), the description covers all parameters and purpose adequately. It does not describe the return value, but for an update operation that is not critical, and the annotations provide safety context.
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?
With 0% schema description coverage, the description compensates by explaining each parameter: task_id, status with allowed values, assigned_to as account ID, and due_at as ISO 8601 date. This adds meaning beyond the bare schema titles, though it does not elaborate on null 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 starts with 'Update a task's status, assignee, or due date,' which clearly states the verb, resource, and specific fields. This distinguishes it from sibling tools like get_task or list_tasks.
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 updating task fields), but does not explicitly mention alternatives or provide exclusions. There is no reference to sibling tools for other update scenarios, so usage context is only implied.
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. Dates show when Glama detected each change.
62 tool updates
v0.1.0- First observed
bulk_get_pages - First observed
bulk_user_lookup - First observed
convert_ids_to_types - First observed
create_blogpost - First observed
create_footer_comment - First observed
create_inline_comment - First observed
create_page - First observed
create_page_property - First observed
create_space - First observed
create_space_property - First observed
delete_attachment - First observed
delete_blogpost - First observed
delete_footer_comment - First observed
delete_inline_comment - First observed
delete_page - First observed
delete_page_property - First observed
delete_space_property - First observed
get_attachment - First observed
get_blogpost - First observed
get_footer_comment - First observed
get_inline_comment - First observed
get_page - First observed
get_page_ancestors - First observed
get_page_children - First observed
get_page_descendants - First observed
get_page_direct_children - First observed
get_page_operations - First observed
get_page_property - First observed
get_page_version - First observed
get_space - First observed
get_space_content_labels - First observed
get_space_operations - First observed
get_space_permissions - First observed
get_space_property - First observed
get_task - First observed
list_blogposts - First observed
list_blogposts_in_space - First observed
list_blogposts_with_label - First observed
list_footer_comment_replies - First observed
list_labels - First observed
list_page_attachments - First observed
list_page_footer_comments - First observed
list_page_inline_comments - First observed
list_page_labels - First observed
list_page_properties - First observed
list_page_versions - First observed
list_pages - First observed
list_pages_in_space - First observed
list_pages_with_label - First observed
list_space_labels - First observed
list_space_properties - First observed
list_spaces - First observed
list_tasks - First observed
restore_page - First observed
update_blogpost - First observed
update_footer_comment - First observed
update_inline_comment - First observed
update_page - First observed
update_page_property - First observed
update_page_title - First observed
update_space_property - First observed
update_task
TDQS
Several tools are redundant or have overlapping functionality, such as list_pages vs list_pages_in_space and update_page vs update_page_title, which both can modify titles. The large number of similar list/get/create/update/delete tools across pages, blogposts, comments, and properties creates potential confusion despite detailed descriptions.
The vast majority of tools follow a clear verb_noun pattern (e.g., list_pages, create_page, delete_inline_comment), and the naming is consistently snake_case. Minor deviations like 'bulk_user_lookup' (which starts with an adjective rather than a verb) prevent a perfect score, but the overall pattern is predictable.
With 62 tools, the server is extremely large and exceeds the typical well-scoped MCP server by a wide margin. Even for a complex domain like Confluence, this number of tools would overwhelm agents and make tool selection difficult, fitting the 'extreme mismatch' category.
The tool set covers many core Confluence operations including pages, blog posts, spaces, comments, properties, labels, and tasks. However, there are glaring gaps given the size: no search functionality, no attachment upload/update, no task creation/deletion, no space update/delete, and no dedicated blog post comment listing.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides access to Agility CMS. See https://mcp.agilitycms.com for more details.
A MCP server built for developers enabling Git based project management with project and personal…
- hiveWikiOAuthai.hivewiki
Shared project wiki for AI agents: read and write pages, next actions, and activity logs over MCP.
An MCP server that provides access to Testiny projects, test cases and test runs
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that enables querying and searching Atlassian Confluence pages and Jira issues through their REST APIs. Supports retrieving content by ID or URL, searching using CQL/JQL, and listing spaces and projects.1MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server implementation for interacting with self-hosted Confluence Data Center or Server instances via search, content retrieval, and optional write operations. It features space auto-discovery, audit logging, and granular access control for secure enterprise collaboration.-
- AlicenseAqualityDmaintenanceMCP server for Confluence Cloud/Server/Data Center, enabling page search, CQL queries, page CRUD, attachment upload, and user identity lookup.234684MIT
- FlicenseAqualityCmaintenanceMCP server for Confluence REST API enabling page retrieval, attachment downloads, space listing, comment access, and full-text search via tools.6-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pascalhubacher/confluence'
If you have feedback or need assistance with the MCP directory API, please join our Discord server