MCP Clickhouse vs PostgreSQL
A side-by-side look at the MCP Clickhouse and PostgreSQL MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Clickhouse for databases work as a local process; choose PostgreSQL for databases as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP Clickhouse when
- You need dedicated capabilities in the Databases domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: other.
- You want tools like
list_databases, list_tables, run_query.
Choose PostgreSQL when
- You need dedicated capabilities in the Databases domain.
- You prefer a local stdio subprocess transport.
- You want tools like
query, execute, list_schemas.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Databases | Databases |
| Quality signal | 67/100 · Great | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | other | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 890 | 24 |
| Directory activity | 6 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 3 | 5 |
| Full listing | View MCP Clickhouse | View PostgreSQL |
Tools & capabilities
MCP Clickhouse tools 3
list_databasesList available ClickHouse databaseslist_tablesList available ClickHouse tables in a database, including schema, comment, row count, and column count. Integers outside [-9007199254740991, 9007199254740991] in table metadata are returned as decimal strings. Pagination tokens are single-use and retained for up to one hour.run_queryExecute SQL queries in ClickHouse. Queries run in read-only mode by default. Bind optional params by name with {name:Type} placeholders, such as {name:String} or {vector:Array(Float32)}. Values may be JSON scalars, nulls, or arrays. Pass exact large integers as decimal strings. JSON lists and objects cannot bind to Tuple and Map types. Python percent formatting and $name$ raw binary parameters are not supported. Parameter values stay out of the MCP server's normal SQL log lines, but may appear in errors and backend logs. Set CLICKHOUSE_ALLOW_WRITE_ACCESS=true to allow DDL and DML operations. Set CLICKHOUSE_ALLOW_DROP=true to additionally allow destructive operations (DROP, TRUNCATE, DELETE, UPDATE, REPLACE TABLE/PARTITION, CREATE OR REPLACE, CLEAR COLUMN/INDEX/PROJECTION, DETACH PERMANENTLY). That gate is a best-effort accident guard, not a security boundary. Integers outside [-9007199254740991, 9007199254740991] are returned as decimal strings. Two optional checks also run through this tool. Use DESCRIBE (<query>) when you need a query's output columns and types; it inspects the result schema and surfaces analysis errors such as an unknown column, but a query that describes cleanly can still fail at runtime. Consider EXPLAIN ESTIMATE <query> before a SELECT that could be expensive; it returns the estimated parts, rows and marks read from MergeTree family tables, which is not run time and not result size. Neither runs the query body, though analysis can execute scalar subqueries.
PostgreSQL tools 5
queryRun one read-only SQL statement against the connected PostgreSQL database and get rows back as JSON. Send exactly one statement per call (SELECT, WITH, EXPLAIN, or SHOW). It runs inside an engine-enforced read-only transaction, so any write is refused by the database. Use this tool for all data reading, aggregation, and query planning. Returns {rows, rowCount, returnedRows, truncated}, plus hint when truncated is true. Prefer $1, $2 placeholders with the params array over interpolating values. Results are capped at ~32768 bytes; truncated:true means rows were dropped - add LIMIT/WHERE or select fewer columns.executeRun a data-modifying SQL statement (INSERT/UPDATE/DELETE or DDL). Currently DISABLED: the server is read-only, so this returns an error and changes nothing. To enable writes, the operator must start the server with PG_ALLOW_WRITE=true.list_schemasList every schema in the connected database. Start here when exploring an unfamiliar database, then call list_tables for the schema you care about. Returns {schemas: [name, ...]}.list_tablesList all tables in a schema (default: 'public'). Use this before querying tables you have not seen yet, then call describe_table for column details. Returns {tables: [name, ...]}.describe_tableShow the structure of one table: column names, data types, nullability, defaults, and primary-key membership. Call this before writing non-trivial queries against a table. Returns {columns: [{column, type, nullable, default, is_primary_key}, ...]}.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
MCP Clickhouse
{
"mcpServers": {
"clickhouse-mcp-clickhouse": {
"command": "uvx",
"args": [
"mcp-clickhouse"
]
}
}
}
PostgreSQL
{
"mcpServers": {
"postgresql": {
"command": "npx",
"args": [
"-y",
"mcp-postgres-server"
]
}
}
}
Frequently asked questions
MCP Clickhouse is categorized under Databases and uses a local stdio subprocess. PostgreSQL belongs to Databases and uses a local stdio subprocess. Pick MCP Clickhouse for databases work and PostgreSQL for databases.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP Clickhouse is listed as free. Auth: other. PostgreSQL has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add clickhouse-mcp-clickhouse and postgresql as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Clickhouse has a quality signal of 67/100 (Great) with 6 views, 0 installs and 890 GitHub stars. PostgreSQL has 64/100 (Good) with 4 views, 0 installs and 24 GitHub stars.