推送通知服务

通过ntfy.sh从Claude Desktop或任何支持模型上下文协议(MCP)的代理向移动设备发送推送通知,适用于任务完成提醒、警报或自定义消息。

  • by hexerei
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hexerei/nfty-mcp

使用说明

简单的ntfy MCP服务器

通过 Claude Desktop 或任何支持模型上下文协议 (MCP) 的代理,使用 ntfy.sh 向您的移动设备发送推送通知。

这是什么?

这个MCP(模型上下文协议)服务器允许代理在任务完成时向您的手机发送推送通知,用于提醒、备忘或任何自定义消息。它与免费的ntfy.sh通知服务集成。

特点/功能

  • 📱 直接从AI对话中发送通知
  • 🎨 使用标题、优先级和表情符号标签进行自定义
  • 🔧 简单配置 - 无需API密钥
  • 🚀 与任何启用工具的模型兼容

先决条件

  1. 在您的手机上安装ntfy应用:

    • iOS:https://apps.apple.com/app/ntfy/id1625396347
    • Android:https://play.google.com/store/apps/details?id=io.heckel.ntfy
  2. 订阅您的频道:

    • 打开ntfy应用
    • 点击“+”以添加订阅
    • 输入您的频道名称(由于频道名称是公开的,您应选择一个独一无二的名称)
    • 订阅!
  3. 测试您的设置:

    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

通知未显示?

  1. 检查订阅状态: 确保你在ntfy应用中订阅了正确的频道

  2. 手动测试: 在终端中运行此命令:

    curl -d "Test message" ntfy.sh/yourchannel
    

    (替换 yourchannel (使用您配置的频道) 如果你收到了它,那么问题出在MCP服务器的配置上。

  3. 检查Claude Desktop日志:

    • macOS(苹果电脑操作系统) tail -f ~/Library/Logs/Claude/mcp*.log
    • Windows: type %APPDATA%\Claude\logs\mcp-server-ntfy.log
  4. 验证配置: 确保路径中的(内容) claude_desktop_config.json 是正确的

  5. 重启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

它是如何运作的

  1. Claude Desktop 以子进程的方式启动 ntfy MCP 服务器
  2. 服务器运行在您的本地机器上(不在Claude的沙箱中)
  3. 当你要求Claude发送通知时,它会调用MCP服务器
  4. MCP服务器向ntfy.sh发送HTTP POST请求
  5. 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/

功劳/学分/资历

构建于: