mcp-parseable-server
Servidor MCP para a plataforma de observabilidade Parseable
Documentação
mcp-parseable-server - Um servidor MCP Parseable
Este projeto está atualmente em desenvolvimento inicial com foco em dados de log. Feedback e contribuições são bem-vindos.
Os testes foram feitos usando:
- vscode com Github Copilot como agente.
- ferramenta CLI opencode agent
[TOC]
Visão Geral
Este projeto fornece um servidor MCP (Message Context Protocol) para Parseable, permitindo que agentes e ferramentas de IA interajam com streams de dados do Parseable (logs, métricas, traces) usando linguagem natural e chamadas de ferramentas estruturadas.
Recursos
- Listar streams de dados disponíveis no Parseable
- Consultar streams de dados usando SQL
- Obter schema, estatísticas e informações para qualquer stream de dados
- Registro modular de ferramentas MCP para fácil extensão
- Suporta modos MCP HTTP e stdio
- Configuração baseada em variáveis de ambiente e flags
- O servidor MCP retorna respostas em JSON, onde o payload está tanto em formato texto quanto estruturado.
No Parseable, os nomes de dataset e data stream são usados de forma intercambiável, pois os datasets do Parseable são essencialmente streams de dados nomeados. Em todas as descrições de ferramentas, tentamos usar o termo data stream para evitar confusão com o termo dataset, que pode ter significados diferentes em outros contextos.
Limitações
Autenticação
O servidor MCP não implementa nenhum mecanismo de autenticação. Se isso for necessário, use um proxy reverso como nginx ou envoy na frente do servidor MCP para adicionar autenticação e autorização.
Gerenciamento de sessão MCP
O servidor MCP não implementa nenhum gerenciamento de sessão, pois todas as chamadas de ferramentas são stateless. Isso pode mudar no futuro.
Compilação
Certifique-se de ter o Go 1.20+ instalado.
git clone https://github.com/thenodon/mcp-parseable-server
cd mcp-parseable-server
# Build the MCP server binary
go build -o mcp-parseable-server ./cmd/mcp_parseable_server
Execução
Modo HTTP (padrão)
./mcp-parseable-server --listen :9034
O servidor MCP escutará em http://localhost:9034/mcp para solicitações de agentes/ferramentas.
Modo Stdio
./mcp-parseable-server --mode stdio
Este modo é usado para fluxos de trabalho CLI ou agente-a-agente.
Configuração
Você pode configurar a conexão com o Parseable usando variáveis de ambiente ou flags:
PARSEABLE_URLou--parseable-url- URL da instância Parseable (padrão: http://localhost:8000)PARSEABLE_USERNAMEou--parseable-user(padrão: admin)PARSEABLE_PASSWORDou--parseable-pass(padrão: admin)LISTEN_ADDRou--listen- o endereço ao executar o servidor MCP em modo HTTP (padrão: :9034)INSECURE- defina comotruepara pular a verificação TLS (padrão: false)`LOG_LEVEL- defina o nível de log. Níveis suportados: debug, info, warn e error (padrão: info)
Exemplo:
PARSEABLE_URL="http://your-parseable-host:8000" PARSEABLE_USER="admin" PARSEABLE_PASS="admin" ./mcp-parseable-server
Implantação em produção
Para implantação em produção, use um proxy reverso como nginx ou envoy na frente do servidor MCP que gerencie autenticação, autorização e terminação TLS.
Testes
Consulte TESTING.md para um guia completo de testes.
Referência de Ferramentas MCP
1. query_data_stream
Execute uma consulta SQL em um data stream.
- Entradas:
query: string de consulta SQLstreamName: Nome do data streamstartTime: horário de início ISO 8601 (ex.: 2026-01-01T00:00:00+00:00)endTime: horário de término ISO 8601
- Retorna: Resultado da consulta e a contagem de linhas retornadas
2. get_data_streams
Lista todos os data streams disponíveis no Parseable.
- Retorna: Array de objetos de stream com contagem
3. get_data_stream_schema
Obtém o schema de campos para um data stream específico.
- Entradas:
stream: Nome do data stream
- Retorna: Campos e tipos do schema
4. get_data_stream_stats
Obtém estatísticas para um data stream.
- Entradas:
streamName: Nome do data stream
- Retorna: Objeto de estatísticas (veja a descrição da ferramenta para detalhes)
5. get_data_stream_info
Obtém informações para um data stream.
- Entradas:
streamName: Nome do data stream
- Retorna: Objeto de informações (veja a descrição da ferramenta para detalhes)
6. get_about
Obtém informações sobre o Parseable.
- Retorna: Objeto About (veja a descrição da ferramenta para detalhes)
7. get_roles
Obtém as funções do Parseable.
- Retorna: Objeto de funções (veja a descrição da ferramenta para detalhes)
8. get_users
Obtém todos os usuários configurados.
- Retorna: Array de usuários com contagem
Referência de Prompts MCP
O servidor fornece 5 prompts pré-construídos para fluxos de trabalho comuns:
- analyze-errors - Encontrar e analisar logs de erro
- stream-health-check - Realizar avaliação abrangente de saúde
- investigate-field - Aprofundar-se em valores e distribuições de campos
- compare-streams - Comparar métricas entre vários streams
- find-anomalies - Detectar padrões e anomalias incomuns
Para documentação detalhada e exemplos, consulte PROMPTS_GUIDE.md.
Descoberta de Ferramentas
Os agentes podem descobrir todas as ferramentas disponíveis e seus schemas de entrada/saída por meio do protocolo MCP. Cada descrição de ferramenta inclui detalhes sobre os campos retornados e seus significados.
Extensão
Para adicionar novas ferramentas, crie um novo arquivo em tools/, implemente a função de registro e adicione-a a
RegisterParseableTools em tools/register.go.
Solução de Problemas
Problemas de conexão com PARSEABLE_URL
Verifique a conexão com o Parseable:
curl -u admin:<password> http://localhost:8000/api/v1/about
O agente expira em consultas
- Reduza o intervalo de tempo da consulta
- Adicione cláusulas LIMIT às consultas SQL
- Verifique se o Parseable está responsivo
O agente não encontra streams
- Verifique se os streams existem: peça ao agente para "listar todos os streams"
- Verifique se os nomes dos streams correspondem exatamente (sensível a maiúsculas/minúsculas)
- Verifique se o Parseable tem dados nos streams
Respostas vazias de prompt
Verifique se:
- O nome do stream existe e tem dados
- O intervalo de tempo inclui eventos reais
- PARSEABLE_URL, USER, PASS estão corretos
O agente retorna dados incompletos
- Verifique se o intervalo de tempo contém dados
- Verifique se PARSEABLE_USER tem permissões para os streams
- Use os recursos de solução de problemas do agente para depurar
O servidor MCP não inicia
Verifique:
- A porta 9034 está disponível (para o modo HTTP)
- As variáveis de ambiente estão definidas
- A versão do Go é 1.20+ (
go version)
Licença
Este trabalho é licenciado sob a GNU GENERAL PUBLIC LICENSE Versão 3.
Tarefas
- Nenhum recurso está atualmente incluído para uso do agente (os prompts estão implementados).
- Não há ferramentas para entender as configurações do Parseable. É possível, usando a ferramenta
about, entender se é cluster ou standalone, mas nada sobre a configuração.