MCP Gateway 是一个Golang编写的Model Context Protocol(MCP)网关程序,用于将MCP服务以HTTP API的形式暴露给外部应用使用。
- 加载并管理MCP服务器配置
- 自动初始化并缓存MCP服务的工具信息
- 提供简洁的HTTP API来访问MCP服务
- 支持多种MCP服务器并发处理请求
# 下载项目
git clone https://github.com/yourusername/mcp-gateway.git
cd mcp-gateway
# 安装依赖
go mod tidy
# 构建项目
go build -o mcp-gateway# 使用默认配置文件和端口启动
./mcp-gateway
# 指定配置文件和端口
./mcp-gateway -config=/path/to/mcp-servers-config.json -port=8088配置文件mcp-servers-config.json示例:
{
"mcpServers": {
"Service Name": {
"description": "服务描述",
"type": "stdio",
"command": "npx",
"args": ["-y", "some-mcp-server"],
"env": {"KEY": "VALUE"}
}
}
}- URL:
/api/servers - 方法:
GET - 响应示例:
{
"code": 200,
"message": "成功",
"data": [
{
"name": "Cursor Rules",
"description": "Provides a bridge to Playbooks Rules API..."
}
]
}- URL:
/api/servers/{server}/tools - 方法:
GET - 响应示例:
{
"code": 200,
"message": "成功",
"data": [
{
"name": "tool_name",
"description": "工具描述",
"parameters": {...}
}
]
}- URL:
/api/servers/{server}/tools/{tool} - 方法:
POST - 请求体: 工具参数(JSON格式)
- 请求示例:
{
"param1": "value1",
"param2": "value2"
}- 响应示例:
{
"code": 200,
"message": "成功",
"data": {...} // 工具执行结果
}- github.com/gorilla/mux - HTTP路由
- github.com/yincongcyincong/mcp-client-go - MCP客户端库