使用说明
项目简介
MCP Gateway 旨在解决 MCP 服务器通常为本地执行而设计的问题,它作为一个网关,允许 HTTP 客户端(例如 Web 应用、OpenAI 自定义 GPTs)通过 HTTP 协议(SSE 和 REST API)访问和使用后端的 MCP 服务器。这使得 MCP 服务器可以部署在远程机器上,为 HTTP 客户端提供上下文服务能力。
主要功能点
- HTTP 桥接: 将基于 STDIO 的 MCP 服务器桥接到 HTTP 协议,支持 SSE 和 REST API 两种访问方式。
- 多实例管理: 支持同时运行和管理多个 MCP 服务器实例,每个实例拥有独立的会话。
- REST API 接口: 提供 REST API 接口,可以通过 HTTP 请求调用 MCP 服务器暴露的工具,并支持 OpenAPI Schema 生成,方便集成到 OpenAPI 客户端。
- 会话管理: 为每个客户端连接创建独立的会话,隔离不同客户端之间的资源和状态。
- 安全认证: 支持 Basic 认证和 Bearer Token 认证,保障网关的安全性。
- 灵活配置: 通过 YAML 配置文件进行详细的网关和后端 MCP 服务器配置。
安装步骤
- 确保已安装 Node.js 和 npm。
- 克隆仓库或下载代码到本地。
- 在项目根目录下运行 'npm install' 安装依赖。
服务器配置
MCP Gateway 通过 'config.yaml' 文件进行配置,默认情况下,配置文件应放置在项目根目录下。以下是一个配置示例,用于配置 'filesystem' 和 'git' 两个 MCP 服务器:
servers: filesystem: # 服务器名称,将在 API 路径中使用,例如 /api/filesystem command: npx # 启动 MCP 服务器的命令,通常使用 npx 运行 npm 包 args: # 传递给启动命令的参数 - -y - "@modelcontextprotocol/server-filesystem" # MCP 文件系统服务器 npm 包 - "/path/to/root" # 文件系统服务器的根路径 git: # 另一个服务器配置示例 command: npx args: - -y - "@modelcontextprotocol/server-git" # MCP Git 服务器 npm 包
配置说明:
- 'servers': 配置后端 MCP 服务器的列表。
- 'filesystem', 'git': 服务器的名称,可以自定义,用于在 API 路径中标识服务器。
- 'command': 启动 MCP 服务器的命令。通常使用 'npx' 来运行安装在 npm 中的 MCP 服务器包。
- 'args': 传递给 'command' 的参数列表。这些参数将传递给实际运行的 MCP 服务器进程。 请参考具体 MCP 服务器的文档配置 'args' 参数。
基本使用方法
- 配置 'config.yaml' 文件,根据需要配置要桥接的 MCP 服务器及其启动命令和参数。
- 启动 MCP Gateway 服务器: 在项目根目录下运行 'npm start'。
- 获取 REST API 会话 ID (如果使用 REST API): 使用 'curl http://localhost:3000/api/sessionid' 获取一个新的会话 ID。
- 通过 REST API 调用工具:
使用 'POST' 请求调用工具,URL 格式为 'http://localhost:3000/api/{serverName}/{toolName}?sessionId={session-id}'。
例如,调用 'filesystem' 服务器的 'directory_tree' 工具:
SESSION_ID=$(curl -s "http://localhost:3000/api/sessionid" | jq -r .sessionId) curl -X POST "http://localhost:3000/api/filesystem/directory_tree?sessionId=$SESSION_ID" \ -H "Content-Type: application/json" \ -d '{"path": "/some/path"}' - 通过 SSE 连接到服务器: 客户端可以建立 SSE 连接到 'http://localhost:3000/{serverName}',与后端的 MCP 服务器进行实时的双向通信。
注意: MCP Gateway 本身不包含任何内置的 MCP 服务器功能,它需要与独立的 MCP 服务器(例如 '@modelcontextprotocol/server-filesystem', '@modelcontextprotocol/server-git' 等)配合使用。您需要在 'config.yaml' 中配置您想要桥接的 MCP 服务器。
信息
分类
网页与API