MCP server for executing SQL queries and managing ClickHouse databases
Three tools with basic definitions but significant quality gaps. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas are present but minimal: run_clickhouse_query has one string param with description; list_tables has empty input; describe_table has one string param. No output schemas documented. Error handling returns plain strings with emoji prefixes, not structured recovery guidance. No parameter validation, enums, or constraints. The run_clickhouse_query tool accepts raw SQL, creating SQL injection risk without sanitization. Tools lack idempotency hints and permission declarations.
Describe the schema of a ClickHouse table.
List all tables in the current ClickHouse database.
Execute a raw SQL query against ClickHouse and return the result.
SQL injection vulnerability: run_clickhouse_query accepts raw SQL strings without sanitization or parameterized queries. LLMs can be tricked into passing malicious payloads.
No output schemas documented. LLMs cannot predict response structure, making downstream tool chaining impossible and forcing unstructured text parsing.
Descriptions are too short (10-50 chars vs 50-200 char baseline). 'List all tables in the current ClickHouse database' lacks context on when to call this vs describe_table, and does not explain the output format.
Error handling returns unstructured strings with emoji prefixes. No recovery guidance, error classification, or actionable next steps for LLMs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No input validation or constraints. run_clickhouse_query accepts any string; no length limits, timeout guards, or rate limiting to prevent runaway queries.