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
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.
Demonstração
Chartbrew MCP em ação — gerenciando recursos de analytics por meio de linguagem natural.
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
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ável | Descrição | Obrigatório |
|---|---|---|
CHARTBREW_API_KEY | Chave de API do Chartbrew usada para autenticação por token Bearer | Sim |
CHARTBREW_API_BASE_URL | URL 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_MS | Tempo limite de solicitação em milissegundos para evitar solicitações pendentes | Não (padrão: 30000) |
CHARTBREW_TOOL_MODE | Modo 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 restricted | Nã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
.envnesta pastamcp— copie.env-templatepara.enve preencha os valores. O servidor o carrega automaticamente na inicialização. - O bloco
envda configuração MCP do seu agente de codificação — defina as variáveis diretamente no objetoenvda entrada do servidor (ex.:.mcp.jsonpara 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.envlocal.
Instalação
-
Mude o diretório para
mcp. -
Instale as dependências:
npm install -
Compile:
npm run build -
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:
| SO | 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 |
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(ouarm64), 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:4019paraCHARTBREW_API_BASE_URLem 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 comclaude 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.compara uma conta oficial Chartbrew na nuvem. Para uma instância auto-hospedada, use sua URL local — padrãohttp://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). DefinaCHARTBREW_TOOL_MODE: "unrestricted"para também habilitar ferramentas de criar/atualizar/excluir. - Alternativamente, defina as variáveis de ambiente em um arquivo
.envno diretóriomcpe omita o blocoenv.
Ferramentas Disponíveis
| Ferramenta | Categoria | Descrição |
|---|---|---|
chartbrew_teams_list | Times | Lista os times disponíveis para a chave de API autenticada |
chartbrew_teams_get | Times | Obtém detalhes de um time pelo team_id |
chartbrew_teams_create | Times | Cria um novo time; o proprietário é derivado da chave de API autenticada |
chartbrew_teams_update | Times | Atualiza um time existente pelo team_id |
chartbrew_connection_providers_list | Conexões | Lista todos os provedores de conexão suportados |
chartbrew_connections_schema_get | Conexões | Obtém a estrutura de esquema para uma conexão específica |
chartbrew_connections_list | Conexões | Lista todas as conexões de um time |
chartbrew_connections_get | Conexões | Obtém uma conexão pelo connection_id |
chartbrew_connections_test | Conexões | Executa o teste de conexão do Chartbrew para uma conexão do time |
chartbrew_connections_create | Conexões | Cria uma nova conexão em um time |
chartbrew_connections_update | Conexões | Atualiza uma conexão existente |
chartbrew_connections_update_files | Conexões | Envia arquivos SSL CA/cert/chave (base64) para uma conexão via multipart — para autenticação SSL/TLS PostgreSQL/MySQL |
chartbrew_connections_delete | Conexões | Exclui uma conexão; opcionalmente remove conjuntos de dados vinculados |
chartbrew_datasets_list | Conjuntos de dados | Lista conjuntos de dados de um time |
chartbrew_datasets_get | Conjuntos de dados | Obtém um conjunto de dados pelo dataset_id |
chartbrew_datasets_fetch_data | Conjuntos de dados | Executa uma solicitação de conjunto de dados e retorna os dados do conjunto |
chartbrew_datasets_create | Conjuntos de dados | Cria um novo conjunto de dados em um time |
chartbrew_datasets_quick_create | Conjuntos de dados | Cria um conjunto de dados e todas as suas solicitações de dados em uma única chamada |
chartbrew_datasets_update | Conjuntos de dados | Atualiza um conjunto de dados existente pelo dataset_id |
chartbrew_datasets_delete | Conjuntos de dados | Exclui um conjunto de dados |
chartbrew_data_requests_list | Solicitações de dados | Lista solicitações de dados para um conjunto de dados |
chartbrew_data_requests_run | Solicitações de dados | Executa uma solicitação de dados de um conjunto de dados |
chartbrew_dashboards_list | Painéis | Lista painéis de um time |
chartbrew_dashboards_get | Painéis | Obtém detalhes do painel pelo project_id |
chartbrew_dashboards_create | Painéis | Cria um novo painel (Projeto); privado por padrão |
chartbrew_dashboards_update | Painéis | Atualiza um painel existente pelo project_id |
chartbrew_dashboards_delete | Painéis | Exclui um painel pelo project_id |
chartbrew_dashboards_create_share_policy | Painéis | Cria uma política de compartilhamento para compartilhamento seguro via URLs assinadas |
chartbrew_dashboards_update_share_policy | Painéis | Atualiza uma política de compartilhamento de painel (parâmetros, allow_params, expiração) |
chartbrew_dashboards_delete_share_policy | Painéis | Exclui uma política de compartilhamento para um painel |
chartbrew_dashboards_generate_share_token | Painéis | Gera um JWT assinado para incorporação segura de painel |
chartbrew_charts_get | Gráficos | Obtém um gráfico pelo project_id e chart_id |
chartbrew_charts_create | Gráficos | Cria um gráfico dentro de um projeto de painel |
chartbrew_charts_quick_create | Gráficos | Cria um gráfico e suas configurações de conjunto de dados do gráfico em uma única chamada |
chartbrew_chart_dataset_configs_create | Gráficos | Anexa um conjunto de dados a um gráfico via ChartDatasetConfig |
chartbrew_chart_dataset_configs_update | Gráficos | Atualiza um ChartDatasetConfig existente pelo cdc_id |
chartbrew_chart_dataset_configs_delete | Gráficos | Exclui um ChartDatasetConfig pelo cdc_id |
chartbrew_charts_query | Gráficos | Executa o endpoint de consulta do gráfico e retorna os dados de resultado |
chartbrew_charts_delete | Gráficos | Exclui um gráfico pelo project_id e chart_id |
chartbrew_charts_create_share_policy | Gráficos | Cria uma política de compartilhamento para um gráfico para incorporação segura |
chartbrew_charts_update_share_policy | Gráficos | Atualiza uma política de compartilhamento de gráfico (parâmetros, allow_params, expiração) |
chartbrew_charts_delete_share_policy | Gráficos | Exclui uma política de compartilhamento para um gráfico |
chartbrew_charts_generate_share_token | Gráficos | Gera um JWT assinado para incorporação segura de gráfico |
chartbrew_charts_get_for_sharing | Gráficos | Recupera 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.





