Anydb MCP vs MCP Clickhouse

A side-by-side look at the Anydb MCP and MCP Clickhouse MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Anydb MCP logoAnydb MCPDatabases · Local subprocess (stdio)One MCP server for five databases — PostgreSQL, MySQL, SQLite, MongoDB and Redis — with named connection profiles, so database passwords never enter the model's context window.59GoodAuth: not declaredMCP Clickhouse logoMCP ClickhouseDatabases · Local subprocess (stdio)ClickHouse database integration with schema inspection and query capabilities67GreatAuth: other

Verdict: choose Anydb MCP for databases work as a local process; choose MCP Clickhouse for databases as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Anydb MCP logoChoose Anydb MCP when

  • You need dedicated capabilities in the Databases domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like db_list, db_query, db_schema.
Explore Anydb MCP

MCP Clickhouse logoChoose 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.
Explore MCP Clickhouse

Feature & specification comparison

Rows where the two servers differ are marked.

SpecAnydb MCP logoAnydb MCPMCP Clickhouse logoMCP Clickhouse
CategoryDatabasesDatabases
Quality signal59/100 · Good67/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredother
PricingFreeFree
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars1890
Directory activity 1 views 0 installs 0 upvotes 6 views 0 installs 0 upvotes
Tools53

Tools & capabilities

Anydb MCP tools 5

  • db_listList the connection profiles from the anydb config file (~/.anydb/db.json): name, description, driver, which one is the default, and whether it is read-only. Call this first whenever you do not already know a profile name, then pass the name to the other tools as "profile". The result never contains a connection string, a host, a username or a password -- not masked, absent -- because this text goes into your context window and a config file is writable by anyone who can write files. If there is no config file, use "uri" with the other tools instead.
  • db_queryRun one statement against one database (PostgreSQL, MySQL/MariaDB, SQLite, MongoDB or Redis, inferred from the connection). READ-ONLY BY DEFAULT: writes are refused unless "readOnly" is false, and statements that change schema or privileges additionally require "allowDestructive" to be true. Call db_list and db_schema first so table and column names are not guessed, and prefer "params" over inlining values in "query" so the values never appear in the statement text. Put a LIMIT in every query: results are capped anyway, and a cap you did not ask for is how a table gets silently half-read. MongoDB: "collection" is required and "action" picks the operation -- find, count, distinct, aggregate and explain read; insert, update, updateOne, replace, delete and deleteOne write and need "readOnly": false. Prefer the *One actions: one document, not every match. Redis: "query" is a single command such as GET or SCAN.
  • db_schemaDescribe the structure of a database: tables and their columns for SQL, collections with their indexes for MongoDB, keyspace statistics for Redis. Call it before writing a query so names are not guessed -- it is almost always cheaper than a failed query. Runs read-only introspection statements only, never a statement of yours, and "table"/"collection" are bound as parameters wherever the driver allows rather than pasted into SQL. "detail": "full" adds foreign keys, index definitions, primary and unique constraints, row estimates, and inferred field schemas for MongoDB.
  • db_explainReturn the execution plan for a statement WITHOUT running it. Read-only by construction: the statement is planned and not executed, so this is the safe way to catch a sequential scan over a large table and the cheapest way to find a missing index. ANALYZE variants are refused here on purpose, because "EXPLAIN ANALYZE" runs the statement it plans. MongoDB: pass "collection" and a find filter as "query"; a pipeline cannot be explained, use db_query action "aggregate" with a small limit. Redis has no plans, so this tool refuses it.
  • db_healthAsk the database about itself: reachable or not, server version, the role this server authenticated as, whether that role or the server is read-only, object counts, and this server's pool and cache state. Use it instead of guessing at why a connection or a write failed. Note what "readOnly": false does and does not do: it is a request to THIS server, not a security boundary. The boundary is the database role -- a role holding INSERT will succeed whatever these flags say, and a role without them will fail however many are set.

MCP Clickhouse tools 3

  • list_databasesList available ClickHouse databases
  • list_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.

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.

Anydb MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "anydb-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "anydb-mcp"
      ]
    }
  }
}

MCP Clickhouse

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "clickhouse-mcp-clickhouse": {
      "command": "uvx",
      "args": [
        "mcp-clickhouse"
      ]
    }
  }
}

Frequently asked questions

Anydb MCP is categorized under Databases and uses a local stdio subprocess. MCP Clickhouse belongs to Databases and uses a local stdio subprocess. Pick Anydb MCP for databases work and MCP Clickhouse 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.

Anydb MCP is listed as free. MCP Clickhouse is listed as free. Auth: other. 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 anydb-mcp and clickhouse-mcp-clickhouse as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Anydb MCP has a quality signal of 59/100 (Good) with 1 views, 0 installs and 1 GitHub stars. MCP Clickhouse has 67/100 (Great) with 6 views, 0 installs and 890 GitHub stars.