Chartbrew MCP

Chartbrew + agentes de IA. Servidor MCP que expõe a API documentada do Chartbrew: equipes, conexões, conjuntos de dados, painéis, gráficos, consultas ao vivo e incorporação segura. TypeScript · stdio · modos de ferramenta restritos/irrestritos.

Documentação

Chartbrew MCP Server

O servidor Chartbrew MCP expõe a API documentada do Chartbrew para agentes de codificação de IA e clientes compatíveis com MCP — permitindo que eles listem e inspecionem equipes, conexões, conjuntos de dados, dashboards e gráficos, executem consultas ao vivo, busquem dados, gerenciem políticas/tokens de compartilhamento para incorporação segura e criem ou atualizem recursos, tudo por meio de linguagem natural.

Servidor Chartbrew MCP

Servidor MCP em TypeScript construído sobre o SDK oficial do MCP para endpoints documentados da API do Chartbrew.

Chartbrew Docs

Chartbrew Docs

Demonstração

Chartbrew MCP em ação — gerenciando recursos de analytics por meio de linguagem natural.

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

Pré-requisitos

  • Node.js e npm instalados (usados para instalar dependências e compilar o servidor).
  • Uma chave de API do Chartbrew — crie uma na sua conta Chartbrew (nuvem ou auto-hospedada). Consulte Como criar chaves de API no Chartbrew.
  • Para uma instância Chartbrew auto-hospedada, a URL base da API dessa instância (padrão http://localhost:4019).
  • Um cliente compatível com MCP para hospedar o servidor (ex.: Claude Code, Claude Desktop, Cursor, VS Code, Codex, GitHub Copilot, OpenCode, Kimi Code).

Escopo

Este servidor implementa apenas operações documentadas na referência oficial da API do Chartbrew e evita comportamentos não documentados.

Recursos implementados:

  • Equipes: listar, obter
  • Conexões: listar, obter, testar, criar, atualizar, excluir
  • Conjuntos de dados: listar, obter, buscar dados, criar, atualizar, excluir
  • Solicitações de dados: listar, executar
  • Dashboards (projetos): listar, obter, criar, atualizar, excluir
  • Gráficos: obter, criar, consultar, excluir

Não implementado nesta versão:

  • Endpoints de criação/atualização de vinculação de variáveis

Estes podem ser adicionados posteriormente, se necessário.

Autenticação

A documentação da API do Chartbrew especifica autenticação por token Bearer.

Cabeçalho obrigatório usado por este servidor:

  • Authorization: Bearer <CHARTBREW_API_KEY>

Opções de Configuração

VariávelDescriçãoObrigatório
CHARTBREW_API_KEYChave de API do Chartbrew usada para autenticação por token BearerSim
CHARTBREW_API_BASE_URLURL base da API. Use https://api.chartbrew.com para uma conta oficial Chartbrew na nuvem, ou a URL da sua instância auto-hospedada (padrão http://localhost:4019; altere a porta se a sua for diferente)Não (padrão: https://api.chartbrew.com)
CHARTBREW_REQUEST_TIMEOUT_MSTempo limite de solicitação em milissegundos para evitar solicitações pendentesNão (padrão: 30000)
CHARTBREW_TOOL_MODEModo de exposição de ferramentas. Valores permitidos: restricted, unrestricted. Se não definido ou definido para qualquer valor diferente de unrestricted, o servidor executa no modo restrictedNão (padrão: restricted)

Comportamento do modo de ferramentas:

  • irrestrito: todas as ferramentas implementadas estão disponíveis.
  • restrito: apenas ferramentas de recuperação/consulta de dados estão disponíveis (listar/obter/buscar/consultar/executar/testar). Ferramentas de criar/atualizar/excluir estão desativadas.

Você pode fornecer esses valores de duas maneiras (escolha uma):

  • Arquivo .env nesta pasta mcp — copie .env-template para .env e preencha os valores. O servidor o carrega automaticamente na inicialização.
  • O bloco env da configuração MCP do seu agente de codificação — defina as variáveis diretamente no objeto env da entrada do servidor (ex.: .mcp.json para Claude Code, ou a configuração MCP equivalente para Codex, GitHub Copilot, OpenCode, Kimi Code, etc.). Use esta opção quando não quiser um arquivo .env local.

Instalação

  1. Mude o diretório para mcp.

  2. Instale as dependências:

    npm install
    
  3. Compile:

    npm run build
    
  4. Execute

npm start

O servidor usa transporte stdio e deve ser iniciado por um host cliente MCP.

Binário autônomo (sem necessidade de Node.js)

Prefere não instalar o Node.js? Baixe um binário pré-compilado da página Releases e execute-o diretamente. Os binários são fornecidos para:

SOx64 (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

Configuração:

Os releases incluem binários brutos e arquivos compactados (.zip para Windows, .tar.gz para Linux/macOS) — baixe o arquivo compactado para um download menor e depois extraia-o.

  • Windows: baixe chartbrew-mcp-windows-x64.zip (ou arm64), extraia, execute o .exe.
  • macOS / Linux: baixe, por exemplo, chartbrew-mcp-darwin-arm64.tar.gz, extraia e torne-o executável uma vez: chmod +x chartbrew-mcp-darwin-arm64
  • Gatekeeper do macOS: se o macOS bloquear o binário não assinado, remova o atributo de quarentena: xattr -d com.apple.quarantine chartbrew-mcp-darwin-arm64

Você não precisa de um arquivo .env — defina a configuração por meio do bloco env do seu cliente MCP (ou das variáveis de ambiente do SO). Exemplo para Claude Desktop / Claude Code (.mcp.json ou 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"
      }
    }
  }
}

Compile os binários você mesmo

A partir de um checkout, instale Bun (o compilador) e depois:

npm install
npm run build:bin   # writes binaries to dist-bin/

Configuração completa, comandos de instalação do Bun e a ressalva de compilação cruzada para Windows estão em CONTRIBUTING.md.

Adicionar a um cliente MCP

Após npm install e npm run build, registre o servidor no seu host MCP. O servidor executa via stdio por meio de node dist/index.js. Substitua <ABSOLUTE_PATH_TO_MCP_DIR> pelo caminho absoluto para este diretório mcp e defina sua chave de API.

Claude Code CLI (claude mcp add)

Se você usa Claude Code, pode registrar o servidor diretamente do terminal em vez de editar um arquivo de configuração:

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
  • Use http://localhost:4019 para CHARTBREW_API_BASE_URL em uma instância auto-hospedada (altere a porta se a sua for diferente).
  • Adicione -s user (ou -s project) para controlar o escopo em que o servidor é registrado.
  • Verifique com claude mcp list; remova com claude mcp remove chartbrew.

Claude Desktop / Claude Code (claude_desktop_config.json ou .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 (interface de configurações → servidores MCP)

{
  "mcpServers": {
    "chartbrew": {
      "command": "node",
      "args": ["<ABSOLUTE_PATH_TO_MCP_DIR>/dist/index.js"],
      "env": {
        "CHARTBREW_API_KEY": "your-api-key"
      }
    }
  }
}

URL base da API: use https://api.chartbrew.com para uma conta oficial Chartbrew na nuvem. Para uma instância auto-hospedada, use sua URL local — padrão http://localhost:4019 (altere a porta se a sua for diferente).

Observações:

  • CHARTBREW_API_KEY é obrigatório. Consulte Como criar chaves de API no Chartbrew.
  • O host MCP inicia o servidor; ele não precisa ser executado manualmente.
  • O modo de ferramentas padrão é restricted (somente leitura/consulta). Defina CHARTBREW_TOOL_MODE: "unrestricted" para também habilitar ferramentas de criar/atualizar/excluir.
  • Alternativamente, defina as variáveis de ambiente em um arquivo .env no diretório mcp e omita o bloco env.

Ferramentas Disponíveis

FerramentaCategoriaDescrição
chartbrew_teams_listTimesLista os times disponíveis para a chave de API autenticada
chartbrew_teams_getTimesObtém detalhes de um time pelo team_id
chartbrew_teams_createTimesCria um novo time; o proprietário é derivado da chave de API autenticada
chartbrew_teams_updateTimesAtualiza um time existente pelo team_id
chartbrew_connection_providers_listConexõesLista todos os provedores de conexão suportados
chartbrew_connections_schema_getConexõesObtém a estrutura de esquema para uma conexão específica
chartbrew_connections_listConexõesLista todas as conexões de um time
chartbrew_connections_getConexõesObtém uma conexão pelo connection_id
chartbrew_connections_testConexõesExecuta o teste de conexão do Chartbrew para uma conexão do time
chartbrew_connections_createConexõesCria uma nova conexão em um time
chartbrew_connections_updateConexõesAtualiza uma conexão existente
chartbrew_connections_update_filesConexõesEnvia arquivos SSL CA/cert/chave (base64) para uma conexão via multipart — para autenticação SSL/TLS PostgreSQL/MySQL
chartbrew_connections_deleteConexõesExclui uma conexão; opcionalmente remove conjuntos de dados vinculados
chartbrew_datasets_listConjuntos de dadosLista conjuntos de dados de um time
chartbrew_datasets_getConjuntos de dadosObtém um conjunto de dados pelo dataset_id
chartbrew_datasets_fetch_dataConjuntos de dadosExecuta uma solicitação de conjunto de dados e retorna os dados do conjunto
chartbrew_datasets_createConjuntos de dadosCria um novo conjunto de dados em um time
chartbrew_datasets_quick_createConjuntos de dadosCria um conjunto de dados e todas as suas solicitações de dados em uma única chamada
chartbrew_datasets_updateConjuntos de dadosAtualiza um conjunto de dados existente pelo dataset_id
chartbrew_datasets_deleteConjuntos de dadosExclui um conjunto de dados
chartbrew_data_requests_listSolicitações de dadosLista solicitações de dados para um conjunto de dados
chartbrew_data_requests_runSolicitações de dadosExecuta uma solicitação de dados de um conjunto de dados
chartbrew_dashboards_listPainéisLista painéis de um time
chartbrew_dashboards_getPainéisObtém detalhes do painel pelo project_id
chartbrew_dashboards_createPainéisCria um novo painel (Projeto); privado por padrão
chartbrew_dashboards_updatePainéisAtualiza um painel existente pelo project_id
chartbrew_dashboards_deletePainéisExclui um painel pelo project_id
chartbrew_dashboards_create_share_policyPainéisCria uma política de compartilhamento para compartilhamento seguro via URLs assinadas
chartbrew_dashboards_update_share_policyPainéisAtualiza uma política de compartilhamento de painel (parâmetros, allow_params, expiração)
chartbrew_dashboards_delete_share_policyPainéisExclui uma política de compartilhamento para um painel
chartbrew_dashboards_generate_share_tokenPainéisGera um JWT assinado para incorporação segura de painel
chartbrew_charts_getGráficosObtém um gráfico pelo project_id e chart_id
chartbrew_charts_createGráficosCria um gráfico dentro de um projeto de painel
chartbrew_charts_quick_createGráficosCria um gráfico e suas configurações de conjunto de dados do gráfico em uma única chamada
chartbrew_chart_dataset_configs_createGráficosAnexa um conjunto de dados a um gráfico via ChartDatasetConfig
chartbrew_chart_dataset_configs_updateGráficosAtualiza um ChartDatasetConfig existente pelo cdc_id
chartbrew_chart_dataset_configs_deleteGráficosExclui um ChartDatasetConfig pelo cdc_id
chartbrew_charts_queryGráficosExecuta o endpoint de consulta do gráfico e retorna os dados de resultado
chartbrew_charts_deleteGráficosExclui um gráfico pelo project_id e chart_id
chartbrew_charts_create_share_policyGráficosCria uma política de compartilhamento para um gráfico para incorporação segura
chartbrew_charts_update_share_policyGráficosAtualiza uma política de compartilhamento de gráfico (parâmetros, allow_params, expiração)
chartbrew_charts_delete_share_policyGráficosExclui uma política de compartilhamento para um gráfico
chartbrew_charts_generate_share_tokenGráficosGera um JWT assinado para incorporação segura de gráfico
chartbrew_charts_get_for_sharingGráficosRecupera um gráfico para incorporação via acesso público ou token de SharePolicy

Limitações conhecidas da documentação refletidas na implementação

  • Os tipos de ID são inconsistentes na documentação (número vs string), então as entradas das ferramentas aceitam strings.
  • Alguns campos obrigatórios de payload de criação/atualização não são documentados de forma consistente, então o payload é tipado como objeto flexível.
  • A codificação do objeto de consulta dos filtros de busca de conjuntos de dados não é documentada; este servidor envia valores de objeto como strings JSON.
  • Os esquemas de resposta de erro variam por endpoint; o analisador lida com os campos de erro e mensagem quando disponíveis.