bugsink-mcp
bugsink-mcp
Полноценный MCP-сервер для чтения и записи MCP для Bugsink (self-hosted, совместимый с Sentry-протоколом трекинг ошибок), построенный напрямую на основе OpenAPI-схемы /api/canonical/0/.
Он появился потому, что существующий пакет bugsink-mcp на npm оборачивает только часть для чтения API (list/get). Этот же покрывает всю каноническую поверхность API: закрытие, заглушение, переоткрытие и удаление проблем, комментирование, а также создание/обновление команд, проектов и релизов — плюс несколько исправлений по сравнению с оригиналом (см. Исправления по сравнению с оригиналом).
Настройка
Требуется Node.js 18.17+.
В Bugsink перейдите в Account Settings → Auth Tokens и создайте токен.
Добавьте сервер в ваш MCP-клиент.
Claude Code
Однострочник через claude mcp CLI:
claude mcp add bugsink \
-e BUGSINK_URL=https://bugs.example.com \
-e BUGSINK_TOKEN=<your token> \
-- npx -y github:fers4t/bugsink-mcpЭто записывает эквивалент следующего в ~/.claude.json (или передайте --scope project, чтобы записать общий .mcp.json вместо локального пользовательского конфига):
{
"mcpServers": {
"bugsink": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:fers4t/bugsink-mcp"],
"env": {
"BUGSINK_URL": "https://bugs.example.com",
"BUGSINK_TOKEN": "<your token>"
}
}
}
}После этого перезапустите Claude Code (или начните новую сессию) — списки MCP-инструментов загружаются при старте сессии и не подхватят изменение конфига в середине разговора.
Другие MCP-клиенты
Любой клиент, читающий карту mcpServers (Cursor, Windsurf и т.д.), может использовать ту же JSON-форму, что показана выше: укажите command: npx, args: ["-y", "github:fers4t/bugsink-mcp"] и две обязательные переменные окружения.
npx устанавливает напрямую из GitHub (без публикации в npm) и запускает скрипт prepare для компиляции TypeScript при первом использовании, а при последующих запусках использует свой локальный кэш.
Переменные окружения
Переменная | Обязательна | Описание |
| да | Базовый URL вашего экземпляра Bugsink, например |
| да | Личный API-токен (Bearer authorization) |
| нет | Тайм-аут запроса в мс (по умолчанию |
См. .env.example. Никогда не коммитьте реальный токен — сервер читает его только из окружения.
Related MCP server: Sierra Navigator Cloud
Инструменты
Подключение
Инструмент | Описание |
| Проверяет работу URL/токена и сообщает, сколько команд видно |
Команды
Инструмент | Описание |
| Получить список всех команд |
| Получить команду по uuid |
| Создать команду |
| Переименовать команду или изменить её видимость |
Проекты
Инструмент | Описание |
| Список проектов, опционально отфильтрованный по команде |
| Получить проект (включая его DSN), опционально раскрывая команду |
| Создать проект в команде |
| Обновить имя/видимость/флаги оповещений/срок хранения/команду |
Проблемы
Инструмент | Описание |
| Список проблем проекта (сортировка по |
| Получить проблему по UUID или дружественному ID (например, |
| Необратимо удалить проблему и её события |
| Закрыть свою |
| Закрыть, с регрессией, если более поздний релиз сообщит о ней снова |
| Закрыть начиная с текущего последнего релиза |
| Переоткрыть закрытую проблему |
| Заглушить на неопределённый срок |
| Заглушить на N периодов (например, 3 дня) |
| Заглушить до пересечения порога количества событий в период |
| Снять заглушку |
| Добавить комментарий к проблеме |
События
Инструмент | Описание |
| Список событий (включений) проблемы |
| Получить полную информацию о событии, включая теги/контексты/исходный payload |
| Отобразить Markdown-стектрейс для события |
Релизы
Инструмент | Описание |
| Список релизов проекта |
| Получить релиз по UUID |
| Создать релиз (необходим для корректного регресса |
Исправления по сравнению с оригиналом
get_stacktraceна самом деле работает. Эндпоинт Bugsink возвращаетtext/markdown, а не JSON. Оригинальный пакет безусловно вызывалres.json()и выбрасывалUnexpected token '#', "# TypeError"... is not valid JSONпри каждом вызове. Этот сервер читает этот эндпоинт как текст.Поддержка записи: закрытие/заглушение/переоткрытие/удаление проблем, комментирование и создание/обновление команд, проектов и релизов — ничего из этого read-only оригинал не предоставлял.
Ограниченные тайм-ауты (
AbortSignal.timeout, по умолчанию 15с) на каждый запрос, поэтому зависший upstream не сможет бесконечно повесить MCP-процесс.Безопасные повторы: идемпотентные
GET-запросы получают ограниченный retry с экспоненциальной задержкой и джиттером на502/503/504или сетевой сбой. Мутирующие запросы (POST/PATCH/DELETE) никогда не повторяются автоматически, так как повтор записи, у которой просто потерялся ответ, может привести к дублированию побочных эффектов (например, второго такого же комментария).Валидация входных данных через Zod на каждом аргументе инструмента (числовые ID, UUID, перечисление), поэтому некорректные данные отклоняются локально с понятным сообщением, а не долетают до API.
Без секретов в выводе. В ошибках содержатся HTTP-статус и усечённое тело ответа; значение заголовка
Authorizationникогда не попадает ни в логи, ни в выбрасываемые ошибки.
Замечания по безопасности
Это локальный процесс stdio — он не открывает сетевой слушатель. Управление доступом определяется тем, что даёт ваш MCP-клиент, а также владением
BUGSINK_TOKEN.Вся диагностика уходит только в
stderr;stdoutзарезервирован для потока протокола JSON-RPC.BUGSINK_URLдолжен бытьhttp:илиhttps:; обычный HTTP на нелокальный хост печатает предупреждение (ваш токен будет отправлен без шифрования), но не блокируется — для поддержки внутренних сетей.Относитесь к
BUGSINK_TOKENкак к любому другому секрету: держите его вне системы контроля версий, перевыпускайте его в Bugsink при утечке и ограничивайте до минимально привилегированного пользователя.
Разработка
npm install # installs deps and runs the TypeScript build (prepare script)
npm run typecheck
npm run build # compile src/ -> dist/
npm run dev # watch modeЛицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
MCP server for Riveter's enrichment, scraping, and monitoring API
MCP server for Autumn — read customers, plans, balances & invoices; track usage and attach plans.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server providing full coverage of the Huly SDK — issues, projects, workspaces, members, and account management.351 npm1MIT
- FlicenseNot gradedqualityCmaintenanceHosted, OAuth-secured MCP server that drives the Sierra Interactive real-estate admin backend, enabling reads, guarded writes, and identity-locked deletes over HTTP without a browser.-
- AlicenseNot gradedqualityDmaintenanceHosted MCP server that exposes your self-hosted Bugsink error tracker as tools for LLMs, enabling issue management, release tracking, and stacktrace retrieval via chat prompts.181 npmMIT
- FlicenseAqualityCmaintenanceA lightweight MCP server for tracking bugs and tasks across coding sessions, providing persistent SQLite-backed storage and six tools for logging, inspecting, updating, resolving, and deleting bugs.61-