mcpField
M
MCP-Gateway

MCP-Gateway

本地服务
github.com/adcwa开发工具280 周前更新

关于 MCP-Gateway

MCP-Gateway 为需要连接 API 等数据源的团队管理 HTTP 接口定义和 MCP 服务。它支持转换 curl 命令与 OpenAPI 规范、管理版本,并将 MCP 服务编译为 WebAssembly 后激活。

主要功能

  1. 01管理 HTTP 接口及其版本
  2. 02将 curl 命令转为 HTTP 定义
  3. 03导入和导出 OpenAPI 规范
  4. 04管理 MCP 服务及版本
  5. 05将服务编译为 WebAssembly
  6. 06配置服务路由

适用场景

  1. 01将现有 curl 命令转换为 API 定义
  2. 02将 OpenAPI 路径导入为 HTTP 接口
  3. 03基于已管理的 HTTP 接口发布工具

MCP 相关

它根据 HTTP 接口定义创建和管理 MCP 服务,将其编译为 WebAssembly 并激活,同时路由 MCP 客户端的工具调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-Gateway

MCP-Gateway 是一项提供 MCP Server 统一管理能力的服务,可帮助 AI Agent 快速连接各种数据源。借助 MCP Server,AI Agent 无需关注具体的连接细节,即可轻松访问数据库、REST API 和其他外部服务。

功能

  • HTTP 接口管理:支持导出 OpenAPI 结构、将 HTTP 转换为 MCP Server YAML 格式,以及对接口进行版本管理。
    • 将 curl 命令转换为 HTTP 接口:轻松将 curl 命令转换为格式规范的 HTTP 接口。
    • 导入/导出 OpenAPI:在 HTTP 接口与 OpenAPI 规范之间进行转换,便于与现有 API 框架集成。
  • MCP Server 管理:支持管理 MCP Server 元数据、选择多个 HTTP 结构来更新元数据、发布 MCP Server(编译为 WebAssembly 以便动态加载)以及版本控制。
  • 路由管理:支持路由配置,例如将 xxx/mcp-server/{name} 匹配到名称为 {name} 的 MCP Server。

架构

MCP-Gateway 由三个核心模块组成:

  1. HTTP 接口管理:定义和管理 API 配置。
  2. MCP Server 管理:管理 MCP Server 实例,将其编译为 WebAssembly,并处理运行时执行。
  3. 路由管理:管理 MCP Server 的路由规则。

开始使用

前置条件
  • Go 1.19 或更高版本
  • Git
安装
  1. 克隆仓库:

    git clone https://github.com/wangfeng/mcp-gateway2.git
    cd mcp-gateway2
    
  2. 安装依赖项:

    go mod tidy
    
  3. 运行服务:

    go run cmd/server/main.go
    
  4. 服务默认会在端口 8080 上启动。你可以通过设置 PORT 环境变量来自定义端口。

测试

如需测试 API,请运行测试客户端:

go run test/client.go

此操作将:

  1. 列出可用的 HTTP 接口
  2. 使用其中一个接口创建 MCP Server
  3. 将 MCP Server 编译为 WebAssembly
  4. 激活 MCP Server
  5. 调用 MCP Server 上的工具

如需测试 curl 转换功能,请运行 curl 测试客户端:

go run test/curl/curl_client.go

此操作将:

  1. 将多个 curl 命令转换为 HTTP 接口
  2. 使用转换后的接口创建 MCP Server
  3. 编译并激活 MCP Server
  4. 调用 MCP Server 上的工具

如需测试 OpenAPI 转换功能,请运行 OpenAPI 测试客户端:

go run test/openapi/openapi_client.go

此操作将:

  1. 将现有 HTTP 接口导出为 OpenAPI 格式
  2. 导入示例 OpenAPI 规范以创建新的 HTTP 接口
  3. 执行往返转换(导出为 OpenAPI 后再导入)

API 文档

HTTP 接口
  • GET /api/http-interfaces:列出所有 HTTP 接口
  • GET /api/http-interfaces/:id:获取指定的 HTTP 接口
  • POST /api/http-interfaces:创建新的 HTTP 接口
  • PUT /api/http-interfaces/:id:更新 HTTP 接口
  • DELETE /api/http-interfaces/:id:删除 HTTP 接口
  • GET /api/http-interfaces/:id/versions:获取 HTTP 接口的所有版本
  • GET /api/http-interfaces/:id/versions/:version:获取 HTTP 接口的指定版本
  • GET /api/http-interfaces/:id/openapi:将 HTTP 接口导出为 OpenAPI 格式
  • POST /api/http-interfaces/from-curl:根据 curl 命令创建新的 HTTP 接口
  • POST /api/http-interfaces/from-openapi:根据 OpenAPI 规范创建新的 HTTP 接口
MCP Servers
  • GET /api/mcp-servers:列出所有 MCP Server
  • GET /api/mcp-servers/:id:获取指定的 MCP Server
  • POST /api/mcp-servers:根据 HTTP 接口创建新的 MCP Server
  • PUT /api/mcp-servers/:id:更新 MCP Server
  • DELETE /api/mcp-servers/:id:删除 MCP Server
  • GET /api/mcp-servers/:id/versions:获取 MCP Server 的所有版本
  • GET /api/mcp-servers/:id/versions/:version:获取 MCP Server 的指定版本
  • POST /api/mcp-servers/:id/compile:将 MCP Server 编译为 WebAssembly
  • POST /api/mcp-servers/:id/activate:激活 MCP Server
  • POST /api/mcp-servers/:id/tools/:tool:调用 MCP Server 中的工具

curl 转 HTTP 接口

系统支持将 curl 命令转换为 HTTP 接口。只需向 /api/http-interfaces/from-curl 发送 POST 请求,并附上以下 JSON 正文:

{
  "command": "curl -H \"Content-Type: application/json\" https://api.example.com/resource",
  "name": "example-api",
  "description": "Example API endpoint"
}

系统将解析 curl 命令,并创建格式规范的 HTTP 接口,可用于创建 MCP 服务。

OpenAPI 转换

导出为 OpenAPI

向 /api/http-interfaces/:id/openapi 发送 GET 请求,即可将任意 HTTP 接口导出为 OpenAPI 格式。响应将是格式规范的 OpenAPI 3.0.0 规范,可与其他 OpenAPI 工具配合使用。

从 OpenAPI 导入

向 /api/http-interfaces/from-openapi 发送 POST 请求,并附上以下 JSON 正文,即可从 OpenAPI 规范创建新的 HTTP 接口:

 go run test/openapi/openapi_client.go
{
  "name": "my-api",
  "description": "My API description",
  "spec": {
    "openapi": "3.0.0",
    "info": {
      "title": "Sample API",
      "description": "A sample API",
      "version": "1.0.0"
    },
    "paths": {
      "/users": {
        "get": {
          "summary": "Get all users",
          "responses": {
            "200": {
              "description": "A list of users"
            }
          }
        }
      }
    }
  }
}

系统将解析 OpenAPI 规范,并为每个路径/操作组合创建 HTTP 接口。

许可证

MIT

参考资料

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。