incidentrelay-mcp
incidentrelay-mcp
Сервер MCP для IncidentRelay — самостоятельно развертываемое планирование дежурств, маршрутизация оповещений и управление инцидентами.
Он предоставляет MCP-клиентам (Claude Desktop, Claude Code, Cursor, …) весь REST API IncidentRelay (279 операций) через два уровня:
3 инструмента-шлюза, которые делают доступной каждую операцию, на основе собственного OpenAPI-документа сервера.
25 подобранных инструментов, которые оборачивают типовые сценарии дежурств (подтверждение/ разрешение оповещений, инциденты, расписание дежурств, тишины, окна обслуживания) с типизированными и эргономичными входными параметрами.
Сервер никогда не изменяет IncidentRelay. Это чистый REST-клиент, который аутентифицируется с помощью предоставляемого вами bearer-токена.
Запуск
Установка не требуется — запустите через npx (Node.js ≥ 20):
# from GitHub (works today)
IR_BASE_URL=https://incidentrelay.example.com IR_TOKEN=<token> \
npx -y github:NikGariel/IncidentRelay-mcp
# from npm (after the package is published)
IR_BASE_URL=https://incidentrelay.example.com IR_TOKEN=<token> \
npx -y incidentrelay-mcpnpx автоматически собирает пакет при первом запуске (скрипт prepare компилирует
TypeScript), поэтому отдельный шаг сборки не требуется.
Из исходного кода
npm install # runs the build via the prepare script
npm startRelated MCP server: level-mcp
Конфигурация
Серверу требуется базовый URL IncidentRelay и bearer-токен (JWT-токен доступа или персональный API-токен, созданный в IncidentRelay в разделе Профиль → API-токены, с областями доступа, которые вы хотите разрешить).
Настройка | Переменная окружения | Флаг | Обязателен | По умолчанию |
Базовый URL |
|
| да | — |
Bearer-токен |
|
| да¹ | — |
Транспорт |
|
| нет |
|
HTTP-порт |
|
| нет |
|
HTTP-хост |
|
| нет |
|
Только чтение |
|
| нет |
|
Таймаут запроса (мс) |
| — | нет |
|
Переопределение URL OpenAPI |
| — | нет |
|
Проверка TLS |
| — | нет |
|
¹ Токен необязателен только в том случае, если вы никогда не вызываете операции записи.
При запуске сервер получает {IR_BASE_URL}/api/openapi.json (публичная конечная точка)
для построения каталога операций, поэтому он всегда соответствует развернутой
версии IncidentRelay. Если получение не удается, он использует встроенный
снимок и записывает предупреждение в журнал.
Использование с Claude Desktop / Claude Code (stdio)
Добавьте в конфигурацию вашего MCP-клиента (например, claude_desktop_config.json).
Рекомендуется — запускайте предварительно собранный бинарный файл напрямую (запускается менее чем за 0,5 с, поэтому никогда не превышает таймаут запуска клиента):
{
"mcpServers": {
"incidentrelay": {
"command": "node",
"args": ["/absolute/path/to/incidentrelay-mcp/dist/index.js"],
"env": {
"IR_BASE_URL": "https://incidentrelay.example.com",
"IR_TOKEN": "<personal-api-token>"
}
}
}
}Соберите его один раз командой npm install && npm run build (или npm install -g .).
Альтернатива — npx. После публикации в npm:
{ "command": "npx", "args": ["-y", "incidentrelay-mcp"], "env": { "…": "…" } }⚠️ Избегайте
npx -y github:…в конфигурации клиента: при первом запуске он клонирует репозиторий, устанавливает зависимости и компилирует TypeScript, что может превысить таймаут подключения MCP-клиента (~30 с) при холодном кэше. Используйте предварительно собранный бинарный файл (или npm-версию после публикации) для клиента, который запускает сервер по требованию.
Сам сервер запускается мгновенно независимо от сети: он синхронно загружает встроенный снимок OpenAPI, а затем в фоновом режиме обновляет каталог с работающего сервера.
Использование через HTTP (Streamable HTTP)
IR_BASE_URL=https://incidentrelay.example.com IR_TOKEN=... \
npx -y github:NikGariel/IncidentRelay-mcp --transport http --port 3000
# serves MCP at http://127.0.0.1:3000/mcpHTTP-транспорт не сохраняет состояние (один сервер на запрос), по умолчанию
привязывается к 127.0.0.1 и включает защиту от DNS-rebinding.
Инструменты
Шлюз (покрывает все 279 операций)
Инструмент | Назначение |
| Поиск/вывод списка каталога API по запросу, тегу или методу. |
| Показать параметры и схему тела запроса одной операции. |
| Выполнить любую операцию по |
Типичный сценарий: ir_list_operations → ir_describe_operation → ir_call.
Подобранные (типовые сценарии дежурств)
Оповещения: ir_list_alerts, ir_get_alert, ir_ack_alert, ir_resolve_alert,
ir_comment_alert ·
Инциденты: ir_list_incidents, ir_get_incident, ir_create_incident,
ir_add_incident_responder, ir_set_incident_priority ·
Дежурства: ir_who_is_on_call, ir_oncall_health, ir_list_rotations,
ir_create_rotation_override ·
Тишины: ir_list_silences, ir_create_silence, ir_remove_silence ·
Обслуживание: ir_list_maintenance_windows, ir_create_maintenance_window ·
Контекст: ir_list_teams, ir_list_routes, ir_list_channels, ir_whoami ·
Хартбиты: ir_list_heartbeats, ir_send_heartbeat.
Безопасность
Защита подтверждением. Деструктивные операции (
DELETE, а также пути сdisable/remove/delete/reset/regenerate-token/intake-token/cancel/merge/revoke) не выполняются, если вы не передадитеconfirm: true. Без него инструмент возвращает предварительный просмотр (dry-run).Режим только чтения. Установите
IR_READONLY=true, чтобы отклонять все операции, кромеGET, на уровне инструментов.Сокрытие токенов. Bearer-токены удаляются из журналов и сообщений об ошибках.
Безопасность
IR_VERIFY_TLS=false отключает проверку сертификатов TLS для исходящих вызовов
к IncidentRelay. Это делает трафик уязвимым для атак типа man-in-the-middle, и
этот параметр следует использовать только в доверенной сети. Для самозаверяющих
сертификатов self-hosted предпочтительнее добавить CA сервера в ваше хранилище доверия
(или использовать правильно выпущенный сертификат) вместо отключения проверки.
При отключенной проверке сервер выводит предупреждение при запуске.
Разработка
npm test # run the vitest suite
npm run dev # run from source with tsx
npm run build # typecheck + emit dist/ + copy the OpenAPI snapshotПересоздание встроенного снимка OpenAPI: см.
scripts/generate-snapshot.md.
Проектирование и план
Спецификация проекта:
docs/superpowers/specs/2026-08-17-incidentrelay-mcp-design.mdПлан реализации:
docs/superpowers/plans/2026-08-17-incidentrelay-mcp.md
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Unified gateway exposing 150+ tools across all NexGenData MCP servers via one endpoint.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceMCP server for the Rootly incident management platform — alerts, incidents, on-call schedules-
- AlicenseBqualityDmaintenanceMCP server for the Level v2 REST API, enabling management of alerts, automations, devices, groups, tags, updates, and custom fields through typed tools.35MIT
- FlicenseAqualityDmaintenanceAI-powered incident management MCP server that enables investigation, root cause analysis, and response actions for production incidents using mocked data for demo purposes.8-
- FlicenseNot gradedqualityCmaintenanceMCP server for Opsgenie (Atlassian's incident/alert management and on-call platform) exposing the full public Opsgenie REST API as MCP tools.-