Este es un ejemplo de cómo crear una aplicación con agentes usando datos almacenados en ClickHouse. Usa el servidor MCP de ClickHouse para consultar datos en ClickHouse y generar gráficos a partir de ellos.
Se usa CopilotKit para crear la UI y proporcionar una interfaz de chat al usuario.
Requisitos previos
Node.js >= 20.14.0uv >= 0.1.0
Instalar dependencias
Clona el proyecto en tu entorno local: git clone https://github.com/ClickHouse/examples y
ve al directorio ai/mcp/copilotkit.
Omite esta sección y ejecuta el script ./install.sh para instalar las dependencias. Si
prefieres instalar las dependencias manualmente, sigue las instrucciones a continuación.
Instalar dependencias manualmente
- Instala las dependencias:
Ejecuta npm install para instalar las dependencias de Node.
- Instala mcp-clickhouse:
Crea una nueva carpeta external y clona en ella el repositorio de mcp-clickhouse.
mkdir -p external
git clone https://github.com/ClickHouse/mcp-clickhouse external/mcp-clickhouseInstala las dependencias de Python y añade la herramienta de línea de comandos fastmcp.
cd external/mcp-clickhouse
uv sync
uv add fastmcpConfigura la aplicación
Copia el archivo env.example a .env y edítalo para añadir tu ANTHROPIC_API_KEY.
Usa tu propio LLM
Si prefieres usar un proveedor de LLM distinto de Anthropic, puedes modificar el runtime de Copilotkit para usar un adaptador de LLM diferente. Aquí tienes una lista de proveedores compatibles.
Usa tu propio clúster de ClickHouse
De forma predeterminada, el ejemplo está configurado para conectarse al clúster de demostración de ClickHouse. También puedes usar tu propio clúster de ClickHouse configurando las siguientes variables de entorno:
CLICKHOUSE_HOSTCLICKHOUSE_PORTCLICKHOUSE_USERCLICKHOUSE_PASSWORDCLICKHOUSE_SECURE
Ejecuta la aplicación
Ejecuta npm run dev para iniciar el servidor de desarrollo.
Puedes probar el Agent usando un prompt como este:
"Muéstrame la evolución del precio en Manchester durante los últimos 10 años."
Abre http://localhost:3000 en tu navegador para ver el resultado.