MCP Clickhouse vs Redis MCP

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

MCP Clickhouse logoMCP ClickhouseDatabases · Local subprocess (stdio)ClickHouse database integration with schema inspection and query capabilities67GreatAuth: otherRedis MCP logoRedis MCPDatabases · Local subprocess (stdio)Run Redis commands and look up Upstash Redis Search docs against Upstash Redis over HTTP or TCP.55GoodAuth: not declared

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

Which MCP server should you choose?

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

Redis MCP logoChoose Redis MCP when

  • You need dedicated capabilities in the Databases domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN, UPSTASH_REDIS_TCP_URL, REDIS_URL.
  • You want tools like redis_run_commands, redis_search_docs.
Explore Redis MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMCP Clickhouse logoMCP ClickhouseRedis MCP logoRedis MCP
CategoryDatabasesDatabases
Quality signal67/100 · Great55/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthotherNot declared
PricingFreeNot declared
Required env varsNone listedUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENUPSTASH_REDIS_TCP_URLREDIS_URL
Verified ownerCommunity listingCommunity listing
GitHub stars8900
Directory activity 6 views 0 installs 0 upvotes 2 views 0 installs 0 upvotes
Tools32

Tools & capabilities

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.

Redis MCP tools 2

  • redis_run_commandsRun one or more Redis commands against an Upstash Redis database (this server is ONLY for Upstash Redis). Commands are sent over HTTP/REST or native TCP depending on how the target database is configured — you don't choose the transport. By default multiple commands run as a pipeline: each returns its own result/error, and one failure does not abort the others. Set transaction:true to run them atomically (MULTI/EXEC). For discovery prefer SCAN over KEYS, and use TYPE to inspect a key. A valid command that fails (e.g. WRONGTYPE) returns a per-command error while the rest of the pipeline still runs; a malformed/unknown command can cause the whole request to be rejected. Upstash Redis Search runs through THIS tool via SEARCH.* commands (SEARCH.LISTINDEXES/CREATE/QUERY/AGGREGATE/COUNT/DESCRIBE) — NOT RediSearch's FT.*; filters/aggregations are JSON strings. If you don't know the index name, run SEARCH.LISTINDEXES first; then SEARCH.DESCRIBE <index> for field names/types, and call redis_search_docs for syntax. Three gotchas: (1) a filter applies to ALL indexed documents unless you scope it, e.g. {"type":"story"} — an empty {} counts every type; (2) a plain text value like {"title":"x"} does fuzzy/smart matching, so for an exact word or adjacent phrase use {"title":{"$phrase":"x"}}; (3) add SELECT <n> field... to a query to return only the fields you need instead of whole documents.
  • redis_search_docsLook up **Upstash Redis** documentation — any command, feature, option, or syntax. Covers the whole Upstash Redis surface: core Redis commands, the REST API, pipelines/transactions, and Upstash-specific features. This INCLUDES Upstash Redis Search — the SEARCH.* full-text family (SEARCH.CREATE / SEARCH.QUERY / SEARCH.AGGREGATE / SEARCH.COUNT / ...), whose JSON-based index schema and query syntax are Upstash-specific and DIFFER from Redis Labs' RediSearch FT.*, so they are unlikely to be in your training data — verify them here. Reach for this whenever you're unsure about a command, option, or syntax, and ALWAYS before writing a SEARCH.* command. Pass a natural-language query.

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 (Claude Desktop / Cursor)
{
  "mcpServers": {
    "clickhouse-mcp-clickhouse": {
      "command": "uvx",
      "args": [
        "mcp-clickhouse"
      ]
    }
  }
}

Redis MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "redis-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@upstash/redis-mcp"
      ],
      "env": {
        "UPSTASH_REDIS_REST_URL": "YOUR_UPSTASH_REDIS_REST_URL_HERE",
        "UPSTASH_REDIS_REST_TOKEN": "YOUR_UPSTASH_REDIS_REST_TOKEN_HERE",
        "UPSTASH_REDIS_TCP_URL": "YOUR_UPSTASH_REDIS_TCP_URL_HERE",
        "REDIS_URL": "YOUR_REDIS_URL_HERE"
      }
    }
  }
}

Frequently asked questions

MCP Clickhouse is categorized under Databases and uses a local stdio subprocess. Redis MCP belongs to Databases and uses a local stdio subprocess. Pick MCP Clickhouse for databases work and Redis MCP 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. Redis MCP 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 redis-mcp 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. Redis MCP has 55/100 (Good) with 2 views, 0 installs and 0 GitHub stars.