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 startКонфигурация
Серверу требуется базовый 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 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 Connectors
Hosted MCP server for business-day math, deadline planning, meeting overlap, and SLA calculations.
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
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/NikGariel/IncidentRelay-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server