Honeybadger

Interactúa con la API de Honeybadger para la monitorización y reporte de errores usando LLMs.

Documentación

Servidor MCP de Honeybadger

Una implementación de servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con la API de Honeybadger. Este servidor permite a los agentes de IA obtener y analizar datos de errores de tus proyectos de Honeybadger.

Descripción general

Este servidor MCP proporciona un puente entre los agentes de IA y el servicio de monitoreo de errores de Honeybadger. Sigue las mejores prácticas establecidas por Anthropic para construir servidores MCP, permitiendo una integración perfecta con cualquier cliente compatible con MCP.

Características

El servidor proporciona dos herramientas esenciales para interactuar con Honeybadger:

  1. list_faults: Lista y filtra fallos de tu proyecto de Honeybadger

    • Busca por consulta de texto
    • Filtra por marcas de tiempo de creación u ocurrencia
    • Ordena por frecuencia o actualidad
    • Pagina los resultados
  2. get_fault_details: Obtén información detallada sobre fallos específicos

    • Filtra avisos por tiempo de creación
    • Pagina a través de los avisos
    • Resultados ordenados por tiempo de creación descendente

Requisitos previos

  • Python 3.10+
  • Clave de API de Honeybadger e ID de proyecto
  • Docker si se ejecuta el servidor MCP como contenedor (recomendado)

Instalación

Usando uv

  1. Instala uv si no lo tienes:

    pip install uv
    
  2. Clona este repositorio:

    git clone https://github.com/bobtista/honeybadger-mcp.git
    cd honeybadger-mcp
    
  3. Instala las dependencias:

    uv pip install -e .
    
  4. Instala las dependencias de desarrollo (opcional):

    uv pip install -e ".[dev]"
    
  5. Crea tu archivo de entorno:

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

Usando Docker (Recomendado)

  1. Construye la imagen de Docker:

    docker build -t honeybadger/mcp --build-arg PORT=8050 .
    
  2. Crea un archivo .env y configura tus variables de entorno

Configuración

Puedes configurar el servidor usando variables de entorno o argumentos de línea de comandos:

OpciónVariable de EntornoArgumento CLIPredeterminadoDescripción
Clave de APIHONEYBADGER_API_KEY--api-keyRequeridoTu clave de API de Honeybadger
ID de ProyectoHONEYBADGER_PROJECT_ID--project-idRequeridoTu ID de proyecto de Honeybadger
TransporteTRANSPORT--transportsseProtocolo de transporte (sse o stdio)
HostHOST--host127.0.0.1Host al que vincularse al usar transporte SSE
PuertoPORT--port8050Puerto para escuchar al usar transporte SSE
Nivel de RegistroLOG_LEVEL--log-levelINFONivel de registro (INFO, DEBUG, etc.)

Ejecutando el Servidor

Ejecutando con uv (Desarrollo)

Transporte SSE (Predeterminado)

# 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

Ejecutando el Paquete Instalado

Transporte SSE (Predeterminado)

# 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

Ejecutar con SSE

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

Usando Stdio

Con stdio, el propio cliente MCP puede iniciar el contenedor del servidor MCP, por lo que no hay nada que ejecutar en este punto.

Integración con Clientes MCP

Configuración SSE

Una vez que tengas el servidor ejecutándose con transporte SSE, puedes conectarte a él usando esta configuración:

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

Configuración de Claude Desktop

Usando Transporte SSE (Recomendado)

Primero, inicia el servidor:

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

Luego agrega a tu configuración de Claude Desktop:

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

Usando Transporte Stdio

Agrega a tu configuración de 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"
      ]
    }
  }
}

Configuración de Docker

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

Ejemplos de Uso de Herramientas

Listar Fallos

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'
})

Obtener Detalles de un Fallo

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)
})

Desarrollo

Ejecutando Pruebas

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

# Run tests
pytest

Calidad del Código

# Run type checker
pyright

# Run linter
ruff check .

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).