使用说明
简单的ntfy MCP服务器
通过 Claude Desktop 或任何支持模型上下文协议 (MCP) 的代理,使用 ntfy.sh 向您的移动设备发送推送通知。
这是什么?
这个MCP(模型上下文协议)服务器允许代理在任务完成时向您的手机发送推送通知,用于提醒、备忘或任何自定义消息。它与免费的ntfy.sh通知服务集成。
特点/功能
- 📱 直接从AI对话中发送通知
- 🎨 使用标题、优先级和表情符号标签进行自定义
- 🔧 简单配置 - 无需API密钥
- 🚀 与任何启用工具的模型兼容
先决条件
-
在您的手机上安装ntfy应用:
- iOS:https://apps.apple.com/app/ntfy/id1625396347
- Android:https://play.google.com/store/apps/details?id=io.heckel.ntfy
-
订阅您的频道:
- 打开ntfy应用
- 点击“+”以添加订阅
- 输入您的频道名称(由于频道名称是公开的,您应选择一个独一无二的名称)
- 订阅!
-
测试您的设置:
curl -d "Hello from your computer!" ntfy.sh/yourchannel(替换
yourchannel(使用你选择的任意频道名称)
安装
这些说明假设您已经安装了Claude Desktop。若要将此服务器集成到您的AI编码编辑器或智能代理解决方案中,过程将类似。请查阅您特定编辑器或解决方案的文档,了解如何设置自定义MCP服务器。
选项1:直接使用uvx运行(推荐)
无需安装!只需添加到Claude Desktop配置中:
在 macOS 上:
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ntfy": {
"command": "uvx",
"args": ["--from", "/path/to/ntfy-mcp", "ntfy-mcp", "--channel", "yourchannel"]
}
}
}
在Windows上:
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"ntfy": {
"command": "uvx",
"args": ["--from", "C:\\path\\to\\ntfy-mcp", "ntfy-mcp", "--channel", "yourchannel"]
}
}
}
替换 /path/to/ntfy-mcp 与实际路径及 yourchannel 使用您想要的频道名称。
替代方案:使用环境变量
您也可以使用环境变量来设置频道:
{
"mcpServers": {
"ntfy": {
"command": "uvx",
"args": ["--from", "/path/to/ntfy-mcp", "ntfy-mcp"],
"env": {
"NTFY_CHANNEL": "yourchannel"
}
}
}
}
从命令行进行测试:
cd /path/to/ntfy-mcp
uvx --from . ntfy-mcp --channel yourchannel
多个MCP服务器
如果您已经配置了其他MCP服务器,只需在现有配置中添加ntfy即可:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/files"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token-here"
}
},
"ntfy": {
"command": "uvx",
"args": ["--from", "/path/to/ntfy-mcp", "ntfy-mcp", "--channel", "yourchannel"]
}
}
}
选项2:直接使用Python运行
如果你更喜欢直接使用Python:
{
"mcpServers": {
"ntfy": {
"command": "python",
"args": ["/path/to/ntfy_mcp.py", "--channel", "yourchannel"]
}
}
}
注: 您需要先安装依赖项:
pip install mcp httpx pydantic
配置
通道配置
现在在启动MCP服务器时会配置ntfy通道,而不是在脚本中硬编码。您有两个选项:
选项1:命令行参数(推荐)
{
"mcpServers": {
"ntfy": {
"command": "uvx",
"args": ["--from", "/path/to/ntfy-mcp", "ntfy-mcp", "--channel", "mychannel"]
}
}
}
选项2:环境变量
{
"mcpServers": {
"ntfy": {
"command": "uvx",
"args": ["--from", "/path/to/ntfy-mcp", "ntfy-mcp"],
"env": {
"NTFY_CHANNEL": "mychannel"
}
}
}
}
重要提示: 如果未配置任何通道,MCP服务器将返回一条有用的错误信息,说明如何进行设置。
私密频道
对于私有的 ntfy.sh 频道(需要 ntfy.sh Pro),您需要添加身份验证头。有关详细信息,请参阅 ntfy.sh 的文档。
在Claude桌面版中的使用
配置完成后,只需自然地询问Claude:
基本示例(使用您配置的默认频道):
- “完成后通知我”
- “给我手机发送一条通知,内容为‘10分钟后开会’”
- “此分析完成后提醒我”
- “给我发送一条高优先级的通知,告知部署成功”
带有表情符号标签:
- 发送一条带有火箭表情符号的通知,表示构建已完成
- “用对勾通知我所有测试都已通过”
通道覆盖示例(当您有多个通道时):
- “向紧急警报频道发送通知,表示部署失败”
- “在家庭频道通知我晚餐准备好了”
- “通知开发团队频道,构建已完成”
重要提示: 克劳德只有在你明确提及某个特定频道名称时,才会使用不同的频道。你指定的确切频道名称将被使用,即使该名称看起来包含拼写错误。
可用的表情符号标签
您可以使用的常见标签:
tada🎉 - 庆祝rocket🚀 - 发布/部署white_check_mark✅ - 成功warning⚠️ - 警告x❌ - 错误/失败bell🔔 - 提醒hourglass⏳ - 进行中fire🔥 - 紧急/热门
优先级级别
min- 最低优先级low- 低优先级default- 正常优先级(默认)high- 高优先级urgent- 紧急(触发特殊通知行为)
故障排除
MCP 服务器无法启动?
如果服务器无法启动,请检查Claude Desktop的日志以查找启动错误:
- macOS:
tail -f ~/Library/Logs/Claude/mcp*.log - Windows(系统/操作系统):
type %APPDATA%\Claude\logs\mcp-server-ntfy.log
常见的启动错误:
- “未配置默认的ntfy通道” - 您需要添加
--channel yourchannel或者设置NTFY_CHANNEL环境变量 - “命令未找到” - ntfy-mcp 的路径错误或缺少 uvx/python
通知未显示?
-
检查订阅状态: 确保你在ntfy应用中订阅了正确的频道
-
手动测试: 在终端中运行此命令:
curl -d "Test message" ntfy.sh/yourchannel(替换
yourchannel(使用您配置的频道) 如果你收到了它,那么问题出在MCP服务器的配置上。 -
检查Claude Desktop日志:
- macOS(苹果电脑操作系统)
tail -f ~/Library/Logs/Claude/mcp*.log - Windows:
type %APPDATA%\Claude\logs\mcp-server-ntfy.log
- macOS(苹果电脑操作系统)
-
验证配置: 确保路径中的(内容)
claude_desktop_config.json是正确的 -
重启Claude桌面版 在做出配置更改后完全退出(退出,而不仅仅是关闭)
路径配置问题
常见的路径错误:
❌(表示错误或否) 错误: ~/Downloads/ntfy-mcp (在JSON中不要使用~)
✅ 正确: /Users/yourname/Downloads/ntfy-mcp
❌(这个符号在中文中通常表示“错误”或“不正确”的意思,没有直接对应的中文翻译,但可以理解为“错误”或“不对”) 错误: C:\Users\YourName\Downloads\ntfy-mcp (单斜杠)
✅ 翻译成中文是“✅”(这个符号本身在中文中没有特定的翻译意义,它通常表示正确、确认或完成,根据上下文可理解为“正确”、“确认”或“已完成”等意思)。如果单独看这个符号,中文中通常直接用这个符号本身来表示,或者根据语境解释其含义。 正确: C:\\Users\\YourName\\Downloads\\ntfy-mcp (在JSON中使用双反斜杠)
❌ 错误: 相对路径如 ./ntfy-mcp
✅ 正确: 绝对路径 /full/path/to/ntfy-mcp
找到正确的道路:
# Navigate to the ntfy-mcp folder
cd /path/to/ntfy-mcp
# Get the full path
pwd
# Use this output in your config along with --channel yourchannel
它是如何运作的
- Claude Desktop 以子进程的方式启动 ntfy MCP 服务器
- 服务器运行在您的本地机器上(不在Claude的沙箱中)
- 当你要求Claude发送通知时,它会调用MCP服务器
- MCP服务器向ntfy.sh发送HTTP POST请求
- ntfy.sh 将通知发送到您的手机
这种架构绕过了沙盒限制,因为MCP服务器是以您用户的身份权限运行的。
高级用法
多个渠道
您可以在请求中明确提及不同的渠道,以便发送到这些渠道:
- “向家庭频道发送一条通知,告知晚餐已准备好”
- “向紧急警报频道发出通知,服务器已宕机”
- “请在工作更新频道通知我有关这次会议的消息”
重要提示: 克劳德只有在您明确提及某个频道名称时,才会使用不同的频道。它不会根据上下文或消息内容来选择频道,而是在您特别要求使用不同频道时才会切换。
自定义集成
MCP服务器可以扩展以支持:
- 附件(图片、文件)
- 操作(通知中的按钮)
- 计划通知
- 消息模板
请参阅 ntfy.sh 的文档以了解可用功能:https://docs.ntfy.sh/
文件结构
ntfy-mcp/
├── ntfy_mcp.py # Main MCP server implementation
├── pyproject.toml # Python project configuration
├── LICENSE # MIT License
├── .gitignore # Git ignore rules for Python
└── README.md # This file
许可证
麻省理工学院许可证
版权所有 (c) 2024 ntfy-mcp 贡献者
特此免费授予任何获得本副本的人 此软件及其相关文档文件(“软件”)的处理权限 在软件中不受限制,包括但不限于以下权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许向他人提供该软件 在以下条件下,特此授权这样做:
上述版权声明及本许可声明应包含在所有(作品/文件/材料中) 软件的副本或大部分内容。
该软件按“原样”提供,不附带任何形式的明示或暗示保证 暗示的,包括但不限于商品适销性保证, 特定用途的适用性和无侵权性。在任何情况下 作者或版权所有者不对任何索赔、损害或其他责任承担责任 因合同、侵权或其他行为而产生的责任, 因软件或使用软件或其他与软件相关的交易而产生的 软件。
注: ntfy.sh 服务是独立的,并且有自己的服务条款。
支持
- ntfy.sh 文档:https://docs.ntfy.sh/
- MCP 文档:https://modelcontextprotocol.io/
- Claude Desktop 支持页面:https://support.claude.com/
功劳/学分/资历
构建于:
- 模型上下文协议 由Anthropic开发
- `ntfy.sh` 翻译成中文可以是“ntfy.sh(通知服务域名)”或者根据上下文简化为“ntfy(通知服务)”,但通常直接保留原样以指代这个特定的域名或服务。如果非要一个更贴近中文表达的翻译,可以理解为“通知服务网站 ntfy.sh”,不过在实际应用中,直接使用 `ntfy.sh` 是更为常见和准确的 由菲利普·C·赫克尔(Philipp C. Heckel)
- FastMCP Python SDK(软件开发工具包)
