Read-only ClickHouse Model Context Protocol server
ClickHouse MCP server has 4 well-named, read-only tools with clear descriptions and basic input schemas. All tools follow verb_noun naming (clickhouse_list_*, clickhouse_describe_*, clickhouse_query). Descriptions are concise (30-80 chars) and explain purpose. Input schemas present with type definitions and descriptions for all parameters. However, output schemas are not documented, LLMs cannot predict result structure. Error handling is absent from descriptions. No pagination guidance for potentially large result sets. Parameter descriptions lack format/constraint details (e.g., max_rows minimum=1 is in schema but not description text). Missing idempotency hints and recovery guidance.
Return column names, types, defaults, and comments for one table.
List databases visible to the configured ClickHouse user.
List tables in a database. Uses the configured database when omitted.
Run one read-only SQL statement. Results are returned as JSON text and are limited to max_rows.
Output schemas not documented. LLMs cannot predict result structure (column names, types, pagination fields). Forces agents to guess or fail on unexpected formats.
No pagination or result-limiting guidance in tool descriptions. clickhouse_query accepts max_rows but description does not explain default (1000) or when to paginate. Large result sets risk context window exhaustion.
Error handling absent. No guidance on recovery (e.g., 'If query fails, check syntax with clickhouse_describe_table'). Descriptions do not mention what errors are possible or how to handle them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'max_rows' has minimum=1 in schema but description does not state this. 'query' parameter does not explain 'read-only' enforcement mechanism or what happens if write SQL is attempted.
No idempotency or side-effect documentation. All tools are read-only, but descriptions do not explicitly state this, leaving LLMs uncertain whether retries are safe.