使用说明

项目简介

mcp-gateway 是一个 Model Context Protocol (MCP) 服务器的网关,它充当反向代理,将客户端的 MCP 请求转发到后端的实际 MCP 服务器。通过 mcp-gateway,您可以集中管理多个 MCP 服务器,并为 LLM 客户端提供统一的接入点。客户端只需要与 mcp-gateway 交互,即可访问和使用后端各个 MCP 服务器提供的资源和工具。

主要功能点

  • MCP 服务器注册与管理: 允许动态注册后端的 MCP 服务器,并根据服务器名称进行路由。
  • 反向代理: 将客户端的 MCP 请求代理到已注册的后端 MCP 服务器。
  • SSE 响应修改: 针对 SSE (Server-Sent Events) 响应进行内容修改,例如重写 URL,以适应网关的代理路径。
  • 概览接口: 提供 '/overview' 接口,用于查看已注册的 MCP 服务器信息,方便客户端了解可用的服务。
  • CORS 支持: 支持跨域资源共享 (CORS),允许来自不同域的客户端访问。

安装步骤

  1. 克隆仓库
    git clone https://github.com/daodao97/mcp-gateway.git
    cd mcp-gateway
  2. 启动 Docker Compose 确保您已安装 Docker 和 Docker Compose。在仓库根目录下,运行:
    docker compose up
    这将启动 mcp-gateway 服务。默认情况下,网关监听在 '3121' 端口。

服务器配置

对于 MCP 客户端,您需要配置连接到 mcp-gateway 的信息。以下是一个 JSON 格式的配置示例,您可以根据实际情况进行调整。请注意,MCP 客户端应该配置的是 mcp-gateway 的地址,而不是后端真实的 MCP 服务器地址。

{
  "serverName": "mcp-gateway",
  "serverUrl": "http://localhost:3121/weather/sse",
  "type": "sse"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,用于在客户端中标识连接。
  • 'serverUrl': MCP 服务器的 SSE 服务地址。对于 mcp-gateway,这个地址通常是 'http://<网关地址>:<网关端口>/<服务器名称>/sse'。
    • '<网关地址>': 运行 mcp-gateway 的服务器地址,例如 'localhost' 或服务器 IP。
    • '<网关端口>': mcp-gateway 监听的端口,默认为 '3121'。
    • '<服务器名称>': 您希望访问的后端 MCP 服务器的名称,例如示例中的 'weather'。 这个名称需要在 mcp-gateway 中已经注册。
  • 'type': 连接类型,这里通常为 'sse' (Server-Sent Events)。

重要提示:

  • 后端 MCP 服务器注册: 要使用 mcp-gateway 代理后端的 MCP 服务器,您需要先将后端服务器注册到 mcp-gateway。可以通过向 mcp-gateway 的 '/register' 接口发送 POST 请求来注册,请求体为 JSON 格式,包含 'server_name' 和 'server_url' 字段,具体可以参考 'servers/web_search/main.go' 中的 'regMcpServerToGateway' 函数。
  • 查看已注册服务器: 您可以通过访问 'http://localhost:3121/overview' (如果 mcp-gateway 运行在本地) 来查看当前已注册的 MCP 服务器列表及其信息。这可以帮助您确认后端服务器是否已成功注册,并获取正确的 'serverUrl' 用于客户端配置。
  • 动态路由: mcp-gateway 根据 URL 路径中的服务器名称进行动态路由。例如,如果您注册了一个名为 'weather' 的服务器,那么访问 'http://localhost:3121/weather/sse' 将会被代理到后端 'weather' MCP 服务器的 SSE 接口。

基本使用方法

  1. 启动 mcp-gateway: 按照安装步骤启动 mcp-gateway 服务。
  2. 注册后端 MCP 服务器: 确保您的后端 MCP 服务器已启动,并将其注册到 mcp-gateway。 例如,您可以参考 'servers/web_search/main.go' 和 'servers/weather/main.go' 启动示例 MCP 服务器,并修改 'regMcpServerToGateway' 函数中的 'gatewayUrl' 为您的 mcp-gateway 地址,然后运行这些示例服务器进行注册。
  3. 配置 MCP 客户端: 在您的 MCP 客户端应用中,配置连接信息,'serverUrl' 指向 mcp-gateway 的地址,并指定要访问的后端服务器名称,例如 'http://localhost:3121/weather/sse'。
  4. 客户端与 mcp-gateway 交互: 客户端现在可以像与普通的 MCP 服务器一样与 mcp-gateway 交互。所有的 MCP 请求都将通过 mcp-gateway 转发到后端的 MCP 服务器。

通过 mcp-gateway,您可以更方便地构建和管理基于 MCP 协议的 LLM 应用,实现对多个后端上下文服务的统一访问和管理。

信息

分类

网页与API