Bigeye MCP Server
Interaja com a plataforma de monitoramento de qualidade de dados da Bigeye por meio de sua API Datawatch. Suporta autenticação dinâmica por chave de API.
Documentação
Servidor MCP Bigeye
Um servidor MCP (Model Context Protocol) que fornece ferramentas para interagir com a plataforma de Observabilidade de Dados Bigeye.
Pré-requisitos
- Docker (Docker Desktop ou Docker Engine)
Início Rápido
-
Construa a imagem Docker:
./build-docker.sh -
Crie um arquivo
.envcom suas credenciais (veja.env.example):cp .env.example .env # Edit .env with your values -
Inicie o contêiner de longa duração:
./bigeye-mcp.sh start -
Adicione o wrapper à configuração do seu Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.jsonno macOS):{ "mcpServers": { "bigeye": { "command": "/absolute/path/to/mcp-wrapper.sh" } } } -
Reinicie o Claude Desktop.
Obtendo Suas Credenciais
- BIGEYE_API_KEY — Gere no Bigeye em Configurações > Chaves de API
- BIGEYE_BASE_URL — URL da sua instância Bigeye (ex.:
https://app.bigeye.com) - BIGEYE_WORKSPACE_ID — Encontrado na sua URL do Bigeye após
/w/(ex.:https://app.bigeye.com/w/123/→123)
Variáveis de Ambiente Opcionais
- BIGEYE_DEBUG — Defina como
truepara registro de depuração detalhado (padrão:false) - BIGEYE_TELEMETRY — Defina como
falsepara desativar a telemetria anônima de uso (padrão:true). Veja Telemetria.
Telemetria
Para nos ajudar a melhorar o servidor, análises anônimas de uso (nome da ferramenta, duração, sucesso/erro) são enviadas ao Bigeye. Nenhum argumento, resultado ou dado é coletado. Defina BIGEYE_TELEMETRY=false para desativar.
Modos de Contêiner
Contêiner de Longa Duração (Recomendado)
Usa mcp-wrapper.sh + bigeye-mcp.sh com docker compose. O contêiner permanece em execução e o Claude Desktop se conecta via docker exec.
Nota:
mcp-wrapper.shdepende do Docker Compose ler automaticamente o arquivo.envdo diretório do projeto. Certifique-se de que seu arquivo.envesteja no mesmo diretório quedocker-compose.yml.
{
"mcpServers": {
"bigeye": {
"command": "/absolute/path/to/mcp-wrapper.sh"
}
}
}
Contêiner Efêmero
Um contêiner novo é iniciado para cada sessão do Claude Desktop e removido ao final.
{
"mcpServers": {
"bigeye": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "BIGEYE_API_KEY=your_api_key_here",
"-e", "BIGEYE_BASE_URL=https://app.bigeye.com",
"-e", "BIGEYE_WORKSPACE_ID=your_workspace_id_here",
"-e", "BIGEYE_DEBUG=false",
"bigeye-mcp-server:latest"
]
}
}
}
Gerenciamento de Contêiner
O script bigeye-mcp.sh gerencia o contêiner de longa duração:
./bigeye-mcp.sh start # Start the container
./bigeye-mcp.sh stop # Stop the container
./bigeye-mcp.sh restart # Restart the container
./bigeye-mcp.sh status # Show container status
./bigeye-mcp.sh logs # Follow container logs
./bigeye-mcp.sh rebuild # Rebuild image and recreate container
./bigeye-mcp.sh clean # Remove container and volumes
Configuração Multi-Ambiente
Para conectar a várias instâncias Bigeye (ex.: demonstração e produção), crie arquivos de ambiente separados e overrides de compose:
-
Crie arquivos de ambiente para cada instância. Observe que os overrides de compose esperam nomes de variáveis prefixados (
BIGEYE_DEMO_*/BIGEYE_APP_*):.env.demo:BIGEYE_DEMO_API_KEY=your_demo_api_key BIGEYE_DEMO_WORKSPACE_ID=your_demo_workspace_id BIGEYE_DEBUG=false.env.app:BIGEYE_APP_API_KEY=your_app_api_key BIGEYE_APP_WORKSPACE_ID=your_app_workspace_id BIGEYE_DEBUG=false -
Use os overrides de compose específicos do ambiente:
# Demo docker compose -f docker-compose.yml -f docker-compose.demo.yml --env-file .env.demo up -d bigeye-mcp-demo # Production docker compose -f docker-compose.yml -f docker-compose.app.yml --env-file .env.app up -d bigeye-mcp-app -
Adicione ambos à configuração do seu Claude Desktop:
{ "mcpServers": { "bigeye-demo": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "BIGEYE_API_KEY=your_demo_key", "-e", "BIGEYE_BASE_URL=https://demo.bigeye.com", "-e", "BIGEYE_WORKSPACE_ID=your_demo_workspace_id", "bigeye-mcp-server:latest" ] }, "bigeye-app": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "BIGEYE_API_KEY=your_app_key", "-e", "BIGEYE_BASE_URL=https://app.bigeye.com", "-e", "BIGEYE_WORKSPACE_ID=your_app_workspace_id", "bigeye-mcp-server:latest" ] } } }
Ferramentas Disponíveis
Gerenciamento de Problemas
list_issues— Lista problemas de qualidade de dados no workspace (filtre por status, schema ouassignee_ids)get_current_user— Obtém o usuário autenticado (id, e-mail, nome, workspaces); combine comlist_issues(assignee_ids=[id])para encontrar problemas atribuídos a vocêget_issue— Obtém detalhes completos de um único problema pelo ID internosearch_issues— Encontra problemas pelo nome/número de exibição (ex.: "10921")list_related_issues— Lista problemas relacionados a um problema via linhagemlist_table_issues— Lista problemas de qualidade de dados para uma tabela específica por nomeupdate_issue— Atualiza o status, prioridade ou adiciona uma mensagem de timeline a um problemacreate_incident— Cria um incidente mesclando problemas relacionadosdelete_incident_members— Remove problemas de um incidenteget_resolution_steps— Obtém etapas recomendadas de resolução para um problema
Métricas e Qualidade
list_table_metrics— Lista todas as métricas (monitores) configuradas em uma tabelalist_table_level_metrics— Lista tipos de métricas de nível de tabela (vs. nível de coluna)create_metric— Cria uma nova métrica (monitor) em uma tabela com validação, mapeamento de enum e verificações de compatibilidade de tipo de colunaget_table_profile— Obtém relatório de perfil de dados incluindo estatísticas e distribuição de colunascreate_profile_job— Enfileira um novo job de perfilamento de dados para uma tabelaget_profile_job_status— Verifica o status de um job de perfilamento
Varredura de Dados Sensíveis
list_data_classes— Lista categorias de classificação de dados (ex.: "Endereço de E-mail", "SSN dos EUA") com níveis de sensibilidadeget_scan_findings— Obtém resultados de varredura de classificação em nível de coluna mostrando onde dados sensíveis foram detectados
Catálogo de Dados
search_schemas— Pesquisa no catálogo de dados por schemas por nome (retorna ids + warehouse)search_tables— Pesquisa no catálogo de dados por tabelas por nome (retorna ids, schema + warehouse)search_columns— Pesquisa no catálogo de dados por colunas por nome (retorna ids, tipo + tabela pai)
Linhagem de Dados
get_lineage_graph— Obtém o grafo completo de linhagem (upstream/downstream/ambos) a partir de um nó inicialget_lineage_node— Obtém detalhes de um nó de linhagem específicolist_lineage_node_issues— Lista problemas para um nó de linhagem pelo ID do nósearch_lineage_nodes— Encontra IDs de nós de linhagem por padrão de caminho (ex.: "WAREHOUSE/SCHEMA/TABLE")lineage_explore_catalog— Explora tabelas no catálogo do Bigeyelineage_delete_node— Exclui um nó de linhagem personalizado
Análise de Causa Raiz e Impacto
get_upstream_root_causes— Analisa linhagem upstream para identificar causas raiz de problemasget_downstream_impact— Analisa impacto downstream de problemas em um nó de linhagemget_issue_lineage_trace— Rastreia um problema de qualidade de dados de ponta a ponta pela linhagemlist_report_upstream_issues— Lista problemas upstream que afetam um relatório de BI ou dashboard
Rastreamento de Linhagem de Agentes
lineage_track_data_access— Rastreia ativos de dados acessados por um agente de IAlineage_commit_agent— Confirma o acesso rastreado a dados no grafo de linhagem do Bigeyelineage_get_tracking_status— Obtém o status atual do rastreamento de linhagemlineage_clear_tracked_assets— Limpa todos os ativos de dados rastreados sem confirmarlineage_cleanup_agent_edges— Limpa arestas de linhagem antigas para o agente de IA
Dimensões de Dados
list_dimensions— Lista todas as dimensões de qualidade de dados com seus mapeamentos de tipo de métricaget_dimension— Obtém detalhes completos de uma única dimensão por IDcreate_dimension— Cria uma nova Dimensão de Dadosupdate_dimension— Atualiza o nome ou descrição de uma dimensãodelete_dimension— Exclui uma Dimensão de Dadosget_table_dimension_coverage— Analisa lacunas de cobertura de dimensão para uma tabela (recomendado para "o que está faltando em monitoramento?")get_column_dimension_coverage— Analisa cobertura de dimensão para colunas específicas em uma tabela
Tags
list_tags— Lista ou pesquisa tags do workspacecreate_tag— Cria uma nova tag com cor opcionalupdate_tag— Atualiza o nome ou cor de uma tagdelete_tag— Exclui uma tagtag_entity— Aplica uma tag a qualquer entidade (métrica, tabela, coluna, etc.)untag_entity— Remove uma tag de uma entidadelist_entity_tags— Lista todas as tags em uma entidade específica
Glossário de Negócios
list_glossary_terms— Lista ou pesquisa termos do glossário de negócioscreate_glossary_term— Cria um novo termo de glossárioupdate_glossary_term— Atualiza um termo de glossário (add_synonyms acrescenta sem sobrescrever sinônimos existentes)delete_glossary_term— Exclui um termo de glossário e seus links de entidadelink_glossary_term_to_entity— Vincula um termo a uma fonte, schema, tabela ou colunaunlink_glossary_term_from_entity— Remove o link de um termo a uma entidadeget_glossary_term_links— Lista as entidades vinculadas a um termoget_entity_glossary_terms— Lista os termos vinculados a uma entidade
Sistema
get_health_status— Verifica a saúde e conectividade da API do Bigeyelist_resources— Lista todos os recursos MCP disponíveislist_data_sources— Lista todas as fontes de dados/warehouses conectadas ao Bigeye
Recursos e Prompts
Recursos:
bigeye://auth/status— Status atual de autenticaçãobigeye://health— Status de saúde da APIbigeye://config— Configuração atual do servidorbigeye://issues— Todos os problemas do workspace configuradobigeye://issues/active— Problemas ativos com filtragembigeye://issues/recent— Problemas resolvidos ou atualizados recentemente
Prompts:
authentication_flow— Guia para configurar autenticaçãocheck_connection_info— Guia para verificar conexão com a APImerge_issues_example— Exemplos para mesclar problemaslineage_analysis_examples— Exemplos para análise de linhagem
Rastreamento de Linhagem de Agentes
O servidor inclui rastreamento abrangente de linhagem para agentes de IA. Use a ferramenta lineage_track_data_access para registrar ativos de dados acessados durante uma sessão de agente e depois lineage_commit_agent para persistir no grafo de linhagem do Bigeye. Veja as descrições das ferramentas acima para detalhes completos.
Configuração de Desenvolvimento
Para desenvolvimento local sem Docker:
- Instale Python 3.12+
- Crie um ambiente virtual:
python -m venv venv source venv/bin/activate - Instale as dependências:
pip install -r requirements.txt - Defina as variáveis de ambiente:
export BIGEYE_API_KEY="your_api_key" export BIGEYE_BASE_URL="https://app.bigeye.com" export BIGEYE_WORKSPACE_ID="your_workspace_id" - Execute o servidor:
python server.py
Testes
# Run basic container tests
./scripts/test.sh
# Run basic tests + MCP protocol tests
./scripts/test.sh --mcp
# Run MCP protocol tests standalone (with optional --debug)
./scripts/test-mcp-protocol.sh
Veja tests/README.md para detalhes sobre a suíte de testes.
Solução de Problemas
Variáveis de Ambiente Ausentes
- Verifique se seu arquivo
.envou a configuração do Claude Desktop contém todas as variáveis necessárias - Os nomes das variáveis diferenciam maiúsculas de minúsculas
- Reinicie o Claude Desktop após alterações na configuração
Erros de Autenticação
- Verifique se sua chave de API é válida e possui as permissões apropriadas
- O ID do workspace deve ser um número
- A URL da instância não deve ter barra final
Problemas de Conexão
- Verifique se a URL da instância Bigeye está acessível
- Verifique configurações de firewall/proxy
- Ative o modo de depuração:
BIGEYE_DEBUG=true
Contêiner Não Inicia
- Verifique se o Docker está em execução:
docker info - Verifique se a imagem existe:
docker images | grep bigeye - Verifique os logs:
./bigeye-mcp.sh logs
Diretório ~/.bigeye-mcp
O docker-compose.yml monta ~/.bigeye-mcp no contêiner para armazenamento persistente de credenciais. O Docker criará este diretório automaticamente se não existir. Você não precisa colocar nada nele manualmente — é usado internamente pelo servidor.