Chartbrew MCP
Chartbrew + agentes de IA. Servidor MCP que expone la API documentada de Chartbrew: equipos, conexiones, conjuntos de datos, paneles, gráficos, consultas en vivo y embebido seguro. TypeScript · stdio · modos de herramientas restringidos/irrestrictos.
Documentación
El Chartbrew MCP server expone la API documentada de Chartbrew a agentes de codificación de IA y clientes compatibles con MCP — permitiéndoles listar e inspeccionar equipos, conexiones, conjuntos de datos, paneles y gráficos, ejecutar consultas en vivo, obtener datos, gestionar políticas/tokens de uso compartido para incrustación segura, y crear o actualizar recursos, todo mediante lenguaje natural.
Chartbrew MCP Server
Servidor MCP en TypeScript construido sobre el SDK oficial de MCP para los endpoints documentados de la API de Chartbrew.
Demostración
Chartbrew MCP en acción: gestión de recursos de analítica mediante lenguaje natural.
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Requisitos previos
- Node.js y npm instalados (se usan para instalar dependencias y compilar el servidor).
- Una clave de API de Chartbrew: créala en tu cuenta de Chartbrew (cloud o autoalojada). Consulta Cómo crear claves de API en Chartbrew.
- Para una instancia de Chartbrew autoalojada, la URL base de la API de esa instancia (por defecto
http://localhost:4019). - Un cliente compatible con MCP para alojar el servidor (p. ej., Claude Code, Claude Desktop, Cursor, VS Code, Codex, GitHub Copilot, OpenCode, Kimi Code).
Alcance
Este servidor solo implementa operaciones documentadas en la referencia oficial de la API de Chartbrew y evita comportamientos no documentados.
Recursos implementados:
- Equipos: listar, obtener
- Conexiones: listar, obtener, probar, crear, actualizar, eliminar
- Conjuntos de datos: listar, obtener, obtener datos, crear, actualizar, eliminar
- Solicitudes de datos: listar, ejecutar
- Paneles (proyectos): listar, obtener, crear, actualizar, eliminar
- Gráficos: obtener, crear, consultar, eliminar
No implementado en esta versión:
- Endpoints de creación/actualización de enlaces de variables
Se pueden añadir más adelante si es necesario.
Autenticación
La documentación de la API de Chartbrew especifica autenticación mediante token Bearer.
Cabecera requerida que usa este servidor:
- Authorization: Bearer <CHARTBREW_API_KEY>
Opciones de configuración
| Variable | Descripción | Obligatorio |
|---|---|---|
CHARTBREW_API_KEY | Clave de API de Chartbrew usada para la autenticación con token Bearer | Sí |
CHARTBREW_API_BASE_URL | URL base de la API. Usa https://api.chartbrew.com para una cuenta oficial de Chartbrew cloud, o tu URL autoalojada (por defecto http://localhost:4019; cambia el puerto si el tuyo difiere) | No (por defecto: https://api.chartbrew.com) |
CHARTBREW_REQUEST_TIMEOUT_MS | Tiempo de espera de solicitud en milisegundos para evitar solicitudes colgadas | No (por defecto: 30000) |
CHARTBREW_TOOL_MODE | Modo de exposición de herramientas. Valores permitidos: restricted, unrestricted. Si no se establece o se establece a cualquier valor distinto de unrestricted, el servidor se ejecuta en modo restricted | No (por defecto: restricted) |
Comportamiento del modo de herramientas:
- unrestricted: todas las herramientas implementadas están disponibles.
- restricted: solo están disponibles las herramientas de obtención/consulta de datos (list/get/fetch/query/run/test). Las herramientas de crear/actualizar/eliminar están deshabilitadas.
Puedes proporcionar estos valores de dos maneras (elige una):
- Archivo
.enven esta carpetamcp— copia.env-templatea.envy completa los valores. El servidor lo carga automáticamente al iniciarse. - El bloque
envde la configuración MCP de tu agente de codificación — establece las variables directamente en el objetoenvde la entrada del servidor (p. ej.,.mcp.jsonpara Claude Code, o la configuración MCP equivalente para Codex, GitHub Copilot, OpenCode, Kimi Code, etc.). Usa esto cuando no quieras un archivo.envlocal.
Instalación
-
Cambia al directorio
mcp. -
Instala las dependencias:
npm install -
Compila:
npm run build -
Ejecuta
npm start
El servidor usa transporte stdio y está diseñado para ser lanzado por un host de cliente MCP.
Binario independiente (no requiere Node.js)
¿Prefieres no instalar Node.js? Descarga un binario precompilado desde la página de Releases y ejecútalo directamente. Se proporcionan binarios para:
| OS | x64 (Intel/AMD) | arm64 (Apple Silicon / ARM) |
|---|---|---|
| Windows | chartbrew-mcp-windows-x64.exe | chartbrew-mcp-windows-arm64.exe |
| Linux | chartbrew-mcp-linux-x64 | chartbrew-mcp-linux-arm64 |
| macOS | chartbrew-mcp-darwin-x64 | chartbrew-mcp-darwin-arm64 |
Configuración:
Las releases incluyen tanto binarios sin comprimir como archivos comprimidos (.zip para Windows, .tar.gz para Linux/macOS): elige el archivo comprimido para una descarga más pequeña y luego extráelo.
- Windows: descarga
chartbrew-mcp-windows-x64.zip(oarm64), extrae y ejecuta el.exe. - macOS / Linux: descarga, p. ej.,
chartbrew-mcp-darwin-arm64.tar.gz, extrae y luego hazlo ejecutable una vez:chmod +x chartbrew-mcp-darwin-arm64 - macOS Gatekeeper: si macOS bloquea el binario sin firmar, elimina el atributo de cuarentena:
xattr -d com.apple.quarantine chartbrew-mcp-darwin-arm64
No necesitas un archivo .env: configura a través del bloque env de tu cliente MCP (o el entorno del sistema operativo). Ejemplo para Claude Desktop / Claude Code (.mcp.json o claude_desktop_config.json):
{
"mcpServers": {
"chartbrew": {
"command": "/absolute/path/to/chartbrew-mcp-darwin-arm64",
"env": {
"CHARTBREW_API_KEY": "your-api-key",
"CHARTBREW_API_BASE_URL": "https://api.chartbrew.com",
"CHARTBREW_TOOL_MODE": "restricted"
}
}
}
}
Compila los binarios tú mismo
Desde un checkout, instala Bun (el compilador) y luego:
npm install
npm run build:bin # writes binaries to dist-bin/
La configuración completa, los comandos de instalación de Bun y la advertencia sobre la compilación cruzada en Windows están en CONTRIBUTING.md.
Añadir a un cliente MCP
Después de npm install y npm run build, registra el servidor con tu host MCP. El servidor se ejecuta sobre stdio mediante node dist/index.js. Reemplaza <ABSOLUTE_PATH_TO_MCP_DIR> con la ruta absoluta a este directorio mcp y establece tu clave de API.
Claude Code CLI (claude mcp add)
Si usas Claude Code, puedes registrar el servidor directamente desde la terminal en lugar de editar un archivo de configuración:
claude mcp add chartbrew \
-e CHARTBREW_API_KEY=your-api-key \
-e CHARTBREW_API_BASE_URL=https://api.chartbrew.com \
-e CHARTBREW_TOOL_MODE=restricted \
-- node <ABSOLUTE_PATH_TO_MCP_DIR>/dist/index.js
- Usa
http://localhost:4019paraCHARTBREW_API_BASE_URLen una instancia autoalojada (cambia el puerto si el tuyo difiere). - Añade
-s user(o-s project) para controlar el ámbito en el que se registra el servidor. - Verifica con
claude mcp list; elimina conclaude mcp remove chartbrew.
Claude Desktop / Claude Code (claude_desktop_config.json o .mcp.json)
{
"mcpServers": {
"chartbrew": {
"command": "node",
"args": ["<ABSOLUTE_PATH_TO_MCP_DIR>/dist/index.js"],
"env": {
"CHARTBREW_API_KEY": "your-api-key",
"CHARTBREW_API_BASE_URL": "https://api.chartbrew.com",
"CHARTBREW_TOOL_MODE": "unrestricted"
}
}
}
}
Cursor / VS Code (interfaz de configuración → servidores MCP)
{
"mcpServers": {
"chartbrew": {
"command": "node",
"args": ["<ABSOLUTE_PATH_TO_MCP_DIR>/dist/index.js"],
"env": {
"CHARTBREW_API_KEY": "your-api-key"
}
}
}
}
URL base de la API: usa
https://api.chartbrew.compara una cuenta oficial de Chartbrew cloud. Para una instancia autoalojada, usa tu URL local: por defectohttp://localhost:4019(cambia el puerto si el tuyo difiere).
Notas:
CHARTBREW_API_KEYes obligatorio. Consulta Cómo crear claves de API en Chartbrew.- El host MCP lanza el servidor; no es necesario ejecutarlo manualmente.
- El modo de herramientas predeterminado es
restricted(solo lectura/consulta). EstableceCHARTBREW_TOOL_MODE: "unrestricted"para habilitar también las herramientas de crear/actualizar/eliminar. - Alternativamente, establece las variables de entorno en un archivo
.enven el directoriomcpy omite el bloqueenv.
Herramientas disponibles
| Herramienta | Categoría | Descripción |
|---|---|---|
chartbrew_teams_list | Equipos | Listar equipos disponibles para la clave API autenticada |
chartbrew_teams_get | Equipos | Obtener detalles de un equipo por team_id |
chartbrew_teams_create | Equipos | Crear un nuevo equipo; el propietario se deriva de la clave API autenticada |
chartbrew_teams_update | Equipos | Actualizar un equipo existente por team_id |
chartbrew_connection_providers_list | Conexiones | Listar todos los proveedores de conexión compatibles |
chartbrew_connections_schema_get | Conexiones | Obtener la estructura de esquema para una conexión específica |
chartbrew_connections_list | Conexiones | Listar todas las conexiones en un equipo |
chartbrew_connections_get | Conexiones | Obtener una conexión por connection_id |
chartbrew_connections_test | Conexiones | Ejecutar la prueba de conexión de Chartbrew para una conexión de equipo |
chartbrew_connections_create | Conexiones | Crear una nueva conexión en un equipo |
chartbrew_connections_update | Conexiones | Actualizar una conexión existente |
chartbrew_connections_update_files | Conexiones | Subir archivos SSL CA/cert/key (base64) para una conexión mediante multipart — para autenticación SSL/TLS de PostgreSQL/MySQL |
chartbrew_connections_delete | Conexiones | Eliminar una conexión; opcionalmente eliminar conjuntos de datos vinculados |
chartbrew_datasets_list | Conjuntos de datos | Listar conjuntos de datos para un equipo |
chartbrew_datasets_get | Conjuntos de datos | Obtener un conjunto de datos por dataset_id |
chartbrew_datasets_fetch_data | Conjuntos de datos | Ejecutar una solicitud de conjunto de datos y devolver los datos del conjunto |
chartbrew_datasets_create | Conjuntos de datos | Crear un nuevo conjunto de datos en un equipo |
chartbrew_datasets_quick_create | Conjuntos de datos | Crear un conjunto de datos y todas sus solicitudes de datos en una sola llamada |
chartbrew_datasets_update | Conjuntos de datos | Actualizar un conjunto de datos existente por dataset_id |
chartbrew_datasets_delete | Conjuntos de datos | Eliminar un conjunto de datos |
chartbrew_data_requests_list | Solicitudes de datos | Listar solicitudes de datos para un conjunto de datos |
chartbrew_data_requests_run | Solicitudes de datos | Ejecutar una solicitud de datos de un conjunto de datos |
chartbrew_dashboards_list | Paneles | Listar paneles para un equipo |
chartbrew_dashboards_get | Paneles | Obtener detalles del panel por project_id |
chartbrew_dashboards_create | Paneles | Crear un nuevo panel (Proyecto); privado por defecto |
chartbrew_dashboards_update | Paneles | Actualizar un panel existente por project_id |
chartbrew_dashboards_delete | Paneles | Eliminar un panel por project_id |
chartbrew_dashboards_create_share_policy | Paneles | Crear una política de uso compartido para compartir de forma segura mediante URL firmadas |
chartbrew_dashboards_update_share_policy | Paneles | Actualizar una política de uso compartido de panel (params, allow_params, expiración) |
chartbrew_dashboards_delete_share_policy | Paneles | Eliminar una política de uso compartido para un panel |
chartbrew_dashboards_generate_share_token | Paneles | Generar un JWT firmado para la incrustación segura de paneles |
chartbrew_charts_get | Gráficos | Obtener un gráfico por project_id y chart_id |
chartbrew_charts_create | Gráficos | Crear un gráfico dentro de un proyecto de panel |
chartbrew_charts_quick_create | Gráficos | Crear un gráfico y sus configuraciones de conjunto de datos de gráfico en una sola llamada |
chartbrew_chart_dataset_configs_create | Gráficos | Adjuntar un conjunto de datos a un gráfico mediante ChartDatasetConfig |
chartbrew_chart_dataset_configs_update | Gráficos | Actualizar un ChartDatasetConfig existente por cdc_id |
chartbrew_chart_dataset_configs_delete | Gráficos | Eliminar un ChartDatasetConfig por cdc_id |
chartbrew_charts_query | Gráficos | Ejecutar el endpoint de consulta del gráfico y devolver los datos de resultado |
chartbrew_charts_delete | Gráficos | Eliminar un gráfico por project_id y chart_id |
chartbrew_charts_create_share_policy | Gráficos | Crear una política de uso compartido para un gráfico para incrustación segura |
chartbrew_charts_update_share_policy | Gráficos | Actualizar una política de uso compartido de gráfico (params, allow_params, expiración) |
chartbrew_charts_delete_share_policy | Gráficos | Eliminar una política de uso compartido para un gráfico |
chartbrew_charts_generate_share_token | Gráficos | Generar un JWT firmado para la incrustación segura de gráficos |
chartbrew_charts_get_for_sharing | Gráficos | Recuperar un gráfico para incrustación mediante acceso público o token de SharePolicy |
Limitaciones conocidas de la documentación reflejadas en la implementación
- Los tipos de ID son inconsistentes en la documentación (número vs cadena), por lo que las entradas de las herramientas aceptan cadenas.
- Algunos campos obligatorios de payload de creación/actualización no están documentados de forma consistente, por lo que el payload se tipa como objeto flexible.
- La codificación del objeto de consulta de filtros de obtención de conjuntos de datos no está documentada; este servidor envía valores de objeto como cadenas JSON.
- Los esquemas de respuesta de error varían según el endpoint; el analizador maneja tanto los campos error como message cuando están disponibles.





