使用说明
项目简介
本项目实现了一个 MCP 网关服务器。该网关服务器作为 LLM 应用与多个 MCP 后端服务器之间的桥梁,提供统一的接入点,简化了 LLM 应用对各种数据资源和工具的访问和管理。通过该网关,LLM 应用无需直接对接多个 MCP 服务器,只需与网关交互即可获取所有注册工具的能力。
主要功能点
- 统一工具入口:聚合来自多个 MCP 服务器的工具,为 LLM 应用提供统一的工具访问接口。
- 多服务器管理:能够启动、管理和监控多个 MCP 后端服务器进程。
- 动态工具发现:自动发现并注册连接到网关的 MCP 服务器提供的工具。
- 简化集成:降低 LLM 应用集成多种数据源和工具的复杂性。
- HTTP 接口:通过简单的 HTTP API (JSON-RPC over HTTP POST) 与 MCP 客户端通信。
安装步骤
- 安装网关依赖:
打开终端,进入 'gateway' 目录,并执行以下命令安装网关服务器所需的 Python 依赖:
cd gateway pip install -e . cd ..
服务器配置
MCP 网关服务器的配置文件为 'gateway/config.json'。您需要在此文件中配置要管理的 MCP 服务器。以下是一个示例配置,包含了文件系统服务器和内存服务器的配置:
{ "mcp": { "servers": { "filesystem": { // 文件系统服务器配置 "command": "npx", // 启动服务器的命令,通常为 npx 或 node "args": [ // 命令参数列表 "-y", "@modelcontextprotocol/server-filesystem", // 使用 npm 包 @modelcontextprotocol/server-filesystem "/path/to/directory" // 文件系统服务器需要暴露的目录路径,请替换为实际路径 ] }, "memory": { // 内存服务器配置 "command": "npx", // 启动服务器的命令,通常为 npx 或 node "args": [ // 命令参数列表 "-y", "@modelcontextprotocol/server-memory" // 使用 npm 包 @modelcontextprotocol/server-memory ] } // 可以继续添加更多 MCP 服务器的配置,例如数据库服务器、Web API 服务器等 } } }
配置说明:
- 'servers' 字段下可以配置多个 MCP 服务器,每个服务器配置项为一个 JSON 对象。
- 每一个服务器配置项的 键 (key) 将作为该服务器的 名称 (server name),例如 'filesystem' 和 'memory'。
- 'command' 字段指定启动 MCP 服务器的命令,通常为 'npx' 或 'node',用于执行 Node.js 包。
- 'args' 字段是一个字符串数组,包含了启动服务器命令的参数。请根据您使用的 MCP 服务器类型,参考其官方文档配置正确的参数。例如,文件系统服务器通常需要指定文件目录路径。
您��以通过修改 'gateway/config.json' 文件来添加、删除或修改要管理的 MCP 服务器。更多可用的 MCP 服务器及其配置方法,请参考 官方 MCP 服务器仓库。
基本使用方法
-
启动网关服务器: 在终端中,进入 'gateway' 目录,并执行以下命令启动 MCP 网关服务器:
cd gateway python -m mcp_gateway.server服务器默认会在 '8808' 端口启动。您可以通过设置环境变量 'MCP_PORT' 来修改端口号。
-
LLM 应用 (MCP 客户端) 与网关交互: LLM 应用可以通过 HTTP POST 请求与网关服务器进行通信。
- 获取工具列表:向网关服务器的 '/message' 接口发送 POST 请求,请求体为 '{"method": "tools/list"}',网关会返回所有已注册的工具列表。
- 调用工具:向网关服务器的 '/message' 接口发送 POST 请求,请求体为 '{"method": "tools/call", "params": {"name": "工具名称", "arguments": {"参数名1": "参数值1", ...}}}',网关会调用相应的工具并返回结果。
请参考项目仓库中的 'src/react_agent' 目录下的代码示例,了解如何在 LLM Agent 中使用该 MCP 网关服务器。
信息
分类
AI与计算