← 返回目录
M

MCPProxy

社区
本地优先的 MCP 代理:BM25 工具发现、安全扫描、隔离与约 99% 的 token 节省
GitHub 源仓库 ↗
★ 375 Stars 分类 · 开发工具 非常热门
62FMRS · C

MCPProxy 是一个 Go 编写的本地优先 MCP 代理,定位是在所有上游 MCP 服务器前提供一个安全端点。它最突出的能力是 BM25 工具发现(retrieve_tools)带来的上下文节省、新服务器默认隔离以防工具投毒、可插拔的 Docker 安全扫描器,以及可追溯的本地活动日志。核心是内嵌 Web UI 的单个二进制文件,跨 macOS/Linux/Windows,macOS 另有可选菜单栏应用。需要注意它并非官方协议实现,而是第三方代理;它在本机运行、读取工具参数与结果、并按配置启动本地命令,因此配置可信度与本地权限边界是关键风险点。适合工具数量多、重视安全与 token 成本的团队。

可靠性
8/20
安全与权限
12/20
维护活跃度
13/20
文档质量
16/20
安装易用性
13/20
查看 FMRS 评分方法 →

MCPProxy 是一个用 Go 编写的本地优先 MCP 代理,在你的 AI 代理与众多上游 MCP 服务器之间提供单一的安全端点。它通过 BM25 关键词检索让代理只加载一个 retrieve_tools 函数,而不再载入数百个工具 schema,从而显著减少上下文占用(README 引用研究称约 99% token 缩减、43% 准确率提升)。它支持聚合大量 MCP 服务器(README 称可绕过 Cursor 的 40 工具限制和 OpenAI 的 128 函数上限),对新服务器自动隔离以阻止工具投毒攻击,并可接入基于 Docker 的第三方安全扫描器(Snyk、Semgrep、Trivy、Cisco 等),结果归一化为 SARIF 并给出综合风险评分。所有调用都会记录在本地活动日志中,可用请求 ID 追溯。核心是单个二进制文件,内嵌 Web UI,支持 macOS、Linux、Windows;macOS 另有可选的菜单栏应用。

工具能力

retrieve_tools
用自然语言关键词在所有已连接服务器上执行 BM25 搜索,仅返回排名靠前的匹配工具,并附带 call_with 调用建议。
describe_tool
按需加载指定工具的完整 schema,支持一次批量最多 5 个 id。
call_tool_read
以只读意图执行工具调用;无法访问被标记为破坏性的工具。
call_tool_write
以写入意图执行工具调用,用于会修改数据的操作。
call_tool_destructive
以破坏性意图执行工具调用,用于高风险操作,需通过注解与隔离/审批校验。

安装接入

1) 安装:macOS 可下载 DMG 安装包,或用 Homebrew(brew install --cask smart-mcp-proxy/mcpproxy/mcpproxy 安装菜单栏应用,brew install smart-mcp-proxy/mcpproxy/mcpproxy 仅安装 CLI);Windows 下载安装器;Linux 可使用 apt 或 dnf 仓库、AUR 的 mcpproxy-bin,或下载 tar 包;有 Go 1.26+ 的环境可运行 go install github.com/smart-mcp-proxy/mcpproxy-go/cmd/mcpproxy@latest。2) 运行 mcpproxy serve,默认在 :8080 启动 HTTP 服务。3) 编辑 ~/.mcpproxy/mcp_config.json,在 mcpServers 中添加上游服务器(本地 stdio 或远程 http)。4) 在 IDE/客户端中把它作为 MCP 服务器接入:Cursor 中新增 MCP 服务器,type 为 http,url 为 http://localhost:8080/mcp/;Claude Desktop 使用 npx -y mcp-remote http://localhost:8080/mcp。可选:启用 HTTPS(MCPPROXY_TLS_ENABLED=true 或配置 tls.enabled),并运行 mcpproxy trust-cert 信任证书。

claude_desktop_config.json
{
  "mcpServers": {
    "MCPProxy": {
      "type": "http",
      "url": "http://localhost:8080/mcp/"
    }
  }
}

选型与风险

适合谁

  • 需要在多台 MCP 服务器之上做统一、安全入口的开发者与团队
  • 关注工具投毒攻击、希望默认隔离新服务器的安全敏感用户
  • 受上下文窗口或客户端工具数量限制困扰、想大幅降低 token 消耗的 AI 代理使用者

不适合谁

  • 希望完全托管在云端、不接受本地运行代理的用户
  • 只需要连接一两个简单 MCP 服务器、不需要发现、隔离与审计能力的轻量场景
  • 无法运行 Go 二进制或不愿在本地安装服务的环境

所需权限

  • 读取并写入本地配置目录 ~/.mcpproxy/(含 mcp_config.json、证书、活动日志)
  • 在本机监听 HTTP 端口(默认 127.0.0.1:8080)
  • 以配置中指定的命令启动本地 stdio 上游 MCP 服务器进程
  • 按配置访问远程 HTTP 上游服务器,可能包括 OAuth 登录
  • 如启用 HTTPS,会把自签 CA 证书加入系统钥匙串(mcpproxy trust-cert)
  • 如启用第三方扫描器,需要可用的 Docker 环境

风险与副作用

  • 代理将成为所有上游工具的统一调用通道,一旦被配置错误可能导致代理越权访问其本不该使用的工具
  • 代理会读取工具参数与返回结果以做敏感数据检测,敏感内容可能进入本地活动日志
  • 默认隔离只是拦截新服务器,被批准过的服务器若日后被篡改仍需要重新审批(README 提到工具变更会触发阻断)
  • 通过本地命令启动 stdio 上游意味着代理可在本机执行你配置中的命令,配置来源需可信
  • HTTPS 使用自签证书,需要手动信任,否则客户端连接会失败

常见排障

  1. 客户端连不上:确认 mcpproxy serve 已运行、端口 8080 未被占用,并用 curl http://localhost:8080/api/v1/status 检查服务状态
  2. HTTPS 连接失败:先启用 TLS(MCPPROXY_TLS_ENABLED=true 或 tls.enabled),运行 mcpproxy trust-cert --force 重新信任证书,并确认 ~/.mcpproxy/certs/ 下存在 ca.pem、server.pem、server-key.pem
  3. Claude Desktop 报证书错误:确保 NODE_EXTRA_CA_CERTS 指向正确的 ca.pem,并在此之后重启 Claude Desktop
  4. 代理找不到工具:新服务器默认被隔离,需要在 Web UI 或安全命令中审批;同时检查 mcp_config.json 中 enabled 是否为 true
  5. 自动化任务失败:用 mcpproxy tools preflight 检查;退出码 10 表示瞬时问题(服务器正在启动),11 表示被阻断需人工处理,12 表示工具 id 拼写或配置错误
  6. 排查代理行为:用 mcpproxy serve --log-level=debug 提高日志级别,并用 mcpproxy activity list --request-id <id> 关联单次工作流的全部调用

使用场景

让 AI 代理接入数百个 MCP 工具而不会撑爆上下文窗口或触发客户端工具数量上限
对上游 MCP 服务器做安全隔离、扫描与人工审批后再放行
为无人值守的定时/CI 自动化任务做工具预检(mcpproxy tools preflight)
用本地活动日志审计代理每一次工具调用及其请求 ID

支持客户端

Cursor完整支持
Claude Desktop完整支持
VS Code完整支持
Goose完整支持