MCP server for Confluence API operations
Server has 9 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, mostly under the 50-200 char LLM-optimized range), and input schemas are present with type definitions. However, output schemas are completely undocumented, LLMs cannot plan downstream calls or extract return data. Parameter descriptions are minimal (e.g., 'The ID of the page to retrieve' for pageId). No error handling guidance, no recovery paths, and no distinction between retryable vs. fatal errors. Tool naming follows verb_noun convention (getPage, createPage, deletePage) but lacks clarity on when to use similar tools (getPage vs. getPages). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Composition is reasonable, tools are single-purpose, but missing pagination details and chaining IDs in responses.
Get examples and information about Confluence storage format
Create a new Confluence page
Delete a Confluence page
Retrieve a Confluence page by ID
List pages in a Confluence space
Retrieve a Confluence space by ID
List all Confluence spaces
Output schemas completely undocumented. LLMs cannot determine what fields are returned, preventing downstream tool chaining and forcing wasteful discovery calls.
No error handling guidance. Errors return raw API responses without recovery hints. LLMs cannot distinguish retryable (rate limit) from fatal (auth) errors.
Tool descriptions are too brief (30-50 chars). Lack context on WHEN to use each tool vs. similar ones (getPage vs. getPages, getSpace vs. getSpaces). LLMs cannot disambiguate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Search Confluence content using CQL
Update an existing Confluence page
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk levels are declared in metadata but not exposed to LLM via tool schema, limiting agent safety.
Pagination parameters (limit, start) present but no documentation of total count, next_cursor, or result limits. LLMs cannot determine if results are complete or plan multi-page fetches.