使用说明
Webhooks MCP
模型上下文协议 (MCP) 服务器,用于向具有动态参数的 webhooks 发送 HTTP 请求。
功能
- ✅ 支持所有HTTP方法:GET,POST,PUT,PATCH,DELETE
- ✅ 任何类型的动态参数(姓名、电子邮件、电话等)
- ✅ 自定义 HTTP 头
- ✅ 可配置的超时
- ✅ 使用 Zod 验证输入
- ✅ 详细的错误处理
- ✅ 请求和响应日志
安装
- 依赖关系已经安装。如果需要重新安装:
cd webhooks-mcp
npm install
- 编译TypeScript:
npm run build
Claude 桌面配置
向文件添加以下配置 claude_desktop_config.json:
{
"mcpServers": {
"webhooks": {
"command": "node",
"args": ["/Users/rafabarbosa/Desktop/scripts/webhooks-mcp/dist/index.js"]
}
}
}
配置文件位置 :
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
使用
可用工具
send_webhook
向具有自定义参数的 webhook 发送 HTTP 请求。
参数 :
url(必填): webhook URL (例如:https://meuwebhook.com.br )methodHTTP 方法(GET、POST、PUT、PATCH、DELETE)parameters(可选):任何类型的参数对象headers(可选): 额外的 HTTP 标头timeout(可选):超时毫秒(默认值:30000)
使用范例
1. POST用户数据
{
"url": "https://meuwebhook.com.br/usuarios",
"method": "POST",
"parameters": {
"nome": "João Silva",
"email": "joao@email.com",
"telefone": "11999999999",
"idade": 30,
"ativo": true
}
}
2.GET com查询参数
{
"url": "https://api.exemplo.com/dados",
"method": "GET",
"parameters": {
"filtro": "ativo",
"limite": 10,
"pagina": 1
}
}
3. 具有自定义标题的PUT
{
"url": "https://api.exemplo.com/atualizar/123",
"method": "PUT",
"parameters": {
"nome": "João Santos",
"status": "atualizado"
},
"headers": {
"Authorization": "Bearer token123",
"X-Custom-Header": "valor"
}
}
4.删除简单
{
"url": "https://api.exemplo.com/deletar/123",
"method": "DELETE"
}
HTTP 方法行为
- 获取/删除参数作为查询参数发送到URL
- 张贴/张贴/修补参数以JSON形式发送到请求的主体
错误处理
MCP 处理不同类型的错误:
- 校验错误当参数格式不正确时
- Erros HTTP当 webhook 返回错误状态时(4xx、5xx)
- 网络错误超时、连接被拒绝等。
开发
可用的脚本
npm run build:编译TypeScriptnpm run dev以 watch 模式编译npm start: 运行编译的服务器
项目结构
webhooks-mcp/
├── src/
│ └── index.ts # Servidor MCP principal
├── dist/ # Arquivos compilados
├── examples.json # Exemplos de uso
├── claude_desktop_config.json # Configuração de exemplo
├── package.json
├── tsconfig.json
└── README.md
正在测试服务器
测试服务器是否正常工作:
# Compilar
npm run build
# Testar execução (pressione Ctrl+C para sair)
node dist/index.js
# Rodar testes automatizados
npm test
# Os exemplos do arquivo examples.json são validados automaticamente por testes automatizados.
日志
服务器生成详细日志 :
- 已发送的请求(方法、URL、参数)
- 已收到的回复(状态,回复时间)
- 上下文详细错误
安全
- 使用 Zod 严格验证输入
- 标识 MCP 的用户代理头
- 可配置的超时以避免无限的请求
- 在不暴露敏感数据的情况下安全处理错误
- 网址/网域白名单设置环境变量
WHITELIST_URLS(以逗号分隔)限制允许的目的地。例如:
export WHITELIST_URLS="api.exemplo.com,https://hooks.slack.com"
如果未配置, 则允许任何 URL 。
- 可配置的日志级别设置环境变量
LOG_LEVEL为了控制日志的详细性(debug,info,warn,error)。例如:
export LOG_LEVEL="debug"
- 自动保留定义环境变量
RETRY_ATTEMPTS(试验次数,标准 1)和RETRY_BASE_DELAY_MS(初始延迟以毫秒为单位,默认值为 500),以便在临时故障时启用指数式备份的自动保留。
export RETRY_ATTEMPTS=3
export RETRY_BASE_DELAY_MS=1000
- **国际化(i18n)**设置环境变量
LANG如何pt(标准) 或en接收葡萄牙语或英语的消息。
export LANG=en
错误答案示例
- 参数校验错误 :
{
"content": [
{
"type": "text",
"text": "❌ Erro ao enviar webhook!\n\n**Erro:** Erro de validação dos parâmetros\n\n**Detalhes:**\n{...}"
}
],
"isError": true
}
- 错误HTTP(例如500):
{
"content": [
{
"type": "text",
"text": "❌ Erro ao enviar webhook!\n\n**Erro:** Erro HTTP: Request failed with status code 500\n\n**Detalhes:**\n{...}"
}
],
"isError": true
}
- 不允许的 URL( 白名单) :
{
"content": [
{
"type": "text",
"text": "❌ URL não permitida pelo servidor (whitelist).\n\nConsulte o administrador para liberar o domínio ou URL desejada."
}
],
"isError": true
}
HTTP 标头验证
有些标头会自动验证:
Authorization必须是格式Bearer <token>Content-Type: 必须是application/json,application/x-www-form-urlencoded欧点application/xml
有效的标头示例 :
{
"headers": {
"Authorization": "Bearer token123",
"Content-Type": "application/json"
}
}
无效的标头示例 :
{
"headers": {
"Authorization": "Token 123",
"Content-Type": "text/plain"
}
}
常见问题解答
如何设置允许的域名?
设置环境变量 WHITELIST_URLS 以逗号分隔的允许的域名或 URL 列表。
如何启用更详细的日志?
定义 LOG_LEVEL=debug 查看详细日志。
如何自动保持技能?
定义 RETRY_ATTEMPTS e RETRY_BASE_DELAY_MS 如所愿。
如何执行自动化测试?
巴斯塔·罗达尔 npm test 项目的根源。
如何报告错误或建议改进?
在GitHub仓库中打开一个问题。
下一步
- 配置o克劳德桌面向文件添加配置
claude_desktop_config.json - 重新设计克劳德桌面: 装入新配置
- 测试 MCP使用 Claude 发送具有不同参数的 webhook
实际实例
查看文件 examples.json 有关如何在不同场景中使用 MCP 的详细示例:
- 用户注册
- 与CRM集成
- Slack 通知
- 付款处理
- 还有更多!
部署com Docker
您可以使用Docker轻松运行MCP:
docker build -t webhook-mcp .
docker run --rm -p 3000:3000 \
-e WHITELIST_URLS="api.exemplo.com" \
-e LOG_LEVEL=info \
-e RETRY_ATTEMPTS=3 \
webhook-mcp
根据需要调整环境变量。
CLI交互
您可以通过终端手动测试 webhooks:
npx ts-node src/cli.ts
按照提示输入 URL、方法、参数和标题。