Enterprise MCP framework for building production AI tools with SQL/Python, featuring security, audit trails, and policy enforcement
MXCP provides 11 tools across Confluence, Jira, and internal utilities. While all tools have descriptions and most have structured input schemas, there are significant quality gaps: (1) descriptions lack LLM-optimization depth and context on when to use each tool vs alternatives; (2) several parameter descriptions are minimal or missing constraint details; (3) no visible output schemas or return type documentation; (4) error handling and recovery guidance is not evident in tool definitions; (5) no tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY; (6) composition issues, e.g., search_pages and cql_query both search but differ in interface, risking LLM confusion. The server demonstrates basic structure but falls short of production-grade tool definition quality expected in pattern:tool and pattern:tool-description.
Execute a CQL query against Confluence.
Show metadata about a page (title, author, updated, labels, etc).
List direct children of a page.
Get detailed information for a specific JIRA issue by its key.
Fetch page content (storage format or rendered HTML).
Get a specific user by their unique account ID.
Show the request headers.
No output schemas documented for any tool. LLMs cannot plan downstream calls or structure extraction without knowing return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Modern clients rely on these to optimize caching and retry logic.
search_pages and cql_query both search Confluence, but with different parameter interfaces (query + limit vs query + space_key + max_results). LLM cannot easily distinguish when to use which.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Execute a JQL query against Jira.
Return all accessible spaces (by key and name).
Exercise the runtime MCP logging/progress proxy.
Search pages by keyword.
Parameter descriptions lack constraint details. E.g., max_results and limit lack min/max bounds; no guidance on query syntax for cql_query or jql_query.
Tool descriptions lack LLM-optimization depth. Many are under 100 chars and lack context on WHEN to call the tool, prerequisites, or relationship to similar tools.
No error handling or recovery guidance visible in tool definitions. LLM cannot self-correct on failures without explicit error message templates.
list_spaces has no input parameters but returns a list. No pagination guidance (limit, offset, cursor) documented, risking context window overflow if many spaces exist.