Skip to main content
Glama
jilio

Telebugs MCP Server

by jilio

Servidor MCP de Telebugs

Un servidor MCP (Model Context Protocol) que permite a los agentes de IA recuperar informes de errores de Telebugs, una alternativa a Sentry autohospedada.

Arquitectura

┌─────────────────┐                           ┌─────────────────────────────────────┐
│  Local Machine  │                           │              Remote VPS             │
│                 │         HTTPS             │                                     │
│  Claude Desktop │ ◄───────────────────────► │  Bun MCP Server   ───►  Telebugs    │
│                 │      (SSE transport)      │     :3100              SQLite DB    │
└─────────────────┘                           └─────────────────────────────────────┘

Related MCP server: otel-mcp

Características

  • Acceso directo a la base de datos - Lee y escribe en la base de datos SQLite de Telebugs

  • Autenticación OAuth de MCP - Flujo de OAuth basado en navegador respaldado por usuarios de Telebugs

  • Autenticación con clave API - Acepta las claves API de usuario de Telebugs existentes como tokens de portador (bearer tokens)

  • Control de acceso - Los usuarios solo ven los proyectos de los que son miembros

  • Transporte SSE - Permite conexiones remotas de Claude Desktop

  • Eficiente en tokens - JSON compacto, por defecto solo muestra errores abiertos

  • Binario único - Compilación cruzada para Linux, sin dependencias de tiempo de ejecución

Herramientas disponibles

Herramienta

Descripción

list_projects

Lista todos los proyectos accesibles

list_error_groups

Lista grupos de errores deduplicados con filtrado

get_error_group

Obtiene detalles de un grupo de errores específico

list_reports

Lista ocurrencias individuales de errores

get_report

Obtiene el informe completo con rastreo, breadcrumbs y contexto

get_statistics

Obtiene estadísticas de errores agregadas

search_errors

Búsqueda de texto completo en errores

list_releases

Lista todas las versiones de un proyecto con recuento de artefactos

list_release_artifacts

Lista los artefactos subidos para una versión

get_sourcemap_status

Comprueba si un ID de depuración tiene sourcemaps disponibles

resolve_error_group

Resuelve un grupo de errores (marcar como corregido)

unresolve_error_group

Reabre un grupo de errores resuelto

mute_error_group

Silencia un grupo de errores con caducidad opcional

unmute_error_group

Reactiva un grupo de errores silenciado

add_note

Añade una nota a un grupo de errores

delete_note

Elimina una nota de un grupo de errores (solo autor)

create_project

Crea un nuevo proyecto (solo administrador)

update_project

Actualiza el nombre o la zona horaria de un proyecto (solo administrador)

delete_project

Elimina lógicamente un proyecto (solo administrador)

get_project_token

Obtiene el token/DSN de un proyecto para la configuración del SDK

regenerate_project_token

Regenera el token de un proyecto (solo administrador)

add_project_member

Añade un usuario a un proyecto (solo administrador)

remove_project_member

Elimina un usuario de un proyecto (solo administrador)

list_project_members

Lista los miembros del proyecto con sus roles

list_platforms

Lista los nombres de plataformas disponibles para la creación de proyectos

list_error_groups

Parámetro

Tipo

Predeterminado

Descripción

project_id

number

-

Filtrar por ID de proyecto

status

string

"open"

"open", "resolved", "muted" o "all"

error_type

string

-

Filtrar por tipo de error exacto

error_message

string

-

Filtrar por mensaje de error (coincidencia de subcadena)

from

string

-

Fecha de inicio (ISO 8601)

to

string

-

Fecha de fin (ISO 8601)

limit

number

20

Resultados máximos (1-100)

offset

number

0

Saltar N resultados para paginación

Devuelve total_count para la paginación.

list_reports

Parámetro

Tipo

Predeterminado

Descripción

group_id

number

-

Filtrar por ID de grupo de errores

project_id

number

-

Filtrar por ID de proyecto

from

string

-

Fecha de inicio (ISO 8601)

to

string

-

Fecha de fin (ISO 8601)

limit

number

20

Resultados máximos (1-100)

offset

number

0

Saltar N resultados para paginación

Devuelve total_count para la paginación.

Parámetro

Tipo

Predeterminado

Descripción

query

string

requerido

Consulta de búsqueda de texto completo

project_id

number

-

Filtrar por ID de proyecto

limit

number

20

Resultados máximos (1-100)

resolve_error_group / unresolve_error_group / unmute_error_group

Estas herramientas solo requieren group_id (number).

mute_error_group

Parámetro

Tipo

Predeterminado

Descripción

group_id

number

requerido

El ID del grupo de errores

muted_until

string

-

Fecha ISO 8601 opcional hasta la cual se silencia el grupo

add_note

Parámetro

Tipo

Predeterminado

Descripción

group_id

number

requerido

El ID del grupo de errores

content

string

requerido

El contenido de la nota

delete_note

Parámetro

Tipo

Predeterminado

Descripción

group_id

number

requerido

El ID del grupo de errores

note_id

number

requerido

El ID de la nota a eliminar

create_project (solo administrador)

Parámetro

Tipo

Predeterminado

Descripción

name

string

requerido

Nombre del proyecto (único)

platform

string

requerido

Nombre de la plataforma: use list_platforms para ver opciones

timezone

string

"UTC"

Zona horaria del proyecto (ej. "America/New_York")

update_project (solo administrador)

Parámetro

Tipo

Predeterminado

Descripción

project_id

number

requerido

El ID del proyecto a actualizar

name

string

-

Nuevo nombre del proyecto

timezone

string

-

Nueva zona horaria

delete_project / regenerate_project_token (solo administrador)

Estas herramientas solo requieren project_id (number).

add_project_member / remove_project_member (solo administrador)

Parámetro

Tipo

Predeterminado

Descripción

project_id

number

requerido

El ID del proyecto

user_id

number

requerido

El ID del usuario a añadir/eliminar

get_project_token / list_project_members

Estas herramientas solo requieren project_id (number).

list_platforms

Sin parámetros. Devuelve todos los nombres de plataformas disponibles.

Instalación

cd telebugs-mcp
bun install

Construcción

# Build for current platform
bun run build

# Build for Linux (for VPS deployment)
bun run build:linux

Configuración

Variable

Descripción

Predeterminado

TELEBUGS_DB_PATH

Ruta a la base de datos SQLite de Telebugs

/var/lib/docker/volumes/telebugs-data/_data/db/production.sqlite3

PORT

Puerto HTTP en el que escuchar

3100

MCP_BASE_URL

URL base pública para metadatos OAuth y redirecciones

inferido de la solicitud

OAUTH_ACCESS_TOKEN_TTL_SECONDS

Tiempo de vida para los tokens de acceso OAuth de MCP

43200

TELEBUGS_SECRET_KEY_BASE

secret_key_base de Telebugs Rails, requerido para aceptar enlaces de inicio de sesión de Telebugs

no establecido

Ejecución local

TELEBUGS_DB_PATH=/path/to/telebugs/storage/db/development.sqlite3 bun run dev

Despliegue

Binario único

# Copy to server
scp telebugs-mcp-linux root@your-server:~/telebugs-mcp-linux

# On server
chmod +x ~/telebugs-mcp-linux
./telebugs-mcp-linux

Servicio systemd

Copie telebugs-mcp.service a /etc/systemd/system/:

cp telebugs-mcp.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable telebugs-mcp
systemctl start telebugs-mcp

Comprobar estado:

systemctl status telebugs-mcp

Proxy inverso Nginx (Opcional)

location /mcp {
    proxy_pass http://127.0.0.1:3100;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # SSE support
    proxy_set_header Connection '';
    proxy_buffering off;
    proxy_cache off;
    chunked_transfer_encoding off;
}

Configuración de Claude Desktop

Para clientes MCP compatibles con OAuth, configure solo la URL del servidor. El cliente descubrirá los metadatos de OAuth, abrirá una página de inicio de sesión en el navegador y volverá a intentar con el token de portador emitido:

{
  "mcpServers": {
    "telebugs": {
      "url": "https://your-server/mcp"
    }
  }
}

Cuando el servidor MCP se ejecuta detrás de un proxy inverso, establezca MCP_BASE_URL al origen HTTPS público:

MCP_BASE_URL=https://your-server bun run start

La página de inicio de sesión OAuth es renderizada por React con CSS generado desde Tailwind por el plugin de Tailwind de Bun. Coincide con la página de inicio de sesión de Telebugs, muestra el cliente solicitante y el origen de redirección, y requiere aprobación explícita antes de emitir un código de autorización. Acepta su correo electrónico/contraseña de Telebugs, verificado contra el mismo users.password_digest de bcrypt utilizado por Telebugs. También puede aceptar un enlace de inicio de sesión de Telebugs desde /session/transfers/... cuando TELEBUGS_SECRET_KEY_BASE está configurado, para que el servidor MCP pueda derivar la clave de verificación active_record/signed_id de Rails y validar el payload del id firmado.

Si Telebugs está configurado con RAILS_MASTER_KEY en lugar de SECRET_KEY_BASE, lea el valor de la aplicación Telebugs con bin/rails runner 'puts Rails.application.secret_key_base' y páselo a este servidor como TELEBUGS_SECRET_KEY_BASE.

Para clientes que aún no admiten MCP OAuth, un token de portador estático sigue funcionando. Añádalo a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "telebugs": {
      "url": "http://your-server:3100/mcp",
      "headers": {
        "Authorization": "Bearer your_telebugs_api_key"
      }
    }
  }
}

Obtención de su clave API

  1. Inicie sesión en su instancia de Telebugs

  2. Vaya a Usuario → Configuración de cuenta → Seguridad

  3. Copie su clave API

Seguridad

  • Operaciones exclusivas para administradores aplicadas para la gestión de proyectos (crear, actualizar, eliminar, regenerar token, membresía)

  • Operaciones de escritura limitadas a cambios de estado de error, notas y gestión de proyectos

  • Todas las mutaciones limitadas a las membresías de proyecto del usuario

  • Claves API validadas solo contra usuarios activos

  • Los tokens de acceso OAuth son de corta duración y se mantienen en memoria por el servidor MCP

  • Todas las consultas filtradas por las membresías de proyecto del usuario

  • Consultas parametrizadas (sin inyección SQL)

Comprobación de estado

curl http://localhost:3100/health
# {"status":"ok"}

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server that gives AI agents access to your application's OpenTelemetry traces for querying, analysis, and debugging.
    5
    7 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for integrating self-hosted Sentry with AI assistants, enabling project and issue listing, issue details with stack traces, and event retrieval.
    7
    7 npm
    1
    MIT