Honeybadger

Interaja com a API do Honeybadger para monitoramento e relatório de erros usando LLMs.

Documentação

Servidor MCP Honeybadger

Uma implementação de servidor Model Context Protocol (MCP) para interagir com a API do Honeybadger. Este servidor permite que agentes de IA busquem e analisem dados de erros dos seus projetos Honeybadger.

Visão Geral

Este servidor MCP fornece uma ponte entre agentes de IA e o serviço de monitoramento de erros Honeybadger. Ele segue as melhores práticas estabelecidas pela Anthropic para construir servidores MCP, permitindo integração perfeita com qualquer cliente compatível com MCP.

Recursos

O servidor fornece duas ferramentas essenciais para interagir com o Honeybadger:

  1. list_faults: Liste e filtre falhas do seu projeto Honeybadger

    • Pesquise por consulta de texto
    • Filtre por timestamps de criação ou ocorrência
    • Ordene por frequência ou recência
    • Pagine os resultados
  2. get_fault_details: Obtenha informações detalhadas sobre falhas específicas

    • Filtre notificações por horário de criação
    • Pagine pelas notificações
    • Resultados ordenados por horário de criação em ordem decrescente

Pré-requisitos

  • Python 3.10+
  • Chave de API Honeybadger e ID do Projeto
  • Docker se estiver executando o servidor MCP como contêiner (recomendado)

Instalação

Usando uv

  1. Instale o uv se você não o tiver:

    pip install uv
    
  2. Clone este repositório:

    git clone https://github.com/bobtista/honeybadger-mcp.git
    cd honeybadger-mcp
    
  3. Instale as dependências:

    uv pip install -e .
    
  4. Instale as dependências de desenvolvimento (opcional):

    uv pip install -e ".[dev]"
    
  5. Crie seu arquivo de ambiente:

    cp .env.example .env
    # Edit .env with your configuration
    

Usando Docker (Recomendado)

  1. Construa a imagem Docker:

    docker build -t honeybadger/mcp --build-arg PORT=8050 .
    
  2. Crie um arquivo .env e configure suas variáveis de ambiente

Configuração

Você pode configurar o servidor usando variáveis de ambiente ou argumentos de linha de comando:

OpçãoVariável de AmbienteArgumento CLIPadrãoDescrição
Chave de APIHONEYBADGER_API_KEY--api-keyObrigatórioSua chave de API Honeybadger
ID do ProjetoHONEYBADGER_PROJECT_ID--project-idObrigatórioSeu ID de projeto Honeybadger
TransporteTRANSPORT--transportsseProtocolo de transporte (sse ou stdio)
HostHOST--host127.0.0.1Host para vincular ao usar transporte SSE
PortaPORT--port8050Porta para escutar ao usar transporte SSE
Nível de LogLOG_LEVEL--log-levelINFONível de registro (INFO, DEBUG, etc.)

Executando o Servidor

Executando com uv (Desenvolvimento)

Transporte SSE (Padrão)

# Using environment variables:
HONEYBADGER_API_KEY=your-key HONEYBADGER_PROJECT_ID=your-project uv run src/honeybadger_mcp_server/server.py

# Using CLI arguments:
uv run src/honeybadger_mcp_server/server.py --api-key your-key --project-id your-project

Usando Stdio

uv run src/honeybadger_mcp_server/server.py --transport stdio --api-key your-key --project-id your-project

Executando Pacote Instalado

Transporte SSE (Padrão)

# Using environment variables:
HONEYBADGER_API_KEY=your-key HONEYBADGER_PROJECT_ID=your-project honeybadger-mcp-server

# Using CLI arguments:
honeybadger-mcp-server --api-key your-key --project-id your-project

Usando Stdio

honeybadger-mcp-server --transport stdio --api-key your-key --project-id your-project

Usando Docker

Executar com SSE

docker run --env-file .env -p 8050:8050 honeybadger/mcp

Usando Stdio

Com stdio, o próprio cliente MCP pode iniciar o contêiner do servidor MCP, então não há nada para executar neste ponto.

Integração com Clientes MCP

Configuração SSE

Depois de ter o servidor em execução com transporte SSE, você pode se conectar a ele usando esta configuração:

{
  "mcpServers": {
    "honeybadger": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

Configuração do Claude Desktop

Usando Transporte SSE (Recomendado)

Primeiro, inicie o servidor:

honeybadger-mcp-server --api-key your-key --project-id your-project

Em seguida, adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "honeybadger": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

Usando Transporte Stdio

Adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "honeybadger": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/honeybadger-mcp",
        "src/honeybadger_mcp_server/server.py",
        "--transport",
        "stdio",
        "--api-key",
        "YOUR-API-KEY",
        "--project-id",
        "YOUR-PROJECT-ID"
      ]
    }
  }
}

Configuração Docker

{
  "mcpServers": {
    "honeybadger": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "honeybadger/mcp",
        "--transport",
        "stdio",
        "--api-key",
        "YOUR-API-KEY",
        "--project-id",
        "YOUR-PROJECT-ID"
      ]
    }
  }
}

Exemplos de Uso das Ferramentas

Listar Falhas

result = await client.call_tool("list_faults", {
    "q": "RuntimeError",           # Optional search term
    "created_after": 1710806400,  # Unix timestamp (2024-03-19T00:00:00Z)
    "occurred_after": 1710806400, # Filter by occurrence time
    "limit": 10,                  # Max 25 results
    "order": "recent"             # 'recent' or 'frequent'
})

Obter Detalhes da Falha

result = await client.call_tool("get_fault_details", {
    "fault_id": "abc123",
    "created_after": 1710806400,  # Unix timestamp
    "created_before": 1710892800, # Optional end time
    "limit": 5                    # Number of notices (max 25)
})

Desenvolvimento

Executando Testes

# Install dev dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

Qualidade do Código

# Run type checker
pyright

# Run linter
ruff check .

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.