A VSCode/Cursor extension providing an MCP Server for Confluence Wiki integration
Single tool with minimal schema validation and generic description. Tool is explicitly registered with name and description, but schema is bare-minimum (single string parameter with no format/pattern constraints, no output schema documented). Error handling provides some guidance but lacks structured recovery paths. No parameter validation beyond type checking visible in implementation. Token usage not optimized (raw markdown returned without field stripping). This is a typical community MCP server, functional but not production-grade.
Get Content of Confluence Wiki Page by URL
Tool description lacks WHEN to use it and dependencies. 'Get Content of Confluence Wiki Page by URL' does not explain that the URL must contain a 'pageId' query parameter, or that Confluence must be configured first.
URL parameter has no format constraint or example. Schema accepts any string; LLMs may pass bare Confluence domain URLs without pageId, causing predictable failures (caught at runtime with a generic error).
Output schema not documented. Tool returns {content: [{type: 'text', text: string}]} but this structure is implicit in the code, not in the tool registration. LLMs cannot plan downstream operations or know what fields to extract.
Raw Markdown returned without filtering API metadata. Confluence HTML contains class attributes, metadata divs, and structural artifacts converted directly to Markdown. The turndown service removes some (confluenceMetadata, confluence-information-macro) but many others pass through, increasing token count and risking confusion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
Error message 'Failed to retrieve page content' is vague when content.body.view is missing. Does this mean the page exists but has no content, or the API call failed? LLM cannot distinguish and may retry identically.
Credentials (host, username, password) stored in ExtensionConfig and passed to ConfluenceClient constructor. While not exposed as tool parameters, the config is injected at server initialization and could leak if logs or error traces include constructor arguments.
No pagination or result size limits visible. If a Confluence page has massive content, the entire HTML/Markdown is returned, risking context window overflow. No mention of max size in tool description.