Token导航 LogoToken导航TokenDH.com
Easy Webhook MCP logo
办公协作stdio官方级别未说明来源级核验

Easy Webhook MCP

MCP Server

EasyWebhook-MCP是一个通过Claude Desktop发送Webhook到任何HTTP端点的服务,支持.env文件管理和多种HTTP方法。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude团队协作Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

plgonzalezrx8

提供方

plgonzalezrx8

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python easywebhook_server.py

详细介绍

EasyWebhook-MCP 服务器

使用支持.env文件的Claude Desktop,向任意HTTP端点发送Webhooks!

![MCP](https://modelcontextprotocol.io) ](https://www.docker.com/) ![License](LICENSE)

概述

EasyWebhook-MCP是一个模型上下文协议(MCP)服务器,它使Claude能够向Discord、Slack或任何自定义HTTP端点发送webhooks。它为AI助手提供了一个安全的接口,以向各种服务发送webhook请求,而无需直接API访问或文件系统权限。现在支持 .env 文件支持 便于管理webhook!

✨ 特点/功能

🎯 核心能力

  • ✅ 向(某处)发送Webhooks 任何HTTP端点
  • ✅ 支持 GET、POST、PUT、PATCH、DELETE 方法
  • ✅ 自定义头部和JSON有效载荷
  • Discord 嵌入(或内联)内容 带有标题、颜色和字段
  • Slack集成 用于团队通知
  • 在 .env 文件中存储 Webhooks 便于管理
  • 通过别名引用Webhooks - 不要再复制/粘贴了!
  • ✅ 带有状态码的详细响应反馈
  • ✅ 清晰错误信息的错误处理

🔐 安全

  • 无需访问文件系统
  • 在隔离的Docker容器中以非root用户身份运行
  • 列表输出中Webhook URL已隐藏
  • 30秒超时保护防止程序挂起
  • 建议所有webhook URL使用HTTPS
  • .env 受保护的文件 .gitignore

🛠️ 可用工具

基于别名的工具 (使用存储在 .env 中的 webhooks):

  • list_webhooks - 列出所有已配置的Webhook别名
  • send_webhook_by_alias - 使用存储的别名发送webhook
  • send_discord_webhook_by_alias - 通过别名嵌入Discord(支持标题、颜色、用户名、头像)
  • send_slack_webhook_by_alias - 通过别名发送Slack消息

直接URL工具 (每次传递webhook URL):

  • send_webhook - 通用Webhook发送器(GET、POST、PUT、PATCH、DELETE)
  • send_discord_webhook - Discord 嵌入式消息(支持标题、颜色、用户名、头像)
  • send_slack_webhook - 含URL的Slack消息

🚀 快速入门

先决条件

  • 带有MCP工具包的Docker Desktop
  • Claude 桌面应用程序

安装

1. 创建 .env 文件:

cd c:\Users\plgon\Downloads\EasyWebhook-MCP
copy .env.example .env
notepad .env

添加您的Webhooks:

DISCORD_WEBHOOK=https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN
SLACK_WEBHOOK=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
MY_CUSTOM_API=https://api.example.com/webhook

2. 构建Docker镜像:

docker build -t easywebhook-mcp-server .

3. 配置Claude桌面版:

# Copy catalog
copy custom.yaml $env:USERPROFILE\.docker\mcp\catalogs\custom.yaml

# Update registry
notepad $env:USERPROFILE\.docker\mcp\registry.yaml

在注册表中添加到 registry:

  easywebhook:
    ref: ""

更新Claude配置于 %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mcp-toolkit-gateway": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/var/run/docker.sock:/var/run/docker.sock",
        "-v", "C:\\Users\\plgon\\.docker\\mcp:/mcp",
        "docker/mcp-gateway",
        "--catalog=/mcp/catalogs/docker-mcp.yaml",
        "--catalog=/mcp/catalogs/custom.yaml",
        "--config=/mcp/config.yaml",
        "--registry=/mcp/registry.yaml",
        "--tools-config=/mcp/tools.yaml",
        "--transport=stdio"
      ]
    }
  }
}

4. 重启Claude桌面版

💡 使用示例

使用存储的Webhooks(推荐)

列出已配置的webhooks:

You: "List my webhooks"

Claude: 📋 Stored Webhooks:
  • DISCORD_WEBHOOK: https://discord.com/api/webh...
  • SLACK_WEBHOOK: https://hooks.slack.com/serv...
  • MY_CUSTOM_HOOK: https://example.com/webhook...

简单的Discord消息:

You: "Send Discord message using DISCORD_WEBHOOK saying 'Hello World!'"

Claude: ✅ Discord embed sent successfully!

带有标题和颜色的Discord(或:带有标题和色彩的Discord界面/主题)

You: "Send to DISCORD_WEBHOOK with title 'Deployment Status' message 'All systems operational' and color 00FF00"

Claude: ✅ Discord embed sent successfully!
📌 Title: Deployment Status

带有完整嵌入功能的Discord(JSON格式):

You: "Send to DISCORD_WEBHOOK: {'title': 'Server Metrics', 'description': 'Current status', 'color': 3447003, 'fields': [{'name': 'CPU', 'value': '45%', 'inline': true}, {'name': 'RAM', 'value': '62%', 'inline': true}]}"

Claude: ✅ Discord embed sent successfully!

Slack消息:

You: "Send to SLACK_WEBHOOK: 'Deployment complete'"

Claude: ✅ Slack message sent successfully!

自定义webhook:

You: "Use MY_CUSTOM_HOOK to send {\"status\": \"active\", \"uptime\": 3600}"

Claude: ✅ Webhook sent successfully!
📊 Status: 200

使用直接URL

通用Webhook:

You: "Send POST webhook to https://example.com/hook with payload {\"test\": true}"

Claude: ✅ Webhook sent successfully!

带有URL的Discord(或:含URL的Discord信息)

You: "Send Discord webhook to [URL] with message 'Alert!' and color FF0000"

Claude: ✅ Discord embed sent successfully!

有效载荷格式

简单文本:

{"message": "Hello World"}

JSON有效载荷:

{"title": "Alert", "status": "active", "priority": 1}

自定义头部:

{"Authorization": "Bearer token123", "X-Custom-Header": "value"}

或者用逗号分隔:

"Authorization: Bearer token123, X-Custom-Header: value"

📐 建筑学

Claude Desktop → MCP Gateway → EasyWebhook MCP Server → Target Webhook URL
                                         ↓
                                .env file (local)
                                         ↓
                            Discord/Slack/Custom API

📚 文档

🎯 为什么要使用 .env 文件?

之前:

❌ Copy/paste long URLs every time
❌ Risk of typos
❌ Hard to manage multiple webhooks

之后:

✅ Simple aliases like "DISCORD_WEBHOOK"
✅ Store once, use everywhere
✅ Easy to update and manage
✅ More secure (URLs in local file)

🔧 更新Webhooks

  1. 编辑 .env 文件
  2. 重建: docker build -t easywebhook-mcp-server .
  3. 重启Claude桌面版

🔧 开发

本地测试

# Run server directly
python easywebhook_server.py

# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python easywebhook_server.py

测试Webhooks

Discord Webhook(中文可译为“Discord 网络钩子”或“Discord 回调接口”,具体翻译可能根据上下文有所调整)

在Discord中创建一个Webhook:服务器设置 → 集成 → Webhooks

Slack Webhook(中文可译为“Slack网络钩子”或“Slack回调接口”,但通常根据上下文简化为“Slack Webhook”直接使用,因其已成为一个固定术语)

创建一个应用程序于 api.slack.com/apps 翻译为中文是:“Slack API 应用程序页面” 并启用传入Webhooks

自定义Webhook:

任何接受POST/GET/PUT/PATCH/DELETE请求的HTTP端点

🐛 故障排除

工具未显示

  • 验证Docker镜像是否成功构建: docker images | grep easywebhook
  • 检查目录和注册表文件中的语法错误
  • 确保 Claude Desktop 配置中包含自定义目录路径
  • 完全重启Claude桌面版(退出后重新打开)

Webhook 失败

  • 验证webhook URL是否正确且可访问
  • 检查webhook是否已被删除或撤销
  • 确保有效载荷格式与服务所需的预期格式相匹配
  • 检查HTTP状态码的错误消息

超时错误

  • Webhook 端点可能较慢或不可用
  • 检查网络连接
  • 验证目标服务是否正常运行

“未找到别名对应的webhook”

  • 检查 .env 文件存在于项目目录中
  • 验证别名匹配(不区分大小写)
  • 重建Docker镜像: docker build -t easywebhook-mcp-server .
  • 确保URL以……开头 http:// 或者 https://

无效URL错误

  • 确保URL包含 http:// 或者 https://
  • 验证webhook URL中没有拼写错误
  • 检查URL格式是否正确

完整的故障排除指南 SETUP_GUIDE.md 翻译为中文是:“安装指南.md”(其中,.md 表示这是一个Markdown格式的文件)

📁 项目结构

EasyWebhook-MCP/
├── .env.example              # Webhook configuration template
├── .env                      # Your webhooks (create this)
├── .gitignore                # Git ignore rules (protects .env)
├── easywebhook_server.py     # Main MCP server
├── requirements.txt          # Python dependencies
├── Dockerfile                # Docker configuration
├── custom.yaml               # MCP catalog definition
├── README.md                 # This file (complete documentation)
├── QUICK_START.md           # Fast setup guide
├── SETUP_GUIDE.md           # Detailed instructions
├── VISUAL_GUIDE.txt         # Visual walkthrough
├── CHANGELOG.md             # Version history
└── CLAUDE.md                # Implementation guide

🤝 贡献(或“参与贡献”)

欢迎贡献!这是一个开源的MCP服务器,我们非常希望得到您的帮助,使其更加完善。

贡献的方式

  • 🐛 表示“虫子”或“错误(bug)”的意思,根据上下文可灵活翻译为“小虫子”或“错误”。 报告错误 - 打开一个问题描述,说明遇到的问题
  • 💡(这个符号在中文中通常表示“灵感”或“想法”,但直接翻译时,我们可能更倾向于用其含义来表达,而非直接翻译符号本身) 建议功能 - 分享关于新工具或改进的想法
  • 📝 完善文档 - 修正拼写错误,明确说明,添加示例
  • 🔧 修理工具或螺丝刀的符号,常用于表示需要修理或调整的事物。 提交代码 - 修复漏洞,增加功能,提升性能
  • 给仓库加星标 - 表现出你的支持!

开发环境设置

  1. 克隆仓库并进行分支
   git clone https://github.com/YOUR_USERNAME/EasyWebhook-MCP.git
   cd EasyWebhook-MCP
  1. 创建一个 .env 用于测试的文件
   cp .env.example .env
   # Add your test webhook URLs
  1. 进行你的更改

- 遵循现有的代码风格 - 为MCP工具使用单行文档字符串 - 为新功能添加错误处理 - 提交前请彻底测试

  1. 测试你的更改
   # Build Docker image
   docker build -t easywebhook-mcp-server .

   # Test locally
   python easywebhook_server.py
  1. 提交一个拉取请求

- 描述一下你的公关(PR)部门的工作内容 - 提及任何相关问题 - 如果添加新功能,请包含示例

添加新工具

添加一个新的webhook工具:

  1. 添加该功能到 easywebhook_server.py
   @mcp.tool()
   async def send_my_service_webhook(webhook_url: str = "", message: str = "") -> str:
       """Send a message to MyService using a webhook URL.""  # Single-line only!
       # Implementation here
       return "✅ Message sent successfully!"
  1. 遵循以下指南:

- 用……装饰 @mcp.tool() - 使用 仅限单行文档字符串 (多行代码导致错误) - 使用空字符串作为默认值: param: str = "" 不是 param: str = None - 返回带有表情符号(✅ ❌ ⚠️ 📊)的格式化字符串 - 添加全面的错误处理 - 将日志记录到标准错误输出(stderr)

  1. 更新 custom.yaml
   tools:
     - name: send_my_service_webhook
  1. 更新文档

- 在README.md中添加使用示例 - 如有需要,请更新 SETUP_GUIDE.md 文件 - 更新 CHANGELOG.md 文件

  1. 重建并测试
   docker build -t easywebhook-mcp-server .
   # Test in Claude Desktop

代码风格指南

  • python 遵循PEP 8规范,使用async/await进行HTTP操作
  • 错误信息: 用户友好,带有表情符号指示器
  • 日志记录: 使用 logger.info() 并且 logger.error() 对于重要事件
  • 安全: 切勿记录完整的Webhook URL,对敏感数据进行掩码处理
  • 类型提示: 使用简单类型(str,int),避免使用Optional/Union

测试指南

提交前:

  • ✅ 使用真实的webhook URL测试所有新工具
  • ✅ 测试错误条件(无效URL、超时等)
  • ✅ 验证更改在Docker容器中有效
  • ✅ 确认Claude Desktop已识别新工具
  • ✅ 确保没有硬编码或记录任何秘密信息

文档编写指南

  • 保持README.md简洁且以用户为中心
  • 为复杂功能添加详细示例
  • 更新 CHANGELOG.md 文件以记录所有更改
  • 使用清晰、友好的语言
  • 包含表情符号以增强视觉清晰度🎨

寻求帮助

许可证

通过贡献内容,您同意您的贡献将依据MIT许可证进行授权。

📄 许可证

MIT 许可证 - 在您的项目中自由使用

🔗 资源

⚙️ 响应格式

所有工具返回的都是格式化后的字符串,其中包含:

  • ✅ 成功指标
  • ❌ 错误信息
  • 📊 状态码
  • 🌐 URL信息
  • ⚡ 使用的方法
  • 📄 响应预览(前200个字符)

⚠️ 局限性

  • 每个请求的最大超时时间为30秒
  • 响应体输出限制为200个字符
  • 大多数结构化数据所需的JSON有效载荷格式
  • 不支持通过webhooks上传文件

🎉 v2.0 新功能亮点

  • ✨(闪亮的星星符号,常用于表示兴奋、赞许或强调) .env 支持将文件存储到webhook
  • 🔧 四个基于别名的新工具
  • 📋 代表一个清单或待办事项的符号,可翻译为“清单”或“待办事项列表”。 list_webhooks 查看配置的工具
  • 🔒 增强安全性,实现URL遮蔽
  • 🎨 Discord 嵌入式消息,支持全面自定义(标题、颜色、字段)
  • 📚 完整的文档资料

______________________________________________________________________

准备好从Claude发送webhooks了吗? 关注 QUICK_START.md 翻译为中文是:“快速入门指南.md”(其中,“.md”通常表示Markdown格式的文件) 5分钟内快速上手! 🚀(火箭发射或快速上升的符号,无具体文字对应,可意译为“嗖的一下”或根据上下文翻译为“火箭升空”等)

目录标签

目录标签

PythonClaude团队协作Webhook服务本地部署HTTP端点Discord集成Slack集成环境变量管理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP