AI任务通知服务

轻量级通知服务,集成MCP协议,在AI代理完成任务时发送Webhook通知。

  • by tuberrabbit
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 tuberrabbit/mcp-server-notifier

使用说明

MCP服务器通知器

一种轻量级的通知服务,与MCP(模型上下文协议)集成,在AI代理完成任务时发送Webhook。

简体中文文档

作者

最初由 tuberrabbit@gmail.com.
目前由 祖兹尼珀.

特性

  • Webhook通知:当您的AI代理完成任务时接收警报
  • 多个Webhook提供商:支持Discord、Slack、Microsoft Teams、Feishu、Ntfy和自定义webhooks
  • 图像支持:通过Imgur在通知中包含图像
  • 多项目支持:高效管理不同项目的通知
  • 易于集成:使用Cursor等AI工具进行简单设置
  • 可定制的消息:发送带有标题、正文和链接的个性化通知

安装

选项1:使用npm

npm install -g mcp-server-notifier

选项2:使用Docker

docker pull zudsniper/mcp-server-notifier:latest

# Run with environment variables
docker run -e WEBHOOK_URL=https://your-webhook-url -e WEBHOOK_TYPE=discord zudsniper/mcp-server-notifier

选项3:来源

git clone https://github.com/zudsniper/mcp-server-notifier.git
cd mcp-server-notifier
npm install
npm run build

整合

光标集成

  1. 转到“光标设置”
  2. 点击 MCP 在侧边栏中,然后单击 + Add new global MCP server
  3. 添加 mcp-server-notifier.
{
   "mcpServers": {
      "notifier": {
         "command": "npx",
         "args": [
            "-y",
            "mcp-server-notifier"
         ],
         "env": {
            "WEBHOOK_URL": "https://ntfy.sh/webhook-url-example",
            "WEBHOOK_TYPE": "ntfy"
         }
      }
   }
}

配置

默认情况下,通知程序支持多种webhook类型:

  • Discord 的中文翻译是“不和谐”或“纷争”。
  • Slack
  • 微软Teams
  • 肺俞
  • 通知命令
  • 通用JSON

您可以通过环境变量指定webhook类型和URL:

env WEBHOOK_URL="https://your-webhook-url" WEBHOOK_TYPE="discord" npx -y mcp-server-notifier

身份验证令牌

WEBHOOK_TOKEN 是一个 可选的 环境变量。设置后,它将作为Bearer令牌包含在 Authorization 头球 仅 为了 通知命令 webhook请求。如果 WEBHOOK_TOKEN 未设置,不发送授权标头。

  • 不支持基本身份验证。
  • 此令牌是 忽略 所有其他webhook提供者(Discord、Slack、Teams、Feishu、通用JSON)。

例子:

env WEBHOOK_URL="https://ntfy.sh/your-topic" WEBHOOK_TYPE="ntfy" WEBHOOK_TOKEN="your-secret-token" npx -y mcp-server-notifier

配置文件

对于更高级的配置,您可以创建 webhook-config.json 文件:

{
  "webhook": {
    "type": "discord",
    "url": "https://discord.com/api/webhooks/your-webhook-url",
    "name": "My Notifier"
  },
  "imgur": {
    "clientId": "your-imgur-client-id"
  }
}

请参阅 配置指南 查看完整的细节和示例。

用法

  • 当任务完成时,让你的AI代理用自定义消息通知你
  • 在游标设置中将其配置为持久规则,以避免重复设置

有关详细的使用说明,请参阅 使用指南.

可用工具

  1. notify
    • 目的:向任何配置的webhook发送丰富的通知
    • 输入:
      • message -通知的文本内容
      • title (可选)-通知的标题
      • link (可选)-要包含在通知中的URL(用作ntfy的点击操作)
      • imageUrl (可选)-要包含的图像的URL(传统,使用 image 或 attachments)
      • image (可选)-要上传到Imgur的图像的本地文件路径
      • priority (可选,仅限ntfy)-通知优先级(1-5)
      • attachments (可选,仅限ntfy)-要附加的URL数组
      • template (可选,仅限ntfy)-要使用的预定义模板:状态、问题、进度、问题
      • templateData (可选,仅限ntfy)-用于填充所选模板的数据
      • actions (可选,仅限ntfy)-操作按钮定义数组(view 或 http)
    • 最适合:一般通知需求

注: 模板功能目前正在开发中,支持有限。模板与ntfy.sh配合使用效果最佳,但可能无法完全用于所有webhook提供程序。有关未来的实施计划,请参阅ROADMAP.md文件。

NTFY模板

使用ntfy.sh作为webhook提供程序时,可以使用以下预定义模板:

  1. 状态模板 (status)

    • 目的:发送有关系统、流程或任务的状态更新
    • 数据字段:
      • status -当前状态(例如,“在线”、“已完成”、“待定”)
      • details (可选)-有关状态的其他信息
      • timestamp (可选)-记录此状态时
      • component (可选)-此状态适用的系统组件
  2. 问题模板 (question)

    • 目的:提出需要回答的问题
    • 数据字段:
      • question -被问到的主要问题
      • context (可选)-问题的背景信息
      • options (可选)-可能的答案选项
      • deadline (可选)-当需要响应时
  3. 进度模板 (progress)

    • 目的:跟踪长时间运行的任务的进度
    • 数据字段:
      • title -任务或流程的名称
      • current -当前进度值
      • total -完成总价值
      • percentage (可选)-显式百分比值(如果未提供,则计算)
      • eta (可选)-预计完成时间
      • details (可选)-有关进度的其他信息
  4. 问题模板 (problem)

    • 目的:报告错误或问题
    • 数据字段:
      • title -问题的简短描述
      • description (可选)-有关问题的详细信息
      • severity (可选)-问题有多严重(例如,“严重”、“警告”)
      • source (可选)-问题来源
      • timestamp (可选)-问题发生时
      • solution (可选)-解决问题的建议方法

使用模板的示例:

// Send a progress notification
{
  "template": "progress",
  "templateData": {
    "title": "Database Backup",
    "current": 75,
    "total": 100,
    "eta": "2 minutes remaining",
    "details": "Compressing backup files"
  },
  "priority": 3
}

Docker支持

MCP服务器通知程序可作为Docker映像使用:

docker pull zudsniper/mcp-server-notifier:latest

使用环境变量运行:

docker run -e WEBHOOK_URL=https://your-webhook-url -e WEBHOOK_TYPE=discord zudsniper/mcp-server-notifier

示例配置

示例webhook配置可在 示例 目录。

发展

设置开发环境

  1. 克隆存储库:
git clone https://github.com/zudsniper/mcp-server-notifier.git
cd mcp-server-notifier
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

测试您的更改

  1. 在开发模式下运行MCP服务器:
# Install the MCP Inspector if you haven't already
npm install -g @modelcontextprotocol/inspector

# Start the server with the Inspector
npx @modelcontextprotocol/inspector node build/index.js
  1. Inspector提供了一个web界面,您可以在其中:
    • 向您的工具发送请求
    • 查看请求/响应日志
    • 调试实现中的问题

发布新版本

要发布新版本,请执行以下操作:

  1. 更新版本 package.json
  2. 将更改推送到 release 分支
  3. GitHub操作将自动:
    • 运行测试
    • 构建和推送Docker镜像
    • 发布到npm
    • 创建GitHub版本

CI/CD所需的存储库机密:

  • DOCKERHUB_USERNAME -Docker Hub用户名
  • DOCKERHUB_TOKEN -Docker Hub访问令牌
  • NPM_TOKEN -npm访问令牌

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

贡献

欢迎投稿!请随时提交拉取请求。

此MCP已通过MCP Review认证。
认证页面: https://mcpreview.com/mcp-servers/tuberrabbit/mcp-server-notifier