MCP Server for StarRocks database intelligent diagnostics and performance analysis
Only one tool is defined (analyze_failed_load_job). The tool has a reasonable description (90 chars, within baseline 34-392), and three parameters with type annotations and descriptions. However, no output/return schema is documented anywhere in the visible code. The tool appears to be registered but without explicit schema validation or structured output documentation. The tool name uses verb_noun pattern correctly ('analyze_failed_load_job'). Parameter descriptions are present but minimal (15-40 chars each). Critical gaps: no documented output schema, no error handling guidance, no recovery patterns. The server exposes SSH credentials as tool parameters (ssh_user, ssh_key_path), which violates secret-injection patterns, these should be injected server-side from environment. This is a significant security issue.
Analyze failed load job by collecting logs from all nodes and executing diagnostic queries
Credentials exposed as tool parameters: ssh_user and ssh_key_path are passed as parameters. SSH credentials must never be exposed in tool parameters, they will be logged in traces and prompt history. Use server-side secret injection via environment variables.
No output/return schema documented. The tool's response structure is completely undocumented. LLMs cannot know what fields to expect or how to chain this tool's output to other tools. Document the return type as a structured object with typed fields (e.g., status, logs, diagnostics, affected_nodes).
No error handling guidance. The tool description does not explain what happens on failure, what errors are retryable, or how to recover (e.g., 'If SSH connection fails, check ssh_user and firewall rules'). Error responses should guide the LLM's next step.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 33 | - | v1 |
Parameter descriptions are minimal (15-40 chars). 'Load job label or ID to analyze' lacks context on format (is it a numeric ID, string label, or either?). 'SSH username for accessing nodes' and 'Path to SSH private key file' are bare descriptions without format constraints or examples.
Tool description does not indicate whether this tool modifies state or is safe to retry. Is it read-only? (The 'Risk: READ_ONLY' label suggests it is, but the description does not state this explicitly.) For agent planning, LLMs need to know idempotency and side effects.