Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

ClickHouse

de ClickHouseversión 0.7.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.ClickHouse/mcp-clickhouse

Instalar

Resumen

Descripción del creador (original en inglés)

Official ClickHouse MCP server for querying and exploring ClickHouse clusters and chDB.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Bases de datos y conjuntos de datos
  • Debes completar: CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD, CLICKHOUSE_PORT, CLICKHOUSE_SECURE, CLICKHOUSE_VERIFY, CLICKHOUSE_CA_CERT, CLICKHOUSE_CLIENT_CERT, CLICKHOUSE_CLIENT_CERT_KEY, CLICKHOUSE_TLS_MODE, CLICKHOUSE_DATABASE, CLICKHOUSE_ROLE, CLICKHOUSE_ALLOW_WRITE_ACCESS, CLICKHOUSE_ALLOW_DROP, CLICKHOUSE_MCP_QUERY_TIMEOUT, CLICKHOUSE_MCP_MAX_WORKERS

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "clickhouse": {
      "command": "uvx",
      "args": [
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "your-value",
        "CLICKHOUSE_USER": "your-value",
        "CLICKHOUSE_PASSWORD": "your-value",
        "CLICKHOUSE_PORT": "your-value",
        "CLICKHOUSE_SECURE": "your-value",
        "CLICKHOUSE_VERIFY": "your-value",
        "CLICKHOUSE_CA_CERT": "your-value",
        "CLICKHOUSE_CLIENT_CERT": "your-value",
        "CLICKHOUSE_CLIENT_CERT_KEY": "your-value",
        "CLICKHOUSE_TLS_MODE": "your-value",
        "CLICKHOUSE_DATABASE": "your-value",
        "CLICKHOUSE_ROLE": "your-value",
        "CLICKHOUSE_ALLOW_WRITE_ACCESS": "your-value",
        "CLICKHOUSE_ALLOW_DROP": "your-value",
        "CLICKHOUSE_MCP_QUERY_TIMEOUT": "your-value",
        "CLICKHOUSE_MCP_MAX_WORKERS": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add clickhouse --env CLICKHOUSE_HOST=your-value --env CLICKHOUSE_USER=your-value --env CLICKHOUSE_PASSWORD=your-value --env CLICKHOUSE_PORT=your-value --env CLICKHOUSE_SECURE=your-value --env CLICKHOUSE_VERIFY=your-value --env CLICKHOUSE_CA_CERT=your-value --env CLICKHOUSE_CLIENT_CERT=your-value --env CLICKHOUSE_CLIENT_CERT_KEY=your-value --env CLICKHOUSE_TLS_MODE=your-value --env CLICKHOUSE_DATABASE=your-value --env CLICKHOUSE_ROLE=your-value --env CLICKHOUSE_ALLOW_WRITE_ACCESS=your-value --env CLICKHOUSE_ALLOW_DROP=your-value --env CLICKHOUSE_MCP_QUERY_TIMEOUT=your-value --env CLICKHOUSE_MCP_MAX_WORKERS=your-value -- uvx mcp-clickhouse

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "clickhouse": {
      "command": "uvx",
      "args": [
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "your-value",
        "CLICKHOUSE_USER": "your-value",
        "CLICKHOUSE_PASSWORD": "your-value",
        "CLICKHOUSE_PORT": "your-value",
        "CLICKHOUSE_SECURE": "your-value",
        "CLICKHOUSE_VERIFY": "your-value",
        "CLICKHOUSE_CA_CERT": "your-value",
        "CLICKHOUSE_CLIENT_CERT": "your-value",
        "CLICKHOUSE_CLIENT_CERT_KEY": "your-value",
        "CLICKHOUSE_TLS_MODE": "your-value",
        "CLICKHOUSE_DATABASE": "your-value",
        "CLICKHOUSE_ROLE": "your-value",
        "CLICKHOUSE_ALLOW_WRITE_ACCESS": "your-value",
        "CLICKHOUSE_ALLOW_DROP": "your-value",
        "CLICKHOUSE_MCP_QUERY_TIMEOUT": "your-value",
        "CLICKHOUSE_MCP_MAX_WORKERS": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "clickhouse": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "your-value",
        "CLICKHOUSE_USER": "your-value",
        "CLICKHOUSE_PASSWORD": "your-value",
        "CLICKHOUSE_PORT": "your-value",
        "CLICKHOUSE_SECURE": "your-value",
        "CLICKHOUSE_VERIFY": "your-value",
        "CLICKHOUSE_CA_CERT": "your-value",
        "CLICKHOUSE_CLIENT_CERT": "your-value",
        "CLICKHOUSE_CLIENT_CERT_KEY": "your-value",
        "CLICKHOUSE_TLS_MODE": "your-value",
        "CLICKHOUSE_DATABASE": "your-value",
        "CLICKHOUSE_ROLE": "your-value",
        "CLICKHOUSE_ALLOW_WRITE_ACCESS": "your-value",
        "CLICKHOUSE_ALLOW_DROP": "your-value",
        "CLICKHOUSE_MCP_QUERY_TIMEOUT": "your-value",
        "CLICKHOUSE_MCP_MAX_WORKERS": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • CLICKHOUSE_HOST obligatorio env
    Hostname of the ClickHouse server
  • CLICKHOUSE_USER obligatorio env
    Username for ClickHouse authentication
  • CLICKHOUSE_PASSWORD secreto env
    Password for ClickHouse authentication. Required unless a client certificate uses the default or mutual TLS mode
  • CLICKHOUSE_PORT env
    ClickHouse HTTP(S) port. Defaults to 8443 when CLICKHOUSE_SECURE=true, 8123 otherwise
  • CLICKHOUSE_SECURE env
    Use HTTPS to connect to ClickHouse
  • CLICKHOUSE_VERIFY env
    Verify SSL certificates
  • CLICKHOUSE_CA_CERT env
    Path to a PEM CA bundle for ClickHouse server certificate verification
  • CLICKHOUSE_CLIENT_CERT env
    Path to a PEM client certificate for the ClickHouse HTTPS connection
  • CLICKHOUSE_CLIENT_CERT_KEY env
    Path to the PEM private key for CLICKHOUSE_CLIENT_CERT
  • CLICKHOUSE_TLS_MODE env
    Client certificate mode: mutual, proxy, or strict
  • CLICKHOUSE_DATABASE env
    Default database to use
  • CLICKHOUSE_ROLE env
    ClickHouse role to activate for the session
  • CLICKHOUSE_ALLOW_WRITE_ACCESS env
    Allow write operations (DDL and DML). Queries run read-only by default
  • CLICKHOUSE_ALLOW_DROP env
    Allow destructive operations (DROP, TRUNCATE, DELETE, UPDATE, REPLACE, CLEAR, and DETACH PERMANENTLY) when write access is also enabled
  • CLICKHOUSE_MCP_QUERY_TIMEOUT env
    Query tool timeout in seconds
  • CLICKHOUSE_MCP_MAX_WORKERS env
    Maximum query worker thread pool size

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub ClickHouse, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Bases de datos y conjuntos de datosi

  • Más estrellas que el 0% de los otros 1141 servidores de esta categoría
  • Publicado en el registro más recientemente que el 39% de los otros 1141 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 1141 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro ClickHouse?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.7.0) llegó al registro hace 2 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv), Docker en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Supabase, MongoDB MCP Server, Elasticsearch MCP Server

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Supabase

de supabase

MCP server for interacting with the Supabase platform

Computadora o nube★ 2993Apache-2.0Actualizado ayer
Instalar

MongoDB MCP Server

de mongodb-js

MongoDB Model Context Protocol Server

Se ejecuta en tu computadora★ 1157Apache-2.0Actualizado hace 3 días
Instalar

MCP server for interacting with Elasticsearch

Se ejecuta en tu computadora★ 315Apache-2.0Actualizado hace 14 meses
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

ClickHouse MCP Server

An MCP server for ClickHouse.

The server implements MCP 2026-07-28 and supports legacy initialize handshakes from 2024-11-05 through 2025-11-25. Modern clients use sessionless requests and server/discover. Existing clients can continue to negotiate the legacy protocol.

[!NOTE]

HTTP requests without MCP-Protocol-Version are routed through legacy handling so

clients from before 2025-06-18 can continue to connect. MCP 2026-07-28 permits

this behavior on servers that support those clients. Modern clients should send the

header on every POST request.

Features

ClickHouse Tools

ClickHouse tool responses are JSON-encoded strings. Integers outside [-9007199254740991, 9007199254740991] are returned as decimal strings to preserve exact values in JavaScript clients. This applies to query rows and integer table metadata. Safe-range integers and booleans keep their JSON types.

  • run_query
  • Execute SQL queries on your ClickHouse cluster.
  • Input: query (string): The SQL query to execute.
  • Optional input: params (object): Named values for ClickHouse {name:Type} placeholders. See Query parameters.
  • Queries run in read-only mode by default (CLICKHOUSE_ALLOW_WRITE_ACCESS=false), but writes can be enabled explicitly if needed.
  • DESCRIBE ( ) and EXPLAIN ESTIMATE run here too and are optional ways to inspect a query's result schema or its estimated reads. See Checking a query before running it.
  • list_databases
  • List all databases on your ClickHouse cluster.
  • list_tables
  • List tables in a database with pagination.
  • Required input: database (string).
  • Optional inputs:
  • like / not_like (string): Apply LIKE or NOT LIKE filters to table names.
  • page_token (string): Single-use token returned by a previous call. It is retained for up to one hour.
  • page_size (int, default 50): Number of tables returned per page; must be greater than 0.
  • include_detailed_columns (bool, default true): When false, omits column metadata for lighter responses while keeping the full create_table_query.
  • Response shape:
  • tables: Array of table objects for the current page.
  • next_page_token: Pass this single-use value back before it expires to fetch the next page, or null when there are no more tables.
  • total_tables: Total count of tables that match the supplied filters.
Agents Schema discovery

The server instructions suggest reading Agents Schema's canonical AGENTS.ROOT through run_query when list_databases reveals an AGENTS database, before writing analytical SQL. This is guidance for the agent: no metadata is fetched automatically, tool results are unchanged, and existing ClickHouse permissions still apply. If AGENTS.ROOT is missing or inaccessible, normal discovery and queries remain available.

Query parameters

Pass values separately from SQL through the optional params object:

{

"query": "SELECT {id:UInt32} AS id, {name:String} AS name", "params": {"id": 13, "name": "O'Reilly"} }

Use ClickHouse's {name:Type} placeholders without quoting them. Keep the opening brace, name, and colon adjacent, as in {id:UInt32}. Spaces after the colon and within the type are supported, as in {id: UInt32} and {amount:Decimal(18, 4)}. For compatibility across supported driver versions, start names with a letter or underscore and use only letters, digits, and underscores. Python-style %s or %(name)s formatting and the driver's $name$ raw binary parameters are not supported. Calls with only query still work. Omitting params, passing null, or passing an empty object leaves the query unbound.

Parameter values can be JSON strings, numbers, booleans, null, or arrays, provided they match the declared ClickHouse type:

  • Use null with a Nullable(...) type.
  • Pass exact integers outside JavaScript's safe range as decimal strings, for example "18446744073709551615" with {id:UInt64}. Dates, timestamps, and exact decimals can also be passed as strings with the corresponding ClickHouse type.
  • Bind vectors as one array, for example {vector:Array(Float32)} with "params": {"vector": [0.25, 0.5, 0.75]}.
  • Nulls inside arrays depend on the installed driver. They work with clickhouse-connect 1.8.0 but fail with the supported minimum 1.0.0.
  • JSON lists and objects cannot bind to ClickHouse Tuple and Map types.

Missing values and incompatible types return query errors. With non-empty params, a query carrying many unterminated {name: placeholder starts is rejected, including placeholder-like text in comments or string literals. Parameterized queries use the same write protection, timeouts, cancellation, and JSON result encoding as other queries.

Parameter values stay out of the MCP server's normal SQL log messages, but remain in MCP tool arguments and may appear in backend errors. ClickHouse 26.3.20.7 substitutes values into the query text in system.query_log, system.processes, and system.text_log. Parameter binding is not a privacy feature and does not reduce the number of vector values sent in a tool call.

Checking a query before running it

run_query also runs DESCRIBE and EXPLAIN ESTIMATE. Both are optional checks: reach for DESCRIBE when you need a query's output columns and types, and for EXPLAIN ESTIMATE before a SELECT that could be expensive.

DESCRIBE ( ) inspects the result schema and returns the same output-column metadata as DESCRIBE TABLE:

DESCRIBE (SELECT user, sum(amt) FROM events WHERE ts > now() - INTERVAL 30 DAY GROUP BY user)
user      String

sum(amt) Decimal(38, 2)

ClickHouse has to analyze the query to answer, so analysis errors surface here, with ClickHouse's own message, instead of part way through execution:

DESCRIBE (SELECT usr FROM events)  -> Code: 47. Unknown expression identifier `usr` ... Maybe you meant: ['user']

DESCRIBE (SELECT * FROM nosuch) -> Code: 60. Unknown table expression identifier 'nosuch'

A query that describes cleanly can still fail when it runs, on a memory limit or a remote server error, and it says nothing about cost.

EXPLAIN ESTIMATE returns the parts, rows and marks the query would read, one row per table, which is what separates a primary key lookup from a full scan:

EXPLAIN ESTIMATE SELECT count() FROM events WHERE id = 42
database  table   parts  rows   marks

default events 1 8192 1

Those are estimated reads from MergeTree family tables, after primary key and partition pruning. They are not run time and not result size, and other table engines are not covered.

Neither statement runs the query body, but analysis is not always free: DESCRIBE (SELECT (SELECT sleep(1))) executes the scalar subquery while analyzing. Both are read-only and work under the default CLICKHOUSE_ALLOW_WRITE_ACCESS=false. See the ClickHouse documentation for EXPLAIN ESTIMATE and DESCRIBE.

chDB Tools
  • run_chdb_select_query
  • Execute SQL queries using chDB's embedded ClickHouse engine.
  • Input: query (string): The SQL query to execute.
  • Integers outside [-9007199254740991, 9007199254740991] are returned as decimal strings.
  • Query data directly from various sources (files, URLs, databases) without ETL processes.
  • Requires the optional chdb extra: pip install 'mcp-clickhouse[chdb]'
Health Check Endpoint

When running with HTTP or SSE transport, a health check endpoint is available at /health. This endpoint:

  • Returns 200 OK (body: OK) if the server is healthy and can connect to ClickHouse
  • Returns 503 Service Unavailable with a generic error message if the server cannot connect to ClickHouse
  • Returns 503 if a ClickHouse probe does not finish within two seconds. Concurrent requests share one in-flight probe
  • Reuses a completed probe result for one second, so probes that arrive in quick succession do not each connect to ClickHouse. A failure or a recovery can therefore be reported up to a second late

GET and HEAD requests to the endpoint are intentionally unauthenticated and exempt from Host and Origin validation so orchestrator probes (e.g. Kubernetes liveness/readiness, load balancers) can use runtime-assigned pod or target IPs without extra configuration. /health is reserved and cannot be used as the MCP transport path. The response body is deliberately minimal to avoid leaking backend version strings or error details; debug failures via the server logs.

Example:

curl http://localhost:8000/health

Response: OK

Security

Authentication for HTTP/SSE Transports

When using HTTP or SSE transport, authentication is required by default. The stdio transport (default) does not require authentication as it only communicates via standard input/output.

Three authentication modes are supported. Pick one:

ModeWhen to useEnv var
Static bearer tokenSimple deployments, internal servicesCLICKHOUSE_MCP_AUTH_TOKEN
OAuth / OIDC (via FastMCP)Azure Entra, Google, GitHub, WorkOS, etc.FASTMCP_SERVER_AUTH= (+ provider-specific FASTMCP_SERVER_AUTH_* vars)
DisabledLocal development onlyCLICKHOUSE_MCP_AUTH_DISABLED=true

Startup fails if none of these are configured for HTTP/SSE transports.

Setting Up Authentication
  1. Generate a secure token (can be any random string):
   # Using uuidgen (macOS/Linux)

uuidgen

Using openssl

openssl rand -hex 32

  1. Configure the server with the token:
   export CLICKHOUSE_MCP_AUTH_TOKEN="your-generated-token"
  1. Configure your MCP client to include the token in requests:

For Claude Desktop with HTTP/SSE transport:

   {

"mcpServers": { "mcp-clickhouse": { "url": "http://127.0.0.1:8000", "headers": { "Authorization": "Bearer your-generated-token" } } } }

Note: the /health endpoint is intentionally unauthenticated (see Health Check Endpoint above). To verify that bearer-token auth is actually rejecting unauthenticated requests, hit the MCP endpoint itself e.g. with the MCP Inspector, or by POSTing a JSON-RPC request to /mcp with and without the Authorization header and confirming the unauthenticated call returns 401.

OAuth / OIDC via FastMCP

For production deployments with identity providers (Azure Entra, Google, GitHub, WorkOS, etc.), delegate authentication to FastMCP's built-in auth providers instead of using a static token. Set FASTMCP_SERVER_AUTH to the full class path

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx