使用说明
项目简介
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),允许来自不同域的客户端访问。
安装步骤
- 克隆仓库
git clone https://github.com/daodao97/mcp-gateway.git cd mcp-gateway - 启动 Docker Compose
确保您已安装 Docker 和 Docker Compose。在仓库根目录下,运行:
这将启动 mcp-gateway 服务。默认情况下,网关监听在 '3121' 端口。docker compose up
服务器配置
对于 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 接口。
基本使用方法
- 启动 mcp-gateway: 按照安装步骤启动 mcp-gateway 服务。
- 注册后端 MCP 服务器: 确保您的后端 MCP 服务器已启动,并将其注册到 mcp-gateway。 例如,您可以参考 'servers/web_search/main.go' 和 'servers/weather/main.go' 启动示例 MCP 服务器,并修改 'regMcpServerToGateway' 函数中的 'gatewayUrl' 为您的 mcp-gateway 地址,然后运行这些示例服务器进行注册。
- 配置 MCP 客户端: 在您的 MCP 客户端应用中,配置连接信息,'serverUrl' 指向 mcp-gateway 的地址,并指定要访问的后端服务器名称,例如 'http://localhost:3121/weather/sse'。
- 客户端与 mcp-gateway 交互: 客户端现在可以像与普通的 MCP 服务器一样与 mcp-gateway 交互。所有的 MCP 请求都将通过 mcp-gateway 转发到后端的 MCP 服务器。
通过 mcp-gateway,您可以更方便地构建和管理基于 MCP 协议的 LLM 应用,实现对多个后端上下文服务的统一访问和管理。
信息
分类
网页与API