Skip to main content
Glama
NikGariel

incidentrelay-mcp

by NikGariel

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-mcp

npx автоматически собирает пакет при первом запуске (скрипт prepare компилирует TypeScript), поэтому отдельный шаг сборки не требуется.

Из исходного кода

npm install   # runs the build via the prepare script
npm start

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

Серверу требуется базовый URL IncidentRelay и bearer-токен (JWT-токен доступа или персональный API-токен, созданный в IncidentRelay в разделе Профиль → API-токены, с областями доступа, которые вы хотите разрешить).

Настройка

Переменная окружения

Флаг

Обязателен

По умолчанию

Базовый URL

IR_BASE_URL

--base-url

да

Bearer-токен

IR_TOKEN

--token

да¹

Транспорт

IR_TRANSPORT

--transport

нет

stdio

HTTP-порт

IR_PORT

--port

нет

3000

HTTP-хост

IR_HOST

--host

нет

127.0.0.1

Только чтение

IR_READONLY

--readonly

нет

false

Таймаут запроса (мс)

IR_TIMEOUT_MS

нет

30000

Переопределение URL OpenAPI

IR_OPENAPI_URL

нет

{base}/api/openapi.json

Проверка TLS

IR_VERIFY_TLS

нет

true

¹ Токен необязателен только в том случае, если вы никогда не вызываете операции записи.

При запуске сервер получает {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/mcp

HTTP-транспорт не сохраняет состояние (один сервер на запрос), по умолчанию привязывается к 127.0.0.1 и включает защиту от DNS-rebinding.

Инструменты

Шлюз (покрывает все 279 операций)

Инструмент

Назначение

ir_list_operations

Поиск/вывод списка каталога API по запросу, тегу или методу.

ir_describe_operation

Показать параметры и схему тела запроса одной операции.

ir_call

Выполнить любую операцию по operationId (или method+path).

Типичный сценарий: ir_list_operationsir_describe_operationir_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.

Проектирование и план

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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