A multi-MCP server orchestration platform that combines MySQL database queries, documentation search, and workspace management via Claude Code CLI with FastAPI backend
This MCP server has 3 tools with mixed quality. Tool naming follows verb conventions (mysql_query, search_documentation, regenerate_embeddings), but descriptions are adequate without being optimized for LLM selection. Schemas are present for all tools with proper JSON Schema format and required fields declared, but parameter descriptions are sparse and lack actionable guidance. Error handling is absent, no recovery guidance or classification. The server does not implement tool annotations (readOnlyHint/destructiveHint) despite having tools with clear read vs write semantics. Output schemas are undocumented. This is a functional but incomplete implementation typical of community servers.
Execute SELECT, EXPLAIN, DESCRIBE or SHOW queries on the database
Regenerate embeddings for all or specific documentation categories
Search through documentation using semantic similarity with embedding-based retrieval across services, database schemas, and queries categories
No tool annotations (readOnlyHint/destructiveHint). mysql_query is READ_ONLY but lacks readOnlyHint=true; regenerate_embeddings is WRITE but lacks destructiveHint=true. LLMs cannot distinguish safe from dangerous tools without explicit hints.
Output schemas not documented. LLMs have no visibility into what mysql_query returns (rows? error messages? metadata?), what search_documentation yields (relevance scores? source URIs?), or what regenerate_embeddings produces. Forces LLMs to guess downstream field names.
No error handling guidance. Tools provide no recovery hints (e.g., 'If query fails with syntax error, validate SQL' or 'If embeddings regeneration times out, try a single category'). Raw errors are not actionable for LLMs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Parameter descriptions lack constraints and actionable guidance. search_documentation's 'limit' param has no min/max bounds (LLM could pass limit=10000). 'category' enum is present but not explained in description text, LLMs should see 'Choose services, schema, queries, or all' inline.
regenerate_embeddings description (50 chars) is vague: 'Regenerate embeddings for all or specific documentation categories.' Does not explain side effects (irreversible? duration? what triggers regeneration?). Must state: 'WARNING: This is a destructive write operation. Regenerates semantic search embeddings across the specified categories. May take several minutes. Cannot be undone.'
mysql_query accepts free-form SQL with no input validation or injection guards. No mention of rate limits, query timeout, or result row caps. Could allow LLM-triggered expensive queries (SELECT * FROM huge_table; Cartesian joins). Must add: 'Queries limited to SELECT/EXPLAIN/DESCRIBE/SHOW; no DML. Max 10000 rows returned. 30-second timeout.'