mcpField
F
FastMCP server that pages on-call via 100+ notification channels (Apprise wrappe

FastMCP server that pages on-call via 100+ notification channels (Apprise wrappe

本地服务
github.com/adelaidasofia通信协作04 周前更新

关于 FastMCP server that pages on-call via 100+ notification channels (Apprise wrappe

paging-mcp 是通过 Apprise 支持的通知渠道发送告警的 FastMCP 服务,适用于需要多渠道通知的值班团队和自动化系统,并提供凭据脱敏与渠道筛选。

主要功能

  1. 01通过多个渠道发送告警
  2. 02筛选已配置渠道
  3. 03向临时渠道发送通知
  4. 04预览通知而不实际发送
  5. 05在响应中隐藏凭据
  6. 06返回各渠道发送结果

适用场景

  1. 01将监控告警发送给值班人员
  2. 02通知运维人员批处理任务失败
  3. 03通过备用渠道发送安全告警

MCP 相关

向 MCP 客户端提供基于 Apprise 的通知工具,包括渠道列表、发送预览和通知分发。渠道通过 APPRISE_URLS 配置,工具响应会隐藏凭据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbpaging-mcp.mcpb0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

paging-mcp

许可证 GitHub 星标 最近提交 待处理问题 PyPI 版本 PyPI 下载量 由 Mycelium AI 构建

基于 FastMCP 的服务,可通过 100 多种通知渠道向值班人员发送分页通知。它构建于 Apprise 之上,支持 WhatsApp、ntfy、Pushover、Telegram、Discord、Slack、Signal、Matrix、Gotify、mailto、Twilio SMS、AWS SNS 等数十种服务。

核心目标是独立于服务提供商。接入一个 MCP,按需配置任意数量的渠道,即可获得冗余通知;每次更换服务提供商时,无需重写集成代码。

为什么要开发它

如果你正在构建任何需要叫醒真人的系统——例如 B2B 流水线的合成监控、长时间运行的批处理作业或安全警报——你会需要:

  1. 并行使用多个渠道,这样单个服务提供商故障时也不会漏掉通知。
  2. 适合操作人员的渠道(例如,面向拉美地区的值班人员使用 WhatsApp,自托管用户使用 ntfy,个人手机使用 Pushover,而在仍适用的场景中使用 Twilio SMS)。
  3. 对工具响应中的凭据进行脱敏,避免读取输出的 Agent 将凭据泄露到对话记录中。
  4. 一个可供 Agent 从任何地方调用的 MCP(Claude Code、Codex、Cursor 等),无需为每个渠道单独部署新的 MCP。

Apprise 在 Python 中解决了第 1、2 点。此服务让 MCP 能够调用 Apprise,并在此基础上实现脱敏和渠道筛选。

安装

打开 Claude Code,粘贴:

/plugin marketplace add adelaidasofia/paging-mcp
/plugin install paging-mcp@paging-mcp
旧版安装方式
git clone https://github.com/adelaidasofia/paging-mcp ~/.claude/paging-mcp
cd ~/.claude/paging-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

配置

将 APPRISE_URLS 设置为一个或多个 Apprise URL。可使用换行符、分号或逗号分隔:

export APPRISE_URLS="
ntfys://ntfy.sh/<your-secret-topic>
whapi+https://gate.whapi.cloud/messages/text?token=<TOKEN>&to=+57...
pover://<USER_KEY>@<APP_TOKEN>
mailto://user:[email protected]/[email protected]
"

各服务提供商的 Apprise URL 示例:

服务提供商URL 模式
WhatsApp Business(Whapi)whapi+https://gate.whapi.cloud/messages/text?token=<TOKEN>&to=<+E164>
ntfyntfys://ntfy.sh/<topic>
Pushoverpover://<USER_KEY>@<APP_TOKEN>
Telegram 机器人tgram://<BOT_TOKEN>/<CHAT_ID>
Twilio SMStwilio://<SID>:<TOKEN>@<FROM>/<TO>
Signal CLIsignal://<from>@<api-host>/<to>
Slack 入站 Webhookslack://<token-a>/<token-b>/<token-c>
Discord Webhookdiscord://<webhook-id>/<webhook-token>
SMTP 邮件mailto://<user>:<pass>@<host>:<port>/?to=<dest>
AWS SNSsns://<KEY>/<SECRET>/<REGION>/<TOPIC>

完整列表:https://github.com/caronc/apprise/wiki

注册到 Claude Code

项目级(<vault>/.mcp.json):

{
  "mcpServers": {
    "paging": {
      "command": "/Users/<you>/.claude/paging-mcp/.venv/bin/python",
      "args": ["/Users/<you>/.claude/paging-mcp/server.py"],
      "env": {
        "APPRISE_URLS": "ntfys://ntfy.sh/<your-secret-topic>"
      }
    }
  }
}

用户级:

claude mcp add -s user paging \
  /Users/<you>/.claude/paging-mcp/.venv/bin/python \
  /Users/<you>/.claude/paging-mcp/server.py \
  --env APPRISE_URLS="ntfys://ntfy.sh/<your-secret-topic>"

重启 Claude Code。使用 claude mcp list 验证。

工具

工具功能
health_check服务自检 + Apprise 版本 + 已配置的频道数量。
list_configured_channels列出 paging-mcp 将发送通知的频道,凭据已隐藏。
notify(title, body, severity, channels?)向所有已配置的频道(或按已隐藏的 URL 筛选出的部分频道)发送通知。返回各频道的结果。
notify_one(url, title, body, severity)向单个临时 Apprise URL 发送通知(不会持久保存)。
dry_run(title, body, severity)展示 notify() 将发送的内容,但不实际发送。

severity 的取值为 info、success、warning 和 failure。使用颜色或图标标记的频道会根据此值进行标记。

测试

.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest tests/ -v

16 项单元和集成测试,覆盖 URL 隐藏、多频道发送、部分失败、频道筛选,以及带有 URL 凭据的端到端分页流程。

安全说明

  • 工具响应绝不会回显凭据。对于将路径用作密钥的方案(ntfy、pushbullet、pover),也会隐藏最后一个路径段。
  • notify_one 接受临时 URL;如果 Agent 传入明文凭据,仍有责任避免在对话中回显。建议在服务器启动时配置 APPRISE_URLS。
  • 服务器不会持久保存频道或消息;所有数据都只存在于进程内。

遥测

此插件会在某台机器上的 Claude Code 会话中首次加载时,向 myceliumai.co 发送一条匿名安装信号。

发送的内容:

  • 插件名称(例如:slack-mcp)
  • 插件版本(例如:0.1.0)

不会发送的内容:

  • 不包含用户标识符、姓名、电子邮件、令牌或 API 密钥
  • 不包含文件路径、消息内容或任何工作相关内容
  • 去重处理后不会存储 IP 地址

原因: 帮助维护者了解用户实际安装了哪些插件,以便将精力投入到有人使用的插件上。

选择退出: 启动 Claude Code 前,将环境变量 MYCELIUM_NO_PING=1 设为指定值。此钩子将完全跳过网络调用。已发送过信号的安装会在 ~/.mycelium/onboarded-<plugin> 留下一个标记文件——如果要重置状态,请将其删除。

许可证

MIT — 参见 LICENSE。


由 Mycelium AI 构建。完整安装版或团队版请访问 diazroa.com。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。