MCP远程代理工具

一个轻量级的Python实现的MCP STDIO与远程SSE之间的双向代理工具,支持JSON-RPC消息的双向传输和状态化HTTP支持。

  • by elphinsnow
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 elphinsnow/mcp-remote-py

使用说明

mcp远程py

最小化 MCP标准↔ 远程SSE Python中的代理。

这个项目是对核心思想的刻意小规模重新实现 mcp-remote:

  • 本地侧:MCP over 工作室 (以换行符分隔的JSON/JSONL)
  • 远程侧:MCP over 上海证券交易所 (通过SSE接收JSON-RPC message 活动)
  • 发送路径:远程提供 endpoint SSE事件;后续客户→服务器消息通过以下方式发送 HTTP POST 到达该终点。

这是什么/不是什么

包含

  • MCP JSON-RPC消息的双向代理
  • 没有stdout污染(日志转到stderr)
  • 可选自定义标题(--header 'Name: value')
  • 有状态的HTTP支持:通过持久化处理FastMCP的“流式http” mcp-session-id.
  • 协议版本劫持:透明地重写协议版本(例如,处理上的客户端 2025-06-18 vs严格的服务器 2025-11-25).

故意排除 (保持简单)

  • OAuth/授权流程
  • 令牌存储/刷新
  • 多实例协调/锁文件
  • 自动HTTP↔SSE回退(通过手动策略选择 --transport)

安装

选项A——“全局”安装 uv (推荐)

将用户范围的可执行文件安装到 ~/.local/bin (macOS/Linux)或 %USERPROFILE%\.local\bin (Windows)。

chmod +x ./*.sh
./install-global-uv.sh

Windows(CMD):

install-global-uv.cmd

卸载:

./uninstall-global-uv.sh

Windows(CMD):

uninstall-global-uv.cmd

如果你的shell找不到命令,请确保 ~/.local/bin 在你的 PATH.

选项B——开发安装(可编辑)

python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .

跑

mcp-remote-py http://127.0.0.1:8080/mcp

运输策略(节点 mcp-remote类似于:

# default: http-first
mcp-remote-py http://127.0.0.1:8080/mcp --transport http-first

# force SSE-only (서버가 HTTP transport를 지원하지 않을 때)
mcp-remote-py http://127.0.0.1:8080/mcp --transport sse-only

自定义标题:

mcp-remote-py http://127.0.0.1:8080/mcp \
	--header 'Authorization: Bearer TOKEN'

MCP客户端配置(复制/粘贴)

食品法典委员会(~/.codex/config.toml)

Codex希望TOML这样:

[mcp_servers.ida-remote]
command = "/Users/<you>/.local/bin/mcp-remote-py"
args = ["http://127.0.0.1:8080/mcp"]

如果您是通过安装的 uv 进入 ~/.local/bin, command 通常为:

command = "/Users/<you>/.local/bin/mcp-remote-py"

克劳德桌面(claude_desktop_config.json)

{
  "mcpServers": {
    "ida-remote": {
      "command": "mcp-remote-py",
      "args": ["http://127.0.0.1:8080/mcp"]
    }
  }
}

光标(~/.cursor/mcp.json)

{
  "mcpServers": {
    "ida-remote": {
      "command": "mcp-remote-py",
      "args": ["http://127.0.0.1:8080/mcp"]
    }
  }
}

风帆冲浪(~/.codeium/windsurf/mcp_config.json)

{
  "mcpServers": {
    "ida-remote": {
      "command": "mcp-remote-py",
      "args": ["http://127.0.0.1:8080/mcp"]
    }
  }
}

故障排除

  • 无任何工作/随机解析错误: 确保远程SSE服务器仅在默认情况下发出JSON-RPC message 活动。非协议事件被忽略。
  • 看不到命令: 添加 ~/.local/bin 到 PATH (macOS zsh: ~/.zprofile 是一个很好的默认值)。
  • 日志: 所有日志都按设计进入stderr;stdout是为MCP协议保留的。