统一通知网关

mcp-push是一个标准的MCP服务器和钩子工具,旨在连接AI代理(如Claude Code、Cursor)与日常通信工具,支持向20多个渠道发送通知。

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

使用说明

mcp推送

人工智能代理的统一通知网关

中文文档 |英语

mcp推送 是一个标准的MCP服务器和钩子实用程序,旨在将AI代理(如Claude Code、Cursor)与您的日常通信工具连接起来。它支持向发送通知 20+频道 包括钉钉、百灵鸟、电报、微信和电子邮件。


✨ 主要特点

  • 🔌 20+频道:钉、百灵鸟、微信、电报、电子邮件、吠叫、ServerChan等。
  • 🤖 零配置挂钩:在Claude Code中自动检测长时间运行的任务(>60秒),并在完成或失败时通知您。
  • 📊 结构化事件:支持结构化JSON日志记录(notify_event)用于详细的任务跟踪。
  • 🚀 轻松设置:通过安装 uvx 或者一行shell脚本。

🚀 快速开始

1.️⃣ 安装MCP服务器

使用 uvx (推荐):

codex mcp add mcp-push -- uvx --from git+https://github.com/d4renk/mcp-push.git mcp-push

2.️⃣ 配置自动通知挂钩

长任务完成时自动接收警报。

# One-click install
curl -fsSL https://raw.githubusercontent.com/d4renk/mcp-push/main/install-hook.sh | bash

备注:需要 jq 用于自动配置。

3.️⃣ 设置频道

创建一个 config.sh 文件来定义您的webhook凭据。

cp config.sh.example config.sh
vim config.sh

最小配置示例:

# DingTalk
export DD_BOT_TOKEN="your-token"
export DD_BOT_SECRET="your-secret"

# Lark
export FSKEY="your-webhook-key"

# Telegram
export TG_BOT_TOKEN="your-bot-token"
export TG_USER_ID="your-user-id"

看 docs/CHANNEL_CONFIG.md 对于所有支持的频道。


📡 用法

1.简单通知(notify_send)

最适合用于一般警报或一次性消息。

// MCP Tool Call
use_mcp_tool("notify_send", {
  "title": "🚀 Build Success",
  "content": "Deployment finished in 3m 20s."
});

2.事件跟踪(notify_event)

最适合结构化日志和任务生命周期跟踪(开始->更新->结束)。

// MCP Tool Call
use_mcp_tool("notify_event", {
  "run_id": "task-2024-001",
  "event": "end",  // Options: start | update | end | error
  "message": "Analysis completed",
  "data": {
    "files_processed": 150,
    "errors_found": 0
  }
});

🔌 支持的频道

服务 配置变量 文档
钉钉 DD_BOT_TOKEN, DD_BOT_SECRET 官方
云雀 FSKEY 官方
企业微信 QYWX_KEY 官方
电报 TG_BOT_TOKEN, TG_USER_ID 官方
吠叫(iOS) BARK_PUSH 官方
服务器Chan PUSH_KEY 官方
电子邮件 SMTP_SERVER, SMTP_USER... -
自定义Webhook WEBHOOK_URL -

完整列表可在 config.sh示例.


⚙️ 高级配置

钩子行为

通过以下方式自定义Hook与MCP服务器的交互方式 config.sh:

# Enable structured event notifications (Default: true)
export MCP_PUSH_STRUCTURED=true

# MCP Call Timeout (Default: 10s)
export MCP_PUSH_TIMEOUT_SEC=10

# Error Log Path
export MCP_PUSH_HOOK_LOG_PATH="/tmp/mcp-push-hook.log"

环境加载

配置按以下顺序加载(优先级越高,优先级越低):

  1. 系统环境 (export VAR=...)
  2. 本地配置 (./config.sh)
  3. 项目配置 (/path/to/mcp-push/config.sh)

🛠️ 发展

# Install dependencies
pip install -r requirements.txt

# Run tests
python test_mcp_push.py

# Test Hook integration
python test-hook-integration.py

贡献

欢迎拉取请求!请确保为新频道添加相关测试。


🗑️ 卸载

# Remove Hook
curl -fsSL https://raw.githubusercontent.com/d4renk/mcp-push/main/uninstall-hook.sh | bash

# Remove MCP server
codex mcp remove mcp-push

📄 许可证

MIT许可证。看 许可证 了解详情。