sentry-mcp-rs

Un servidor MCP rápido y ligero para Sentry, escrito en Rust.

Documentación

sentry-mcp

Crates.io codecov License: MIT

Un servidor MCP rápido y ligero para Sentry, escrito en Rust.

¿Por qué sentry-mcp?

En comparación con el servidor oficial de Node.js:

  • Memoria: 10 veces menos uso de RAM
  • Inicio: arranque en frío instantáneo
  • Disco: un solo binario, sin dependencias de ejecución
  • Tokens: menos herramientas = lista de herramientas más pequeña en contexto

Características

Este servidor MCP proporciona herramientas para interactuar con la API de Sentry:

  • get_issue_details - Recupera información detallada sobre un issue de Sentry, incluyendo metadatos, etiquetas, stacktraces y, opcionalmente, un evento específico
  • get_trace_details - Recupera detalles del trace, incluyendo el árbol de spans e información de tiempos para el análisis de tracing distribuido
  • search_issue_events - Busca eventos dentro de un issue usando la sintaxis de consulta de Sentry

Instalación

Desde crates.io:

cargo install sentry-mcp

Desde GitHub:

cargo install --git https://github.com/utapyngo/sentry-mcp-rs.git

O con mise:

mise use -g github:utapyngo/sentry-mcp-rs

El binario se instalará como sentry-mcp.

Configuración

Variables de entorno requeridas:

  • SENTRY_AUTH_TOKEN - Tu token de autenticación de la API de Sentry
  • SENTRY_HOST - El hostname de tu instancia de Sentry (p. ej., sentry.io)

Opcional:

  • SOCKS_PROXY - URL de proxy SOCKS5 (p. ej., socks5://127.0.0.1:1080)
  • HTTPS_PROXY - URL de proxy HTTPS

Configuración del cliente MCP

Añade a la configuración de tu cliente MCP:

{
  "mcpServers": {
    "sentry": {
      "command": "sentry-mcp",
      "env": {
        "SENTRY_AUTH_TOKEN": "your_token_here",
        "SENTRY_HOST": "sentry.io"
      }
    }
  }
}

O sin instalación usando mise:

{
  "mcpServers": {
    "sentry": {
      "command": "mise",
      "args": ["x", "github:utapyngo/sentry-mcp-rs", "--", "sentry-mcp"],
      "env": {
        "SENTRY_AUTH_TOKEN": "your_token_here",
        "SENTRY_HOST": "sentry.io"
      }
    }
  }
}

Desarrollo

Clona el repositorio y crea un archivo .env:

git clone https://github.com/utapyngo/sentry-mcp-rs.git
cd sentry-mcp-rs
cp .env.example .env
# Edit .env with your credentials

Compila y prueba con MCP Inspector:

cargo build --release
npx @modelcontextprotocol/inspector ./run.sh

O configura el cliente MCP para usar el script:

{
  "mcpServers": {
    "sentry": {
      "command": "/path/to/sentry-mcp-rs/run.sh"
    }
  }
}

Herramientas

get_issue_details

Recupera información detallada sobre un issue específico de Sentry.

Parámetros:

  • issue_url - URL completa del issue de Sentry (alternativa a los parámetros siguientes)
  • organization_slug - Slug de la organización (requerido si no se proporciona issue_url)
  • issue_id - ID del issue como PROJECT-123 o ID numérico (requerido si no se proporciona issue_url)
  • event_id - ID de evento específico para obtener en lugar del más reciente (opcional)

get_trace_details

Recupera detalles del trace para el análisis de tracing distribuido.

Parámetros:

  • organization_slug - Slug de la organización
  • trace_id - ID de trace hexadecimal de 32 caracteres

search_issue_events

Busca eventos dentro de un issue usando la sintaxis de consulta de Sentry.

Parámetros:

  • organization_slug - Slug de la organización
  • issue_id - ID del issue (p. ej., PROJECT-123)
  • query - Consulta de búsqueda opcional de Sentry
  • limit - Máximo de eventos a devolver (por defecto: 10, máximo: 100)
  • sort - Orden de clasificación: newest (por defecto) o oldest