Skip to main content
Glama
ClickHouse

mcp-clickhouse

Official
by ClickHouse

Servidor MCP de ClickHouse

PyPI - Versión

Un servidor MCP para ClickHouse.

Características

Herramientas

  • run_select_query

    • Ejecute consultas SQL en su clúster ClickHouse.

    • Entrada: sql (cadena): la consulta SQL a ejecutar.

    • Todas las consultas de ClickHouse se ejecutan con readonly = 1 para garantizar que sean seguras.

  • list_databases

    • Enumere todas las bases de datos en su clúster ClickHouse.

  • list_tables

    • Enumerar todas las tablas de una base de datos.

    • Entrada: database (cadena): el nombre de la base de datos.

Related MCP server: MCP Alchemy

Configuración

  1. Abra el archivo de configuración de Claude Desktop ubicado en:

    • En macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • En Windows: %APPDATA%/Claude/claude_desktop_config.json

  2. Añade lo siguiente:

{
  "mcpServers": {
    "mcp-clickhouse": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.13",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}

Actualice las variables de entorno para que apunten a su propio servicio ClickHouse.

O, si desea probarlo con ClickHouse SQL Playground , puede utilizar la siguiente configuración:

{
  "mcpServers": {
    "mcp-clickhouse": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.13",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "sql-clickhouse.clickhouse.com",
        "CLICKHOUSE_PORT": "8443",
        "CLICKHOUSE_USER": "demo",
        "CLICKHOUSE_PASSWORD": "",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}
  1. Localice la entrada de comando para uv y reemplácela con la ruta absoluta del ejecutable uv . Esto garantiza que se use la versión correcta de uv al iniciar el servidor. En una Mac, puede encontrar esta ruta usando which uv .

  2. Reinicie Claude Desktop para aplicar los cambios.

Desarrollo

  1. En el directorio de test-services ejecute docker compose up -d para iniciar el clúster ClickHouse.

  2. Agregue las siguientes variables a un archivo .env en la raíz del repositorio.

Nota: El uso del usuario

CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=8123
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=clickhouse
  1. Ejecute uv sync para instalar las dependencias. Para instalar uv , siga las instrucciones aquí . Luego, ejecute source .venv/bin/activate .

  2. Para realizar pruebas fácilmente, puede ejecutar mcp dev mcp_clickhouse/mcp_server.py para iniciar el servidor MCP.

Variables de entorno

Las siguientes variables de entorno se utilizan para configurar la conexión de ClickHouse:

Variables requeridas

  • CLICKHOUSE_HOST : El nombre de host de su servidor ClickHouse

  • CLICKHOUSE_USER : El nombre de usuario para la autenticación

  • CLICKHOUSE_PASSWORD : La contraseña para la autenticación

[!PRECAUCIÓN] Es importante tratar al usuario de la base de datos MCP como a cualquier cliente externo que se conecte a ella, otorgándole únicamente los privilegios mínimos necesarios para su funcionamiento. Se debe evitar estrictamente el uso de usuarios predeterminados o administrativos.

Variables opcionales

  • CLICKHOUSE_PORT : El número de puerto de su servidor ClickHouse

    • Predeterminado: 8443 si HTTPS está habilitado, 8123 si está deshabilitado

    • Generalmente no es necesario configurarlo a menos que se utilice un puerto no estándar

  • CLICKHOUSE_SECURE : Habilitar/deshabilitar la conexión HTTPS

    • Valor predeterminado: "true"

    • Establezca en "false" para conexiones no seguras

  • CLICKHOUSE_VERIFY : Habilitar/deshabilitar la verificación del certificado SSL

    • Valor predeterminado: "true"

    • Establezca en "false" para deshabilitar la verificación del certificado (no recomendado para producción)

  • CLICKHOUSE_CONNECT_TIMEOUT : Tiempo de espera de conexión en segundos

    • Valor predeterminado: "30"

    • Aumente este valor si experimenta tiempos de espera de conexión

  • CLICKHOUSE_SEND_RECEIVE_TIMEOUT : Tiempo de espera de envío/recepción en segundos

    • Valor predeterminado: "300"

    • Aumente este valor para consultas de larga duración

  • CLICKHOUSE_DATABASE : Base de datos predeterminada para utilizar

    • Predeterminado: Ninguno (usa el valor predeterminado del servidor)

    • Configure esto para conectarse automáticamente a una base de datos específica

Configuraciones de ejemplo

Para el desarrollo local con Docker:

# Required variables
CLICKHOUSE_HOST=localhost
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=clickhouse

# Optional: Override defaults for local development
CLICKHOUSE_SECURE=false  # Uses port 8123 automatically
CLICKHOUSE_VERIFY=false

Para ClickHouse Cloud:

# Required variables
CLICKHOUSE_HOST=your-instance.clickhouse.cloud
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=your-password

# Optional: These use secure defaults
# CLICKHOUSE_SECURE=true  # Uses port 8443 automatically
# CLICKHOUSE_DATABASE=your_database

Para ClickHouse SQL Playground:

CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
CLICKHOUSE_USER=demo
CLICKHOUSE_PASSWORD=
# Uses secure defaults (HTTPS on port 8443)

Puede configurar estas variables en su entorno, en un archivo .env o en la configuración de Claude Desktop:

{
  "mcpServers": {
    "mcp-clickhouse": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.13",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_DATABASE": "<optional-database>"
      }
    }
  }
}

Ejecución de pruebas

uv sync --all-extras --dev # install dev dependencies
uv run ruff check . # run linting

docker compose up -d test_services # start ClickHouse
uv run pytest tests

Descripción general de YouTube

YouTube

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ClickHouse/mcp-clickhouse'

If you have feedback or need assistance with the MCP directory API, please join our Discord server