ClickHouse MCP Server
Un servidor Node.js para consultar bases de datos ClickHouse.
Documentación
ClickHouse MCP Server
Una implementación de servidor de Model Context Protocol (MCP) que permite a Claude AI interactuar con bases de datos ClickHouse a través de una interfaz segura y eficiente.
Requisitos previos
- Node.js (versión 18 o superior)
- Base de datos ClickHouse ejecutándose local o remotamente
- Aplicación Claude Desktop instalada
Herramientas disponibles
-
clickhouse_query
- Ejecutar consultas SELECT en tu clúster de ClickHouse
- Entrada:
sql(string): La consulta SQL a ejecutar - Nota: Solo se permiten consultas SELECT por razones de seguridad
-
clickhouse_show_tables
- Listar todas las tablas en la base de datos de ClickHouse
- No se requieren parámetros de entrada
-
clickhouse_describe_table
- Describir el esquema de una tabla específica
- Entrada:
table(string): El nombre de la tabla a describir
Pasos de instalación
1. Instalar dependencias
npm install @modelcontextprotocol/sdk @clickhouse/client typescript @types/node
2. Compilar el TypeScript
npm run build
3. Crear el archivo del servidor
Copia el código principal del servidor en index.js y hazlo ejecutable:
chmod +x dist/index.js
4. Configurar Claude Desktop
-
Abre la aplicación Claude Desktop, ve a configuración, luego a Developer y haz clic en "Edit Configuration File"

-
O abre 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
- En macOS:
-
Añade lo siguiente:
{
"mcpServers": {
"clickhouse": {
"command": "node",
"args": ["/path/to/your/clickhouse-mcp-server/dist/index.js"],
"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"
}
}
}
}
Actualiza las variables de entorno para que apunten a tu propio servicio de ClickHouse.
O, si quieres probarlo con el ClickHouse SQL Playground, puedes usar la siguiente configuración:
{
"mcpServers": {
"clickhouse": {
"command": "node",
"args": ["/path/to/your/clickhouse-mcp-server/dist/index.js"],
"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"
}
}
}
}
Importante: Actualiza la ruta en la configuración para que apunte a la ubicación real de tu archivo dist/index.js. Copia la ruta completa como se muestra en la imagen a continuación.

5. Probar el servidor
Antes de configurar Claude Desktop, prueba el servidor localmente:
node dist/index.js
El servidor debería iniciarse y mostrar "ClickHouse MCP server running on stdio".
7. Reiniciar Claude Desktop
Después de actualizar la configuración, reinicia Claude Desktop para que los cambios surtan efecto.
Ejemplo de uso
Después de la configuración, puedes pedirle a Claude que:
- "Muéstrame todas las tablas en la base de datos de ClickHouse"
- "Consulta la tabla user_events para los datos de hoy"
- "Describe el esquema de la tabla orders"
Desarrollo
Ejecutar pruebas
npm test
Compilar el proyecto
npm run build
Linting
npm run lint
Notas de seguridad
- El servidor solo permite consultas SELECT para la herramienta de consulta
- Considera configurar una autenticación adecuada para tu instancia de ClickHouse
- Usa variables de entorno para credenciales sensibles
- Restringe el acceso de red a tu servidor de ClickHouse según sea necesario
Solución de problemas
- Problemas de conexión: Verifica que tu servidor de ClickHouse esté ejecutándose y sea accesible
- Errores de permisos: Asegúrate de que el script de Node.js tenga los permisos de archivo adecuados
- Problemas de configuración: Verifica que la ruta en la configuración de Claude Desktop apunte al archivo correcto
- Dependencias: Asegúrate de que todos los paquetes npm estén instalados correctamente
Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
Ejemplo de uso
Después de la configuración, puedes pedirle a Claude que:
- "Muéstrame todas las tablas en la base de datos de ClickHouse"
- "Consulta la tabla user_events para los datos de hoy"
Notas de seguridad
- El servidor solo permite consultas SELECT para la herramienta de consulta
- Considera configurar una autenticación adecuada para tu instancia de ClickHouse
- Usa variables de entorno para credenciales sensibles
- Restringe el acceso de red a tu servidor de ClickHouse según sea necesario
Solución de problemas
- Problemas de conexión: Verifica que tu servidor de ClickHouse esté ejecutándose y sea accesible
- Errores de permisos: Asegúrate de que el script de Node.js tenga los permisos de archivo adecuados
- Problemas de configuración: Verifica que la ruta en la configuración de Claude Desktop apunte al archivo correcto
- Dependencias: Asegúrate de que todos los paquetes npm estén instalados correctamente