In-depth architectural comparison of the MCP Clickhouse and Db Conn MCP 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
MCP Clickhouse
Databases · Local stdio
Quality: 65/100 (Great) | Auth: other
Db Conn MCP
Databases · Local stdio
Quality: 53/100 (Good) | Auth: No auth required
Verdict Summary: Choose MCP Clickhouse if you need specialized Databases tools running via a local process. Choose Db Conn MCP 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 MCP 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).
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).
Db Conn MCP Tools (23)
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).
MCP Clickhouse is categorized under Databases and uses a local stdio subprocess. In contrast, Db Conn MCP belongs to Databases using local stdio subprocess. Select MCP Clickhouse when you need capabilities focused on databases and Db Conn MCP when you require tools for databases.
Configured databases (name, mode, yolo, and `active_port` when a fallback port is in use — **no DSN**).
list_tables
Tables and views in a database. Narrow it in the database rather than after the fact: `pattern` keeps only names containing it (fuzzy, case-insensitive) and `limit` caps the number of rows.
get_table_schema
Columns, types, primary/foreign keys for a table. Pass `include_indexes=true` to also get its indexes (`name`, key `columns` in index order — an INCLUDE payload is not listed — `unique`, `method`); omitted by default.
get_database_schema
The whole database's schema in one deterministic call. `format="json"` (default) returns every table's columns/types/PK/FK; `format="sql"` returns a **self-contained, runnable DDL script** (tables, sequences, PK/FK/UNIQUE/CHECK, indexes, trigger functions, triggers) — no extra tools required. Pass…
dump_schema_faithful
Byte-faithful** schema dump via the database's own `pg_dump --schema-only` — the most complete/runnable export. Requires the `pg_dump` binary on the server host; if missing, returns `pg_dump_not_found` with install guidance (see the `faithful_schema_export` prompt).
sample_table_rows
First N rows of a table (default 10).
find_columns
Find columns by name across all tables (fuzzy, case-insensitive). `limit` caps the number of rows for a broad pattern.
search_value
Find **where** a value appears across tables (fuzzy); returns table/column hits + samples. Pass `tables=[…]` to scope it.
get_object_definition
Faithful SQL definition of a **view / function / trigger / sequence / index** by name (native `pg_get_*def`; overloads and all schemas returned).
execute_read_query
Run a single read-only statement (`SELECT`/`WITH`/…) inside a read-only transaction. Optional `params` (**real bind parameters** via `$1`/`$2` — no quoting pitfalls) and `timeout_ms`.
execute_write_query
Run a mutation — gated by the safety model above. **Defaults to `dry_run=true`**: execute in a transaction, report would-be `rows_affected`, always ROLL BACK — show the user real impact *before* consenting to the real write. Committing (`dry_run=false`) requires a prior preview of the identical sta…
explain_query
EXPLAIN` (optionally `ANALYZE`) a validated read-only query — confirm index usage without any write access. Takes the same `params` (`$1`/`$2` bind parameters) as `execute_read_query`, so you explain the query you will actually run rather than a literal-substituted rewrite of it.