ntfy MCP通知服务器
](https://www.npmjs.com/package/ntfy-mcp-notification)  ](https://nodejs.org)
MCP(模型上下文协议)服务器,通过以下方式发送推送通知 ntfy.sh 当Claude在长时间运行的任务中需要用户输入或确认时。
概述
当Claude Code运行长时间的操作或遇到需要您输入的决策时,您可能没有积极观察。此MCP服务器通过ntfy.sh向您的手机、平板电脑或台式机发送推送通知,使您能够及时响应。
特性
- 🔔 推送通知:通过ntfy.sh向任何设备发送通知
- 🎯 两个工具:
- send_notification:发送基本通知 - request_user_confirmation:发送具有紧急级别的确认请求
- 🔧 可配置的:优先级、自定义标记和服务器URL
- 🆓 免费&开放:使用ntfy.sh(无需帐户)
- 🔒 注重隐私:不收集数据,通知仅包含您指定的内容
先决条件
- Node.js 18+ (对于本地人
fetchAPI支持) - ntfy.sh主题 (免费创建一个 ntfy.sh)
安装
通过npx(推荐)
无需安装!直接使用Claude Code:
{
"mcpServers": {
"ntfy-notification": {
"command": "npx",
"args": ["-y", "ntfy-mcp-notification"],
"env": {
"NTFY_TOPIC": "your-unique-topic-name"
}
}
}
}通过npm(全局安装)
npm install -g ntfy-mcp-notification配置
添加到您的Claude Code MCP配置文件中:
地点:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
配置:
{
"mcpServers": {
"ntfy-notification": {
"command": "npx",
"args": ["-y", "ntfy-mcp-notification"],
"env": {
"NTFY_TOPIC": "claude-notif-a8f3c2d1",
"NTFY_SERVER": "https://ntfy.sh",
"NTFY_PRIORITY": "3"
}
}
}
}环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
NTFY_TOPIC | ✅ 是 | - | 您唯一的ntfy.sh主题名称 |
NTFY_SERVER | 没有 | https://ntfy.sh | ntfy.sh服务器URL(用于自托管) |
NTFY_PRIORITY | 没有 | 3 | 默认优先级(1=低,5=紧急) |
设置ntfy.sh
1.选择主题名称
选择一个独特的、难以猜测的主题名称:
# Good examples:
claude-notif-a8f3c2d1
my-claude-$(uuidgen | head -c 8)
# Bad examples (too easy to guess):
claude
notifications
myname-claude⚠️ 安全说明:默认情况下,主题名称是公开的。任何知道你的主题的人都可以订阅或发送消息。使用唯一的随机主题名称。
2.订阅您的主题
在移动设备上:
在Web上:
- 访问 ntfy.sh
- 在输入框中输入您的主题名称
- 点击“订阅”
- 为页面添加书签,以便将来访问
在桌面上:
3.测试您的设置
发送测试通知:
curl -d "Test from ntfy.sh" ntfy.sh/your-topic-name您应该在所有订阅的设备上收到通知。
用法
一旦在Claude Code中配置,这些工具就会自动可用。克劳德可以根据需要给他们打电话。
工具:send_notiation
发送基本通知以提醒用户。
参数:
message(必填):通知消息title(可选):通知标题(默认:“Claude需要输入”)priority(可选):优先级1-5(默认:来自配置)tags(可选):标签数组(默认值:["warning", "claude"])
例子:
{
"message": "Found a potential security issue that needs your review",
"title": "Security Review Required",
"priority": 4,
"tags": ["warning", "security", "claude"]
}工具:请求_用户_确认
发送通知,请求用户确认某个操作。
参数:
action(必填):需要确认的操作说明details(可选):附加上下文或详细信息urgency(可选):"low","normal",或"high"(默认值:"normal")
例子:
{
"action": "Delete 15 old log files from /tmp",
"details": "Total size: 2.3 GB. Files older than 30 days.",
"urgency": "normal"
}工作流示例
用户: “请分析这个庞大的代码库,并在需要我对任何决策提供意见时告诉我”
克劳德:
- 开始分析代码库
- 遇到决策点(例如API设计选择)
- 呼叫
request_user_confirmation:
{
"action": "Choose API authentication method",
"details": "Options: JWT tokens or OAuth 2.0",
"urgency": "normal"
}- 您在手机上收到推送通知 📱
- 你打开克劳德并提供你的决定
- 克劳德继续你选择的方法
故障排除
“NTFY_TOPIC环境变量是必需的”
原因: NTFY_TOPIC 未在MCP配置中设置。
解决方案:添加 NTFY_TOPIC 到 env Claude Code MCP配置的一部分。
未收到通知
可能的原因:
- 主题名称不匹配:确保MCP配置中的主题与您的订阅相匹配
- ntfy.sh服务器关闭:检查 ntfy.sh状态
- 网络问题:手动测试:
curl -d "Test" https://ntfy.sh/your-topic-name“发送失败:404”
原因:ntfy.sh服务器URL无效或主题包含无效字符。
解决方案:
- 验证
NTFY_SERVER正确(默认值:https://ntfy.sh) - 检查主题名称仅包含字母数字字符、破折号和下划线
服务器无法在Claude代码中启动
可能的原因:
- Node.js版本:确保已安装Node.js 18+:
node --version- MCP配置语法:验证配置文件中的JSON语法
- 检查日志:查找Claude Code的MCP服务器面板中的错误
安全与隐私
主题隐私
⚠️ 重要:ntfy.sh主题包括 默认情况下为公共。任何知道您的主题名称的人都可以订阅您的通知或发送到您的主题。
最佳实践:
- ✅ 使用独特、难以猜测的主题名称
- ✅ 避免在主题名称中包含个人信息
- ✅ 考虑在敏感环境中使用自托管ntfy.sh
发送到ntfy.sh的内容
发送: 通知标题、消息、优先级、标签和时间戳。
未发送: Claude对话历史、凭据、文件内容或任何未明确传递给通知工具的数据。
发展
本地设置
git clone https://github.com/mahmoud-bebars/ntfy-mcp-notification.git
cd ntfy-mcp-notification
npm install
npm run buildMCP检验员测试
export NTFY_TOPIC="test-topic-12345"
npm run inspector建筑
npm run build # Compile TypeScript
npm run watch # Watch mode for development贡献
欢迎投稿!请参阅 贡献.md 作为指导方针。
未来的增强功能
- \[\]ntfy.sh身份验证支持(私有主题)
- \[\]通知历史和日志记录
- \[\]失败通知的重试逻辑
- \[\]速率限制和重复数据删除
- \[\]用于可点击操作按钮的Webhook服务器
许可证
MIT许可证-请参阅 许可证 详细信息文件
链接
致谢
______________________________________________________________________
由...制作❤️ Claude Code社区
