An MCP server (stdio transport) exposing read-only ClickHouse querying and cross-table log correlation tools.
Two tools with clear, domain-specific descriptions (194 - 250 chars, within baseline 34 - 392). Both are read-only and well-scoped. However, input schemas are MISSING from the visible code, only parameter names and types are inferred from the description text. No explicit JSON Schema definitions are shown in internal/tools/tools.go. Parameter descriptions exist in the tool descriptions but not in a structured schema. Output schemas are undocumented. Error handling and recovery guidance are absent. Naming is verb-forward (clickhouse_query, correlate_logs) and appropriate for the domain.
Execute a read-only SQL query (SELECT, SHOW, DESCRIBE, EXPLAIN) against ClickHouse and return the rows as JSON. Queries run with readonly=1 and a server-side row limit.
Fetch log entries for one session_id across the configured log tables within a time window around a pivot time, merged and sorted by timestamp. Use it to reconstruct what happened to a session across services.
Input schemas are not visible in source code. Tools are registered with mcp.Tool{Name, Description} only; no InputSchema field is populated. Per HARD SCORING RULE, schema score must be 0 for both tools.
Output schemas are completely undocumented. LLMs cannot plan downstream calls or extract fields without knowing the structure of QueryResult or correlated log entries.
No error handling or recovery guidance. If a query fails, times out, or returns no rows, the LLM has no actionable next step. Descriptions lack 'When to use' and 'What to do if' guidance.
clickhouse_query parameter 'query' lacks format/constraint documentation. No mention of allowed SQL keywords, injection safeguards, or what happens if readonly=1 is violated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
correlate_logs 'around' and 'window' parameters use Go duration syntax (5m, 1h) in descriptions but no validation or error message is documented if the LLM passes invalid format.