Skip to main content
Glama

Confluence Cloud MCP

Confluence Cloud REST API v1 and v2を、Claude Desktopから使えるローカルstdio MCPサーバーとして提供します。検索、ページ本文、Space、階層、添付、コメント、版履歴、主要な更新操作を、LLMが作業の流れに合わせて選べる粒度のToolにまとめています。

認証情報はローカル環境変数、またはClaude Desktop Extensionのsecure configurationから受け取ります。サーバーはstdoutをMCP protocol専用に使うため、診断ログはstderrへ出力します。

Requirements

  • Node.js 20 or newer

  • Confluence Cloud site

  • Atlassian account email

  • Atlassian API token

  • Claude Desktop (stdio configuration or .mcpb Extension)

API tokenはAtlassianのAPI tokens pageで作成します。Confluence CloudのBasic Authは、メールアドレスとAPI tokenを使う方式です。Tokenには必要最小限の権限を持つAtlassianアカウントを使ってください。

Related MCP server: Confluence MCP Server

Quick start with Node

git clone https://github.com/yuu-biz/confluence-cloud-mcp.git
cd confluence-cloud-mcp
npm install
npm run build:bundle

CONFLUENCE_BASE_URLCONFLUENCE_EMAILCONFLUENCE_API_TOKENを設定してサーバーを起動します。PowerShellでは次のように設定できます。

$env:CONFLUENCE_BASE_URL = "https://example.atlassian.net"
$env:CONFLUENCE_EMAIL = "user@example.com"
$env:CONFLUENCE_API_TOKEN = ""
node dist/index.js

.env.exampleをコピーして使う場合も、.envはGitへ追加しないでください。このプロジェクトはdotenvを読み込まないため、Claude Desktopまたは起動環境から環境変数を渡します。

Claude Desktop stdio configuration

Claude Desktopの設定ファイルに、次のエントリを追加します。argsはclone先の絶対パスへ変更し、空のCONFLUENCE_API_TOKENにはローカル設定だけで実際のtokenを入力してください。公開リポジトリの設定例にはtokenを記載しません。

{
  "mcpServers": {
    "confluence-cloud": {
      "command": "node",
      "args": ["C:\\path\\to\\confluence-cloud-mcp\\dist\\index.js"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://example.atlassian.net",
        "CONFLUENCE_EMAIL": "user@example.com",
        "CONFLUENCE_API_TOKEN": "",
        "CONFLUENCE_ALLOW_DESTRUCTIVE_OPERATIONS": "false",
        "CONFLUENCE_ALLOW_RAW_WRITE": "false",
        "CONFLUENCE_ALLOW_LOCAL_FILE_UPLOAD": "false"
      }
    }
  }
}

Claude Desktopを再起動してから、confluence_searchでCQL検索を試してください。

Claude Desktop Extension (.mcpb)

Extensionは、Node.jsを別途用意せずClaude DesktopへローカルMCPサーバーを導入するためのパッケージです。

npm run build:mcpb

生成されたdist/confluence-cloud-mcp.mcpbをClaude Desktopへドラッグするか、Extensionのインストール画面で選択します。設定画面で次を入力します。

  • Confluence site URL: https://example.atlassian.net

  • Atlassian email: user@example.com

  • Atlassian API token: Extensionのsensitive fieldへ入力

  • Destructive operations: 通常は無効

  • Raw write requests: 通常は無効

  • Local file upload: 通常は無効

Extension manifestはMCPB manifest v0.4を使い、API tokenをsensitive: trueのuser configurationから環境変数として渡します。MCPBにはOS-level sandboxがないため、write系の安全制御はサーバー側でも行っています。

High-level Toolを通常優先してください。サーバー内部でpagination、階層再構成、複数API呼び出しを処理するため、Claude DesktopからのTool Callを減らせます。Primitive Toolは、1リソース・1階層だけが必要な場合、cursorを自分で制御したい場合、High-level Toolが公開していないフィールドを使いたい場合に使います。

High-level Tool

集約する処理

confluence_get_content_tree

v2 descendantsのcursor pagination、root取得、階層再構成、budget内でのrender

confluence_search_and_fetch

query→CQL変換、v1 search、上位ページのv2本文取得

confluence_get_page_context

ページ本文・current versionと、指定したancestors / attachments / comments

confluence_get_space_overview

space key解決、Space metadata、homepage/root以下のcontent tree

confluence_get_comment_thread

コメント本体とv2 child commentsのreply tree

Content treeのoutput mode

confluence_get_content_tree(およびconfluence_get_space_overview)は、node objectの羅列ではなくインデント済みテキストを返します。1行 = 1 node、インデント = 階層、末尾の/ = folder、[id]は後続呼び出し用のcontent idです。parentIdchildPositionは階層から復元できるためcompact outputには含めません。

  • compact(default): output budgetに収まる最も深い表示を返します。収まらない場合はbranchを切り捨てる前にdepthを下げるため、branchは一覧から消えません。

  • outline: 直下の子だけを子数付きで返す「地図」。内部ではdepth 2のdescendantsを1回読むだけで、branchごとのAPI呼び出しは発生しません。巨大・未知の階層はまずこれを取り、必要なbranchだけcompactで展開します。

  • detailed: 従来どおりのnode object。parentId / childPosition / statusが必要なときだけ使います。

Fetched / rendered / omitted と truncation

statusはMCPが取得した量とClaudeへ返した量を分けて報告します。

  • fetchedItems / renderedItems / omittedItems: 取得数、実際にrenderした数、省略された数

  • truncatedtruncationReasons: output_budget(renderで省略)、max_itemspagination_limitapi_error

  • omittedBranches: 省略したbranchのid / title / type / fetchedDescendants。関係のありそうなbranchだけroot_idに指定して追加取得できます

  • outputBudget: requestedChars(指定値)、effectiveChars(実際に使われた値)、hardCapChars(サーバー上限50,000)

max_charsは1,000〜50,000の範囲にクランプされます。指定値と実効値が異なる場合もstatus.outputBudgetで確認できます。

truncationReasonsoutput_budgetが入っている場合、取得済み(fetchedItems)のうちrenderできなかった分なので、max_charsを上げるだけで追加のAPI呼び出しなしに表示を増やせます。compact renderは残り予算で折り畳んだbranchを可能な限り展開するため、予算を上げた分はそのまま表示ノード数に反映されます。

版履歴(Versions of ...)の除外

Confluenceは保持された版を通常の子コンテンツ(Versions of ... フォルダとその配下の版ページ)として持つため、無指定のdescendants取得では版履歴だけでitem budgetを使い切り、兄弟branchに到達できないことがあります。

confluence_get_content_treeconfluence_get_space_overview は既定でこれらを除外します(include_version_history: true で含められます)。除外はpagination中に行われるため、除外されたnodeは max_items を消費しません。除外量は status.excludedVersionHistorycontainers / items)で報告するので、黙って消えることはありません。

Primitiveの confluence_list_descendants はAPIの応答をそのまま返す既定(include_version_history: true)のままで、false を指定するとそのページ分だけ同じ規則で除外します(前ページで開いたcontainerは判定できません)。

続きの取得(cursor)

status.nextCursorが返った場合は、同じroot_id / depth / output_modeのままcursorに渡すと続きから取得できます(confluence_get_content_treeconfluence_get_space_overview)。継続ページでは親が前ページに含まれるnodeが出るため、それらはrootの直下に並べ、件数をstatus.unresolvedParentsで報告します(エラー扱いにはしません)。status.cursorUsedには実際に使ったcursorが入ります。

Search mode

confluence_search_and_fetchはCQLを書かずにqueryを渡せます。search_modeauto(default)で、title = "..."(完全一致)→ title ~ "...*"(前方一致)→ text ~ "..."(全文)の順に試し、最初にhitした時点で止まります。full-text検索はtokenizeされるため、識別子や型番のように正確なtitleが分かっている場合はこの順序が有効です。exact_title / title_prefix / full_textで固定でき、cqlは手書きクエリ用のescape hatchです。実際に使われたCQLはstrategy.cqlUsedに入ります。

Tool overview

Tool

Purpose

confluence_search

CQLでv1検索。IDが不明なときの入口

confluence_list_pages

v2でページ一覧、Space・タイトル・status・cursor検索

confluence_get_page

ページ本文、labels、properties、operations、likes、versions

confluence_get_content

v1の汎用content取得とexpand

confluence_list_spaces / confluence_get_space

Spaceの一覧・詳細

confluence_get_folder / confluence_create_folder

Folderの詳細取得・作成

confluence_list_children

PageまたはFolderの直接の子

confluence_list_descendants

PageまたはFolder以下の子孫とdepth

confluence_get_ancestors

PageまたはFolderの親階層

confluence_list_attachments / confluence_get_attachment

添付ファイルの一覧・メタデータ

confluence_list_comments / confluence_get_comment

footer / inline commentの一覧・詳細

confluence_list_versions / confluence_get_page_version

v2のページ版履歴

confluence_get_content_history

v1の汎用content history

confluence_create_page

Page作成(published / draft、storage / ADF)

confluence_update_page

explicit version number付きPage更新

confluence_update_page_title

titleだけの更新

confluence_create_comment / confluence_update_comment

footer commentの作成・更新

confluence_create_inline_comment / confluence_update_inline_comment

inline commentの作成・更新・resolve

confluence_upload_attachment

opt-inでローカルファイルをPageへアップロード

confluence_delete_page

opt-inでtrash / purge

confluence_raw_request

allowlisted pathだけの未ラップAPIアクセス

典型的な流れは、Space全体の把握には confluence_get_space_overview、ページ検索と本文確認には confluence_search_and_fetch、ページ理解には confluence_get_page_context、階層取得には confluence_get_content_tree(大きい場合はまず output_mode=outline)を使い、1階層だけ必要なときや cursor を自分で制御したいときだけ confluence_list_children などのPrimitiveを使う形です。

Pagination and response size

Primitiveのv2一覧系APIはConfluenceのcursor paginationに合わせ、レスポンスの next_cursor を返します。High-level Toolは、指定budgetに達するまでcursorをMCP内部で消費します。v1 CQL searchは start と next_start を使い、confluence_search_and_fetch は指定した fetch_top だけを本文取得します。 High-level Toolのcursor消費には内部上限(1呼び出しあたり最大20ページ)があり、打ち切った場合は status.truncationReasons に pagination_limit が入ります。

Tool responseはデフォルトで12,000文字に抑え、max_charsで最大50,000文字まで調整できます。ページ本文など大きい値は縮約されるため、必要な本文representationを指定して個別取得してください。

API clientは429と一時的な5xxを指数バックオフとRetry-Afterに従って最大3回再試行します。401、403、404、権限エラーは、statusと安全な説明をTool errorとして返します。Credentials、Authorization header、環境変数値はログやTool responseへ出しません。

Safety controls

デフォルトでは次が無効です。

  • CONFLUENCE_ALLOW_DESTRUCTIVE_OPERATIONS=false: page delete、purge、raw DELETEを無効化

  • CONFLUENCE_ALLOW_RAW_WRITE=false: raw POST / PUT / PATCH / DELETEを無効化

  • CONFLUENCE_ALLOW_LOCAL_FILE_UPLOAD=false: ローカルファイル添付を無効化

有効化しても、破壊的操作・raw write・file uploadはTool inputのconfirm: trueが必要です。raw toolは完全URL、別ホスト、..、query string入りのpathを拒否し、/wiki/api/v2/または/wiki/rest/api/のrelative pathだけを受け付けます。

標準ではCONFLUENCE_BASE_URLhttps://*.atlassian.netに制限します。管理されたcustom domainを使う場合だけ、CONFLUENCE_ALLOW_CUSTOM_DOMAIN=trueを明示してください。

Development

npm install
npm run check
npm test
npm run build
npm run build:bundle

実Confluence credentialを使わないunit testで、Basic Auth、query encoding、rate-limit retry、API error、pagination、raw path safety、response size boundを検証します。stdioの手動確認には、ビルド後にMCP Inspectorを使えます。

npx @modelcontextprotocol/inspector node dist/index.js

Deliberate limitations

  • OAuth、Atlassian Connect、Forgeの認証は実装していません。ローカル用途のemail + API token Basic Authに限定しています。

  • named toolはPage / Folder階層を中心にし、全REST endpointを1:1では公開していません。未ラップAPIは安全なraw toolで補完します。

  • 添付のダウンロード内容をMCP responseへ埋め込む機能はありません。現状は一覧・メタデータ・opt-in uploadです。

  • Blog post、whiteboard、databaseなどPage以外のcontentは、必要に応じてraw toolまたはv1 confluence_get_contentを使います。

  • ページ更新の競合は自動マージせず、呼び出し側が最新version numberを指定します。

  • Space permission、admin key、永久削除など高権限操作はnamed toolとして追加していません。権限が必要なAPIはraw toolの追加実装と同じpath/method allowlistを通してください。

Official references

License

MIT. See LICENSE.

Available Tools

33 tools
confluence_create_commentC

Create a footer comment on a page or as a reply to an existing comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
page_idNo
max_charsNo
representationNostorage
parent_comment_idNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action itself and does not explain whether page_id or parent_comment_id is required, what the API returns, whether content is truncated by max_chars, or what permissions are needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no wasted words. It is front-loaded with the primary action, though it could have used its brevity to include a bit more routing or parameter context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create tool with five parameters, no output schema, and no annotations, this description is too thin. It does not clarify the relationship between page_id and parent_comment_id, the meaning of 'footer comment,' or the effect of representation and max_chars, leaving important invocation details unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the five parameters. It vaguely implies page_id and parent_comment_id through the page/reply wording, but it says nothing about body, max_chars, or representation, leaving the agent without useful parameter-level guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a comment and identifies two target modes: a footer comment on a page or a reply to an existing comment. The word 'footer' helps distinguish it from the sibling create_inline_comment, though it does not explicitly name that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the main use case by describing where comments are created, but it gives no explicit guidance on when not to use it or which sibling tool to prefer for inline comments. The page-vs-reply distinction is useful context but not a full routing guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_create_folderB

Create a folder in a Confluence space, optionally under a parent page or folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
space_idYes
max_charsNo
parent_idNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only mentions optional placement under a parent, but does not describe side effects, error behavior, permissions, or whether the folder is created idempotently. Agents cannot anticipate consequences of calling this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. Every word earns its place, and the core action and optional placement are stated efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create operation with 4 parameters, no output schema, and no annotations, the description is too thin. It does not explain 'max_chars', required space context, or outcomes, leaving an agent without enough information to invoke the tool correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that 'parent_id' refers to a parent page or folder, but leaves 'max_chars' and the exact semantics of 'space_id' and 'title' unexplained. The description adds minimal meaning beyond the raw parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('create') on a specific resource ('folder') within a Confluence space, and mentions the optional parent placement. The resource 'folder' clearly distinguishes it from sibling tools like 'confluence_create_page'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as creating a page or using raw_request. There are no prerequisites, exclusions, or decision criteria provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_create_inline_commentC

Create an inline comment on a page. inline_comment_properties should contain the selection coordinates required by the Confluence v2 API.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
page_idNo
max_charsNo
representationNostorage
parent_comment_idNo
inline_comment_propertiesYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose one important technical requirement — that inline_comment_properties must contain Confluence v2 selection coordinates — but it omits mutation side effects, permission needs, failure modes, and how the API identifies the target page. This is minimal transparency for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: the core action comes first, followed by the most API-specific caveat. Both sentences earn their place, though the brevity leaves substantive gaps better addressed by other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six parameters, no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It fails to clarify required body semantics, disambiguate page_id from parent_conditional page_id, explain max_chars behavior, or describe when representation matters. An agent would likely need external API knowledge to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it explains only inline_comment_properties (selection coordinates). The other five parameters — body, page_id, max_chars, representation, and parent_comment_id — receive no semantic explanation, and the nested object remains opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource: 'Create an inline comment on a page.' This distinguishes it from non-comment tools and conveys the inline nature of the operation. However, it does not explicitly contrast with the near-named sibling confluence_create_comment or the update variant, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like confluence_create_comment, confluence_update_inline_comment, or confluence_list_comments. The only usage-related hint is the implementation note about inline_comment_properties, but no use-case context or exclusion criteria is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_create_pageB

Create a published or draft Confluence page in a space, optionally under a parent page. Body is Confluence storage or Atlas document format.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
titleYes
statusNocurrent
subtypeNo
space_idYes
max_charsNo
parent_idNo
representationNostorage

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds useful context around draft/current status, parent placement, and body formats, but it does not mention permissions, side effects, response behavior, or failure modes for a mutating create operation. That is a meaningful gap for a creation tool with no annotation safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the actionable verb and resource, and every phrase carries meaning. It is compact, readable, and avoids redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and no annotations, two sentences are not enough for a confident call. Missing information includes the return value, permission requirements, max_chars behavior, subtype semantics, and how the draft/current workflow operates. An agent would need to guess on several fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are 8 parameters, so the description must compensate. It does clarify status, parent_id, body, and representation indirectly, but it leaves max_chars and subtype unexplained and provides no format details for the body. This only partially compensates for the low-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, 'Create,' and a clear resource: a Confluence page in a space, with published/draft status, optional parent, and accepted body formats. This is distinguishable from sibling tools like confluence_update_page, confluence_delete_page, or confluence_create_folder without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Create' implies this is for new pages rather than updates, but the description does not explicitly say when to use it over alternatives such as confluence_update_page or confluence_raw_request. It mentions published/draft status but gives no guidance on when to choose a draft versus publishing, and it does not name alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_delete_pageA

Move a page to the Confluence trash, or permanently purge a trashed page. Disabled unless CONFLUENCE_ALLOW_DESTRUCTIVE_OPERATIONS=true and confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftNo
purgeNo
confirmYes
page_idYes
max_charsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden of disclosing destructive behavior. It clearly states both the reversible action ('Move a page to the Confluence trash') and the irreversible action ('permanently purge'), plus the environment-variable and confirm gates. It does not detail side effects on child pages or attachments, but the core destructive impact is explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver the core behavior and the operational guard with no filler. The most important information, the destructive action and the disable condition, is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavior and the key restriction, which is the most important context for a destructive tool. However, with five parameters and no output schema, the unhelpful draft and max_chars parameters remain unexplained, leaving an agent uncertain about how to use the full input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only directly references the confirm gate and the purge concept. page_id, draft, and max_chars are left completely unexplained, and no parameter names or value meanings are given beyond the schema's structural constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Move a page to the Confluence trash, or permanently purge a trashed page') and clearly identifies the tool's two distinct modes. It is immediately distinguishable from the sibling tools, none of which offer deletion semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit preconditions for use: the tool is 'Disabled unless CONFLUENCE_ALLOW_DESTRUCTIVE_OPERATIONS=true and confirm=true.' This tells the agent when invocation will be rejected. It does not state when to prefer an alternative over deletion, but there is no sibling delete tool, so the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_ancestorsA

Primitive: get the ancestor chain for a page or folder. When the surrounding page context is also needed, prefer confluence_get_page_context.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_charsNo
content_idYes
content_typeNopage

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. 'Primitive: get the ancestor chain' signals a non-mutating read operation and scopes it to page/folder. However, it does not disclose ordering, whether the current node is included, auth requirements, or behavior tied to max_chars.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler. The purpose statement comes before the routing advice, and every word earns its place; slightly more parameter detail could be added without hurting conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description omits essential invocation context: what max_chars controls, the content_type default, and the shape/order of the returned ancestor chain. It is adequate for choosing between tools but not fully sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only indirectly maps 'page or folder' to content_type. It never explains content_id semantics or the purpose/limits of max_chars, so the agent is left to infer key parameter behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb 'get' and resource 'ancestor chain for a page or folder'. Explicitly differentiates from sibling confluence_get_page_context by noting when it is not the right tool. This is unambiguous and distinguishes it among many siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Directly provides a selection rule: 'When the surrounding page context is also needed, prefer confluence_get_page_context.' This tells the agent when to use this tool and when to choose the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_attachmentB

Get attachment metadata and optional version, labels, properties, operations, or collaborators.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNo
max_charsNo
attachment_idYes
include_labelsNo
include_versionsNo
include_operationsNo
include_propertiesNo
include_collaboratorsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It discloses that the tool returns metadata and can optionally include version, labels, properties, operations, or collaborators, but it does not describe the return format, default behaviors, or whether any side effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is slightly awkward grammatically, but it earns its place by summarizing the core operation and optional inclusions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no annotations, no output schema, and 0% schema description coverage, this one-liner is inadequate. It leaves key parameters like max_chars and version unexplained and gives no guidance for choosing this over sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only repeats the parameter names without explaining semantics; notably, max_chars is completely unexplained and version is ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'attachment metadata', and enumerates the optional inclusions. It is not as explicit as naming sibling alternatives, but the single-attachment target is clear from the tool name and schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you need metadata for a specific attachment. However, it does not explicitly distinguish this from sibling tools like confluence_list_attachments or confluence_get_content, so an agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_commentA

Primitive: get one footer or inline comment by ID. For the comment plus its bounded reply tree, prefer confluence_get_comment_thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNo
max_charsNo
comment_idYes
body_formatNostorage
comment_typeNofooter
include_versionsNo

TDQS

A4/5.0
Behavior3/5

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 usefully clarifies that this is a primitive single-comment fetch that does not include the reply tree, but it does not disclose response shape, error behavior, or auth/versioning caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. The primary scope is front-loaded, and the sibling alternative is stated immediately after.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with 6 parameters and no output schema, the description gives enough to select the tool and know its basic scope, but it is not fully complete: parameter semantics and return behavior are left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only adds meaning for comment_id and the footer/inline distinction. It leaves version, max_chars, body_format, and include_versions unexplained, so it does not sufficiently compensate for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: get one footer or inline comment by ID. It also distinguishes itself from the thread-fetching sibling by name, so an agent can tell exactly what this primitive does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to prefer the alternative: for the comment plus its bounded reply tree, use confluence_get_comment_thread. This gives clear selection guidance for the primary use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_comment_threadA

HIGH-LEVEL: Get one footer or inline comment plus its reply tree in one MCP call. Prefer this over repeatedly calling confluence_get_comment and child-comment endpoints. max_depth and max_items bound recursive traversal; partial/truncated status is explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_charsNo
max_depthNo
max_itemsNo
comment_idYes
body_formatNostorage
comment_typeNofooter

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It explains recursive traversal, bounding via max_depth and max_items, and explicitly mentions partial/truncated status in the response. It stops short of describing error behavior or full return structure, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with high signal-to-noise. The core action is front-loaded, the alternative usage is named, and the key traversal constraints are stated without repeating schema details. No fluff or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter tool with no annotations and no output schema, the description covers purpose, usage, recursion bounds, and truncation status, but it does not explain the expected response shape or the semantics of max_chars and body_format. This leaves an agent with some uncertainty about request formatting and output parsing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It meaningfully explains max_depth and max_items ('bound recursive traversal') and the 'footer or inline' wording maps to comment_type, but max_chars and body_format semantics are left entirely to the schema. This is a noticeable gap with six parameters present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('get') and resource ('one footer or inline comment plus its reply tree'), which clearly differentiates it from single-comment and list-comment siblings. The phrase 'in one MCP call' further clarifies the intended scope and distinguishes it from tools requiring multiple calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs the agent to prefer this tool over repeatedly calling confluence_get_comment and child-comment endpoints, giving clear guidance on when to choose it. However, it does not mention conditions where a flatter list or single-comment tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_contentA

Get a generic Confluence content item through REST API v1 when v2 does not expose the needed content shape or expansion.

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNo
max_charsNo
content_idYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that the tool uses REST API v1 and that it serves as a fallback for content shapes/expansions not available in v2, which is useful behavioral context. However, it does not mention read-only guarantees, error behaviors, response format, or any rate limits, leaving notable gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action ('Get a generic Confluence content item') and then adds the conditional context. There is no redundant filler or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters with 0% schema coverage, no output schema, and no annotations, the description is incomplete. It does not explain parameter semantics, return shape, or how to distinguish this from the many sibling get tools beyond the v1 fallback condition. An agent would still need to consult external documentation to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for all three parameters. It only vaguely references 'expansion' (relating to the expand parameter) but provides no meaning for content_id or max_chars. This is insufficient for an agent to understand what values to pass or their purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('get'), a resource ('generic Confluence content item'), and a clear context ('through REST API v1 when v2 does not expose the needed content shape or expansion'). This differentiates it from sibling tools like get_page or get_comment, which target specific content types via v2.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear condition for when to use this tool ('when v2 does not expose the needed content shape or expansion'), giving agents a decision rule. However, it does not explicitly name the alternative tools (e.g., confluence_get_page) or state when NOT to use it beyond that condition, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_content_historyB

Get v1 history details for generic Confluence content, useful when the v2 page model does not expose the required history shape.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
startNo
expandNo
max_charsNo
content_idYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits itself, but it only says 'Get v1 history details.' It does not explain pagination, expand behavior, content-type coverage, return shape, or any side effects/permissions. This is a significant gap for a read operation whose behavior is mostly unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler and the key action is front-loaded. It is concise, though it may be too terse to fully support effective tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five undocumented parameters, no annotations, and no output schema, the description only provides a narrow use-case hint. It leaves out pagination semantics, expand options, response structure, and relationship to sibling history/version tools, so the agent is under-equipped to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no meaning to the five parameters. An agent cannot infer what 'expand', 'max_chars', 'limit', 'start', or even 'content_id' are used for beyond their raw types and defaults. The description does not compensate for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('Get v1 history details') and scopes it to generic Confluence content, which is clear and actionable. It distinguishes itself from the v2 page model by noting when v1 history shape is required, though it does not explicitly contrast with sibling version/list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'useful when the v2 page model does not expose the required history shape' gives a clear context for when to invoke this tool. It implies an alternative (the v2 model), but it does not explicitly say when not to use the tool or name specific sibling alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_content_treeA

HIGH-LEVEL: Get a page or folder hierarchy in one MCP call, rendered as an indented text tree (title [id], a trailing / marks folders). Prefer this over recursively calling confluence_list_children: the server reads v2 descendants, consumes cursor pagination, and rebuilds the hierarchy. output_mode=compact (default) returns the deepest view that fits the output budget and lists collapsed branches in omittedBranches, so a follow-up call can expand only what matters; output_mode=outline returns just the direct children with child counts and is the cheapest way to map a large or unknown tree first; output_mode=detailed returns raw node objects and is only worth it when parentId, childPosition or status are needed. Retained document versions, which Confluence stores as "Versions of ..." child content, are excluded by default so history cannot consume the item budget ahead of sibling branches; set include_version_history=true to include them, and status.excludedVersionHistory reports what was skipped. status separates fetchedItems from renderedItems and names every truncationReason. When status.nextCursor is returned, pass it back as cursor with the same root_id, depth and output_mode to continue the traversal; when truncationReasons contains output_budget, raising max_chars renders more of what was already fetched without extra API calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
cursorNo
root_idYes
max_charsNo
max_itemsNo
root_typeNopage
output_modeNocompact
include_version_historyNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it delivers: the server reads v2 descendants and consumes cursor pagination, rebuilds the hierarchy, excludes version-history content by default so it cannot consume the item budget, and status separates fetchedItems from renderedItems and names every truncationReason. It also discloses continuation behavior via nextCursor and that raising max_chars renders already-fetched data without extra API calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every clause carries behavioral information and it front-loads the high-level purpose before details. A bulleted structure would improve scanability slightly, but there is little redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 8-parameter tool with no annotations and no output schema, the description covers invocation, output format, mode trade-offs, pagination continuation, truncation semantics, and version-history exclusion. An agent has enough to select and drive the tool correctly without external documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description defines the meaningful behavior of output_mode (compact/outline/detailed), include_version_history, cursor/nextCursor, depth/root_id for continuation, max_chars effect, and item-budget behavior linked to max_items. This substantially compensates for the empty parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: get a page or folder hierarchy as an indented text tree, with notation (title [id], trailing / for folders). It also distinguishes itself from the named sibling confluence_list_children by positioning this as a single-call alternative to recursive calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to prefer this over recursively calling confluence_list_children, and gives mode-selection rules: outline for cheaply mapping large/unknown trees, detailed only when parentId/childPosition/status are needed, compact as default. It also explains when to pass cursor back and when raising max_chars is worthwhile.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_folderA

Get one Confluence folder by ID, optionally including direct children, operations, properties, or collaborators.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYes
max_charsNo
include_operationsNo
include_propertiesNo
include_collaboratorsNo
include_direct_childrenNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. 'Get' implies a read-only operation, and the optional include modifiers give useful behavioral context. However, it does not disclose behavior around max_chars, pagination, response size, or what happens with invalid IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the verb and object, and the optional include list is compact. There is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, no annotations, and no output schema, the description is thin. It covers the core action and optional flags but omits max_chars semantics and any indication of the return shape. For a tool with this many options and no structured documentation, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies folder_id by saying 'by ID' and enumerates the include_* booleans. However, max_chars is not explained at all, and no parameter-level detail is given about constraints or effects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get one Confluence folder by ID.' It clearly distinguishes this from sibling tools like confluence_list_children or confluence_get_page, and the optional include list adds scope without obscuring the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this to fetch a single folder by its ID, optionally with children, operations, properties, or collaborators. It does not explicitly state when to prefer list_children or get_content, but the single-entity-by-ID framing is strong enough for an agent to infer the primary use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_pageA

Primitive: get one Confluence page by ID. Use it when a single page body or a specific field set is all that is needed. For the page plus its ancestors, attachments, or comments, prefer confluence_get_page_context.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
page_idYes
versionNo
max_charsNo
body_formatNostorage
include_likesNo
include_labelsNo
include_versionsNo
include_operationsNo
include_propertiesNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It communicates that this is a minimal single-page fetch and implicitly states what it does not include (ancestors, attachments, comments). However, it does not disclose output format, possible truncation behavior, error conditions, or effects of the many include flags, so transparency is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundancy. The core behavior is front-loaded, and the sibling alternative is mentioned only after the primary usage context is established.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has 10 parameters, no output schema, and no annotations, so the description needs to provide significant context to make the tool safely and correctly invocable. It covers selection criteria well but gives almost no guidance on parameter usage, return shape, or edge-case behavior, leaving the agent under-equipped for actual invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only vaguely references 'a specific field set' and 'page body'. The 10 parameters, including status, version, max_chars, body_format, and include_* flags, are left entirely to the agent to infer. This is insufficient compensation for the complete lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Primitive: get one Confluence page by ID', clearly stating a specific verb, resource, and retrieval method. It also distinguishes itself from confluence_get_page_context by noting that this tool returns a single page rather than ancestors, attachments, or comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool ('when a single page body or a specific field set is all that is needed') and names the preferred alternative for richer context needs. This is direct, actionable guidance that helps route between siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_page_contextA

HIGH-LEVEL: Gather the information commonly needed to understand one page in one MCP call: body/current version plus optional ancestors, attachments, and comments. Prefer this over calling several page context primitives separately; optional section failures are returned with partial status.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYes
max_charsNo
body_formatNostorage
comment_typesNo
include_commentsNo
include_ancestorsNo
include_attachmentsNo
max_items_per_sectionNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It reveals a non-obvious behavior: 'optional section failures are returned with partial status.' This tells the agent that individual sections may fail without aborting the whole call. The verb 'Gather' implies a read-only operation, which is appropriate. It does not discuss rate limits or auth, but these are not critical for a read operation. The partial-failure disclosure adds meaningful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with 'HIGH-LEVEL:' to signal its purpose, and states the key benefit first. It avoids redundancy and wastes no words. The structural choice to lead with the aggregation intent and then mention the partial-failure behavior is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should give a clear sense of the return structure. It does: 'body/current version plus optional ancestors, attachments, and comments.' It also mentions partial failures. However, it does not detail the format of the body, how sections are organized, or any pagination behavior (though max_items_per_section hints at it). For a tool with 8 parameters and no output schema, this is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate for all 8 parameters. It only indirectly addresses the include_* booleans ('optional ancestors, attachments, comments') and the body/version, but does not explain body_format, max_chars, comment_types, or max_items_per_section. The schema itself provides enums and defaults, but the description adds no meaning beyond that. The high-level mapping is insufficient for an agent to understand parameter behavior without inspecting the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to gather page context (body/current version plus optional ancestors, attachments, comments) in one call. It uses a specific verb ('Gather') and resource ('one page'), and distinguishes itself from sibling primitives by framing it as a high-level aggregation. The phrase 'Prefer this over calling several page context primitives separately' explicitly positions it against the family of simpler tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: prefer this tool when you need multiple page context sections, and implies that for single pieces you might use the primitives. However, it does not name specific sibling tools or give clear exclusions (e.g., 'if you only need the body, use confluence_get_page'). The guidance is useful but could be more precise about 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_versionC

Get details for one historical page version.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYes
max_charsNo
version_numberYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'get details.' It does not mention that max_chars may truncate content, what the response contains, or any read-only/reversibility implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the core operation. It has no filler or redundancy, though it is brief on details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, no annotations, no output schema, and zero schema description coverage, one sentence is insufficient. The description leaves max_chars semantics and expected return details unexplained, making the tool harder to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not explain any parameters. page_id and version_number are somewhat inferable from the name and description, but max_chars is entirely unexplained beyond its raw schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get details for one historical page version.' This distinguishes it from get_page (current version) and list_versions (listing versions), though 'details' is somewhat vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'one historical page version' implies this tool is for retrieving a single specific version rather than a list, giving some usage context. However, it does not name alternatives or explain when to prefer this tool over list_versions or get_content_history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_spaceA

Primitive: get one Confluence space by ID when only the space record is needed. When first understanding a space and its structure, prefer confluence_get_space_overview, which also accepts a space key.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYes
max_charsNo
include_iconNo
description_formatNo
include_operationsNo
include_propertiesNo
include_permissionsNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It does convey that the tool returns a space record and is a 'primitive' (minimal) fetch, which implies a read-only operation. However, it does not mention response format, pagination, rate limits, error behavior, or the meaning of the various include flags. It adds some context but leaves significant behavioral aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with no filler. The key information ('get one Confluence space by ID') is front-loaded, and the usage caveat and alternative follow efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 parameters, no output schema, and no annotations, yet the description does not explain the optional parameters, the return value, or any permissions or side effects. While the primary use case is clearly stated, the lack of detail on the remaining parameters and expected behavior leaves the definition incomplete for an agent that needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented parameters. The description only references 'by ID,' which maps to 'space_id,' but says nothing about 'max_chars,' 'include_icon,' 'description_format,' 'include_operations,' 'include_properties,' or 'include_permissions.' An agent cannot infer the meaning or format of these parameters from the description, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('get'), a specific resource ('one Confluence space'), and the exact access pattern ('by ID'). It also explicitly distinguishes itself from the sibling tool 'confluence_get_space_overview' by scoping this to 'when only the space record is needed.' An agent can clearly tell what this tool does and how it differs from the most similar alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: use this when you need only the space record, and prefer 'confluence_get_space_overview' when first understanding a space and its structure. This clearly tells the agent when to select this tool versus an alternative, which is exactly what the dimension asks for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_get_space_overviewA

HIGH-LEVEL: Get space metadata and the homepage/root content tree in one MCP call. Prefer this when first learning a space instead of listing spaces, fetching the space, and recursively listing children. Provide either space_id or space_key; with space_key (for example DOCS) the server resolves the numeric space id itself. status.nextCursor can be passed back as cursor to continue the tree traversal. The tree is always budgeted and reports partial/truncated state.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
cursorNo
root_idNo
space_idNo
max_charsNo
max_itemsNo
root_typeNopage
space_keyNo
output_modeNocompact
include_version_historyNo

TDQS

A4.2/5.0
Behavior4/5

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 the combined-call behavior, server-side space_key resolution, cursor-based continuation, and the fact that the tree is always budgeted and reports partial/truncated state. It stops short of defining the exact budget limits or return shape, but the key behavioral traits 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact, high-signal paragraph: purpose first, usage rule, key parameters, pagination, and budget behavior. Every sentence adds information and none duplicates structured schema data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no annotations and no output schema, this description covers the core use case well but omits semantics for several important fields (especially root_type, output_mode, and include_version_history) and does not describe the returned metadata structure. It is adequate for the happy-path first-learning scenario but not fully complete for advanced usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and only space_id/space_key and cursor semantics are explained in prose. depth, root_id, root_type, output_mode, max_chars, max_items, and include_version_history receive no meaning beyond their type/enum/default in the schema, leaving a substantial semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource — 'Get space metadata and the homepage/root content tree in one MCP call' — and explicitly contrasts it with the multi-call alternative of listing spaces, fetching a space, and recursively listing children. This clearly distinguishes it from sibling tools like confluence_get_space and confluence_list_children.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit usage rule: 'Prefer this when first learning a space' and tells the agent what multi-step pattern to avoid. It also explains the space_id vs space_key input convention and the cursor continuation pattern, so an agent knows both when and how to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_attachmentsA

Primitive: list attachments for a page with optional filename, media type, status, and cursor filters. For attachments together with the page body and comments, prefer confluence_get_page_context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
statusNo
page_idYes
filenameNo
max_charsNo
media_typeNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only says 'list attachments' and 'Primitive' – which hints at a low-level read operation but does not explicitly state read-only behavior, pagination behavior, or what the response contains. The description does not mention cursor as a pagination token, which is a behavioral detail an agent would need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no wasted words. The purpose is front-loaded, followed by a clear usage tip. The description earns its place with minimal redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description is too thin. It does not explain what the tool returns, how pagination works (cursor, limit), or how the filters interact. While it names the key filters, it omits essential context like response format and pagination semantics, so an agent cannot fully anticipate the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no descriptions (0% coverage), so the description must compensate. It names 'filename, media type, status, and cursor filters' but does not explain what each filter does, nor does it mention limit, max_chars, or page_id semantics. Calling 'cursor' a 'filter' is ambiguous – it is typically a pagination token, not a filter. This is insufficient for an agent to construct a correct request.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('list') and resource ('attachments for a page'), and immediately distinguishes itself from the sibling confluence_get_page_context by naming the alternative. The agent can clearly tell this is a scoped, low-level listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'For attachments together with the page body and comments, prefer confluence_get_page_context.' This sets a clear condition for when to use the alternative, and the 'Primitive' tag implies use when only attachments are needed. No other tool is mentioned, but this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_childrenA

Primitive: list one direct level of page or folder children. Use it when exactly one immediate level is needed, or when the caller wants to drive cursor pagination itself. For recursive hierarchy exploration prefer confluence_get_content_tree; for a large or unknown hierarchy call it with output_mode=outline first and expand only the branches that matter.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitNo
cursorNo
max_charsNo
parent_idYes
parent_typeNopage

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It usefully explains that the tool is a primitive, non-recursive listing with caller-driven cursor pagination. However, it does not disclose return shape, ordering, truncation behavior, or whether auth or read-only semantics are relevant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with a clear front-loaded purpose, followed by usage guidance and alternatives. There is no filler, and every sentence contributes to selection or invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, zero schema descriptions, and no output schema, the description provides strong purpose and routing context but leaves significant invocation details uncovered. An agent still lacks documentation for key parameters such as sort and max_chars, and the response behavior is not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must add meaning. It clarifies parent_type by mentioning 'page or folder children' and explains cursor by saying the caller can drive cursor pagination. But sort, limit, and max_chars are left entirely to inference, and the description does not compensate fully for the missing schema guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Primitive: list one direct level of page or folder children', giving a specific verb, resource, and scope. It explicitly restricts the behavior to one level, which distinguishes it from recursive siblings like confluence_get_content_tree and confluence_list_descendants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states exactly when to use this tool: when one immediate level is needed or when the caller wants to drive cursor pagination. It also names alternatives and routing criteria, saying to prefer confluence_get_content_tree for recursive exploration and to start with an outline for large or unknown hierarchies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_commentsA

Primitive: list root footer or inline comments on a page. For one discussion and all bounded replies, prefer confluence_get_comment_thread; use this for a single page-level comment list.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitNo
cursorNo
statusNo
page_idYes
max_charsNo
body_formatNostorage
comment_typeNofooter
resolution_statusNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It communicates a read-only list operation and root-comment scope, but it does not disclose pagination/cursor behavior, sorting semantics, status filters, response shape, or content truncation despite parameters like limit, cursor, status, and max_chars existing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no waste. The core operation and scope are front-loaded, and the alternative routing takes the second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no annotations, and no output schema, this description is too thin. It explains intent but omits essential context about pagination, return content, filtering behavior, and output shape that an agent would need to invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description only mildly clarifies comment_type by saying 'root footer or inline comments' and page_id by saying 'single page-level comment list.' It does not explain sort, limit, cursor, status, max_chars, body_format, or resolution_status, leaving most parameters underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'list root footer or inline comments on a page.' It also names the sibling confluence_get_comment_thread and clarifies that this tool is for a single page-level comment list, so an agent can distinguish it from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit routing guidance: for one discussion with all bounded replies, prefer confluence_get_comment_thread; use this tool for a single page-level comment list. This directly answers when to use this tool versus the key alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_descendantsA

Primitive: list one paginated descendants response below a page or folder, in flat top-to-bottom order. Returns the API response as-is, including the "Versions of ..." containers Confluence uses for retained document versions; set include_version_history=false to drop those and everything under them from this page of results. Use it when a raw page of descendants or manual cursor control is needed. For a rendered hierarchy with pagination handled server-side, and with version history excluded by default, prefer confluence_get_content_tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
limitNo
cursorNo
max_charsNo
parent_idYes
parent_typeNopage
include_version_historyNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does so well. It discloses that the tool returns the API response as-is, includes Confluence's 'Versions of ...' containers, and explains the effect of include_version_history=false. It also clarifies flat ordering and single-page behavior, which are non-obvious behavioral traits an agent cannot infer from the schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core primitive behavior appears first, followed by the key version-history nuance, then the usage guidance and preferred alternative. Every sentence contributes useful information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema and no annotations, the description covers the most important behavioral and routing context: raw response, pagination, version history, and when to prefer a sibling. The main gap is that several parameters remain semantically undocumented, so the context is strong but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain include_version_history and cursor behavior, and it mentions 'page or folder' which maps to parent_type. However, it does not explain depth, limit, max_chars, or parent_id semantics, leaving several parameters dependent on the agent's inference from names and schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'list one paginated descendants response below a page or folder, in flat top-to-bottom order.' It also distinguishes the tool from the rendered-hierarchy alternative, confluence_get_content_tree, by calling itself a 'Primitive' and emphasizing raw API responses and manual cursor control.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'Use it when a raw page of descendants or manual cursor control is needed,' and the sibling to prefer instead is named with the reason: 'For a rendered hierarchy with pagination handled server-side... prefer confluence_get_content_tree.' This directly tells an agent when to choose this tool versus the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_pagesC

List Confluence pages with optional space, title, status, ID, and body format filters. Use cursor from the previous response for the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
sortNo
limitNo
titleNo
cursorNo
statusNo
max_charsNo
space_idsNo
body_formatNostorage

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden. It does disclose pagination behavior ('Use cursor from the previous response for the next page'), which is useful. It does not disclose return shape, whether body content is included, sort/limit semantics, or error behavior, but it is enough to convey the basic read/pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, with the core listing purpose and the pagination hint front-loaded. The wording is efficient, though the parameter names are paraphrased rather than exact, which slightly reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nine parameters, zero schema coverage, no annotations, and no output schema, this description is too thin. It does not clarify output format, default sort/limit behavior, body_format semantics, or relationship to the many sibling list/get tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for nine undocumented parameters. It maps only some of them (space→space_ids, title→title, status→status, ID→ids, body format→body_format), and not always precisely. It adds no meaning for sort, limit, max_chars, or cursor beyond the cursor usage hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('List Confluence pages') and mentions the main filtering dimensions. It is distinguishable from single-page getters like get_page and from search. However, it refers to 'space' and 'ID' while the schema uses 'space_ids' and 'ids', which introduces mild imprecision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a general listing use case and gives cursor instructions, but it never explains when to choose this over get_page, search, list_children, or list_descendants. With many sibling tools, explicit routing guidance would materially help, and none is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_spacesC

List Confluence spaces with optional key, type, status, and description format filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNo
sortNo
typeNo
limitNo
cursorNo
statusNo
max_charsNo
description_formatNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations to convey safety or behavioral traits, and the description does not disclose pagination behavior, result format, truncation due to max_chars, or any other operational details. The schema hints at cursor and limit, but the description fails to explain how the tool behaves beyond 'list spaces'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no filler words, making it concise and easy to parse. Key filter terms are front-loaded, but the sentence is so brief that it necessarily omits important context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and eight parameters with zero schema coverage, the description is insufficient. It does not cover pagination, response structure, parameter constraints, or edge cases, leaving the agent under-informed for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for explaining the parameters, but it only names four of eight params (keys, type, status, description_format) without detailing their meaning or valid values. Sort, limit, cursor, and max_chars are completely unexplained, leaving significant ambiguity for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Confluence spaces, which is a specific verb and resource. It also mentions the filter options (key, type, status, description format), helping to distinguish its listing purpose from tools like confluence_get_page or confluence_get_space. However, it does not explicitly differentiate itself from the sibling list tools such as confluence_list_pages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like confluence_get_space for retrieving a single space or confluence_search for broader queries. The description simply lists what it does, leaving usage decisions entirely to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_list_versionsB

List page version history with optional body representation and cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitNo
cursorNo
page_idYes
max_charsNo
body_formatNostorage

TDQS

B3.3/5.0
Behavior3/5

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 pagination and body representation, but does not specify default behavior, ordering, side effects (likely none, but not confirmed), or rate limits. The non-destructive nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence, front-loading the core purpose. It uses minimal words and covers the key optional features. No wasted or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 6 parameters, no output schema, and no annotations, the description is incomplete. It does not describe the response structure, available parameters' behavior, or specific usage scenarios. Adequate for a basic understanding, but a caller would need to inspect the schema or more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, meaning the description must compensate for understanding parameters. The description mentions body representation (body_format) and cursor pagination (cursor), but does not explain other parameters like sort, limit, page_id, or max_chars. Only a few parameters are given meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists page version history. It mentions optional body representation and cursor pagination, but does not explicitly differentiate from related siblings like confluence_get_page_version or confluence_get_content_history, though the plural 'versions' implies a listing function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides the context of listing version history, but does not explicitly state when to use this tool versus alternatives such as confluence_get_page_version for a single version. There is no mention of when not to use it or references 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_raw_requestA

Call an allowlisted Confluence REST API path for an operation not covered by a named tool. Path must be under /wiki/api/v2/ or /wiki/rest/api/. GET is enabled by default; non-GET requires CONFLUENCE_ALLOW_RAW_WRITE=true and confirm=true, and DELETE also requires destructive opt-in.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYes
queryNo
methodYes
confirmNo
max_charsNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden. It discloses that GET is default, non-GET requires additional env flags and confirm=true, and DELETE needs destructive opt-in. This is good behavioral transparency for a raw request tool, but it doesn't mention rate limiting, response format, or error handling (e.g., 404s), which could matter for an agent invoking raw paths. Still, the key safety and opt-in constraints are clearly disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, tightly packed with essential information. The first sentence establishes purpose and scope, the second details method constraints. Every sentence earns its place, though the mention of DELETE opt-in could be integrated more smoothly, but it remains concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 params, variable methods, env-dependent behavior) and missing annotations/output schema, the description provides substantial necessary context: path restrictions, method constraints, and opt-in requirements. It lacks some details like response format or fail modes, but for a raw API tool, the core protocol is well-covered. It's likely complete enough for a competent agent to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It covers the critical parameters: method (GET default, non-GET restrictions), path (must be under specific prefixes), confirm (true for non-GET), and destructive opt-in for DELETE. It doesn't explicitly explain query, body, max_chars, but these are clear from their names and the schema, and the description's focus on the most safety-critical parameters adds significant value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a raw API caller for allowlisted Confluence paths, with specific path prefixes. It differentiates itself from named siblings by saying it is for operations not covered by a named tool, which gives clear purpose and distinguishes it from the many more specific tools it sits alongside.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when no named tool covers the operation, use this. It also provides critical conditions for non-GET methods (CONFLUENCE_ALLOW_RAW_WRITE=true, confirm=true, destructive opt-in for DELETE). However, it doesn't explicitly name an alternative or say when NOT to use it (e.g., when a named tool exists), though that's strongly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_search_and_fetchA

HIGH-LEVEL: Find pages and read their bodies in one MCP call. Prefer this over confluence_search followed by confluence_get_page per result. Pass a plain query with search_mode instead of writing CQL: auto (default) tries exact title, then title prefix, then full text and stops at the first mode that matches, which keeps identifiers such as codes or part numbers from being diluted by full-text tokenization; exact_title, title_prefix and full_text pin one strategy; cql is the escape hatch for a hand-written query. strategy.cqlUsed reports what actually ran. Non-page or failed fetches come back as partial results.

ParametersJSON Schema
NameRequiredDescriptionDefault
cqlNo
queryNo
startNo
fetch_topNo
max_charsNo
body_formatNostorage
search_modeNoauto
search_limitNo
fetch_concurrencyNo
max_chars_per_pageNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the auto-mode stop-at-first-match behavior, partial results for non-pages or failed fetches, and the strategy.cqlUsed reporting field. It doesn't cover permissions, rate limits, or exact return shape, so it is not a 5, but it is unusually transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: high-level purpose, sibling differentiation, search mode semantics, tokenization rationale, and failure behavior. It is front-loaded with the most important routing information and has no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no annotations and no output schema, this description covers the critical decision-making context: when to use the tool, how search modes behave, and what happens on partial failure. Gaps remain in documenting several parameters and the exact return envelope, but an agent can confidently invoke the main workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does explain query vs cql and the search_mode enum in depth, which is the most complex parameter. However, it never clarifies body_format, start, fetch_top, max_chars, max_chars_per_page, or fetch_concurrency beyond what their names or defaults imply, leaving several parameters under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific verb+resource statement: 'Find pages and read their bodies in one MCP call.' It also explicitly distinguishes this tool from the sibling workflow 'confluence_search followed by confluence_get_page per result,' making its unique value obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Prefer this over confluence_search followed by confluence_get_page per result,' and then gives detailed routing guidance: when to use auto vs pinned search modes vs cql, including the rationale for preserving identifiers. This is unambiguous selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_update_commentA

Update a footer comment body. Use confluence_get_comment first if you need to inspect its current version.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
max_charsNo
comment_idYes
representationNostorage

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral context, but it only states the mutation and hints at version inspection. It doesn't mention required permissions, whether the update overwrites the entire body, failure modes for missing comments, or any versioning side effects. This is a minimal disclosure for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The primary action is front-loaded, and the secondary sentence adds a useful prerequisite hint without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and zero parameter descriptions, the description is too sparse for an agent to reliably make an informed call. It omits optional parameter semantics, expected return values, and behavioral caveats, so it is not fully complete for a mutation tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate by explaining parameters, but it only implies 'body' and 'comment_id'. It does not clarify the meaning or usage of 'max_chars' or 'representation', leaving gaps that the schema alone cannot fill.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Update') and a specific resource ('a footer comment body'), making it clear what the tool does. It also implicitly distinguishes itself from the sibling 'confluence_update_inline_comment' by targeting footer comments specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to use 'confluence_get_comment' first if the current version needs inspection, which is a useful alternative. However, it doesn't fully discuss when to use this tool over 'confluence_update_inline_comment' or other update variants, though the 'footer comment' scoping makes that largely inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_update_inline_commentC

Update or resolve an inline comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
resolvedNo
max_charsNo
comment_idYes
representationNostorage

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only says 'update or resolve' without explaining side effects, reversibility, permissions, or what 'resolve' actually changes. The agent has no idea of the impact of calling this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, but it is under-specified rather than concise. It omits essential information and provides little more than a restatement of the tool name, so the brevity is not a virtue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, 0% schema coverage, no annotations, and no output schema, the description must carry the full burden of context. It fails to explain the difference between updating and resolving, the meaning of representation values, or the max_chars constraint, leaving the agent dangerously uninformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description mentions none of the five parameters (body, resolved, max_chars, comment_id, representation). The agent cannot infer the meaning or required format of any parameter, making correct invocation impossible without external documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Update or resolve') and a specific resource ('inline comment'), which is more informative than just the tool name. However, it does not differentiate from sibling tools like confluence_update_comment or explain what 'resolve' means, so it falls short of full clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as confluence_update_comment or confluence_create_inline_comment. There is no context for choosing between update and resolve, nor any mention of prerequisites or typical scenarios.

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 a page body and title using an explicit current version number. Read the page first when unsure; Confluence requires optimistic versioning.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
titleYes
statusNocurrent
page_idYes
space_idNo
max_charsNo
parent_idNo
minor_editNo
representationNostorage
version_numberYes
version_messageNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits itself, and it does by warning about Confluence's optimistic versioning and advising a pre-read. It could also mention failure modes on version conflict or that unspecified optional fields are not updated, but the core concurrency behavior is clearly surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler; the primary operation is stated first and the critical concurrency warning follows immediately. Every clause adds information the agent needs before calling the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main success path and the essential optimistic-versioning constraint, and points the agent to a read-before-update strategy. However, for a mutation tool with 11 parameters, no annotations, and no output schema, it omits guidance on optional fields, representation formats, draft/current status, and conflict behavior, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are 11 parameters; the description only clarifies version_number ('explicit current version') and identifies body/title as the main update targets. Optional parameters such as representation, status, parent_id, and max_chars receive no semantic guidance, leaving the agent to infer their meaning from names and schema constraints alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Update a page body and title'), a distinct resource, and a required precondition (explicit current version number). This clearly differentiates it from the sibling tool confluence_update_page_title, which handles title-only updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an actionable guideline: read the page first when unsure, because Confluence uses optimistic versioning. It does not enumerate exact conditions for choosing this over update_page_title or create_page, but the body-and-title scope and version requirement are sufficient context for most routing decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_update_page_titleC

Update only a page title using the v2 title endpoint and explicit version number.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
page_idYes
max_charsNo
minor_editNo
version_numberYes
version_messageNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions the endpoint and version number, but does not disclose the mutation side effects, failure modes, or consequences of providing an incorrect version number. It also omits any mention of how the title change affects the page or whether it is reversible. This is insufficient for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. The core purpose is front-loaded, and the technical details (endpoint, version number) are secondary. It is efficient, though its brevity contributes to the lack of substantive content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain parameter semantics, return values, prerequisites, versioning requirements, or how the title update interacts with the page. An agent would be unable to construct a correct call without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no explanations for properties. The description does not compensate: it does not mention any parameter names, purposes, or relationships. The presence of parameters like max_chars, minor_edit, and version_message is entirely unexplained, leaving an agent unable to determine correct values or meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Update only a page title') with a clear resource and scope. 'Only' differentiates it from the broader confluence_update_page tool, and the mention of the v2 title endpoint and explicit version number adds technical precision. It is not a tautology and clearly identifies the tool's unique function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for title-only updates but does not explicitly state when to use it versus alternatives like confluence_update_page. It lacks any context on prerequisites, exclusions, or conditions under which the tool should or should not be chosen. The scope is implied, not explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confluence_upload_attachmentA

Upload a local file to a page using REST API v1. Disabled unless CONFLUENCE_ALLOW_LOCAL_FILE_UPLOAD=true and confirm=true; the file path is read by this local process.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNo
confirmYes
page_idYes
file_pathYes
max_charsNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden, and it uses that space well: it discloses the environment-variable gate, the mandatory confirm flag, and the significant fact that 'the file path is read by this local process' — a security-relevant behavior an agent cannot infer from the schema. It omits result/error behavior, but the critical behavioral traits of this gated mutation are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: the action is front-loaded and the second sentence packs three high-value caveats. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete about the gating and local-file behavior, but with no output schema and no parameter documentation, an agent must guess at the meaning of comment and max_chars and at what the call returns. Adequate for a 5-parameter gated mutation, but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only tacitly touches confirm and file_path. page_id (the attachment target), comment, and the oddly constrained max_chars (1000–50000) are left completely unexplained, so an agent cannot know what max_chars controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States an unambiguous verb+resource pair: 'Upload a local file to a page.' The 'REST API v1' detail anchors it to a concrete implementation, and no sibling tool performs uploads, so differentiation from the read-oriented attachment tools (list_attachments, get_attachment) is inherent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys availability preconditions ('Disabled unless CONFLUENCE_ALLOW_LOCAL_FILE_UPLOAD=true and confirm=true'), which tells an agent when the tool can fire, but it never states when to prefer this over an alternative or what to do when disabled. Usage context is implied rather than explicit.

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.

  1. 6 tool updatesv0.4.0
    • Addedconfluence_get_comment_thread
    • Addedconfluence_get_content_tree
    • Addedconfluence_get_page_context
    • Addedconfluence_get_space_overview
    • Changedconfluence_list_descendants1 field changed
      • addedInput schema / properties / include_version_history
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
    • Addedconfluence_search_and_fetch
  2. 28 tool updatesv0.1.0
    • First observedconfluence_create_comment
    • First observedconfluence_create_folder
    • First observedconfluence_create_inline_comment
    • First observedconfluence_create_page
    • First observedconfluence_delete_page
    • First observedconfluence_get_ancestors
    • First observedconfluence_get_attachment
    • First observedconfluence_get_comment
    • First observedconfluence_get_content
    • First observedconfluence_get_content_history
    • First observedconfluence_get_folder
    • First observedconfluence_get_page
    • First observedconfluence_get_page_version
    • First observedconfluence_get_space
    • First observedconfluence_list_attachments
    • First observedconfluence_list_children
    • First observedconfluence_list_comments
    • First observedconfluence_list_descendants
    • First observedconfluence_list_pages
    • First observedconfluence_list_spaces
    • First observedconfluence_list_versions
    • First observedconfluence_raw_request
    • First observedconfluence_search
    • First observedconfluence_update_comment
    • First observedconfluence_update_inline_comment
    • First observedconfluence_update_page
    • First observedconfluence_update_page_title
    • First observedconfluence_upload_attachment

TDQS

B3.3/5.0

Scored across 33 tools

Disambiguation5/5

All 33 tools have clearly defined, non-overlapping purposes. High-level composite tools (e.g., confluence_get_content_tree, confluence_search_and_fetch) are explicitly distinguished from the primitives they wrap (e.g., confluence_list_children, confluence_search), with guidance on when to prefer each. No two tools appear to do the same thing.

Naming Consistency5/5

Every tool follows the same `confluence_` prefix plus a verb_noun convention (e.g., list_pages, get_page, create_page, update_page, delete_page, upload_attachment). Even composite tools like get_content_tree and get_space_overview fit the pattern with descriptive nouns. No mixed camelCase or inconsistent verbs observed.

Tool Count2/5

With 33 tools, this server exceeds the 25+ threshold that signals an overly heavy tool surface. While each tool is individually useful, the large number increases the risk of agent confusion and selection fatigue. A few composite tools absorb some redundancy, but the overall count is still high for a typical MCP server.

Completeness4/5

The tool surface covers core Confluence operations thoroughly: page and comment CRUD, folder management, attachments, version history, search, and content tree traversal. Minor gaps exist (e.g., no explicit move/copy page, no label management), but the raw_request escape hatch mitigates these, so the set is nearly complete for common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers