关于 WardenPoint
WardenPoint 的 MCP 服务让 Agent 通过账户自身的 OpenAPI 描述配置联系人、通知规则、升级策略和排班。工具定义随安装版本动态读取,并可按名称筛选。
主要功能
- 01管理联系人、群组和通知规则
- 02配置升级策略与值班排班
- 03设置告警来源与路由规则
- 04按 OpenAPI 描述生成工具
- 05筛选提供给 Agent 的工具
适用场景
- 01配置值班人员和升级流程
- 02调整告警来源及通知路由
- 03让 Agent 解读现有账户配置
MCP 相关
这是一个通过 stdio 提供工具的 MCP 服务。它从 WardenPoint 安装实例的 OpenAPI 描述生成工具,并调用该实例的 API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @wardenpoint/mcp-serverWARDENPOINT_BASE_URLOrigin of your WardenPoint installation, without a trailing slash and without /api/v1 — e.g. https://wardenpoint.com. The server reads the API description from it at startup, so the tools always match the version you actually run.WARDENPOINT_API_TOKEN密钥A company API key from Dashboard → Integrations → API keys. Abilities are chosen when you issue it; read-only is a good place to start. Not needed for --list-tools.WARDENPOINT_TIMEOUT_MSPer-request timeout in milliseconds. Defaults to 30000.WARDENPOINT_ALLOW_INSECURE_TLSSet to 1 to skip certificate verification. Development stands only — never against production.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
WardenPoint MCP 服务
一个 MCP 服务,可让 Agent 配置 WardenPoint 账户——收件人、联系人、群组、 通知规则、升级策略、值班安排、告警来源集成、路由规则和电话服务—— 而无需任何人打开仪表板。
它通过 stdio 通信,并为你所用安装版本的 OpenAPI 描述中的每项操作 提供一个工具。
{
"mcpServers": {
"wardenpoint": {
"command": "npx",
"args": ["-y", "@wardenpoint/mcp-server"],
"env": {
"WARDENPOINT_BASE_URL": "https://wardenpoint.com",
"WARDENPOINT_API_TOKEN": "acb_xxxxxxxx.xxxxxxxx"
}
}
}
}
安装到此为止。你的 MCP 客户端会按需启动该服务; 会话之间不会有任何进程运行。
本服务存在的唯一准则
这里不会维护第二份 API 契约。
每项工具——它的名称、文本、参数、参数描述、枚举值和范围,以及它能返回的响应——
都会在启动时从你正在配置的安装实例所提供的
OpenAPI 描述中读取(GET {WARDENPOINT_BASE_URL}/docs)。本软件包不会复述
API 的任何内容。
这是有意为之,也正因如此,工具不会悄然偏离实际 API:
- 安装实例新增的端点会在服务下次启动时显示为工具——无需升级软件包;
- 上游改写描述时,Agent 的指令也会随之改写;
- 未被描述的操作对 Agent 不可见,这是正确的失败方式,也是
--spec-report存在的原因。
软件包内附带的描述,只会反映发布软件包时的现状,而 Agent 实际连接的是你运行的实例。 出于同样的原因,这里没有离线回退:此处的每项工具都是对该安装实例的 HTTP 调用; 如果无法连接,完整的工具列表也只会列出无法执行的操作。
要求
Node 20 或更高版本。无需构建步骤,也没有原生模块。
环境变量
| 变量 | 必需 | 说明 |
|---|---|---|
WARDENPOINT_BASE_URL | 是 | 安装实例的源地址——末尾不要加斜杠,也不要加 /api/v1 后缀。描述中包含完整路径。 |
WARDENPOINT_API_TOKEN | 调用时需要 | Dashboard → Integrations → API keys 中的公司 API 密钥。通过 X-API-Key 发送。运行 --list-tools 或 --spec-report 时不需要。 |
WARDENPOINT_ALLOW_INSECURE_TLS | 否 | 1 会禁用证书验证。仅限开发环境——绝不可用于生产环境。 |
WARDENPOINT_TIMEOUT_MS | 否 | 每次请求的超时时间,默认值为 30000。 |
WARDENPOINT_TOOLS | 否 | 用逗号分隔的模式,用于限制可用工具,例如 recipients,groups 或 v1_schedules_*。未设置时,提供所有工具。 |
WARDENPOINT_OPENAPI_PATH | 否 | 从本地文件读取描述,而非从安装实例读取。适用于基于尚未部署的描述进行开发。 |
每次启动时都会从环境中读取令牌,本软件包绝不会将其写入任何位置。
密钥允许执行的操作
签发密钥时会选择其权限,缺少权限时,403 错误会指出具体缺少哪项:
config.read— 读取全部配置。适合从这里开始:Agent 可以解释他人创建的账户配置,但不会做任何更改。config.write— 创建、更新、删除。notifications.send/notifications.read— 触发告警并查看告警。
任何权限都无法读取密钥。 权限体系中没有这种权限,因此不可能误授。API 只会报告凭据是否已设置以及是否验证通过——绝不会返回凭据值。
工具列表的成本
每个工具定义都会在用户说话之前发送给模型,因此无论对话是否涉及 WardenPoint,这部分开销都会产生。完整的 89 个工具集约占 64k 个 token——在 200k 的上下文窗口中,占了三分之一。
服务会在启动时打印这个数值,让这项开销清晰可见:
wardenpoint-mcp-server: 89 tools (~63k tokens of context; narrow it with WARDENPOINT_TOOLS) from …
如果某个会话只会用到产品的一部分功能,可以明确指定:
"env": { "WARDENPOINT_TOOLS": "recipients,groups,schedules" }
这样同一次运行就会减少到少数几个工具和几千个 token。匹配模式针对工具名称(v1_recipients_store),也支持 *。如果不设置,就会启用所有工具,这是安全的默认值:某个工具悄然消失,看起来就像产品缺少了某项能力。
运行
npx -y @wardenpoint/mcp-server --list-tools # every tool, with its arguments
npx -y @wardenpoint/mcp-server --spec-report # gaps in the description itself
两种方式都会访问 WARDENPOINT_BASE_URL 来获取描述;都不需要令牌。不带参数时,进程会通过标准输入输出流使用 MCP,设计用途是由客户端启动,而不是手动启动。
两种凭据,以及它们为何不能互换
- API 密钥(
WARDENPOINT_API_TOKEN)——用于标识你的身份。每个配置工具都会使用它。 - 集成密钥——用于证明特定警报来源的 Webhook 是真实的。有两个工具会将它作为参数接受;它不会从环境中读取,也不会在此处存储。
此服务刻意无法执行的操作
设置账户时有两个步骤需要人在屏幕前操作,而且这是有意为之:
- 扫描 Telegram 二维码。
- 输入服务提供商密钥。
对于每个步骤,Agent 都会请求安装程序生成一次性链接,将链接展示给用户,并轮询操作结果。用户会在自己的登录状态下打开控制面板中的该链接,并自行输入值。如果要求 Agent 在对话中转发密钥,Agent 会拒绝——这正是设置该链接的目的。
错误会原样传达给 Agent
API 会花费不少精力说明拒绝原因——缺少了哪项能力、哪个字段未通过验证、为何没有任何内容进入发送队列。此服务会完整传递响应正文,无论成功还是失败,因为 Agent 只能依靠这些文本来修复自身。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。