In-depth architectural comparison of the ClickHouse and MCP Clickhouse MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
ClickHouse
Databases · Local stdio
Quality: 53/100 (Good) | Auth: other
MCP Clickhouse
Databases · Local stdio
Quality: 65/100 (Great) | Auth: API Key required
Verdict Summary: Choose ClickHouse if you need specialized Databases tools running via a local process. Choose MCP Clickhouse if your workspace requires Databases integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose ClickHouse when:
You need dedicated capabilities in the Databases domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: other (Free / Open Source).
You have access to required keys: MCP_CLICKHOUSE_DSN.
You need dedicated capabilities in the Databases domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: CLICKHOUSE_ALLOW_WRITE_ACCESS, CLICKHOUSE_MCP_AUTH_TOKEN, CLICKHOUSE_MCP_AUTH_DISABLED, FASTMCP_SERVER_AUTH, FASTMCP_SERVER_AUTH_AZURE_TENANT_ID, FASTMCP_SERVER_AUTH_AZURE_CLIENT_ID, FASTMCP_SERVER_AUTH_AZURE_CLIENT_SECRET.
List configured profiles. Each entry includes name and optional description.
get_cluster_properties
Get cluster properties and execution limits. Returns ClickHouse server version plus enforced limits (max rows, timeouts) for the profile.
run_query
Execute read-only SELECT or WITH … SELECT. One statement; DML, DDL, SET, SYSTEM, and similar are rejected. Returns `{data, row_count}` where `data` is an RFC 4180 CSV string. Pass `snapshot=true` to persist the result to disk and receive `{snapshot_uri, row_count}` instead; fetch the CSV via the sn…
run_show
Execute SHOW introspection statement. One statement per call; INTO OUTFILE rejected. Interactive row limits apply (default 500, hard ceiling 1 000). Same timeout as run_query.
analyze_query
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
ClickHouse is categorized under Databases and uses a local stdio subprocess. In contrast, MCP Clickhouse belongs to Databases using local stdio subprocess. Select ClickHouse when you need capabilities focused on databases and MCP Clickhouse when you require tools for databases.
Explain read-only SELECT or WITH … SELECT. Returns plan, pipeline, and/or syntax text. Default types plan and pipeline. Uses query timeout and optional database; no max-rows cap unlike run_query.
list_databases
List databases. Rows from system.databases visible to the connection.
list_tables
List tables and views in a database. Rows from system.tables: name, engine, primary_key, sorting_key, partition_key, total_rows, total_bytes for query planning.
list_columns
List columns for a table or view. Rows from system.columns for the resolved database and table.
MCP Clickhouse Tools (3)
list_databases
List available ClickHouse databases
list_tables
List available ClickHouse tables in a database, including schema, comment,
row count, and column count.
Args:
database: The database to list tables from
like: Optional LIKE pattern to filter table names
not_like: Optional NOT LIKE pattern to exclude table names
page_token: Token for pagination, obtained from a previous call
page_size: Number of tables to return per page (default: 50)
include_detailed_columns: Whether to include detailed column metadata (default: True).
When False, the columns array will be empty but create_table_query still contains
all column information. This reduces payload size for large schemas.
Returns:
A JSON-encoded string of an object containing:
- tables: List of table information (as dictionaries)
- next_page_token: Token for the next page, or None if no more pages
- total_tables: Total number of tables matching the filters
run_query
Execute SQL queries in ClickHouse. Queries run in read-only mode by default. Set CLICKHOUSE_ALLOW_WRITE_ACCESS=true to allow DDL and DML operations. Set CLICKHOUSE_ALLOW_DROP=true to additionally allow destructive operations (DROP, TRUNCATE).