项目简介

MCP Gateway 是一个使用 Go 语言开发的轻量级网关服务,旨在帮助个人和企业轻松地将其现有的 API 服务(如 RESTful、gRPC)转换为 MCP (Model Context Protocol) 服务器。它通过简单的配置即可实现 API 服务的 MCP 化,降低了接入 MCP 生态的门槛。

主要功能点

  • 平台无关性: 可以轻松集成到任何环境,如物理机、虚拟机、ECS、K8s,无需改动基础设施。
  • 多协议转换: 支持通过配置将 RESTful 和 gRPC API 转换为 MCP 服务器。目前已完成 RESTful API 的转换,gRPC 转换功能正在开发中。
  • 高性能和高可用性: 轻量级设计,保证了高性能和高可用性,易于复制和扩展。
  • 用户友好的管理界面: 提供直观的管理 UI,降低学习和维护成本。
  • 零侵入集成: 无需修改现有 API 服务的代码即可完成 MCP 服务器的转换。
  • 透明数据传递: 请求头、参数、请求体和响应内容都可透明地传递和转换。
  • 流式 HTTP 支持: 支持流式 HTTP 响应,适用于实时性要求较高的场景。

安装步骤

  1. 克隆仓库

    git clone https://github.com/mcp-ecosystem/mcp-gateway.git
    cd mcp-gateway
  2. 安装依赖

    go mod download
  3. 运行服务

    同时需要启动 Gateway ServiceManagement Service 两个后端服务。

    • Gateway Service: 负责将API转换为MCP服务器的核心网关服务。

      go run ./cmd/mcp-gateway/main.go
    • Management Service: 提供管理 UI 和 API 的服务,用于配置和管理 MCP 服务器。

      go run cmd/apiserver/main.go
  4. 前端开发 (可选)

    如果需要进行前端开发或体验管理界面,可以按照以下步骤启动前端开发服务器。

    cd web
    npm install
    npm run dev

    前端管理界面默认访问地址为 'http://localhost:5173'。

服务器配置

MCP Gateway 的配置文件位于 'configs' 目录下,支持 YAML 格式。您需要根据实际的后端 API 服务配置 'configs' 目录下的 YAML 文件,以定义如何将现有 API 转换为 MCP 服务器。

以下是一个 MCP 客户端连接 MCP Gateway 服务器的配置示例 (JSON 格式):

{
  "serverName": "your_mcp_server_name",  //  MCP 服务器的名称,根据你的实际配置命名
  "command": "http://localhost:8080/your_prefix/mcp", // MCP 服务器的启动命令,指向 mcp-gateway 提供的 MCP 协议端点,需要替换 'your_prefix' 为你在配置文件中设置的路由前缀
  "args": {
    "transport": "streamable-http" //  指定使用 Streamable HTTP 传输协议,mcp-gateway 也支持 SSE,可以设置为 "sse"
  }
}

配置参数说明:

  • 'serverName': 自定义的 MCP 服务器名称,用于在客户端标识和管理不同的 MCP 服务器连接。
  • 'command': 关键配置。这是 MCP 客户端用于连接 MCP Gateway 服务器的 URL。
    • 'http://localhost:8080' 是 MCP Gateway 服务默认运行的地址和端口。
    • '/your_prefix' 需要替换为你实际配置的路由前缀,这个前缀在 'configs' 目录下的 YAML 配置文件中定义,用于区分不同的 MCP 服务器实例。例如,如果你的配置文件中 'routers' 部分定义了 'prefix: "/user-api"',那么这里就应该替换为 '/user-api'。
    • '/mcp' 是 MCP Gateway 提供的 MCP 协议处理端点。
  • 'args': 启动参数,用于配置连接的具体行为。
    • 'transport': 指定 MCP 客户端与 MCP Gateway 服务器之间使用的传输协议。
      • '"streamable-http"': 使用 Streamable HTTP 协议,这是推荐的协议,提供双向流式通信能力,效率更高。
      • '"sse"': 使用 Server-Sent Events (SSE) 协议,单向服务器推送事件流,兼容性好。

重要提示:

  • 请确保 Gateway ServiceManagement Service 两个后端服务都已成功启动。
  • 根据你的后端 API 服务和期望的 MCP 服务器行为,详细配置 'configs' 目录下的 YAML 文件,包括路由规则、工具定义、服务器设置等。
  • 上述 JSON 配置示例中的 'command' 和 'serverName' 需要根据你的实际 YAML 配置文件进行调整。
  • 如果使用前端管理界面,可以通过浏览器访问 'http://localhost:5173' 进行更便捷的配置和管理操作。

基本使用方法

  1. 配置 MCP 服务器: 根据你的后端 API 服务,修改 'configs' 目录下的 YAML 配置文件,定义工具 (Tools)、服务器 (Servers)、路由 (Routers) 等。
  2. 启动 MCP Gateway: 分别启动 Gateway Service 和 Management Service 后端服务。
  3. 配置 MCP 客户端: 在你的 MCP 客户端应用中,配置连接信息,包括 MCP 服务器名称、启动命令 (command) 和参数 (args),参考上面提供的 JSON 配置示例。
  4. 连接和使用: MCP 客户端应用即可通过配置的连接信息与 MCP Gateway 服务器建立连接,并利用 MCP Gateway 将后端 API 服务以 MCP 协议的形式提供给 LLM 应用使用。
  5. 管理和监控: 通过前端管理界面 (如果启动了 Management Service) 可以对 MCP 服务器进行配置管理和状态监控。

信息

分类

网页与API