返回市场
通知我-mcp

通知我-mcp

作者:gitmotion48 星标更新:2025-11-06

项目介绍

技术文档摘要

<img src="https://gips2.baidu.com/it/u=3771164936,973839991&fm=3081&app=3081&f=PNG?w=40&h=39" width=30 /> ntfy-me-mcp

TypeScript Model Context Protocol NPM 版本 Docker 镜像版本 许可证 GitHub <a href="https://www.buymeacoffee.com/gitmotion" target="_blank" rel="noopener noreferrer"> <img src="https://gips1.baidu.com/it/u=4028654372,1962960725&fm=3081&app=3081&f=PNG?w=170&h=37" alt="买我一杯咖啡" width="105px" /> </a>

一个简化了的模型上下文协议(MCP)服务器,通过 ntfy 服务(公共或自托管并支持令牌)发送通知 📲

概览

ntfy-me-mcp 提供了人工智能助手通过 ntfy 服务(无论是公共还是自托管并支持令牌)向您的设备发送实时通知的能力。当您的 AI 完成任务、遇到错误或达到重要里程碑时,您会收到通知——无需持续监控。

该服务器包括智能特性,如自动检测 URL 创建视图操作和智能 Markdown 格式检测,使得 AI 助手可以轻松创建丰富的交互式通知,而无需额外配置。

<img src="https://gips2.baidu.com/it/u=873516991,971963090&fm=3081&app=3081&f=PNG?w=834&h=824" alt="自动检测预览" width=50%>

可用方式:

名称链接 / 徽章
Glama.ai<a href="https://glama.ai/mcp/servers/@gitmotion/ntfy-me-mcp"><img width="250" src="https://glama.ai/mcp/servers/@gitmotion/ntfy-me-mcp/badge" alt="ntfy-me-mcp MCP 服务器" /></a>
Smithery.aismithery 徽章
MseeP.ai<a href="https://mseep.ai/app/gitmotion-ntfy-me-mcp"><img width="150" src="https://mseep.net/pr/gitmotion-ntfy-me-mcp-badge.png" alt="ntfy-me-mc-mseepai" /></a>
Archestra.ai信任评分</a>

目录

功能

  • 🚀 快速设置:使用 npx 或 Docker 运行!
  • 🔔 实时通知:任务完成时,在您的手机/桌面上获取更新
  • 🎨 丰富通知:支持主题、标题、优先级、表情标签和详细消息
  • 🔍 通知检索:从您的 ntfy 主题中抓取和过滤缓存的消息
  • 🎯 智能操作链接:自动检测消息中的 URL 并创建视图操作
  • 📄 智能 Markdown:自动检测并启用消息中的 Markdown 格式
  • 🔒 安全:可选的访问令牌认证
  • 🔑 输入屏蔽:在您的 vs 配置中安全存储 ntfy 令牌!
  • 🌐 自托管支持:同时支持 ntfy.sh 和自托管的 ntfy 实例

(即将推出...)

  • 📨 电子邮件:将通知发送到电子邮件(需要配置 ntfy 电子邮件服务器)
  • 🔗 点击链接:自定义点击链接的能力
  • 🖼️ 图片链接:智能检测图片链接以自动包含图片链接在消息和通知中
  • 🏁 更多!

快速入门 - MCP 服务器配置

NPM / NPX(推荐方法)

  • 需要系统上已安装 npm / npx。
  • 此方法推荐给大多数用户,因为它提供了一种简单且轻量的方法来设置服务器。

对于最简单的设置与兼容 MCP 的助手,添加以下内容到您的 MCP 配置:

最小配置(用于 ntfy.sh 上的公共主题)

{
  "ntfy-me-mcp": {
    "command": "npx",
    "args": ["ntfy-me-mcp"],
    "env": {
      "NTFY_TOPIC": "您的主题名称"
    }
  }
}

完整配置(用于私有服务器或受保护的主题)

选项 1:直接令牌在配置中(不太安全)

{
  "ntfy-me-mcp": {
    "command": "npx",
    "args": ["ntfy-me-mcp"],
    "env": {
      "NTFY_TOPIC": "您的主题名称",
      "NTFY_URL": "https://您的-ntfy-服务器.com",
      "NTFY_TOKEN": "您的-认证令牌" // 如果使用受保护的主题/服务器
    }
  }
}

选项 2:使用 VS Code 输入进行安全令牌处理(推荐)

在您的 VS Code 设置.json 文件中添加以下内容:

"mcp": {
  "inputs": [
    { // 添加到您的输入数组
      "type": "promptString",
      "id": "ntfy_token",
      "description": "Ntfy 令牌",
      "password": true
    }
  ],
  "servers": {
    // 其他服务器...
    "ntfy-me-mcp": {
      "command": "npx",
      "args": ["ntfy-me-mcp"],
      "env": {
        "NTFY_TOPIC": "您的主题名称",
        "NTFY_URL": "https://您的-ntfy-服务器.com",
        "NTFY_TOKEN": "${input:ntfy_token}", // 使用输入 id 变量作为令牌
        "PROTECTED_TOPIC": "true" // 启动时提示令牌并在配置中屏蔽它
      }
    }
  }
}

这样设置后,VS Code 将在启动服务器时提示您输入令牌,并在输入时屏蔽令牌。

Docker

与 MCP 在 Docker 中使用

  • 需要在系统上安装 Docker。
  • 此方法适用于在容器化环境中运行服务器。
  • 您可以使用 Docker Hub 或 GitHub Container Registry 上可用的官方 Docker 镜像。

Docker 镜像:

  • gitmotion/ntfy-me-mcp:latest (Docker Hub)
  • ghcr.io/gitmotion/ntfy-me-mcp:latest (GitHub Container Registry)

在您的 MCP 配置(例如,VS Code 设置.json)中:

"mcp": {
  "servers": {
    "ntfy-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "NTFY_TOPIC",
        "-e",
        "NTFY_URL",
        "-e",
        "NTFY_TOKEN",
        "-e",
        "PROTECTED_TOPIC",
        "gitmotion/ntfy-me-mcp", // 或使用 ghcr.io/gitmotion/ntfy-me-mcp:latest
      ],
      "env": {
        "NTFY_TOPIC": "您的主题名称",
        "NTFY_URL": "https://您的-ntfy-服务器.com",
        "NTFY_TOKEN": "${input:ntfy_token}",
        "PROTECTED_TOPIC": "true"
      }
    }
  }
}

安装

如果您需要直接安装和运行服务器(替代上述 MCP 配置):

选项 1:全局安装

npm install -g ntfy-me-mcp

选项 2:使用 npx 运行

npx ntfy-me-mcp

选项 3:本地安装

# 克隆仓库
git clone https://github.com/gitmotion/ntfy-me-mcp.git
cd ntfy-me-mcp

# 安装依赖
npm install

# 复制示例环境文件并配置
cp .env.example .env
# 使用您喜欢的编辑器编辑 .env 并更新变量
# nano .env  # 或使用您喜欢的编辑器

# 构建项目
npm run build

# 启动服务器
npm start

选项 4:构建并本地使用 node 命令

如果您正在开发或定制服务器,可能希望直接使用 node 运行:

# 克隆仓库
git clone https://github.com/gitmotion/ntfy-me-mcp.git
cd ntfy-me-mcp

# 安装依赖
npm install

# 复制示例环境文件并配置
cp .env.example .env
# 编辑 .env 文件以设置您的 NTFY_TOPIC 和其他可选设置
# nano .env  # 或使用您喜欢的编辑器

# 构建项目
npm run build

# 直接使用 node 运行
npm start

使用本地构建的服务器与 MCP

当配置您的 MCP 使用本地构建的版本时,请指定 node 命令和构建的 index.js 文件路径:

{
  "ntfy-me": {
    "command": "node",
    "args": ["/path/to/ntfy-mcp/build/index.js"],
    "env": {
      "NTFY_TOPIC": "您的主题名称"
      //"NTFY_URL": "https://您的-ntfy-服务器.com", // 如果使用自托管服务器
      //"NTFY_TOKEN": "您的-认证令牌" // 如果使用受保护的主题/服务器
    }
  }
}

记得在 args 数组中使用到 build/index.js 文件的绝对路径。

选项 5:MCP 市场安装

通过 Smithery 安装

要通过 Smithery 自动安装 ntfy-me-mcp 到 Claude Desktop:

npx -y @smithery/cli install @gitmotion/ntfy-me-mcp --client claude

配置

环境变量

在您的项目目录中创建一个 .env 文件,复制提供的示例文件:

# 复制示例文件
cp .env.example .env

# 使用您喜欢的编辑器编辑文件
nano .env  # 或 vim, code 等

您的 .env 文件应包含这些变量:

# 必需
NTFY_TOPIC=您的主题名称

# 可选 - 如果使用私有/受保护的 ntfy 服务器,请配置这些
# NTFY_URL=https://ntfy.sh  # 默认是 ntfy.sh,如果需要更改为您自托管的 ntfy 服务器 URL
                            # 如需包含端口,请按如下格式:https://您的-ntfy-服务器.com:8443
# NTFY_TOKEN=您的-访问令牌  # 对于受保护的主题/服务器,需要提供访问令牌
# PROTECTED_TOPIC=false  # 如果您的主题需要认证,请设置为 "true"(有助于防止认证错误)

注意PROTECTED_TOPIC 标志帮助应用程序确定是否需要对您的主题进行认证。当设置为 "true" 且未提供令牌时,您将被提示输入一个。这可以防止受保护主题的认证失败。

使用

认证

此服务器支持经过认证和未经认证的 ntfy 终端:

  • 公共主题:当使用 ntfy.sh 或其他公共服务器上的公共主题时,不需要认证。
  • 受保护主题:对于受保护的主题或私有服务器,您需要提供访问令牌。

如果需要认证但未提供,您将收到一条清晰的错误消息,解释如何添加您的令牌。

设置通知接收器

  1. 在您的设备上安装 ntfy 应用
  2. 订阅您选择的主题(与您的 NTFY_TOPIC 设置相同)

发送通知(ntfy_me 工具)

本节涵盖使用 ntfy_me 工具发送通知的所有功能。

使用自然语言

在与您的 AI 助手工作时,您可以使用自然短语,例如:

“当构建完成时给我发送通知”
“任务完成后通知我”
“生成代码后提醒我”
“过程结束后发信息给我”
“发送高优先级警报”

消息参数

该工具接受以下参数:

参数描述必需
taskTitle通知标题
taskSummary通知正文
priority消息优先级:min, low, default, high, max
tags通知标签数组(支持表情符号简码)
markdown启用 Markdown 格式的布尔值(true/false)
actions可点击链接的操作对象数组

示例:

{
  taskTitle: "代码生成完成",
  taskSummary: "您的 React 组件已成功创建,并具有正确的 TypeScript 类型。",
  priority: "high",
  tags: ["check", "code", "react"]
}

这将发送一个带有勾号表情符号的高优先级通知。

操作链接

您可以通过 actions 参数添加可点击的操作按钮,或者让服务器自动检测消息中的 URL。

自动 URL 检测

当消息正文中存在 URL 时,服务器会自动从检测到的第一个 URL 创建最多 3 个视图操作(ntfy 的最大限制),使包含可点击链接变得容易,而无需手动指定操作数组。

例如,此消息:

{
  taskTitle: "构建完成",
  taskSummary: "您的 PR 已合并!查看更改:https://github.com/org/repo/pull/123 或检查部署:https://staging.app.com"
}

将自动生成两个 URL 的视图操作,使其在通知中易于点击。

手动操作配置

为了更多的控制,您可以手动指定操作:

属性描述必需
action必须是 "view"