使用说明
项目简介
MCP-proxy 是一个使用 TypeScript 开发的 SSE (Server-Sent Events) 代理服务器,它主要解决基于 stdio 传输协议的 MCP 服务器在 Web 环境中无法直接被客户端访问的问题。通过 MCP-proxy,可以将原本使用 stdio 通信的 MCP 后端服务转换为可以通过 SSE 协议进行访问,从而使得 Web 浏览器或其他支持 SSE 的客户端能够与 MCP 服务器进行交互。
主要功能点
- SSE 协议支持: 将基于 stdio 的 MCP 服务器代理为 SSE 服务器,使得客户端可以通过标准的 Web 技术 (SSE) 与 MCP 服务进行通信。
- CORS 支持: 默认启用 CORS (跨域资源共享),允许跨域客户端访问,方便 Web 应用集成。
- 命令行和 SDK: 提供命令行工具和 Node.js SDK,方便用户快速启动和集成代理服务。
- 作为桥梁: 可以作为 FastMCP 等项目的 SSE 桥梁,扩展现有 MCP 服务器的能力。
安装步骤
- 确保已安装 Node.js 和 npm。
- 打开终端,执行以下命令安装 MCP-proxy:
npm install mcp-proxy
服务器配置
MCP 客户端需要配置连接到 MCP-proxy 代理服务器,而不是直接连接到后端的 stdio MCP 服务器。MCP 客户端需要配置 MCP 服务器的启动命令和参数,但这些配置是针对 MCP-proxy 代理服务器 的,代理服务器会负责启动和连接后端的 stdio MCP 服务器。
以下是一个 MCP 客户端的服务器配置示例 (JSON 格式),用于连接到 MCP-proxy:
{ "serverName": "mcp-proxy-server", "command": "npx mcp-proxy", "args": [ "--port", "8080", // MCP-proxy 监听的 SSE 端口 "--endpoint", "/sse", // MCP-proxy 的 SSE 端点路径 "your-mcp-server-command", // <-- 这里替换为你的后端 stdio MCP 服务器的启动命令 "arg1", "arg2" // <-- 后端 stdio MCP 服务器的参数 (如果有) ] }
参数注释:
- 'serverName': 自定义的服务器名称,用于在 MCP 客户端中标识该服务器连接。
- 'command': 启动 MCP-proxy 代理服务器的命令,固定为 'npx mcp-proxy' (假设已全局安装或在项目 node_modules/.bin 目录下)。
- 'args': 传递给 'mcp-proxy' 命令的参数数组:
- '--port': 指定 MCP-proxy 代理服务器监听的端口号,例如 '8080'。客户端将通过此端口连接到代理服务器的 SSE 服务。
- '--endpoint': 指定 MCP-proxy 提供的 SSE 端点路径,默认为 '/sse'。客户端连接时需要指定此路径。
- '"your-mcp-server-command"': 重要: 请将 '"your-mcp-server-command"' 替换为你实际的 后端 stdio MCP 服务器 的启动命令。例如,如果你的后端 MCP 服务器是一个 Node.js 脚本 'server.js',并且使用 'tsx' 运行,则应替换为 '"tsx server.js"'。
- '"arg1", "arg2"': 如果你的后端 stdio MCP 服务器启动命令需要额外的参数,请在 '"your-mcp-server-command"' 之后继续添加参数。例如,如果 'server.js' 需要一个配置文件路径作为参数,可以添加 '"config.json"'。
注意: MCP-proxy 本身并不直接实现 MCP 服务器的功能,它只是一个代理。你需要确保配置中 '"your-mcp-server-command"' 能够正确启动一个 独立的基于 stdio 的 MCP 服务器。 MCP-proxy 会将客户端的 SSE 请求转发到这个后端服务器。
基本使用方法
- 启动 MCP-proxy 代理服务器:
根据上面的服务器配置示例,在终端中执行相应的命令来启动 MCP-proxy 代理服务器。例如,如果你的后端 MCP 服务器启动命令是 'tsx server.js',则可以运行:
npx mcp-proxy --port 8080 --endpoint /sse tsx server.js - 配置 MCP 客户端连接: 在你的 MCP 客户端应用中,配置服务器连接信息,指定连接到 MCP-proxy 代理服务器的地址和端口。客户端需要使用 SSE 协议连接到 'http://<代理服务器地址>:<端口>/<endpoint>',例如 'http://localhost:8080/sse'。
- 客户端与 MCP 服务器交互: 客户端通过 SSE 连接与 MCP-proxy 代理服务器进行通信,发送 MCP 请求。MCP-proxy 会将请求转发到后端的 stdio MCP 服务器,并将响应返回给客户端。
信息
分类
网页与API