MCP代理工具

一个独立的二进制工具,用于将基于STDIO的MCP客户端连接到基于HTTP(SSE)的MCP服务器。

  • by tidewave-ai
  • Rust
  • 本地部署
  • 125 星标
  • 更新于
在 GitHub 查看 tidewave-ai/mcp_proxy_rust

使用说明

mcp代理

用于将基于STDIO的MCP客户端连接到基于HTTP(SSE)的MCP服务器的独立二进制文件。

注意:根据 2024-11-05 以及根据 2025-03-26 规范。 虽然连接的客户端可能会这样做 不 支持服务器发送的版本。

安装

最新版本可在 发布页面.

macOS

根据您的Mac,您可以使用以下命令之一下载最新版本:

苹果硅:

curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-aarch64-apple-darwin.tar.gz | tar xv

英特尔:

curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-x86_64-apple-darwin.tar.gz | tar xv

这将使 mcp-proxy 当前工作目录中的二进制文件(pwd).

请注意,二进制文件没有经过公证,因此如果您使用浏览器下载版本,将无法打开它。

或者,您可以使用以下命令删除隔离标志:

xattr -d com.apple.quarantine /path/to/mcp-proxy

Linux

您可以从以下网址下载最新版本 发布页面 或者使用一个命令,具体取决于您的架构:

x86:

curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-x86_64-unknown-linux-musl.tar.gz | tar zxv

arm64/aarch64:

curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-aarch64-unknown-linux-musl.tar.gz | tar zxv

视窗

您可以从以下网址下载最新版本 发布页面 或使用以下Powershell命令:

curl.exe -L -o mcp-proxy.zip https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-x86_64-pc-windows-msvc.zip; Expand-Archive -Path mcp-proxy.zip -DestinationPath .

从头开始建造

代理是用Rust构建的。如果您安装了Rust及其工具,则可以使用 cargo:

cargo build --release

然后,二进制文件将位于 target/release/mcp-proxy.

用法

如果您有SSE MCP服务器,请访问 http://localhost:4000/tidewave/mcp,像Claude Desktop这样的客户端将按如下方式配置。

在macos/Linux上

{
  "mcpServers": {
    "my-server": {
      "command": "/path/to/mcp-proxy",
      "args": ["http://localhost:4000/tidewave/mcp"]
    }
  }
}

在Windows上

{
  "mcpServers": {
    "my-server": {
      "command": "c:\\path\\to\\mcp-proxy.exe",
      "args": ["http://localhost:4000/tidewave/mcp"]
    }
  }
}

配置

mcp-proxy 接受SSE URL作为参数或使用环境变量 SSE_URL。出于调试目的,您还可以传递 --debug,它将在stderr上记录调试消息。

其他支持的标志:

  • --max-disconnected-time 断开连接时尝试重新连接的最长时间。未设置时,默认为无穷大。
  • --override-protocol-version 以覆盖代理报告的协议版本。当代理与需要不同协议版本的客户端一起使用时,这很有用,因为协议不匹配的唯一原因是使用可流式/SSE传输。