A Model Context Protocol server for ClickHouse that enables querying and managing ClickHouse databases
ClickHouse MCP has 5 tools with basic naming and descriptions, but significant gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (list_*, run_*), which is good. However, descriptions are minimal (10-50 chars), parameter descriptions are sparse or missing, and output schemas are not documented. The server lacks error handling guidance, input validation documentation, and security considerations around SQL injection. No tool annotations (readOnlyHint/destructiveHint) despite clear risk differentiation between read and write operations.
List all databases in ClickHouse
List all tables in a ClickHouse database
Test connectivity to ClickHouse server
Execute a SELECT query against ClickHouse
Execute a non-SELECT SQL statement against ClickHouse
Output schemas not documented. Tools return results but LLMs cannot infer field structure, forcing guesswork on downstream tool chaining.
Parameter descriptions missing or minimal. 'database' in list_tables has a description, but run_query and run_statement lack guidance on SQL format, constraints, or error recovery.
No error handling guidance. Tools do not document what errors are retryable, what user-fixable errors look like, or how to recover from SQL syntax errors or permission denials.
SQL injection risk not addressed. run_query and run_statement accept free-form SQL strings with no documented sanitization, validation, or guidance on safe parameterization.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
Tool annotations missing. run_statement is destructive (WRITE risk) but lacks destructiveHint annotation; read-only tools lack readOnlyHint. Agents cannot infer safety properties.