ultra-confluence-mcp
Provides tools for interacting with Confluence Cloud, enabling AI agents to read, search, create, and update pages, with built-in trimming to reduce context window usage.
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., "@ultra-confluence-mcpsearch for pages about project roadmap"
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.
ultra-confluence-mcp
A Model Context Protocol (MCP) server for Confluence Cloud, designed around one question: how much of the agent's context window does a Confluence call actually need to consume?
Most Confluence MCP servers pass the
Confluence REST API through more or less verbatim. That's fine for occasional
use, but a single getPage on a long doc can dump 40 KB of ADF JSON into the
conversation, and a 25-page list response runs over 500 KB. Agents pay that
cost on every call, and it crowds out the actual work.
This server takes a different stance.
Why use this over other Confluence/Atlassian MCPs
1. Per-call responses are trimmed by ~20× on average
A built-in projection layer drops _links, _expandable, formatter noise,
and other fields agents never read, and converts ADF/storage bodies to
markdown on the way out. Concrete numbers from the benchmark in
docs/BENCHMARK.md:
call | raw | trimmed | reduction |
25-page list (with bodies) | 526,694 B | 9,753 B | 54× |
huge page (~39 KB ADF body) | 54,624 B | 479 B | 114× |
CQL text search ("README") | 35,341 B | 15,239 B | 2.3× |
11 mixed scenarios combined | 756,483 B | 37,935 B | 20× |
2. Large bodies offload to disk, not into context
When a page body would exceed the inline limit, the trim layer writes the
raw API response to a temp file and returns a tiny bodyPath reference
(~500 bytes) instead. Agents that need the content call
confluence_render_body to read from disk — and can pass outputPath to
write the rendered markdown straight to a file, so the body bytes never
enter the conversation at all. Restoring five 10 KB pages costs zero
context bytes with this path; an MCP that inlines bodies pays ~50 KB.
3. The per-conversation tool surface is small and tunable
The MCP tool-list response itself costs context — every conversation pays
for it up front, before any work happens. With CONFLUENCE_ENABLED_CATEGORIES
you can scope the surface to what an agent actually needs:
filter | tools | bytes | ~tokens |
default (all categories) | 63 | 49,629 | 12,407 |
| 15 | 18,483 | 4,621 |
3 categories minus destructive ops | 12 | 15,691 | 3,923 |
By comparison, many combined Atlassian MCP servers expose over 70 tools across Jira and Confluence — fine if you want both products, but a lot of schema for an agent that just needs to read and write Confluence pages. If you also need Jira or Bitbucket, the companion servers ultra-jira-mcp and ultra-bitbucket-mcp apply the same trimming philosophy — wire up only the ones you need instead of paying for one monolithic Atlassian surface.
4. There's a CLI for agents that prefer shelling out
confluence-cli is a standalone binary that calls Confluence directly — no
MCP host required. Same trimmed output shape, plus a ref: /path line
pointing at the full untrimmed response on disk. Per-conversation overhead
is a single 2.3 KB SKILL.md loaded on demand by the Claude Code harness,
versus ~50 KB of tool schemas. The two paths share all the trim logic, so
you can mix or switch without behavior drift.
5. No Docker, no Python, no runtime to install
It's a Node package. If you already have Node (you probably do — Claude Code
ships with it), npx -y https://github.com/scottlepp/ultra-confluence-mcp is
the whole install. No container to pull, no Python virtualenv to manage, no
uv/pipx/poetry to learn first, no docker run line with seven -e
flags in your MCP config. Drop the npx command into Claude Desktop /
Claude Code / Cursor and you're done.
6. Self-healing — humans aren't the bottleneck (without being a security liability)
The repo is maintained by bots, so updates don't stall waiting on a human reviewer — but every code-modifying step that touches an LLM is gated so a malicious issue or PR can't turn the automation into an exfiltration channel:
Dependencies stay current. Dependabot opens grouped PRs on a weekly cadence. Patch and minor bumps auto-merge once CI is green. Major bumps fail the workflow and require a human reviewer — the previous behavior of auto-running an LLM "migration agent" on PR code is disabled, because executing PR-supplied code in a privileged context is an RCE pattern.
Bug reports get triaged automatically — when a maintainer approves. The scheduled
bug-fixagent only processes issues bearing theauto-fix-approvedlabel, which is restricted to maintainers. Issue bodies are treated as untrusted text (boundary-tagged in the prompt, truncated, scanned for shell metacharacters and secret shapes). The agent opens PRs but never auto-merges them; a human still reviews and clicks merge.PRs get a first-pass review without waiting on a human. The PR-review agent runs against the diff as data — it never checks out PR code into the workspace where the privileged token bag lives. Agent code is always loaded from
main.The agent's tools are sandboxed. File reads and writes go through a shared path policy that rejects absolute paths,
..traversal, symlinks pointing outside the working dir, and a denylist that covers.env*,.github/,scripts/agents/itself, lockfiles, key files, and similar high-blast-radius paths. Git and npm commands useexecFilewith argv arrays — no shell interpolation, so model-supplied branch names and commit messages cannot inject$()or backticks. See scripts/agents/src/validation/ for the policy module and its test coverage.
This matters for a context-efficiency tool specifically: the value proposition decays fast if the trim layer falls behind a Confluence API change or a CVE in a dependency. Self-healing keeps the surface fresh without a maintainer in the loop — and without giving the loop a way to turn into a backdoor.
What this server is NOT
Not multi-product. Jira lives in ultra-jira-mcp and Bitbucket in ultra-bitbucket-mcp; this server is Confluence Cloud only, by design to keep the tools light.
Not Server/Data Center. Cloud REST API v2 only.
Not for human-readable conversations. The trimming is aggressive because agents read JSON, not docs — if you want pretty browser-style output, use the Atlassian web UI.
If you need Jira + Confluence + Bitbucket + Server/DC + OAuth in one server, there are MCP servers for that, but you'll pay the price. If your agents are blowing through context windows on Confluence reads, use this — and pair it with ultra-jira-mcp or ultra-bitbucket-mcp when you need those too.
Related MCP server: Memory Cache MCP Server
Installation
Run directly from GitHub:
npx -y https://github.com/scottlepp/ultra-confluence-mcpOr clone and build locally:
git clone https://github.com/scottlepp/ultra-confluence-mcp.git
cd ultra-confluence-mcp
npm install
npm run build
node build/index.jsStandalone CLI (no MCP server)
A confluence-cli binary ships alongside the MCP server. It reads the
same env vars (CONFLUENCE_HOST, CONFLUENCE_EMAIL,
CONFLUENCE_API_TOKEN), builds a Confluence client in-process, and
calls Confluence directly — no MCP host required.
export CONFLUENCE_HOST=https://yourcompany.atlassian.net
export CONFLUENCE_EMAIL=you@example.com
export CONFLUENCE_API_TOKEN=...
npx -y -p github:scottlepp/ultra-confluence-mcp confluence-cli confluence_get_page --pageId=12345Discovery:
confluence-cli --help # list every tool
confluence-cli <tool> --help # show flags for one toolFlag forms: --key=value, --key value, --key=@/path/to/file (read
from file), --key=- (read from stdin), repeated --key=a --key=b to
build an array (or comma-separated --key=a,b).
On success the CLI prints a trimmed JSON summary to stdout, then a
final ref: /tmp/.../...json line pointing at the full untrimmed
response on disk — cat it when the summary leaves out detail you
need. Pass --full=true to skip trimming and dump the raw response
inline instead.
Claude Code skill
To make the CLI discoverable to Claude Code agents in standalone sessions, install the bundled skill:
npx -y -p github:scottlepp/ultra-confluence-mcp confluence-cli install-skillThis writes ~/.claude/skills/confluence/SKILL.md. Use --force to
overwrite, or --print to dump the skill content to stdout without
writing.
MCP vs CLI — which should I use?
There's a popular claim that CLIs are categorically more
context-efficient than MCP. The benchmark in
docs/BENCHMARK.md
disagrees: with aggressive tool filtering
(CONFLUENCE_ENABLED_CATEGORIES), the MCP path's per-conversation
overhead is within a few KB of the CLI's SKILL.md. Per-call output
is identical in both paths (same trimmed shape from the same applyTrim
projection). Without filtering, the CLI's footprint is ~22× smaller
than the full MCP tool list — but anyone who's filtering is already in
the same ballpark.
The CLI's real edge is ergonomic: scriptable, pipeable, doesn't require an MCP host, runs from any shell. Use whichever fits your workflow; on token cost it's mostly a wash for reasonable filter configs.
Configuration
Set the following environment variables:
Variable | Description | Required |
CONFLUENCE_HOST | Your Confluence instance URL (e.g., https://yourcompany.atlassian.net) | Yes |
CONFLUENCE_EMAIL | Your Atlassian account email | Yes |
CONFLUENCE_API_TOKEN | API token from Atlassian Account Settings | Yes |
CONFLUENCE_CLOUD_ID | Cloud ID for scoped tokens (auto-fetched if not provided) | No |
CONFLUENCE_ENABLED_CATEGORIES | Comma-separated list of tool categories to enable (default: all) | No |
CONFLUENCE_DISABLED_TOOLS | Comma-separated list of specific tools to disable | No |
Tool Filtering
You can limit which tools are exposed to the AI model using environment variables:
Enable only specific categories:
CONFLUENCE_ENABLED_CATEGORIES=page,space,searchDisable specific tools (e.g., destructive operations):
CONFLUENCE_DISABLED_TOOLS=confluence_delete_page,confluence_delete_space,confluence_delete_blog_postAvailable categories: page, space, blogPost, comment, attachment, label, search, user, version, contentProperty, ancestor, descendant, server
Claude Desktop Setup
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"confluence": {
"command": "npx",
"args": ["-y", "https://github.com/scottlepp/ultra-confluence-mcp"],
"env": {
"CONFLUENCE_HOST": "https://yourcompany.atlassian.net",
"CONFLUENCE_EMAIL": "your-email@example.com",
"CONFLUENCE_API_TOKEN": "your-api-token"
}
}
}
}With tool filtering (recommended for limited access):
{
"mcpServers": {
"confluence": {
"command": "npx",
"args": ["-y", "https://github.com/scottlepp/ultra-confluence-mcp"],
"env": {
"CONFLUENCE_HOST": "https://yourcompany.atlassian.net",
"CONFLUENCE_EMAIL": "your-email@example.com",
"CONFLUENCE_API_TOKEN": "your-api-token",
"CONFLUENCE_ENABLED_CATEGORIES": "page,space,search,comment",
"CONFLUENCE_DISABLED_TOOLS": "confluence_delete_page,confluence_delete_space"
}
}
}
}Available Tools
Pages
confluence_get_pages- Get all pages with optional filtersconfluence_get_page- Get a specific page by IDconfluence_create_page- Create a new pageconfluence_update_page- Update an existing pageconfluence_delete_page- Delete a pageconfluence_get_pages_in_space- Get all pages in a spaceconfluence_get_pages_for_label- Get pages with a specific labelconfluence_render_body- Convert a cached page body (ADF/storage on disk) to markdown. PassoutputPathto write straight to disk so the rendered body never inflates the agent's context. See Reading large bodies.
Spaces
confluence_get_spaces- List all accessible spacesconfluence_get_space- Get space detailsconfluence_create_space- Create a new spaceconfluence_update_space- Update spaceconfluence_delete_space- Delete space
Blog Posts
confluence_get_blog_posts- Get all blog postsconfluence_get_blog_post- Get blog post detailsconfluence_create_blog_post- Create a new blog postconfluence_update_blog_post- Update blog postconfluence_delete_blog_post- Delete blog postconfluence_get_blog_posts_in_space- Get blog posts in a space
Comments
confluence_get_page_footer_comments- Get footer comments on a pageconfluence_get_page_inline_comments- Get inline comments on a pageconfluence_get_blog_post_footer_comments- Get footer comments on a blog postconfluence_get_footer_comment- Get a specific commentconfluence_create_page_footer_comment- Add comment to pageconfluence_create_blog_post_footer_comment- Add comment to blog postconfluence_update_footer_comment- Update commentconfluence_delete_footer_comment- Delete comment
Attachments
confluence_get_page_attachments- Get attachments on a pageconfluence_get_blog_post_attachments- Get attachments on a blog postconfluence_get_attachment- Get attachment detailsconfluence_delete_attachment- Delete attachment
Labels
confluence_get_page_labels- Get labels on a pageconfluence_add_page_label- Add label to pageconfluence_remove_page_label- Remove label from pageconfluence_get_blog_post_labels- Get labels on a blog postconfluence_add_blog_post_label- Add label to blog postconfluence_remove_blog_post_label- Remove label from blog postconfluence_get_space_labels- Get labels on a spaceconfluence_add_space_label- Add label to spaceconfluence_remove_space_label- Remove label from space
Search
confluence_cql_search- Advanced search using CQL (Confluence Query Language) for pages, blog posts, attachments, commentsconfluence_search_content- Simple text search for pages and blog postsconfluence_search_generic_content- Search for databases, whiteboards, folders, or embeds (NOT for pages/blog posts)
Users
confluence_get_current_user- Get authenticated userconfluence_get_user- Get user by account IDconfluence_get_users- Get all users
Versions
confluence_get_page_versions- Get page version historyconfluence_get_page_version- Get specific page versionconfluence_get_blog_post_versions- Get blog post version historyconfluence_get_blog_post_version- Get specific blog post version
Content Properties
confluence_get_page_properties- Get content properties for a pageconfluence_get_page_property- Get a specific propertyconfluence_create_page_property- Create a propertyconfluence_update_page_property- Update a propertyconfluence_delete_page_property- Delete a property
Ancestors & Descendants
confluence_get_page_ancestors- Get parent pagesconfluence_get_page_descendants- Get all descendant pagesconfluence_get_page_children- Get direct children pages
Server
confluence_get_server_info- Get Confluence server info
Available Resources
confluence://spaces- List of all accessible spacesconfluence://myself- Current user infoconfluence://space/{id}- Space detailsconfluence://page/{id}- Page detailsconfluence://blogpost/{id}- Blog post details
Reading large bodies without context bloat
When a single-page read returns a body too large to inline, the trim layer offloads the raw API response to disk and surfaces a bodyPath field on the response. Two ways to use it:
Inline rendering (default). Call confluence_render_body with just bodyPath to get the converted markdown back in the response under bodyMarkdown:
{
"bodyPath": "/var/folders/.../ultra-confluence-mcp/pages/12345-v3.json"
}Direct-to-disk rendering (recommended when the agent already knows where the file should land — e.g. pulling a doc back to a working tree). Add outputPath and the rendered output is written there; the response carries only { representation, sourceLength, outputPath, bytesWritten } — the body bytes never traverse the agent's context:
{
"bodyPath": "/var/folders/.../ultra-confluence-mcp/pages/12345-v3.json",
"outputPath": "/abs/path/to/page.md"
}This is dramatically more context-efficient when restoring multiple pages. Five docs of ~10 KB each cost ~50 KB through inline rendering and effectively 0 through outputPath. Parent directories are created if missing; existing files are overwritten.
Both forms work with format: "raw" if you want the original ADF JSON / storage XHTML rather than markdown.
Body Formats
Confluence supports multiple body formats:
storage- XHTML-based storage format (default)atlas_doc_format- Atlassian Document Format (ADF) - supports Forge app extensionsview- Rendered HTML (read-only)
Storage Format (default)
<p>This is a paragraph.</p>
<h1>This is a heading</h1>
<ul>
<li>List item 1</li>
<li>List item 2</li>
</ul>ADF Format
Use bodyFormat: "atlas_doc_format" when creating/updating pages to insert Forge app macros (like Mermaid diagrams). The body should be a JSON-stringified ADF document:
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Hello world" }]
}
]
}See Inserting Forge App Macros for advanced usage.
Inserting Forge App Macros (e.g., Mermaid Diagrams)
You can programmatically insert Forge app macros like Mermaid diagrams using the ADF (Atlassian Document Format) body format.
Mermaid Diagram Example
To insert a Mermaid diagram, use bodyFormat: "atlas_doc_format" with both a code block and an extension node:
{
"spaceId": "123456",
"title": "Page with Mermaid Diagram",
"bodyFormat": "atlas_doc_format",
"body": "{\"version\":1,\"type\":\"doc\",\"content\":[{\"type\":\"codeBlock\",\"attrs\":{\"language\":\"mermaid\"},\"content\":[{\"type\":\"text\",\"text\":\"sequenceDiagram\\n Alice->>Bob: Hello\\n Bob-->>Alice: Hi!\"}]},{\"type\":\"extension\",\"attrs\":{\"extensionKey\":\"23392b90-4271-4239-98ca-a3e96c663cbb/63d4d207-ac2f-4273-865c-0240d37f044a/static/mermaid-diagram\",\"extensionType\":\"com.atlassian.ecosystem\",\"parameters\":{\"localId\":\"mermaid-1\"},\"localId\":\"mermaid-1\"}}]}"
}ADF Structure for Mermaid
The ADF document structure (before JSON stringification):
{
"version": 1,
"type": "doc",
"content": [
{
"type": "codeBlock",
"attrs": { "language": "mermaid" },
"content": [
{ "type": "text", "text": "sequenceDiagram\n Alice->>Bob: Hello" }
]
},
{
"type": "extension",
"attrs": {
"extensionKey": "23392b90-4271-4239-98ca-a3e96c663cbb/63d4d207-ac2f-4273-865c-0240d37f044a/static/mermaid-diagram",
"extensionType": "com.atlassian.ecosystem",
"parameters": { "localId": "mermaid-1" },
"localId": "mermaid-1"
}
}
]
}Key points:
The
extensionKeyis for the Mermaid diagrams viewer app by Atlassian Labs (must be installed on your Confluence instance)The
localIdmust be in bothparameters.localIdANDattrs.localIdThe Mermaid macro auto-detects code blocks by position (1st extension → 1st code block, 2nd → 2nd, etc.)
Use
"parameters": { "index": N }to explicitly select which code block (0-based index)
Finding Extension Keys for Other Forge Apps
To find the extension key for other Forge apps:
Manually insert the macro on a Confluence page
Fetch the page with
bodyFormat: "atlas_doc_format"Look for the
extensionKeyin the extension node
CQL Search Examples
The confluence_cql_search tool uses Confluence Query Language (CQL):
# Search by content type
type=page AND space=DEV
# Full-text search
text~"search term"
# Search by creator
creator=currentUser()
# Search by date
created>=now("-7d")
# Combined search
type=page AND space=DEV AND text~"api" AND created>=now("-30d")Development
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Run with inspector
npm run inspectorSelf-Healing Agents
This repository includes AI agents for automated maintenance in scripts/agents/:
BugFixAgent: Reads bug issues, validates them, implements fixes, and creates PRs
PRReviewAgent: Reviews pull requests, identifies issues, and suggests improvements
Running Agents
cd scripts/agents
npm install
# Run bug fix agent
GITHUB_TOKEN=xxx ISSUE_NUMBER=123 npm run bug-fix
# Run PR review agent
GITHUB_TOKEN=xxx PR_NUMBER=123 PR_DIFF_FILE=diff.txt npm run pr-reviewSupported AI Providers
The agents support multiple AI providers with automatic fallback:
Google AI (Gemini)
OpenAI (GPT-4)
Anthropic (Claude)
Groq
Mistral
Perplexity
DeepSeek
OpenRouter
Set at least one API key:
GOOGLE_API_KEY=xxx
OPENAI_API_KEY=xxx
ANTHROPIC_API_KEY=xxx
# etc.License
MIT
Available Tools
63 toolsconfluence_add_blog_post_labelA
Add a label to a blog post. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| label | Yes | The label to add | |
| prefix | No | The label prefix (default: global) | |
| blogPostId | Yes | The ID of the blog post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses output trimming behavior and the 'full' parameter to bypass it. However, with no annotations, it should also mention side effects like idempotency or authorization, which are omitted.
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?
Two sentences, front-loaded with purpose, no extraneous 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?
Adequate for a simple label-add tool, but lacks explanation of default output format (after trimming) and error scenarios. Still reasonably complete given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but the description adds value by explaining the 'full' parameter's effect and noting the default prefix. This enriches the schema beyond basic 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 action ('Add a label to a blog post') with a specific verb and resource. It distinguishes from sibling tools like 'confluence_add_page_label' and 'confluence_remove_blog_post_label'.
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 on when to use this tool versus alternatives (e.g., adding labels to pages or spaces). The description focuses on behavior but lacks context for tool selection among similar siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_add_page_labelA
Add a label to a page. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| label | Yes | The label to add | |
| pageId | Yes | The ID of the page | |
| prefix | No | The label prefix (default: global) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that output is trimmed by default and that passing full=true yields raw Confluence API response. This is a behavioral trait beyond the schema. No contradictions.
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?
Two sentences: first states purpose, second explains output behavior. Front-loaded, 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?
No output schema, but description compensates by explaining output behavior (trimmed vs full). Parameters are fully documented in schema. Tool is simple and description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the 'full' parameter's effect on output trimming, which is not fully captured in the schema description.
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 'Add a label to a page', a specific verb+resource combination. This distinguishes it from sibling tools like confluence_remove_page_label and confluence_add_space_label.
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 the default behavior (trimmed output) and the option to get raw response via full=true. However, it does not explicitly state when not to use this tool or mention alternatives like confluence_add_blog_post_label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_add_space_labelA
Add a label to a space. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| label | Yes | The label to add | |
| prefix | No | The label prefix (default: global) | |
| spaceId | Yes | The ID of the space |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that output is trimmed by default and explains how to get the raw response via full=true. It does not mention idempotency or error states, but the core behavior is well covered.
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?
Two concise sentences, front-loaded with the primary action, and every piece of information earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool, the description covers the essential behavior and output options. Missing details like duplicate label handling are minor, and the lack of output schema is compensated by explaining trimming.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the default trimming behavior and the effect of the full parameter, which goes beyond the schema descriptions. It also mentions the default prefix='global' implicitly.
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 'Add a label to a space', using a specific verb and resource, and distinguishes from sibling tools like confluence_add_page_label or confluence_remove_space_label.
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 over alternatives, but the sibling context and clear resource targeting imply its use case. No guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_cql_searchA
Search Confluence using CQL (Confluence Query Language). Use this for advanced searches of pages, blog posts, attachments, and comments. Supports complex queries with operators like AND, OR, text~, created>=, etc. Results are paginated - if you don't find what you need, use the returned cursor to fetch more pages until found or no more results. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| cql | Yes | The CQL query string. Examples: "type=page AND space=DEV", "text~\"search term\"", "creator=currentUser() AND created>=now(\"-7d\")" | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results (default 25, max 250) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses pagination behavior (cursor-based), output trimming by default, and the option to get raw response via full=true. It lacks mention of error handling or permissions but covers key usage behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, usage context, and behavioral details (pagination, trimming). No fluff, front-loaded with key 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?
Without output schema, the description adequately covers input (CQL, pagination, trimming) and expected behavior. Could mention return format or error handling, but the core context for using the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant context: explains CQL syntax with examples, clarifies trimming vs full response, and describes cursor usage for pagination. This goes beyond the schema's brief 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 searches Confluence using CQL, lists searchable content types (pages, blog posts, attachments, comments), and implies advanced query capability. This distinguishes it from sibling search tools like confluence_search_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this for 'advanced searches' and gives CQL examples, implying it for complex queries. However, it does not explicitly state when to prefer simpler alternatives or 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.
confluence_create_blog_postA
Create a new blog post in a space. Requires space ID, title, and body content. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The body content (in storage format: XHTML-based markup) | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | Yes | The title of the blog post | |
| status | No | Blog post status (default: current) | |
| spaceId | Yes | The ID of the space to create the blog post in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the output trimming behavior and the 'full' parameter to bypass it. It also notes the body format requirement (storage format). Missing details on authentication or side effects, but creation is generally safe.
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?
Two sentences, front-loaded with purpose, then behavioral detail. No filler. Every sentence is essential and informative.
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 covers response trimming behavior. It lists required parameters and the optional status enum. Could mention error scenarios or rate limits, but for a creation tool with clear API context, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description adds value by explaining the trimming behavior of 'full' and clarifying the body content type ('storage format: XHTML-based markup'), which is not obvious from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('blog post'), and the scope ('in a space'). It lists required fields, distinguishing it from sibling tools like confluence_create_page. The verb+resource is specific 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 specifies required parameters and the optional 'full' parameter, giving clear context for use. However, it does not explicitly state when to prefer this tool over alternatives (e.g., confluence_create_page for pages vs. posts) or 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.
confluence_create_pageA
Create a new page in a space. Requires space ID, title, and body content. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The body content. For storage format: XHTML-based markup. For atlas_doc_format: JSON-stringified ADF document. | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | Yes | The title of the page | |
| status | No | Page status (default: current) | |
| spaceId | Yes | The ID of the space to create the page in | |
| parentId | No | The ID of the parent page (optional) | |
| bodyFormat | No | The format of the body content (default: storage). Use atlas_doc_format for ADF JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses output trimming by default and how to get raw response, plus body format details, adding transparency beyond 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?
Two concise sentences: first covers purpose and required params, second explains output behavior. No waste; information is front-loaded and well-structured.
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 no output schema, description adequately explains response trimming and key parameters. Could mention more about error handling or permissions, but sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). Description adds value by explaining body format options (XHTML vs ADF) and output trimming behavior of 'full' parameter, enhancing understanding.
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 'Create a new page in a space' with specific required inputs (spaceId, title, body), which distinguishes it from sibling tools like create from markdown.
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 basic usage context (requires spaceId, title, body) and explains output trimming behavior, but lacks explicit guidance on when to use this vs alternatives like confluence_create_page_from_markdown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_create_page_from_markdownA
Create a new page from Markdown. Converts to Atlassian Document Format (ADF) — the recommended path for modern Confluence Cloud. Renders ```mermaid code blocks natively as Mermaid diagrams (via the Confluence Mermaid app). Supports headings, bold/italic/strikethrough, links, images (as external media), ordered/unordered lists, tables, blockquotes, code blocks with syntax highlighting, inline code, and horizontal rules. For large documents, use markdownFilePath instead of markdown to avoid tool call size limits. Use confluence_create_page_from_markdown_legacy only if the target instance has ADF disabled. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | No | The title of the page. Optional when markdownFilePath is provided — defaults to the file's basename without the .md extension. | |
| status | No | Page status (default: current) | |
| spaceId | Yes | The ID of the space to create the page in | |
| markdown | No | The page content in Markdown format. Supports standard Markdown including headings, bold/italic, links, images, lists, tables, code blocks (with language for syntax highlighting), and Mermaid diagrams using ```mermaid code blocks. Either this or markdownFilePath must be provided. | |
| parentId | No | The ID of the parent page (optional) | |
| markdownFilePath | No | Absolute path to a Markdown file on disk. Use this instead of the markdown parameter for large documents that may exceed tool call size limits. Takes precedence over markdown if both are provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses default output trimming and full response option, and Mermaid rendering. No annotations provided, so description carries burden adequately.
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?
Front-loaded with main purpose, covers key points in a single paragraph without redundancy. Could benefit from minor structure improvements.
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?
Covers creation, supported Markdown, large document handling, legacy alternative, and output behavior. Lacks return value details but no output schema expected.
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?
Adds value beyond schema by explaining precedence of markdownFilePath, default title behavior, and use case for large docs. Schema coverage 100%.
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?
Clearly states 'Create a new page from Markdown' with conversion to ADF, distinguishing it from legacy and non-Markdown creation 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?
Provides guidance on using legacy tool only when ADF disabled, and recommends markdownFilePath for large documents. Lacks explicit exclusions vs all siblings but offers clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_create_page_from_markdown_legacyA
Legacy: create a page using Confluence storage format (XHTML). Prefer confluence_create_page_from_markdown (ADF) — use this only when targeting an instance that has ADF disabled. Supports headings, bold/italic/strikethrough, links, images, ordered/unordered lists, tables, blockquotes, code blocks (with syntax highlighting), inline code, and horizontal rules. ```mermaid code blocks render as syntax-highlighted code, NOT as Mermaid diagrams (the storage code macro can't host the Mermaid extension). For large documents, use markdownFilePath instead of markdown to avoid tool call size limits. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | No | The title of the page. Optional when markdownFilePath is provided — defaults to the file's basename without the .md extension. | |
| status | No | Page status (default: current) | |
| spaceId | Yes | The ID of the space to create the page in | |
| markdown | No | The page content in Markdown format. Supports standard Markdown including headings, bold/italic, links, images, lists, tables, code blocks (with language for syntax highlighting), and Mermaid diagrams using ```mermaid code blocks. Either this or markdownFilePath must be provided. | |
| parentId | No | The ID of the parent page (optional) | |
| markdownFilePath | No | Absolute path to a Markdown file on disk. Use this instead of the markdown parameter for large documents that may exceed tool call size limits. Takes precedence over markdown if both are provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses supported markdown features, a limitation (mermaid blocks render as code), output trimming behavior, and the full parameter to bypass trimming. No annotation provided, so description carries full burden; it's good but lacks error handling or permissions info.
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?
Single paragraph but well-organized: purpose, usage guidance, features, limitation, advice. Every sentence is informative. Could be slightly more concise but compact enough.
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?
Covers core functionality and output trimming, but since no output schema exists, the description should explain return value format (e.g., page ID). Also missing error handling. Adequate but not fully complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining when to use markdown vs markdownFilePath, default title behavior, and the effect of the full parameter. Exceeds baseline.
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 creates a page using Confluence storage format (XHTML) and marks it as legacy, distinguishing it from the preferred ADF-based sibling. The verb 'create' and resource 'page' are 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?
Explicitly says to prefer `confluence_create_page_from_markdown` (ADF) and use this only when ADF is disabled. Also provides advice for large documents (use markdownFilePath).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_create_page_propertyB
Create a content property on a page.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The property key | |
| value | Yes | The property value (can be any JSON value) | |
| pageId | Yes | The ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose critical behaviors like whether creating on an existing key causes an error or overwrite, or any side effects or authorization requirements.
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, concise sentence that immediately conveys the tool's purpose with no extraneous 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?
While the description is adequate for a simple create operation, it lacks information about return values, error cases, and idempotency. Without an output schema, more detail would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters have descriptions. The description adds no additional meaning beyond the schema, meeting the baseline of 3.
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) and resource (content property on a page), distinguishing it from sibling tools like update or delete. However, it could explain what a content property is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as updating an existing property. No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_create_spaceA
Create a new space. Requires name and key. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The unique key for the space (uppercase letters and numbers only) | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| name | Yes | The name of the space | |
| type | No | Type of space (default: global) | |
| description | No | Description of the space (plain text) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses output trimming behavior and the `full` parameter, which adds value. However, it omits details about permissions, idempotency, or error cases (e.g., duplicate key).
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?
Two concise sentences that front-load the core action and required parameters, 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 description covers the main behavior and output trimming, which is helpful given no output schema. It could improve by describing the response structure or common error cases, but it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes parameters. The description adds context about the `full` parameter's effect (what is dropped), which goes beyond the schema's 'bypass response trimming'.
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 'Create a new space,' which is a specific verb+resource. It distinguishes from siblings like `confluence_update_space` and `confluence_delete_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 lists required parameters (name and key), providing clear context for usage. However, it does not explicitly discuss when not to use or mention alternatives, though the sibling set makes the distinction obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_delete_attachmentC
Delete an attachment.
| Name | Required | Description | Default |
|---|---|---|---|
| purge | No | If true, permanently delete (only works on trashed attachments) | |
| attachmentId | Yes | The ID of the attachment to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Delete an attachment' without mentioning whether this soft-deletes (moves to trash) or permanently deletes by default, the effects on related content, or required permissions. The 'purge' parameter in the schema implies a trash mechanism, but the description does not clarify this.
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 (4 words) with no wasted words, and the most critical information (verb + resource) is front-loaded. However, it lacks structural elements like bullet points or explicit parameter links.
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 parameters, no output schema), the description is minimally adequate. However, it fails to explain the deletion lifecycle (e.g., trash vs permanent) or guide the agent on when to use 'purge', leaving gaps for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions), so the baseline is 3. The description adds no additional meaning beyond what the schema already provides, such as explaining the relationship between 'purge' and the trash concept.
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 ('Delete') and resource ('attachment'), making the core action unambiguous. However, it does not differentiate this tool from sibling tools like 'confluence_delete_page' or 'confluence_delete_blog_post'.
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 when to use 'confluence_get_page_attachments' first or how 'purge' interacts with the deletion lifecycle. The agent has no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_delete_blog_postA
Delete a blog post. By default moves to trash; use purge=true to permanently delete.
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | If true, delete a draft blog post | |
| purge | No | If true, permanently delete (only works on trashed blog posts) | |
| blogPostId | Yes | The ID of the blog post to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses two distinct behaviors: default moving to trash and permanent deletion via purge=true. Also notes that purge only works on trashed posts. Missing prerequisites (e.g., permissions) or reversibility of trash, but for a delete tool, key behaviors are covered.
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?
Single sentence that front-loads the purpose 'Delete a blog post.' immediately followed by key behavioral details. No unnecessary words, every part 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 tool with 3 fully described parameters and no output schema, the description covers the core behavior adequately. It could mention return value or prerequisites (permissions), but the essential information for correct invocation is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds context by explaining the relationship between default behavior and purge parameter, and clarifies the restriction on purge. This adds 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?
Description clearly states 'Delete a blog post' with verb and resource. Distinguishes from sibling tools like delete_page by specifying blog post. Provides immediate clarity on the action.
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 when to use default vs purge: 'use purge=true to permanently delete' and notes it only works on trashed posts. Does not explicitly list when not to use the tool, but context of purge is clear. No alternative tools suggested, but the name itself differentiates from delete_page and delete_space.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_delete_pageA
Delete a page. By default moves to trash; use purge=true to permanently delete.
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | If true, delete a draft page | |
| purge | No | If true, permanently delete (only works on trashed pages) | |
| pageId | Yes | The ID of the page to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the core behavioral trait (trash vs. permanent delete). But it omits prerequisites, side effects on comments/attachments, and behavior of the draft parameter, leaving gaps in understanding the full impact.
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 sentences, front-loading the core purpose and adding a key usage hint. Every word is necessary, making it highly concise and well-structured.
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 no output schema, the description covers essential behavior. However, it could be more complete by mentioning required permissions or what happens to associated content, which is not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have full descriptions in the input schema (100% coverage). The description adds value by clarifying the default behavior (move to trash) not explicit in the schema, but it does not elaborate on the draft parameter beyond schema 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 explicitly states 'Delete a page,' clearly identifying the action and resource. Among sibling tools like delete_space or delete_blog_post, this is uniquely distinguishable.
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 guidance on default behavior (move to trash) and the purge option, helping the agent decide based on deletion type. However, it lacks explicit when-to-use or when-not-to-use advice relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_delete_page_propertyB
Delete a content property from a page.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | The ID of the page | |
| propertyId | Yes | The ID of the property to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without any annotations, the description bears full responsibility for behavioral disclosure. It only states 'delete' but does not explain whether the property must exist, if the deletion is irreversible, or any side effects. The minimal description leaves significant uncertainty about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of seven words, containing no fluff or redundant information. Every word is necessary and directly conveys the 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?
Given the simplicity of the tool (two parameters, no output schema), the description is still insufficient. It lacks details on error handling, whether the property is required to exist, and any impact on page data. A more complete description would note that the operation is permanent and provides no confirmation response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters, so the schema already explains what pageId and propertyId are. The tool description adds no additional semantic meaning beyond the schema, making it adequate but not enhanced.
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') and the resource ('a content property from a page'), which is specific and distinguishes it from sibling tools like deleting a page or creating/updating properties. This is a precise verb+resource pairing.
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 confluence_delete_page, confluence_get_page_property, or other property tools. The description does not mention prerequisites, conditions, or 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.
confluence_delete_spaceA
Delete a space. This permanently deletes the space and all its content.
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | The ID of the space to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source of behavioral information. It notes that deletion is permanent, which is critical for a destructive operation. However, it lacks details like required permissions, impact on linked content, or whether the operation is reversible.
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?
Extremely concise; two sentences with no superfluous information. Every word serves a 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 simple one-parameter deletion tool, the description adequately conveys the action and permanence. Could add usage context, but current level is sufficient given low 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?
Input schema covers 100% of parameters with a clear description for spaceId. The description does not add any meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a space' with the verb 'delete' and resource 'space'. It distinguishes from sibling tools like 'confluence_delete_page' which deletes a page, not 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?
No guidance on when to use this tool versus alternatives, such as prerequisites (e.g., space admin permissions) or scenarios where deletion is not appropriate. The description only states what the tool does, not the context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_attachmentA
Get a specific attachment by ID. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| version | No | Specific version number to retrieve | |
| attachmentId | Yes | The ID of the attachment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the transparency burden. It clearly discloses the default trimming behavior (drops _links, _expandable, body content) and how to get raw response via full=true, which is strong 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?
Two well-structured sentences, no redundancy. Information is front-loaded: main action first, then key behavior detail. 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?
Adequate for a simple retrieval tool, but lacks detail on default response structure and error handling (e.g., attachment not found). With no output schema, more completeness about the return format would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for 'full' by explaining default trimming, but does not mention 'version' beyond schema, adding limited value overall.
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 'attachment by ID', clearly distinguishing from sibling tools like get_page_attachments that list attachments. It immediately communicates 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 does not provide any guidance on when to use this tool versus alternatives such as confluence_get_page_attachments. It lacks explicit context for when to pass full=true or what scenarios warrant this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_postB
Get a specific blog post by ID. Returns detailed blog post information including body content. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| version | No | Specific version number to retrieve | |
| getDraft | No | If true, returns the draft version if available | |
| blogPostId | Yes | The ID of the blog post | |
| bodyFormat | No | The format of the body content to return | |
| includeLabels | No | Include labels in the response | |
| includeVersions | No | Include version history in the response | |
| includeProperties | No | Include content properties in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description contains an internal contradiction: 'includes body content' but 'drops... body content' in trimmed output. No other behavioral traits disclosed (e.g., authentication, side effects). With no annotations, the description should provide full transparency but fails.
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?
Two sentences are concise, but the contradiction reduces clarity. It is appropriately structured but under-specifies important details.
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 8 parameters and no annotations or output schema, the description is insufficient. It does not resolve the contradiction, nor does it explain the purpose of other parameters beyond the schema. Usage guidance and behavioral context are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds one detail (full=true for raw response) already in schema, but no further semantic enhancement for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a specific blog post by ID, which differentiates it from sibling tools like get_blog_posts (plural) and other blog post operations. The verb 'Get' and resource 'blog post by ID' are 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 explicit guidance on when to use this tool vs alternatives (e.g., get_blog_posts_in_space, get_blog_post_versions). The description does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_post_attachmentsA
Get attachments on a specific blog post. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| filename | No | Filter by filename | |
| mediaType | No | Filter by media type | |
| blogPostId | Yes | The ID of the blog post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses pagination and output trimming behavior (drops _links, _expandable, body). It explains the 'full' parameter to bypass trimming. While it does not mention authentication or rate limits, for a read operation, these details are adequate.
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?
Two sentences, front-loaded with purpose. No wasted words: the first sentence states the action, the second covers pagination and trimming. Conciseness is optimal.
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 6 parameters, no output schema, and no annotations, the description covers purpose, pagination, and trimming. However, it lacks detail on the return structure (beyond noting dropped fields) and does not describe the full response format. A minor gap, but overall fairly complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the cursor parameter for pagination and the 'full' parameter for raw response. Other parameters (blogPostId, limit, filename, mediaType) are already described adequately in the schema, so the description meaningfully supplements two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get attachments on a specific blog post,' clearly specifying the verb and resource. It distinguishes from sibling 'confluence_get_page_attachments' by targeting blog posts rather than pages, providing unique purpose 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 explains pagination handling ('use the returned cursor') and trimming behavior, but does not explicitly state when to use this tool over alternatives like 'confluence_get_page_attachments' or mention prerequisites or exclusions. Usage context is clear but lacking explicit guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_post_labelsA
Get labels on a specific blog post. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| prefix | No | Filter by label prefix | |
| blogPostId | Yes | The ID of the blog post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses two key behavioral traits: pagination (use cursor) and response trimming (default drops fields, use full=true for raw). This is sufficient for a read operation, though it does not cover error handling or rate limits.
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 sentences, concise and front-loaded. First sentence states purpose, second explains pagination and trimming. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers purpose, pagination, and response trimming. It does not detail the format of labels, but the tool name implies the output structure. For a read tool with 5 parameters, this is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by contextualizing pagination (cursor) and trimming (full parameter), explaining what trimming drops (_links, _expandable, body content). This exceeds the schema's descriptions, which are already clear but benefit from this extra context.
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 labels on a specific blog post, using the verb 'get' and resource 'labels on a blog post'. It distinguishes from sibling tools like get_page_labels (different resource) and add/remove blog post label (different action). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by specifying the resource and mentioning pagination and trimming behavior. It does not explicitly state when not to use or contrast with alternatives, but the context of sibling tools makes it clear that this tool is for reading labels, not modifying them, and for blog posts specifically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_postsA
Get all blog posts. Returns blog posts filtered by various parameters. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results (default 25, max 250) | |
| title | No | Filter by exact title match | |
| cursor | No | Cursor for pagination | |
| status | No | Filter by status (current, trashed, deleted, draft) | |
| spaceId | No | Filter by space IDs | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses pagination behavior, default trimming, and the 'full' parameter to bypass trimming. It does not mention read-only nature or rate limits, but the key behaviors are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with purpose and include essential behaviors. Every phrase adds value; no waste.
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?
Covers pagination, trimming, and filtering. No output schema exists, but return behavior is explained. Could mention error handling or total counts, but adequate for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by explaining cursor usage for pagination and trimming behavior. It clarifies the 'full' parameter beyond the schema definition.
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 all blog posts' with filtering, providing verb and resource. However, it does not differentiate from sibling tools like confluence_get_blog_posts_in_space or confluence_get_blog_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_blog_posts_in_space or get_blog_post. The pagination advice is helpful but does not cover selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_posts_in_spaceA
Get all blog posts in a specific space. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| title | No | Filter by exact title match | |
| cursor | No | Cursor for pagination | |
| status | No | Filter by status | |
| spaceId | Yes | The ID of the space | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses key behaviors: pagination via cursor, default trimming of output, and option to get raw response with full=true. Lacks details on error handling or rate limits, but covers main behavioral 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?
Three sentences, each serving a distinct purpose: purpose, pagination guidance, and output format behavior. No redundant information, front-loaded with the core 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 no output schema, the description sufficiently explains pagination and response format. Covers essential aspects for usage but could mention additional constraints (e.g., ordering). Still adequate for a list tool with many parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have schema descriptions (100% coverage). The description adds value by explaining the 'full' parameter's effect on trimming and the cursor's role in pagination, going 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?
Clearly states the action 'Get all blog posts' with a specific scope 'in a specific space'. Distinguishes from sibling tools like confluence_get_blog_posts (without space) by adding the space constraint.
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?
Mentions pagination and cursor usage, and the full parameter for raw response. However, does not explicitly compare with alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_post_versionA
Get a specific version of a blog post. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| blogPostId | Yes | The ID of the blog post | |
| versionNumber | Yes | The version number to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It clearly states that output is trimmed by default and what is dropped (_links, _expandable, body content), and explains the full parameter to bypass trimming. This is good transparency for a read operation, though it does not discuss authorization or rate limits.
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 sentences, both front-loaded with the purpose and key behavioral details. Every sentence adds value with 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?
The description covers the trimming behavior but lacks details about the return structure (e.g., what fields are present in the trimmed output vs raw) and does not mention response size limits or pagination. Given no output schema, more detail would be helpful for 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 100%, so the input schema already documents all parameters. The description adds meaning beyond the schema by explaining the effect of the 'full' boolean parameter and the default trimming behavior, providing context that helps the agent decide. The other parameters (blogPostId, versionNumber) are standard and need no further explanation.
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 specific version of a blog post') and the resource. It is distinct from listing versions or retrieving the current post, though it does not explicitly differentiate from sibling tools like confluence_get_blog_post or confluence_get_blog_post_versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default trimming behavior and the full parameter, guiding when to use each. However, it does not provide explicit when-to-use or when-not-to-use advice relative to other version-related tools (e.g., confluence_get_blog_post_versions for listing, or confluence_get_blog_post for the current version), leaving usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_blog_post_versionsA
Get version history for a specific blog post. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| blogPostId | Yes | The ID of the blog post | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description covers all key behaviors: pagination, default trimming, full parameter for raw response. Discloses response shaping.
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?
Two efficient sentences, front-loaded with purpose. Every word adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers pagination and response format trade-offs. Could specify what trimmed fields are, but adequate for a version list tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). Description adds meaning for pagination (cursor), trimming (full), and bodyFormat (enum context). Not all parameters elaborated but key ones are.
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?
Clear verb+resource: 'Get version history for a specific blog post.' Distinct from sibling tools like confluence_get_blog_post_version (singular) and confluence_get_page_versions (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?
Explains pagination with cursor and response trimming behavior. No explicit when-to-use vs alternatives, but context is clear for a retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_current_userA
Get information about the currently authenticated user (the user associated with the API token). Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It transparently describes the default trimming behavior and the effect of the 'full' parameter. It implies authentication via API token but does not detail other behavioral traits like rate limits or error responses.
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 at two sentences, with the purpose front-loaded. Every sentence adds necessary information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the key behavior, it lacks details about the returned data fields in the default trimmed output. For a tool with no output schema, specifying the structure or examples 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 description coverage is 100%, and the description adds value by explaining the practical effect of the 'full' parameter ('receive the raw Confluence response'), which goes beyond the schema's minimal description.
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 'Get information' and the resource 'currently authenticated user', specifying the context of API token authentication. It distinguishes from sibling tools like confluence_get_user which require a user identifier.
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 guidance on the default trimmed output and the use of the 'full' parameter. However, it does not explicitly contrast with alternatives like confluence_get_user or specify when to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_pageA
Get a specific page by ID. Returns detailed page information including body content. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| pageId | Yes | The ID of the page | |
| version | No | Specific version number to retrieve | |
| getDraft | No | If true, returns the draft version if available | |
| bodyFormat | No | The format of the body content to return | |
| includeLabels | No | Include labels in the response | |
| includeVersions | No | Include version history in the response | |
| includeProperties | No | Include content properties in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: output trimming and the effect of the 'full' parameter. However, it does not mention rate limits or authentication needs, though these are less critical for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the primary purpose, the second explains the key behavioral nuance (trimming/full). 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 description covers the main retrieval use case and the important trimming behavior. It could mention defaults for other parameters (e.g., version, getDraft), but overall it is sufficient for most use cases.
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?
While schema coverage is 100%, the description adds value by explaining the default trimming behavior and how the 'full' parameter overrides it, which is not fully captured in the schema description.
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 specific page by ID' with a specific verb and resource, and distinguishes from sibling tools like confluence_get_pages_in_space that retrieve multiple 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?
The description explains the tool's behavior (trimming, full parameter) but does not provide explicit guidance on when to use this tool vs alternatives or 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.
confluence_get_page_ancestorsA
Get ancestors (parent pages) of a specific page, from immediate parent to root. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of ancestors to return | |
| pageId | Yes | The ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses default trimming behavior and the option to receive raw response, and specifies the order of ancestors. This is comprehensive for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no extraneous words. Core information is presented first: action, resource, and scope. Very 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?
No output schema, but description specifies what is returned (list of ancestors from immediate parent to root) and the trimming behavior. This is sufficient for an agent to understand the tool's outcome. Could be slightly improved by mentioning the output structure (e.g., array of page objects), but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by explaining the effect of `full=true` and implying the ordering of results, which is not in the schema. This justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get ancestors' and the resource 'parent pages', and specifies the scope: 'from immediate parent to root'. This distinguishes it from sibling tools like `confluence_get_page_descendants` and `confluence_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?
Explicitly states what the tool does and mentions a key parameter (`full=true`) for controlling output. While it doesn't explicitly state when not to use it, the purpose is clear enough that an agent can infer usage context relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_attachmentsA
Get attachments on a specific page. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page | |
| filename | No | Filter by filename | |
| mediaType | No | Filter by media type (e.g., image/png, application/pdf) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses pagination (cursor mechanism) and response trimming. No annotations exist, so description carries burden well. Does not cover error cases or rate limits, but adequate for a read 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?
Two sentences, front-loaded with purpose, then pagination, then trimming. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers pagination, trimming, and filtering options. No output schema, so lacks return structure details, but sufficient for a list tool. Could mention required pageId and initial call (no cursor needed).
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 covers all 6 params (coverage 100%). Description adds meaning: explains cursor usage for pagination and full parameter for raw output, beyond 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?
Clear verb 'get' plus specific resource 'attachments on a specific page'. Distinguishes from sibling get_attachment (single) and get_blog_post_attachments (different 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?
Describes pagination and trimming behavior, gives parameter hint for full response. No explicit comparison to alternatives, but context is clear for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_childrenA
Get direct children of a specific page. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of children to return | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses pagination (cursor-based), default trimming, and the full parameter to bypass trimming. This covers key behavioral traits for a read tool, though rate limits or auth requirements are not mentioned.
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?
Two sentences, front-loaded with primary purpose, then details. Every sentence provides distinct value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the default trimmed output and how to get raw response. For a simple paginated list tool, this is fairly complete. Could mention return type (list of pages) but it's implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context: cursor for pagination, full bypasses trimming, and implies limit controls page size. This adds moderate value beyond the schema's brief 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 it gets 'direct children of a specific page,' distinguishing it from sibling tools like confluence_get_page_descendants (all descendants) and confluence_get_page (single page). The verb+resource+scope is specific 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 explains pagination cursor usage and the full parameter for raw response, but does not explicitly contrast with alternatives like confluence_get_page_descendants for non-direct children or when to use trimming. However, the context is clear enough for an agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_descendantsA
Get descendants (child pages, grandchildren, etc.) of a specific page. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of descendants to return | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It explicitly mentions pagination, default output trimming, and the ability to get raw response via 'full=true'. It does not mention being read-only or any side effects, but the given information is sufficient for basic understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. The most important information (purpose and key behaviors) is front-loaded. Every sentence adds unique 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?
Given no output schema and a tool that returns a list of pages, the description could mention common fields in the response (e.g., page details) or error conditions. The current description focuses on trimming and pagination but leaves the exact return structure implicit.
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?
Although the input schema already describes all 4 parameters, the description adds context: explaining that output is trimmed by default and that 'full=true' bypasses that, and that the cursor is used for pagination. This extra information enhances understanding beyond the 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 uses a specific verb ('Get') and resource ('descendants'), and immediately clarifies it includes child pages, grandchildren, etc. This clearly distinguishes it from sibling tools like 'get_page_children' (direct children) and 'get_page' (single 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 explains pagination (using cursor) and the trimming behavior with the 'full' parameter, giving practical guidance on how to use the tool. However, it does not explicitly state when to prefer this over alternative tools like 'get_page_children' for direct descendants, though the purpose implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_inline_commentsA
Get inline comments on a specific page. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page | |
| bodyFormat | No | The format of the comment body to return | |
| resolutionStatus | No | Filter by resolution status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses read-only behavior, pagination via cursor, and output trimming with an option for raw response. This provides sufficient transparency for an agent.
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?
Two sentences, front-loaded with main purpose, no wasted words. Efficient and clear.
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?
No output schema, but description hints at return cursor for pagination and mentions trimmed vs. raw response. For a get tool with 6 parameters, it covers key behaviors adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for cursor and full parameters (pagination, trimming) but does not significantly extend beyond 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 retrieves inline comments on a specific page. It uses a specific verb and resource, and distinguishes itself from sibling tools like footer comment 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 mentions pagination and trimming behavior, giving context for when to use parameters. It is clear that this tool is for inline comments, but does not explicitly exclude other scenarios or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_labelsA
Get labels on a specific page. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page | |
| prefix | No | Filter by label prefix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It explains pagination via cursor, default response trimming (drops _links, _expandable, body), and the full option for raw response. This adequately informs the agent of the tool's key operational traits.
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?
Two concise sentences that first state the purpose, then detail pagination and output options. No superfluous information; all sentences are informative and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with no output schema, the description covers purpose, pagination, and output format (trimmed vs raw). Missing details on error handling or prefix format, but overall sufficient for an agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3. The description does not add significant new meaning beyond the schema's parameter descriptions; it reinforces pagination behavior but does not explain parameter formats or defaults beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves labels on a specific page, using the verb 'get' and specific resource 'labels on a specific page'. This distinguishes it from sibling tools like add_label or remove_label.
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?
Description mentions pagination and the full parameter, implying usage for large result sets or raw output. However, it does not explicitly state when to use this tool versus alternatives like getting page labels via other endpoints or comparing with other label tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_propertiesC
Get content properties for a specific page. Results are paginated - use the returned cursor to fetch more if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only discloses pagination behavior. It does not mention error states (e.g., page not found), rate limits, or what happens when properties are empty. Minimal transparency for a read 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?
Extremely concise: two sentences, front-loaded with purpose, no 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?
No output schema, so description should describe return value structure. It does not specify format of content properties or if there are any nested fields. Also lacks differentiation from sibling property tools. Incomplete for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for the cursor parameter ('use the returned cursor to fetch more'), which is helpful but does not elaborate on limit or pageId beyond what the schema provides. Slightly above baseline but not significantly.
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 retrieves content properties for a page, which aligns with the name. However, it does not differentiate from the sibling tool 'confluence_get_page_property' (singular), which likely retrieves a single property, so the distinction is implicit.
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 on when to use this tool over alternatives. The description mentions pagination but does not compare to other property-related tools or specify prerequisites beyond the required pageId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_propertyB
Get a specific content property by key for a page.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | The ID of the page | |
| propertyId | Yes | The ID of the property |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. However, it does not state whether the property must exist, what happens if the ID is invalid, or any side effects. For a read operation, minimal transparency is given beyond the basic action.
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 concise sentence that conveys the essential information without any unnecessary words. It is well-structured and efficiently uses the space.
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 lack of an output schema and annotations, the description is insufficiently complete. It fails to describe what is returned (e.g., the property value, full object), error handling, or any additional contextual details needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both 'pageId' and 'propertyId' having descriptions. The description does not add additional meaning beyond what is already in the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Get', the resource 'a specific content property by key', and the context 'for a page'. This clearly differentiates it from the sibling tool 'confluence_get_page_properties' which retrieves all properties, and other sibling 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?
No guidance is provided on when to use this tool versus alternatives, such as obtaining a list of properties first using 'confluence_get_page_properties'. There are no prerequisites, usage examples, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_pagesA
Get all pages. Returns pages filtered by various parameters. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results (default 25, max 250) | |
| title | No | Filter by exact title match | |
| cursor | No | Cursor for pagination (from previous response) | |
| status | No | Filter by status (current, trashed, deleted, historical, draft) | |
| spaceId | No | Filter by space IDs | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behaviors: pagination (cursor-based), default output trimming (drops _links, _expandable, body content), and the ability to get raw response with full=true. No annotations provided, so description carries this burden well. Missing details on authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: first states purpose, second covers pagination, third covers trimming and full parameter. No fluff, front-loaded with the core 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?
No output schema, and description does not explain the structure of the returned pages (fields, metadata). Lacks guidance on combining multiple filters and potential interactions. Incomplete for a 7-parameter tool without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage with detailed parameter docs. The description adds global context (pagination, trimming) but does not significantly enhance individual parameter understanding 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 clearly states 'Get all pages' and explains filtering with various parameters, distinguishing itself from siblings like confluence_get_pages_in_space and confluence_get_pages_for_label which are more 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 description gives pagination guidance ('use the returned cursor to fetch more pages') but does not explicitly compare with sibling tools or specify when to use this tool over alternatives. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_pages_for_labelA
Get all pages with a specific label. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| labelId | Yes | The ID of the label | |
| spaceId | No | Filter by space IDs | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the response is trimmed by default and that passing 'full=true' returns the raw Confluence response. It also mentions pagination with a cursor. This adds transparency beyond the input schema descriptions, especially since no annotations are provided.
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 sentences, each serving a clear purpose: the first states the main function, the second explains pagination and output options. No extraneous 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?
Given the tool's 6 parameters and no output schema, the description covers the core behaviors: pagination and response trimming. It is sufficient for a read operation but could mention ordering or edge cases. It is complete enough for effective use.
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 100% schema description coverage, the baseline is 3. The description adds value by explaining the context of the 'full' parameter (trimming behavior) and the pagination mechanism ('cursor'), which is not fully captured in 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 starts with 'Get all pages with a specific label,' which is a specific verb and resource. It clearly distinguishes from siblings like 'confluence_get_pages' (no label filter) and 'confluence_get_pages_in_space' (filter by 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 explains pagination ('use the returned cursor to fetch more pages') and the trimming behavior, which helps the agent decide how to use the tool. However, it does not explicitly contrast with alternatives or 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.
confluence_get_pages_in_spaceA
Get all pages in a specific space. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| depth | No | Depth of pages to return (all or root level only, default: all) | |
| limit | No | Maximum number of results (default 25, max 250) | |
| title | No | Filter by exact title match | |
| cursor | No | Cursor for pagination | |
| status | No | Filter by status (current, trashed, deleted, etc.) | |
| spaceId | Yes | The ID of the space | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: pagination with cursor, default trimming of response (drops _links, _expandable, body content), and the full flag for raw response. It does not mention rate limits or auth, but the core behavior is well-covered.
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?
Two sentences with no wasted words. First sentence states the purpose, second explains key behaviors. Perfectly front-loaded 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?
The description covers the essential behaviors for a paginated list tool: explaining cursor, default trimming, and the full flag. While it doesn't detail the response structure (no output schema), the trimming description gives sufficient context for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context on pagination and trimming behavior but does not elaborate on individual parameters (e.g., depth, bodyFormat) beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all pages in a specific space' with a specific verb and resource, and the name distinguishes it from siblings like 'confluence_get_pages' and 'confluence_get_blog_posts_in_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 implicitly indicates usage context by requiring a spaceId and explaining pagination, but it does not explicitly state when to use this tool over alternatives like 'confluence_get_pages' (cross-space) or 'confluence_get_blog_posts_in_space'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_versionA
Get a specific version of a page. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| pageId | Yes | The ID of the page | |
| versionNumber | Yes | The version number to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the default trimming behavior and the effect of 'full=true', but does not mention error handling, authentication needs, or rate limits. Adequate but not thorough.
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?
Two sentences, no wasted words. The first sentence states the core purpose, the second explains the key behavioral option. Ideal conciseness.
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 (3 parameters, no output schema) and the presence of sibling tools, the description is mostly complete. It explains the main behavioral nuance (trimming). Minor gaps: no mention of return format or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, describing each parameter clearly. The description adds value by explaining the trimming behavior tied to the 'full' parameter, enhancing understanding 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 clearly states the verb 'Get' and resource 'a specific version of a page'. It differentiates from sibling tools like confluence_get_page (which gets latest version) and confluence_get_page_versions (which lists versions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the trimming behavior and the 'full' parameter, indicating when to use the raw response. However, it does not explicitly state when to use this tool versus alternatives like get latest page or list versions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_page_versionsA
Get version history for a specific page. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| pageId | Yes | The ID of the page | |
| bodyFormat | No | The format of the body content to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses key behaviors: results are paginated (cursor), output is trimmed by default, and full=true returns raw output. It does not cover error handling or authentication needs, but the provided details are sufficient for safe invocation.
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 sentences, front-loaded with the core purpose, and each sentence adds distinct value: the first states what it does, the second explains pagination and trimming options.
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 and five parameters, the description covers the main aspects (purpose, pagination, trimming). It could mention the 'bodyFormat' parameter's role, but the schema already documents it, so the description is largely complete for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters have descriptions in the schema (100% coverage). The description adds context for pagination and trimming but does not significantly enhance understanding beyond the schema, especially for 'bodyFormat' and 'limit'.
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 'Get version history for a specific page,' clearly stating the verb and resource. It distinguishes itself from the sibling tool 'confluence_get_page_version' by focusing on the full history rather than a single version.
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 pagination and the use of the cursor parameter, and hints at when to use 'full=true' for untrimmed responses. However, it does not explicitly guide when to prefer this tool over alternatives like 'confluence_get_page_version' for a single version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_server_infoA
Get information about the Confluence server/cloud instance, including the cloud ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Get information' implying read-only behavior, which is correct. However, it does not disclose any potential side effects, authentication requirements, or rate limits, though none seem necessary for this simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's function and a key output. It is concise, front-loaded, and contains 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?
Given the tool has no parameters and no output schema, the description fairly captures its purpose. However, it could be more complete by mentioning other possible return values (e.g., version, edition) beyond just the cloud ID.
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 tool has no parameters, and the schema coverage is 100% (empty schema). According to calibration rules, for 0 parameters the baseline is 4. The description adds no parameter info, which is acceptable since there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get information' and identifies the resource 'Confluence server/cloud instance'. It mentions a specific output 'cloud ID', which clearly distinguishes this tool from sibling tools that deal with pages, spaces, or other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. However, its simple, no-parameter nature implies it is for general server info retrieval, and the context of sibling tools makes the purpose clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_spaceA
Get a specific space by ID or key. Returns detailed space information. Provide either spaceId (numeric) or spaceKey (e.g. 'ENG' or '~712020...' for personal spaces). When spaceKey is given, it is resolved to a numeric id via /spaces?keys=... Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| spaceId | No | The numeric ID of the space. Provide this OR spaceKey. | |
| spaceKey | No | The space key (e.g. 'ENG', or '~712020...' for personal spaces). Provide this OR spaceId. | |
| includeLabels | No | Include labels in the response | |
| descriptionFormat | No | Format for space description | |
| includeOperations | No | Include permitted operations in the response | |
| includeProperties | No | Include space properties in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: trimming of output by default, the resolution of spaceKey to numeric ID, and the full parameter to bypass trimming. With no annotations, this provides useful context. Missing explicit read-only hint, but the verb 'get' implies a safe read 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 two sentences with front-loaded purpose and concise details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (7 params, none required, no output schema), the description adequately covers identification, trimming, and resolution. The sibling tools do not require additional context for differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds significant meaning beyond the schema: explains that spaceId or spaceKey are alternatives, describes resolution behavior for spaceKey, and clarifies trimming behavior with full parameter. This fully compensates for any schema 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 a specific space by ID or key' and distinguishes it from sibling tools like get_spaces (list) and get_pages_in_space. The mention of two identifier methods adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to provide either spaceId or spaceKey, and the purpose of getting a specific space is clear. However, it does not explicitly mention when not to use this tool (e.g., when needing to list spaces) or direct to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_space_labelsA
Get labels on a specific space. Results are paginated - use the returned cursor to fetch more if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination | |
| prefix | No | Filter by label prefix | |
| spaceId | Yes | The ID of the space |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses key behavioral traits: pagination (cursor-based), default output trimming, and the option to receive raw response via 'full=true'. This sufficiently informs the agent of expected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses two sentences: first stating the core purpose, second covering pagination and trimming. It is front-loaded, concise, and contains 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 lacks explanation of the output structure (e.g., what fields labels contain) and no output schema is provided. While it covers pagination and trimming, additional detail on returned data 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 100% with descriptions for all 5 parameters. The description adds context by explaining pagination relates to 'cursor' and 'limit', and the 'full' parameter controls trimming. This goes beyond the 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 'Get labels on a specific space', specifying the verb and resource. It distinguishes this tool from related siblings like confluence_get_page_labels (page-level) and mutations like confluence_add_space_label.
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 mentions pagination and cursor usage ('use the returned cursor to fetch more if needed'), and explains the trimming behavior with the 'full' parameter. However, it does not explicitly contrast with alternatives or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_spacesA
Get all spaces. Returns spaces filtered by various parameters. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. To find a space by name, use nameContains (case-insensitive substring match), which auto-pages server-side and returns matching results without forcing the caller to walk every page. For an exact-name lookup, CQL search (type = "space" AND title = "...") is also fast. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Filter by space IDs | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| keys | No | Filter by space keys | |
| sort | No | Sort order (prefix with - for descending) | |
| type | No | Filter by space type | |
| limit | No | Maximum number of results (default 25, max 250) | |
| cursor | No | Cursor for pagination | |
| labels | No | Filter by labels | |
| status | No | Filter by space status | |
| nameContains | No | Case-insensitive substring filter on space name. Applied client-side; the server does not natively support name search. The handler pages through up to `nameSearchMaxScanned` spaces (default 2000) until enough matches are found. Combine with `type` to narrow the scan. | |
| descriptionFormat | No | Format for space description | |
| nameSearchMaxScanned | No | Maximum number of spaces to scan when filtering by `nameContains`. Default 2000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and excels by detailing pagination (cursor-based), client-side name filtering with scanning limits, and output trimming with the `full` parameter override. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear lead sentence, logical flow through features, and efficient explanation of non-obvious behaviors. Slightly verbose but not unnecessarily so.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters and no output schema, the description effectively covers key aspects: pagination, name search, trimming, and filter parameters. It leaves little ambiguity for an agent to use 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?
Although schema coverage is 100%, the description adds significant value by explaining the client-side behavior of `nameContains`, the default scan limit, and the effect of `full` on output trimming, going beyond the schema definitions.
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 all spaces' and explains filtering and pagination, but does not explicitly distinguish itself from the sibling 'confluence_get_space' for singular retrieval. However, the plural naming and 'all spaces' phrasing make the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance, such as using `nameContains` for name search and suggesting CQL for exact-name lookup, but does not comprehensively cover when to use this tool versus other listing tools like `confluence_get_space` or `confluence_cql_search`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_userA
Get a specific user by account ID. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| accountId | Yes | The account ID of the user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses the output trimming behavior and the ability to get the raw response. This adds valuable behavioral context beyond a simple 'get user' 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?
Two sentences, front-loaded with the main action. Every word adds value, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the trimming behavior and default response shape. It does not cover error conditions or permissions, but for a simple read operation, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description adds context about default trimming behavior, which is not in the schema. However, the schema for the 'full' parameter already states 'bypass response trimming,' so the description adds marginal value.
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?
Description clearly states 'Get a specific user by account ID.' It distinguishes itself from sibling tools like confluence_get_users (list) and confluence_get_current_user (current user) by specifying the account ID parameter.
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 this tool (to get a specific user) and notes the default trimming behavior with the option to bypass via the full parameter. It could explicitly mention alternatives but is clear enough for an AI agent to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_usersA
Get multiple users. Results are paginated - use the returned cursor to fetch more pages if you don't find what you need. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| limit | No | Maximum number of results | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses pagination behavior, default trimming of output, and the effect of 'full=true'. This is sufficient for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are front-loaded with purpose, followed by pagination and trimming details. No 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?
Given no output schema, the description explains return value behavior (trimmed/paginated) and the full parameter. It does not list fields but provides enough context for the agent to use 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 coverage is 100% with descriptions for all three parameters. The description adds value by explaining pagination (cursor usage) and trimming behavior, enhancing the understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get multiple users', which is a specific verb+resource combination. It distinguishes from sibling tools like confluence_get_user and confluence_get_current_user by focusing on multiple users.
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 when to use pagination ('use the returned cursor to fetch more pages') and mentions the 'full' parameter for raw responses. It does not explicitly mention alternatives for single users, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_remove_blog_post_labelB
Remove a label from a blog post.
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | The ID of the label to remove | |
| blogPostId | Yes | The ID of the blog post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description gives no details on side effects, error conditions, or success behavior (e.g., what if label doesn't exist?).
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?
Extremely concise: one sentence that states the action clearly 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?
Adequate for a simple removal tool, but lacks output schema and any explanation of return value or error handling.
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 descriptions cover 100% of parameters, so baseline is 3. Description adds no extra 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?
Description uses specific verb 'Remove' and resource 'label from a blog post', clearly distinguishing from siblings like 'add' or 'get' for labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., remove_page_label, add_blog_post_label). No prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_remove_page_labelC
Remove a label from a page.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | The ID of the page | |
| labelId | Yes | The ID of the label to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It only states 'Remove a label from a page,' which implies mutation but gives no details on side effects, permissions needed, idempotency, or error behavior. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately short for a simple operation, though it could include additional context without becoming verbose.
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 is minimal for a mutation tool with no output schema. It lacks information on return values, error conditions, prerequisites, or any side effects. Given the tool's simplicity, a more complete description would include idempotency or label existence 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions. Each parameter is already documented in the schema, so the description does not improve understanding.
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 'Remove a label from a page' uses a specific verb and resource. It distinguishes from sibling tool 'confluence_remove_blog_post_label' by specifying 'page'. However, it lacks extra context like scope or effect, so it's clear but not exceptional.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to remove vs. add labels, or differences from space label removal). The description is purely declarative without usage recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_remove_space_labelB
Remove a label from a space.
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | The ID of the label to remove | |
| spaceId | Yes | The ID of the space |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose behavioral traits like permission requirements, idempotency, or handling of non-existent labels.
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?
Single sentence with no wasted words. However, it is under-specified for a production tool.
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 removal operation with two required parameters and no output schema, the description is minimally adequate but lacks mention of return values, error conditions, or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions in input schema). The tool description adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'remove' and the resource 'label from a space'. It distinguishes from sibling tools like 'confluence_add_space_label' and 'confluence_remove_page_label'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites, when-not to use, or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_render_bodyA
Render a page body that was offloaded to disk by an earlier read. Reads the file at bodyPath (returned by confluence_get_page / _blog_post / _comment when the body exceeds the inline limit) and converts the raw Confluence body (ADF JSON or storage XHTML) to markdown. No additional Confluence API call is made. Default response: { representation, sourceLength, bodyMarkdown } for format="markdown", or { representation, sourceLength, bodyRaw } for format="raw". If outputPath is provided, the rendered output is written to that file instead and the response omits the body, carrying { representation, sourceLength, outputPath, bytesWritten }. Use outputPath when restoring a doc to disk so the content doesn't pass through the agent's context.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format. `markdown` runs the body through the ADF→markdown or storage→markdown converter. `raw` returns the persisted source string under `bodyRaw`. | markdown |
| bodyPath | Yes | Absolute path to a body file written by the trim layer (the `bodyPath` field on a previous tool response). | |
| outputPath | No | Optional absolute path to write the rendered output to. When set, the rendered content is written there and the response omits `bodyMarkdown`/`bodyRaw`, returning `outputPath` and `bytesWritten` instead. Parent directories are created if missing. Existing files are overwritten. Avoids inlining the body into the agent's context. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description fully covers behavior: reads a local file, converts body, returns inline or writes to disk. Discloses side effects like overwriting files and creating directories. No hidden behaviors.
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?
Concise yet comprehensive. 8 sentences pack all necessary info without redundancy. Front-loaded with core purpose. Well-structured with clear sentences and logical flow.
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, description fully explains response shapes for both markdown and raw formats, plus outputPath variant. Covers all parameters and use cases. No 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 coverage is 100% with good descriptions, but description adds significant value: explains bodyPath originates from previous tool responses, details format differences, and outputPath behavior (creates dirs, overwrites, omits body from response). Goes well beyond 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 renders an offloaded page body to markdown or raw format, specifying the input bodyPath from previous reads. It distinguishes itself from other Confluence tools by focusing on post-read body processing, not direct API interactions.
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 explicit when to use: after a page read that exceeded inline limit. Describes no additional API call. Explains when to use outputPath for avoiding context bloat. No ambiguity about alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_search_contentA
Simple text search for pages and blog posts by title or content. For more complex searches, use confluence_cql_search instead. Results are paginated - if you don't find what you need, use the returned cursor to fetch more pages until found or no more results. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| type | No | Filter by content type | |
| limit | No | Maximum number of results | |
| query | Yes | The search text to find in titles or content | |
| spaceKey | No | Limit search to a specific space key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses trimming of output by default, pagination with cursor, and the effect of full parameter. Lacks explicit read-only declaration, but implied by search nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and alternative. Every sentence adds unique value with no 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?
Covers purpose, alternative, pagination, trimming, and full parameter. Adequate for a search tool with no output schema, especially given sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining trimming and pagination behavior related to parameters, though most parameters are already clear from 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?
Clearly states it is a simple text search for pages and blog posts by title or content. Distinguishes from confluence_cql_search for complex searches.
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?
Explicitly states when to use this tool (simple search) and when to use CQL (complex search). Provides pagination guidance and explains the full parameter for raw response.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_search_generic_contentA
Search for generic content types: databases, whiteboards, folders, or embeds. NOT for pages or blog posts — use confluence_cql_search or confluence_search_content for those. Results are paginated — use the returned cursor to fetch more pages if needed. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| type | Yes | The type of generic content to search for. Must be one of: DATABASES, WHITEBOARDS, FOLDERS, EMBEDS | |
| limit | No | Maximum number of results (default 25, max 250) | |
| title | No | Filter by title (partial match) | |
| cursor | No | Cursor for pagination (from previous response) | |
| spaceKey | No | Filter by space *key* (e.g. 'ENG'), not the numeric space id. CQL's `space=` operator works on keys. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains pagination via cursor, response trimming by default, and the 'full' parameter for raw output. Does not explicitly state read-only nature, but search implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and exclusions, no unnecessary 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?
Covers pagination, trimming, and parameters. No output schema, but describes response behavior. Could mention typical response fields, but sufficient for a list-search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but the description adds crucial information about pagination (cursor usage) and response trimming, which are not present in 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?
Clearly states the tool searches for generic content types (databases, whiteboards, folders, embeds) and explicitly excludes pages/blog posts, distinguishing it from sibling 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?
Explicitly directs users to 'confluence_cql_search' or 'confluence_search_content' for pages/blog posts, providing clear alternatives. However, it does not elaborate on when to choose this tool over other search options for generic content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_blog_postA
Update an existing blog post. Requires blog post ID, new title, body, and current version number. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The new body content (in storage format: XHTML-based markup) | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | Yes | The new title of the blog post | |
| status | No | Blog post status | |
| version | Yes | The current version number (required for optimistic locking) | |
| blogPostId | Yes | The ID of the blog post to update | |
| versionMessage | No | Optional message describing the changes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: output trimming by default with a full=true option to get raw response, and optimistic locking via version number. However, it does not mention authorization needs, side effects, or reversibility. Since no annotations are present, the description carries the burden and addresses it well.
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 sentences, front-loading purpose and requirements, with no wasted words. It efficiently conveys all critical 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?
Given 7 parameters and no output schema, the description covers the core update operation, response trimming option, and the meaning of version. It misses potential error conditions or expected response structure, but remains largely complete for a CRUD update tool.
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 100% schema coverage, the baseline is 3. The description adds value by explaining the storage format for body, the purpose of version for optimistic locking, and the effect of the full parameter on output. This goes beyond the 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 explicitly states 'Update an existing blog post' and lists the required parameters (blogPostId, title, body, version), making the tool's purpose clear and distinct from sibling tools like create_blog_post or delete_blog_post.
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 (for updating an existing blog post) but does not provide explicit guidance on when not to use it or which alternative tools to consider. No exclusions or context for sibling differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_pageA
Update an existing page. Requires page ID, new title, body, and current version number. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The new body content. For storage format: XHTML-based markup. For atlas_doc_format: JSON-stringified ADF document. | |
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | Yes | The new title of the page | |
| pageId | Yes | The ID of the page to update | |
| status | No | Page status | |
| version | Yes | The current version number (required for optimistic locking) | |
| bodyFormat | No | The format of the body content (default: storage). Use atlas_doc_format for ADF JSON. | |
| versionMessage | No | Optional message describing the changes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: optimistic locking via version, output trimming by default, and the 'full' parameter to bypass trimming. With no annotations provided, the description adequately reveals mutation and response behavior, though it omits details like authentication or rate limits.
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—two sentences that front-load the core purpose and requirements. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters and no output schema, the description covers the update logic, version locking, output trimming, and body format. It does not explicitly describe the return value or error conditions, but the behavior is reasonably complete for a typical update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, but the description adds significant value by explaining body format options ('storage' vs 'atlas_doc_format') and the impact of the 'full' parameter on output. It also clarifies required parameters and the purpose of 'version' (optimistic locking), going beyond basic 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 the action ('Update an existing page') and specifies the required parameters (page ID, new title, body, current version number). It also differentiates from sibling tools like 'confluence_update_page_from_markdown' by highlighting the need for explicit HTML/Markdown content and version locking.
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 guidance on when to use the tool (updating an existing page) and the necessary prerequisites (page ID, version). However, it does not explicitly advise against using this tool for other operations (e.g., creating pages or updating via markdown), nor does it compare it to alternatives like 'confluence_update_page_from_markdown'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_page_from_markdownA
Update an existing page from Markdown. Converts to Atlassian Document Format (ADF) — the recommended path for modern Confluence Cloud. Renders ```mermaid code blocks natively as Mermaid diagrams (via the Confluence Mermaid app). Supports headings, bold/italic/strikethrough, links, images (as external media), ordered/unordered lists, tables, blockquotes, code blocks with syntax highlighting, inline code, and horizontal rules. For large documents, use markdownFilePath instead of markdown to avoid tool call size limits. Use confluence_update_page_from_markdown_legacy only if the target instance has ADF disabled. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | Yes | The new title of the page | |
| pageId | Yes | The ID of the page to update | |
| status | No | Page status | |
| version | Yes | The current version number (required for optimistic locking) | |
| markdown | No | The new page content in Markdown format. Supports standard Markdown including headings, bold/italic, links, images, lists, tables, code blocks (with language for syntax highlighting), and Mermaid diagrams using ```mermaid code blocks. Either this or markdownFilePath must be provided. | |
| versionMessage | No | Optional message describing the changes | |
| markdownFilePath | No | Absolute path to a Markdown file on disk. Use this instead of the markdown parameter for large documents that may exceed tool call size limits. Takes precedence over markdown if both are provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses conversion to ADF, native Mermaid rendering, supported Markdown features, and output trimming behavior. Slightly lacks details on side effects or error handling, but is still comprehensive.
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 at around 120 words, front-loaded with the core purpose, well-structured with logical sections, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, no output schema), the description covers purpose, usage guidance, parameter semantics, and output behavior. It could be slightly more complete by mentioning behavior around optimistic locking or error responses, but it is still thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that markdownFilePath is for large documents and takes precedence over markdown, and by enumerating supported Markdown features beyond the schema's brief description.
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 page from Markdown. Converts to Atlassian Document Format (ADF).' It distinguishes itself from siblings by explicitly mentioning the legacy version for instances with ADF disabled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs. the legacy version, and advises using markdownFilePath for large documents to avoid tool call size limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_page_from_markdown_legacyA
Legacy: update a page using Confluence storage format (XHTML). Prefer confluence_update_page_from_markdown (ADF) — use this only when targeting an instance that has ADF disabled. Supports headings, bold/italic/strikethrough, links, images, ordered/unordered lists, tables, blockquotes, code blocks (with syntax highlighting), inline code, and horizontal rules. ```mermaid code blocks render as syntax-highlighted code, NOT as Mermaid diagrams (the storage code macro can't host the Mermaid extension). For large documents, use markdownFilePath instead of markdown to avoid tool call size limits. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| title | Yes | The new title of the page | |
| pageId | Yes | The ID of the page to update | |
| status | No | Page status | |
| version | Yes | The current version number (required for optimistic locking) | |
| markdown | No | The new page content in Markdown format. Supports standard Markdown including headings, bold/italic, links, images, lists, tables, code blocks (with language for syntax highlighting), and Mermaid diagrams using ```mermaid code blocks. Either this or markdownFilePath must be provided. | |
| versionMessage | No | Optional message describing the changes | |
| markdownFilePath | No | Absolute path to a Markdown file on disk. Use this instead of the markdown parameter for large documents that may exceed tool call size limits. Takes precedence over markdown if both are provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that output is trimmed by default and that `full=true` returns raw response. It also clarifies that ```mermaid code blocks render as syntax-highlighted code, not as Mermaid diagrams. It lacks details on permissions or rate limits but is otherwise transparent for an update 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 detailed but well-structured, with essential information placed upfront (legacy status, preferred alternative, supported features, caveats, and output behavior). It is somewhat long but every sentence adds value, making it efficient despite the length.
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 complexity (8 parameters, no output schema), the description is fairly complete: it explains supported syntax, legacy context, output trimming behavior, and file path alternative. It does not describe the return value structure, but the mention of trimming partially compensates. Overall, it covers most aspects needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the `full` parameter (output trimming), `markdownFilePath` (precedence over `markdown`, size limit), and `version` (optimistic locking). It also clarifies that `markdownFilePath` takes precedence. This provides 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 clearly states it is a legacy tool for updating a page using Confluence storage format (XHTML), contrasts it with the preferred `confluence_update_page_from_markdown` (ADF), and specifies when to use it (when ADF is disabled). It also lists supported Markdown features, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to prefer the ADF-based tool and only use this legacy version when ADF is disabled. It also provides guidance on using `markdownFilePath` for large documents to avoid tool call size limits and explains the output trimming behavior with the `full` parameter. This gives clear when-to-use and when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_page_propertyB
Update a content property on a page.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The property key | |
| value | Yes | The new property value | |
| pageId | Yes | The ID of the page | |
| version | Yes | Current version number of the property | |
| propertyId | Yes | The ID of the property |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It mentions 'Update' implying mutation, but fails to explain the role of the 'version' parameter (optimistic locking), what happens to the old value, or any 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 (6 words) and front-loaded with the key action and resource. While it earns its place, it lacks any additional structure like usage notes.
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 lack of an output schema and the need to explain a content property and version-based updates, the description is too minimal. It does not clarify what a 'content property' is, how versioning works, or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have descriptions in the schema, so coverage is 100%. The description adds no extra meaning beyond the schema, meeting the baseline of 3.
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 ('Update') and the resource ('a content property on a page'), which is specific and distinguishes it from sibling tools like create or delete 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?
No guidance is provided on when to use this tool versus alternatives (e.g., create_page_property or delete_page_property). There is no explanation of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_spaceA
Update an existing space. Can update name, description, etc. Output is trimmed by default (drops _links, _expandable, body content, etc.); pass full=true to receive the raw Confluence response.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | If true, bypass response trimming and return the raw Confluence API response. | |
| name | No | The new name of the space | |
| status | No | Update space status | |
| spaceId | Yes | The ID of the space to update | |
| description | No | The new description (plain text) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It reveals output trimming by default and the full parameter's effect. However, it omits authorization requirements, reversibility, or idempotency 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?
Two sentences with no wasted words. The first states purpose, the second clarifies output behavior. Highly 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 compensates by explaining output trimming and the full parameter. It covers core behavior but lacks discussion of error states or update idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by explaining the 'full' parameter's role in bypassing trimming, going beyond schema descriptions. For other parameters, it merely lists them, providing marginal added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Update' and the resource 'an existing space', and lists updatable fields (name, description, etc.). It easily distinguishes from sibling tools like confluence_delete_space or confluence_create_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 implies usage for modifying existing spaces but lacks explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though sibling context provides differentiation.
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.
63 tool updates
v1.0.0- First observed
confluence_add_blog_post_label - First observed
confluence_add_page_label - First observed
confluence_add_space_label - First observed
confluence_cql_search - First observed
confluence_create_blog_post - First observed
confluence_create_blog_post_footer_comment - First observed
confluence_create_page - First observed
confluence_create_page_footer_comment - First observed
confluence_create_page_from_markdown - First observed
confluence_create_page_from_markdown_legacy - First observed
confluence_create_page_property - First observed
confluence_create_space - First observed
confluence_delete_attachment - First observed
confluence_delete_blog_post - First observed
confluence_delete_footer_comment - First observed
confluence_delete_page - First observed
confluence_delete_page_property - First observed
confluence_delete_space - First observed
confluence_get_attachment - First observed
confluence_get_blog_post - First observed
confluence_get_blog_post_attachments - First observed
confluence_get_blog_post_footer_comments - First observed
confluence_get_blog_post_labels - First observed
confluence_get_blog_post_version - First observed
confluence_get_blog_post_versions - First observed
confluence_get_blog_posts - First observed
confluence_get_blog_posts_in_space - First observed
confluence_get_current_user - First observed
confluence_get_footer_comment - First observed
confluence_get_page - First observed
confluence_get_page_ancestors - First observed
confluence_get_page_attachments - First observed
confluence_get_page_children - First observed
confluence_get_page_descendants - First observed
confluence_get_page_footer_comments - First observed
confluence_get_page_inline_comments - First observed
confluence_get_page_labels - First observed
confluence_get_page_properties - First observed
confluence_get_page_property - First observed
confluence_get_page_version - First observed
confluence_get_page_versions - First observed
confluence_get_pages - First observed
confluence_get_pages_for_label - First observed
confluence_get_pages_in_space - First observed
confluence_get_server_info - First observed
confluence_get_space - First observed
confluence_get_space_labels - First observed
confluence_get_spaces - First observed
confluence_get_user - First observed
confluence_get_users - First observed
confluence_remove_blog_post_label - First observed
confluence_remove_page_label - First observed
confluence_remove_space_label - First observed
confluence_render_body - First observed
confluence_search_content - First observed
confluence_search_generic_content - First observed
confluence_update_blog_post - First observed
confluence_update_footer_comment - First observed
confluence_update_page - First observed
confluence_update_page_from_markdown - First observed
confluence_update_page_from_markdown_legacy - First observed
confluence_update_page_property - First observed
confluence_update_space
TDQS
Each tool targets a distinct Confluence resource and action, with highly detailed descriptions that clearly differentiate similar tools (e.g., multiple page-getters by space, label, or general filter). No overlap is apparent.
All tools follow the consistent pattern 'confluence_verb_noun', with verbs like get, create, update, delete, add, remove, search. Exceptions like 'create_page_from_markdown_legacy' are clearly suffixed for legacy variants, maintaining a predictable structure.
At 63 tools, the set is significantly oversized for typical MCP usage. While each tool may serve a purpose, the sheer volume makes navigation and selection difficult for an agent, exceeding the recommended 3-15 range.
The tool surface covers the vast majority of Confluence operations: pages, blog posts, spaces, comments, labels, attachments, versions, properties, search, users, and server info. Minor gaps exist (e.g., no explicit tool to create inline comments), but core workflows are well-covered.
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
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A paid remote MCP for OpenAI Codex context compressor, built to return verdicts, receipts, usage log
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that optimizes token usage by caching data during language model interactions, compatible with any language model and MCP client.42-
- FlicenseBqualityDmaintenanceA Model Context Protocol server that reduces token consumption by efficiently caching data between language model interactions, automatically storing and retrieving information to minimize redundant token usage.425-
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables AI assistants like Claude to access and search Atlassian Confluence content, allowing integration with your organization's knowledge base.57,08161ISC
- AlicenseAqualityFmaintenanceA Model Context Protocol server that enables AI assistants to interact with Confluence content, supporting operations like retrieving, searching, creating, and updating pages and spaces.91912MIT
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/criblio/ultra-confluence-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server