使用说明

项目简介

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 服务器的能力。

安装步骤

  1. 确保已安装 Node.js 和 npm。
  2. 打开终端,执行以下命令安装 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 请求转发到这个后端服务器。

基本使用方法

  1. 启动 MCP-proxy 代理服务器: 根据上面的服务器配置示例,在终端中执行相应的命令来启动 MCP-proxy 代理服务器。例如,如果你的后端 MCP 服务器启动命令是 'tsx server.js',则可以运行:
    npx mcp-proxy --port 8080 --endpoint /sse tsx server.js
  2. 配置 MCP 客户端连接: 在你的 MCP 客户端应用中,配置服务器连接信息,指定连接到 MCP-proxy 代理服务器的地址和端口。客户端需要使用 SSE 协议连接到 'http://<代理服务器地址>:<端口>/<endpoint>',例如 'http://localhost:8080/sse'。
  3. 客户端与 MCP 服务器交互: 客户端通过 SSE 连接与 MCP-proxy 代理服务器进行通信,发送 MCP 请求。MCP-proxy 会将请求转发到后端的 stdio MCP 服务器,并将响应返回给客户端。

信息

分类

网页与API