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

Chartbrew MCP Server

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.

Chartbrew Docs

Chartbrew Docs

Demostración

Chartbrew MCP en acción: gestión de recursos de analítica mediante lenguaje natural.

Chartbrew MCP screenshot 1Chartbrew MCP screenshot 2Chartbrew MCP screenshot 3
Chartbrew MCP screenshot 4Chartbrew MCP screenshot 5Chartbrew MCP screenshot 6

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

VariableDescripciónObligatorio
CHARTBREW_API_KEYClave de API de Chartbrew usada para la autenticación con token Bearer
CHARTBREW_API_BASE_URLURL 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_MSTiempo de espera de solicitud en milisegundos para evitar solicitudes colgadasNo (por defecto: 30000)
CHARTBREW_TOOL_MODEModo 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 restrictedNo (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 .env en esta carpeta mcp — copia .env-template a .env y completa los valores. El servidor lo carga automáticamente al iniciarse.
  • El bloque env de la configuración MCP de tu agente de codificación — establece las variables directamente en el objeto env de la entrada del servidor (p. ej., .mcp.json para Claude Code, o la configuración MCP equivalente para Codex, GitHub Copilot, OpenCode, Kimi Code, etc.). Usa esto cuando no quieras un archivo .env local.

Instalación

  1. Cambia al directorio mcp.

  2. Instala las dependencias:

    npm install
    
  3. Compila:

    npm run build
    
  4. 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:

OSx64 (Intel/AMD)arm64 (Apple Silicon / ARM)
Windowschartbrew-mcp-windows-x64.exechartbrew-mcp-windows-arm64.exe
Linuxchartbrew-mcp-linux-x64chartbrew-mcp-linux-arm64
macOSchartbrew-mcp-darwin-x64chartbrew-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 (o arm64), 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:4019 para CHARTBREW_API_BASE_URL en 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 con claude 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.com para una cuenta oficial de Chartbrew cloud. Para una instancia autoalojada, usa tu URL local: por defecto http://localhost:4019 (cambia el puerto si el tuyo difiere).

Notas:

  • CHARTBREW_API_KEY es 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). Establece CHARTBREW_TOOL_MODE: "unrestricted" para habilitar también las herramientas de crear/actualizar/eliminar.
  • Alternativamente, establece las variables de entorno en un archivo .env en el directorio mcp y omite el bloque env.

Herramientas disponibles

HerramientaCategoríaDescripción
chartbrew_teams_listEquiposListar equipos disponibles para la clave API autenticada
chartbrew_teams_getEquiposObtener detalles de un equipo por team_id
chartbrew_teams_createEquiposCrear un nuevo equipo; el propietario se deriva de la clave API autenticada
chartbrew_teams_updateEquiposActualizar un equipo existente por team_id
chartbrew_connection_providers_listConexionesListar todos los proveedores de conexión compatibles
chartbrew_connections_schema_getConexionesObtener la estructura de esquema para una conexión específica
chartbrew_connections_listConexionesListar todas las conexiones en un equipo
chartbrew_connections_getConexionesObtener una conexión por connection_id
chartbrew_connections_testConexionesEjecutar la prueba de conexión de Chartbrew para una conexión de equipo
chartbrew_connections_createConexionesCrear una nueva conexión en un equipo
chartbrew_connections_updateConexionesActualizar una conexión existente
chartbrew_connections_update_filesConexionesSubir archivos SSL CA/cert/key (base64) para una conexión mediante multipart — para autenticación SSL/TLS de PostgreSQL/MySQL
chartbrew_connections_deleteConexionesEliminar una conexión; opcionalmente eliminar conjuntos de datos vinculados
chartbrew_datasets_listConjuntos de datosListar conjuntos de datos para un equipo
chartbrew_datasets_getConjuntos de datosObtener un conjunto de datos por dataset_id
chartbrew_datasets_fetch_dataConjuntos de datosEjecutar una solicitud de conjunto de datos y devolver los datos del conjunto
chartbrew_datasets_createConjuntos de datosCrear un nuevo conjunto de datos en un equipo
chartbrew_datasets_quick_createConjuntos de datosCrear un conjunto de datos y todas sus solicitudes de datos en una sola llamada
chartbrew_datasets_updateConjuntos de datosActualizar un conjunto de datos existente por dataset_id
chartbrew_datasets_deleteConjuntos de datosEliminar un conjunto de datos
chartbrew_data_requests_listSolicitudes de datosListar solicitudes de datos para un conjunto de datos
chartbrew_data_requests_runSolicitudes de datosEjecutar una solicitud de datos de un conjunto de datos
chartbrew_dashboards_listPanelesListar paneles para un equipo
chartbrew_dashboards_getPanelesObtener detalles del panel por project_id
chartbrew_dashboards_createPanelesCrear un nuevo panel (Proyecto); privado por defecto
chartbrew_dashboards_updatePanelesActualizar un panel existente por project_id
chartbrew_dashboards_deletePanelesEliminar un panel por project_id
chartbrew_dashboards_create_share_policyPanelesCrear una política de uso compartido para compartir de forma segura mediante URL firmadas
chartbrew_dashboards_update_share_policyPanelesActualizar una política de uso compartido de panel (params, allow_params, expiración)
chartbrew_dashboards_delete_share_policyPanelesEliminar una política de uso compartido para un panel
chartbrew_dashboards_generate_share_tokenPanelesGenerar un JWT firmado para la incrustación segura de paneles
chartbrew_charts_getGráficosObtener un gráfico por project_id y chart_id
chartbrew_charts_createGráficosCrear un gráfico dentro de un proyecto de panel
chartbrew_charts_quick_createGráficosCrear un gráfico y sus configuraciones de conjunto de datos de gráfico en una sola llamada
chartbrew_chart_dataset_configs_createGráficosAdjuntar un conjunto de datos a un gráfico mediante ChartDatasetConfig
chartbrew_chart_dataset_configs_updateGráficosActualizar un ChartDatasetConfig existente por cdc_id
chartbrew_chart_dataset_configs_deleteGráficosEliminar un ChartDatasetConfig por cdc_id
chartbrew_charts_queryGráficosEjecutar el endpoint de consulta del gráfico y devolver los datos de resultado
chartbrew_charts_deleteGráficosEliminar un gráfico por project_id y chart_id
chartbrew_charts_create_share_policyGráficosCrear una política de uso compartido para un gráfico para incrustación segura
chartbrew_charts_update_share_policyGráficosActualizar una política de uso compartido de gráfico (params, allow_params, expiración)
chartbrew_charts_delete_share_policyGráficosEliminar una política de uso compartido para un gráfico
chartbrew_charts_generate_share_tokenGráficosGenerar un JWT firmado para la incrustación segura de gráficos
chartbrew_charts_get_for_sharingGráficosRecuperar 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.