MCP server for synchronizing Confluence pages with local files, supporting download, upload, merge, and comparison operations
Server has well-structured tool definitions with complete input schemas and descriptions for all 8 tools. Naming follows verb_noun convention (download_*, upload_*, compare, ping, get_page_content). Descriptions are detailed and explain state-modifying behavior. However, parameter descriptions lack constraint details (ranges, formats, enums), output schemas are not formally documented, and error handling guidance is minimal. Tool composition is sound, each tool has a single responsibility. The McpToolResult envelope pattern is good, but LLMs cannot see the output structure from the tool definition alone.
Compare a Confluence page tree with local files, reporting conflicts, additions, deletions, and changes.
Download only server-side changes, preserving local edits (smart merge). Conflicts are reported, not overwritten.
Force-download Confluence pages to local files, overwriting any local changes. Returns SyncReport in 'report' when 'report'=true.
Retrieve the storage format content of a Confluence page by ID or title.
Verify Confluence connectivity and authentication. Returns server info, authenticated user, and sandbox configuration.
Create new Confluence pages from a local folder tree. Blocked when the server runs with --read-only.
Output schemas not documented. Tool descriptions do not specify what fields McpToolResult envelope contains or what SyncReport/CompareReport structures look like. LLMs cannot plan downstream operations without knowing response shape.
Parameter descriptions lack constraint details. 'outputDir' and 'sourceDir' mention path resolution but do not specify format, length limits, or character restrictions. 'recursive' and 'dryRun' lack context on when to use them. Descriptions should include ranges, enums, and format hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
Upload local changes to Confluence while preserving server-side edits (smart merge). Conflicts are reported.
Force-upload a local page folder to Confluence, overwriting any server-side changes. Blocked when the server runs with --read-only.
Error handling lacks recovery guidance. ToolExceptionFilter catches exceptions and returns error envelopes, but descriptions do not tell LLMs what to do next (retry, ask user, abort). Error messages should be actionable.
Mutually exclusive parameters (pageId vs pageTitle, sourceDir with pageId/pageTitle) are documented in descriptions but not enforced at schema level. JSON Schema should use oneOf or explicit constraints to prevent invalid combinations.
confluence_ping description is vague ('Verify Confluence connectivity and authentication'). Does not explain what fields are returned or when to call it. Should state: 'Returns server version, authenticated user, and sandbox config. Call this first to validate credentials.'