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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server providing full coverage of the Huly SDK — issues, projects, workspaces, members, and account management.901MIT
- FlicenseNot gradedqualityBmaintenanceHosted, 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 gradedqualityBmaintenanceHosted 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.877MIT
- FlicenseAqualityBmaintenanceA 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
Related MCP Connectors
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for interacting with the Supabase platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fers4t/bugsink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server