Webhook管理服务器

一个基于Golang的MCP服务器,用于通过第三方API管理Webhook,包括列出、添加和更新Webhook功能。

  • by puneetsingh24
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 puneetsingh24/mcp-demo

使用说明

Webhook管理器MCP服务器

Golang MCP(模型上下文协议)服务器,用于通过第三方API管理网络挂钩。

特性

此MCP服务器提供三种用于webhook管理的工具:

  1. list_webhooks -列出API中的所有webhook
  2. add_webhook -创建新的webhook
  3. update_webhook -更新现有的webhook

先决条件

  • 达到1.21或更高
  • 支持webhook管理的第三方API
  • API身份验证的承载令牌

安装

  1. 克隆存储库:
git clone https://github.com/puneetsingh24/mcp-demo.git
cd mcp-demo
  1. 安装依赖项:
go mod download
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your API credentials

配置

设置以下环境变量:

  • WEBHOOK_API_URL -您的webhook API的基本URL(默认值:https://api.example.com/v1)
  • WEBHOOK_BEARER_TOKEN -API身份验证的承载令牌

用法

运行服务器

export WEBHOOK_BEARER_TOKEN="your-bearer-token-here"
export WEBHOOK_API_URL="https://api.example.com/v1"
go run main.go

构建二进制文件

go build -o webhook-manager .
./webhook-manager

MCP工具

1.list_webhooks

列出API中的所有webhook。

参数: 无

示例响应:

Found 2 webhooks:

1. Webhook ID: wh_123
   URL: https://example.com/webhook1
   Active: true
   Events: [order.created order.updated]
   Description: Production webhook

2. Webhook ID: wh_456
   URL: https://example.com/webhook2
   Active: false
   Events: [user.signup]

2.add_webhook

创建新的webhook。

参数:

  • url (必填,字符串)-webhook URL端点
  • events (必填,字符串数组)-要订阅的事件列表
  • description (可选,字符串)-webhook的描述
  • metadata (可选,对象)-其他元数据

例子:

{
  "url": "https://example.com/my-webhook",
  "events": ["order.created", "order.updated"],
  "description": "Production webhook for orders",
  "metadata": {
    "environment": "production",
    "team": "backend"
  }
}

3.update_webhook

更新现有的webhook。

参数:

  • webhook_id (必填,字符串)-要更新的webhook的ID
  • url (可选,字符串)-新的webhook URL端点
  • events (可选,字符串数组)-新的事件列表
  • active (可选,布尔值)-webhook是否处于活动状态
  • description (可选,字符串)-新描述
  • metadata (可选,对象)-新元数据

例子:

{
  "webhook_id": "wh_123",
  "active": false,
  "description": "Disabled for maintenance"
}

API集成

服务器希望第三方API具有以下终结点:

  • GET /webhooks -列出所有Webhook
  • POST /webhooks -创建新的webhook
  • PUT /webhooks/{id} -更新webhook

所有请求包括:

  • Authorization: Bearer {token} 头球
  • Content-Type: application/json 头球

发展

项目结构

mcp-demo/
├── main.go           # Main server implementation
├── go.mod            # Go module dependencies
├── go.sum            # Dependency checksums
├── .env.example      # Example environment variables
└── README.md         # This file

测试

您可以使用MCP客户端或通过stdin/stdout发送JSON-RPC消息来测试服务器。

故障排除

  • “警告:未设置WEBHOOK_BEARER_TOKEN” -确保设置 WEBHOOK_BEARER_TOKEN 环境变量
  • API请求失败 -检查您的API URL和承载令牌是否正确
  • 连接错误 -验证到API终结点的网络连接

许可证

麻省理工学院