Context-efficient MCP server for Confluence Cloud — trims API responses and offloads large bodies to disk so agents don't burn their context window on Confluence noise.
Ultra-Confluence-MCP has 46 tools spanning Confluence, file system, git, GitHub, and testing operations. (2) Descriptions are present but uniformly terse (10-40 chars), falling below the 50-200 char production baseline and often failing to explain WHEN to use a tool vs. similar ones. (3) File/git/GitHub tools (27-46) have better schemas (visible Zod definitions with descriptions) but descriptions remain generic. (4) No visible error handling guidance, tools return plain success/error objects without recovery hints. (5) Security concerns: writeFile, createBranch, commit, push, runLint (fix mode), installDependencies all modify state but lack dry-run or confirmation patterns. (6) Composition: 46 tools mixing Confluence, filesystem, git, and GitHub creates a sprawling, unfocused API. Averaging across all tools yields ~48.
26 of 46 Confluence tools have no visible input schemas in provided source code. This collapses per-tool scores to 33 on average for Confluence operations.
CRITICAL: Add JSON Schema definitions (via Zod or explicit schema objects) to all 26 Confluence tools. Ensure each parameter (page_id, space_key, body, etc.) has type (string, number, enum) and description. Reference the confluence_get_server_info schema as template.
CRITICAL: Expand all Confluence tool descriptions from ~15-40 chars to 80-150 chars. Answer WHAT, WHEN (vs. similar tools), and what data is returned. Example: 'Get a page's full content and metadata by page ID. Use this to read the latest page body; for version history, call confluence_get_page_versions() instead. Returns page ID, title, space, version, and body (in storage/view/export format).'
CRITICAL: Add toolAnnotations (destructiveHint: true) to all delete_* and write operations. Implement a two-step confirmation pattern: first call returns {requiresConfirmation: true, summary: "..."}, agent must call confirmOperation(operationId) to proceed.
HIGH: Restructure into focused domains: (1) ConfluenceMCP (26 Confluence tools only), (2) DevOpsMCP (file/git/GitHub/test tools). Each server has a single purpose, clearer schemas, and less agent confusion.
HIGH: Document pagination and result limits for all list operations. Add limit, offset, and total_count to getIssues, confluence_list_spaces, confluence_search. Cap defaults at 20-50 items and explain why in description.
All 26 Confluence tool descriptions are under 20 characters (e.g., 'Get details of a specific Confluence page by ID' is ~40 chars but lacks WHEN to call it vs. confluence_get_page_body). These descriptions fail to disambiguate similar tools.
No visible error handling guidance in any tool. Responses return plain {success, error} objects without categorization (retryable vs. fatal) or recovery hints. LLM cannot determine next action on failure.
46-tool sprawl spanning Confluence, filesystem, git, and GitHub. No single clear domain focus. Agents must reason across incompatible contexts (Confluence page IDs vs. git commit hashes vs. GitHub PR numbers). Violates single-responsibility principle.
File/git/GitHub tools reference parameters like 'branch', 'file', 'filePath' inconsistently. No enum constraints visible for state parameters (e.g., issue state = 'open|closed|all' is constrained, but commit/PR body are free-text). LLM can pass invalid values.
No visible pagination or result limits documented for confluence_list_spaces, confluence_search, getIssues, or other list operations. LLM can request/receive unbounded results, exhausting context window.
createReview tool has complex nested schema (inline comments with path, line, body) but no example or guidance on line number format (diff line vs. absolute line). LLM may pass invalid line refs.
createReview
MEDIUM: Standardize parameter naming across file/git tools. Choose either filePath or file_path consistently; either branch or branch_name. Add type hints (string path, string branch name, number line number).
MEDIUM: Add enum constraints for issue state (open|closed|all) and review event (APPROVE|REQUEST_CHANGES|COMMENT), already present in schema but missing from descriptions. Help LLM understand valid options without guessing.
MEDIUM: For readFile/writeFile, add explicit safe-path validation hints: 'Path must be relative to working directory; absolute paths and .. escapes are rejected.' This prevents injection attempts.
LOW: Add idempotentHint annotation to read-only tools (getIssue, confluence_get_page, etc.) so LLM knows it's safe to retry without side effects.
LOW: For git/GitHub workflows (commit → push → createPullRequest → createReview), document the expected call chain in each tool description. Help agents compose multi-step operations without backtracking.