incidentrelay-mcp
incidentrelay-mcp
一个 MCP 服务器,用于 IncidentRelay——自托管的值班排班、警报路由和事件管理。
它通过两层将 IncidentRelay 的 完整 REST API(279 个操作) 暴露给 MCP 客户端(Claude Desktop、Claude Code、Cursor、……):
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配置
服务器需要 IncidentRelay 的基础 URL 和一个 bearer 令牌(JWT 访问令牌或在 IncidentRelay 的 个人资料 → API 令牌 下创建的 个人 API 令牌,并具有你想要允许的范围)。
设置 | 环境变量 | 标志 | 必需 | 默认 |
基础 URL |
|
| 是 | — |
Bearer 令牌 |
|
| 是¹ | — |
传输方式 |
|
| 否 |
|
HTTP 端口 |
|
| 否 |
|
HTTP 主机 |
|
| 否 |
|
只读 |
|
| 否 |
|
请求超时(毫秒) |
| — | 否 |
|
OpenAPI URL 覆盖 |
| — | 否 |
|
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 重绑定保护。
工具
网关(覆盖全部 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 会禁用对 IncidentRelay 出站调用的 TLS 证书验证。这会使流量面临中间人攻击,并且只能在受信任的网络上使用。对于自托管的自签名证书,建议将服务器的 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。
设计与计划
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