Skip to main content
Glama
jilio

Telebugs MCP Server

by jilio

MCP-сервер Telebugs

MCP-сервер (Model Context Protocol), позволяющий ИИ-агентам извлекать отчеты об ошибках из Telebugs, self-hosted альтернативы Sentry.

Архитектура

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

Related MCP server: otel-mcp

Возможности

  • Прямой доступ к базе данных — чтение и запись в базу данных SQLite Telebugs

  • Аутентификация MCP OAuth — OAuth-поток через браузер, поддерживаемый пользователями Telebugs

  • Аутентификация по API-ключу — по-прежнему принимает существующие API-ключи пользователей Telebugs в качестве токенов носителя (bearer tokens)

  • Контроль доступа — пользователи видят только те проекты, в которых они состоят

  • Транспорт SSE — позволяет удаленные подключения через Claude Desktop

  • Эффективность токенов — компактный JSON, по умолчанию отображаются только открытые ошибки

  • Одиночный бинарный файл — кросс-компиляция для Linux, отсутствие зависимостей среды выполнения

Доступные инструменты

Инструмент

Описание

list_projects

Список всех доступных проектов

list_error_groups

Список дедуплицированных групп ошибок с фильтрацией

get_error_group

Получение подробной информации о конкретной группе ошибок

list_reports

Список отдельных случаев возникновения ошибок

get_report

Получение полного отчета с трассировкой, «хлебными крошками» и контекстом

get_statistics

Получение агрегированной статистики ошибок

search_errors

Полнотекстовый поиск по ошибкам

list_releases

Список всех релизов проекта с количеством артефактов

list_release_artifacts

Список загруженных артефактов для релиза

get_sourcemap_status

Проверка наличия исходных карт (sourcemaps) для debug ID

resolve_error_group

Разрешить группу ошибок (отметить как исправленную)

unresolve_error_group

Снова открыть разрешенную группу ошибок

mute_error_group

Отключить уведомления для группы ошибок с опциональным сроком действия

unmute_error_group

Включить уведомления для группы ошибок

add_note

Добавить заметку к группе ошибок

delete_note

Удалить заметку из группы ошибок (только для автора)

create_project

Создать новый проект (только для администратора)

update_project

Обновить название или часовой пояс проекта (только для администратора)

delete_project

Мягкое удаление проекта (только для администратора)

get_project_token

Получить токен/DSN проекта для настройки SDK

regenerate_project_token

Пересоздать токен проекта (только для администратора)

add_project_member

Добавить пользователя в проект (только для администратора)

remove_project_member

Удалить пользователя из проекта (только для администратора)

list_project_members

Список участников проекта с ролями

list_platforms

Список доступных платформ для создания проекта

list_error_groups

Параметр

Тип

По умолчанию

Описание

project_id

number

-

Фильтр по ID проекта

status

string

"open"

"open", "resolved", "muted" или "all"

error_type

string

-

Фильтр по точному типу ошибки

error_message

string

-

Фильтр по сообщению об ошибке (поиск подстроки)

from

string

-

Дата начала (ISO 8601)

to

string

-

Дата окончания (ISO 8601)

limit

number

20

Макс. количество результатов (1-100)

offset

number

0

Пропустить N результатов для пагинации

Возвращает total_count для пагинации.

list_reports

Параметр

Тип

По умолчанию

Описание

group_id

number

-

Фильтр по ID группы ошибок

project_id

number

-

Фильтр по ID проекта

from

string

-

Дата начала (ISO 8601)

to

string

-

Дата окончания (ISO 8601)

limit

number

20

Макс. количество результатов (1-100)

offset

number

0

Пропустить N результатов для пагинации

Возвращает total_count для пагинации.

Параметр

Тип

По умолчанию

Описание

query

string

обязательный

Поисковый запрос для полнотекстового поиска

project_id

number

-

Фильтр по ID проекта

limit

number

20

Макс. количество результатов (1-100)

resolve_error_group / unresolve_error_group / unmute_error_group

Эти инструменты требуют только group_id (number).

mute_error_group

Параметр

Тип

По умолчанию

Описание

group_id

number

обязательный

ID группы ошибок

muted_until

string

-

Опциональная дата в формате ISO 8601, до которой группа будет отключена

add_note

Параметр

Тип

По умолчанию

Описание

group_id

number

обязательный

ID группы ошибок

content

string

обязательный

Содержимое заметки

delete_note

Параметр

Тип

По умолчанию

Описание

group_id

number

обязательный

ID группы ошибок

note_id

number

обязательный

ID заметки для удаления

create_project (только для администратора)

Параметр

Тип

По умолчанию

Описание

name

string

обязательный

Название проекта (уникальное)

platform

string

обязательный

Название платформы — используйте list_platforms для просмотра вариантов

timezone

string

"UTC"

Часовой пояс проекта (например, "America/New_York")

update_project (только для администратора)

Параметр

Тип

По умолчанию

Описание

project_id

number

обязательный

ID проекта для обновления

name

string

-

Новое название проекта

timezone

string

-

Новый часовой пояс

delete_project / regenerate_project_token (только для администратора)

Эти инструменты требуют только project_id (number).

add_project_member / remove_project_member (только для администратора)

Параметр

Тип

По умолчанию

Описание

project_id

number

обязательный

ID проекта

user_id

number

обязательный

ID пользователя для добавления/удаления

get_project_token / list_project_members

Эти инструменты требуют только project_id (number).

list_platforms

Параметры отсутствуют. Возвращает все доступные названия платформ.

Установка

cd telebugs-mcp
bun install

Сборка

# Build for current platform
bun run build

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

Конфигурация

Переменная

Описание

По умолчанию

TELEBUGS_DB_PATH

Путь к базе данных SQLite Telebugs

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

PORT

HTTP-порт для прослушивания

3100

MCP_BASE_URL

Публичный базовый URL для метаданных OAuth и редиректов

определяется из запроса

OAUTH_ACCESS_TOKEN_TTL_SECONDS

Время жизни токенов доступа MCP OAuth

43200

TELEBUGS_SECRET_KEY_BASE

secret_key_base для Rails в Telebugs, требуется для принятия ссылок входа Telebugs

не задано

Локальный запуск

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

Развертывание

Одиночный бинарный файл

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

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

Служба systemd

Скопируйте telebugs-mcp.service в /etc/systemd/system/:

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

Проверьте статус:

systemctl status telebugs-mcp

Обратный прокси-сервер Nginx (опционально)

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

Конфигурация Claude Desktop

Для MCP-клиентов с поддержкой OAuth настройте только URL сервера. Клиент обнаружит метаданные OAuth, откроет страницу входа в браузере и повторит попытку с выданным токеном носителя:

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

Когда MCP-сервер работает за обратным прокси-сервером, установите MCP_BASE_URL на публичный HTTPS-источник:

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

Страница входа OAuth отображается с помощью React с CSS, сгенерированным Tailwind через плагин Bun. Она соответствует странице входа Telebugs, показывает запрашивающего клиента и источник перенаправления, а также требует явного подтверждения перед выдачей кода авторизации. Она принимает ваш email/пароль от Telebugs, проверяя их по тому же bcrypt users.password_digest, который использует Telebugs. Она также может принимать ссылку для входа в Telebugs из /session/transfers/..., когда задан TELEBUGS_SECRET_KEY_BASE, чтобы MCP-сервер мог получить ключ верификатора active_record/signed_id от Rails и проверить полезную нагрузку подписанного ID.

Если Telebugs настроен с использованием RAILS_MASTER_KEY вместо SECRET_KEY_BASE, прочитайте значение из приложения Telebugs с помощью bin/rails runner 'puts Rails.application.secret_key_base' и передайте его этому серверу как TELEBUGS_SECRET_KEY_BASE.

Для клиентов, которые еще не поддерживают MCP OAuth, статический токен носителя по-прежнему работает. Добавьте его в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

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

Получение вашего API-ключа

  1. Войдите в свой экземпляр Telebugs

  2. Перейдите в Пользователь → Настройки аккаунта → Безопасность

  3. Скопируйте свой API-ключ

Безопасность

  • Операции только для администраторов принудительно ограничены для управления проектами (создание, обновление, удаление, пересоздание токена, членство)

  • Операции записи ограничены изменением статуса ошибок, заметками и управлением проектами

  • Все мутации ограничены членством пользователя в проектах

  • API-ключи проверяются только по активным пользователям

  • Токены доступа OAuth являются кратковременными и хранятся в памяти MCP-сервера

  • Все запросы фильтруются по членству пользователя в проектах

  • Параметризованные запросы (защита от SQL-инъекций)

Проверка работоспособности

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

Лицензия

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