MCPProxy

io.github.smart-mcp-proxy由 GitHub 帳號 smart-mcp-proxy 發布v0.73.0更新於 Nov 7, 2026

Local-first MCP proxy with BM25 tool discovery, security scanning, quarantine & ~99% token savings

概覽

AI 產生的概覽

本機 MCP 代理,把眾多 MCP 伺服器彙整到少量探索與呼叫工具之後,並提供隔離審查與活動日誌。

可以做什麼
  • 用關鍵字搜尋在所有已連線伺服器中探索工具,並視需要載入完整結構定義
  • 以 server:tool 形式透過讀取、寫入或破壞性變體呼叫上游工具,並宣告呼叫意圖
  • 審查並核准被隔離的伺服器,執行安全重掃並檢視結果
  • 依請求 ID 檢視本機活動日誌,並預檢所需工具是否就緒
  • 透過命令列、REST API 與內嵌網頁介面管理上游伺服器與設定
適用情境
當助理需要連接大量 MCP 伺服器,而完整工具目錄會超出用戶端工具上限或佔用過多上下文時使用。也適合希望在新伺服器工具對代理可見前先做審查,並保留代理呼叫稽核紀錄的情況。
執行需求
以本機二進位檔執行於 macOS、Linux 或 Windows(安裝程式、Homebrew、apt/dnf、AUR 或 Go 1.26+)。它在本機 HTTP 連接埠(預設 8080)監聽供用戶端連線,設定存放於本機設定檔。選用 HTTPS 需信任憑證;Docker 掃描器需要 Docker。
安裝前請注意
新伺服器會被隔離,但掃描乾淨不代表安全,auto 信任模式也不會攔阻變更,因此需自行審查核准內容。敏感資料偵測預設只在活動日誌中標記而不阻擋呼叫;選用遮蔽不涵蓋工具參數、非文字內容、direct 路由模式與上游錯誤回應。已核准的工具可能在上游寫入或刪除資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 MCPProxy,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[MCPProxy — Supercharge AI Agents, Safely · One safe endpoint in front of every MCP server]

[MCPProxy web UI demo: server dashboard, tool discovery, activity log, and security quarantine]

📺 Watch the full walkthrough  ·  📚 Read the docs  ·  🌐 mcpproxy.app

The demo above shows the embedded web UI. The MCPProxy core is a single binary for macOS, Linux, and Windows — the web UI ships inside it, with no extra service to run. On macOS, an optional menu‑bar app adds one‑click convenience (start/stop, server health, quarantine, logs).

[MCPProxy macOS menu-bar app]      [MCPProxy macOS app — Activity log with sensitive-data detection]
macOS menu‑bar app   ·   Activity log & audit in the macOS app

Why MCPProxy?

  • Scale beyond API limits – Federate hundreds of MCP servers while bypassing Cursor's 40-tool limit and OpenAI's 128-function cap.
  • Spend less context on tool definitions – Agents see a small set of MCPProxy discovery and execution tools (retrieve_tools, describe_tool, the call_tool_* variants and a few management tools) instead of the full upstream tool catalog, and fetch schemas on demand (in retrieve_tools and code_execution routing; direct routing exposes upstream tools individually, see Routing modes). How much context this saves depends on the number of tools, the routing mode, the client and the task; see Token savings: what is and is not measured.
  • Review before use – New servers are quarantined and their tools are withheld from agents until you review and approve them, and, under the default manual trust mode, most later changes to an approved tool's definition are held for review again. Known exceptions: input-schema-only edits outside scan mode, a newly added output schema, and a description added to a tool that was approved with an empty description are admitted without a hold; scan mode admits clean changes and misses what its detectors miss; auto mode does not hold changes. This reduces exposure to malicious tool definitions (Tool Poisoning Attacks); it is not a guarantee of safety. See What quarantine does and does not cover.
  • Pluggable security scanners – Run Snyk, Semgrep, Trivy, Cisco, and other Docker-based scanners against quarantined servers before you approve them; findings are normalized to SARIF with a composite risk score. See Security scanner plugins.
  • Works offline & cross-platform – A single core binary for macOS (Intel & Apple Silicon), Windows (x64 & ARM64), and Linux (x64 & ARM64), with the web UI embedded. macOS additionally ships an optional menu-bar app.

Token savings: what is and is not measured

On-demand discovery reduces how many upstream tool definitions an agent loads into context up front. The saving is not a fixed percentage: it grows with the number of connected tools and depends on the routing mode, the client and the task. MCPProxy does not publish a headline token-reduction or accuracy-improvement figure, and it makes no latency claim.

What the repository does measure, as a first-party, deterministic estimate (see bench/README.md for the method and to reproduce it with go run ./bench/cmd/bench):

  • Corpus: the frozen 45-tool reference corpus; counting tool name and description only (input schemas excluded), cl100k_base.
  • Metric: size of the initial tool menu in tokens, including the proxy's own discovery, call and management tools. Not total workflow tokens, not latency, and not task success.
  • Result: on that 45-tool corpus the proxy's initial menu is larger than listing every upstream tool (2625 tokens in retrieve_tools mode and 1874 in code_execution mode, against 1730 for the baseline), because the proxy's own tools have a fixed cost. A saving appears only above a break-even number of upstream tools, so quote the tool count with any percentage.

Quick Start

1. Install

macOS (Recommended - DMG Installer):

Download the latest DMG installer for your architecture:

  • Apple Silicon (M1/M2): Download DMG → mcpproxy-*-darwin-arm64.dmg
  • Intel Mac: Download DMG → mcpproxy-*-darwin-amd64.dmg

Windows (Recommended - Installer):

Download the latest Windows installer for your architecture:

The installer automatically:

  • Installs both mcpproxy.exe (core server) and mcpproxy-tray.exe (system tray app) to Program Files
  • Adds MCPProxy to your system PATH for command-line access
  • Creates Start Menu shortcuts
  • Supports silent installation: .\mcpproxy-setup.exe /VERYSILENT

Alternative install methods:

macOS (Homebrew):

bash
# macOS — GUI tray app (recommended):brew install --cask smart-mcp-proxy/mcpproxy/mcpproxy
# macOS / Linux — headless CLI only:brew install smart-mcp-proxy/mcpproxy/mcpproxy

The cask installs the menu-bar app (bundles the CLI); the formula is the CLI binary only. Both update via brew upgrade.

Linux (Debian/Ubuntu) — apt repository, auto-updates via apt upgrade:

bash
sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://apt.mcpproxy.app/mcpproxy.gpg \  | sudo tee /etc/apt/keyrings/mcpproxy.gpg > /dev/nullecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/mcpproxy.gpg] https://apt.mcpproxy.app stable main" \  | sudo tee /etc/apt/sources.list.d/mcpproxy.list > /dev/nullsudo apt update && sudo apt install mcpproxy

Linux (Fedora / RHEL / Rocky / AlmaLinux) — dnf repository, auto-updates via dnf upgrade:

bash
sudo dnf config-manager --add-repo https://rpm.mcpproxy.app/mcpproxy.repo# Fedora 41+ (dnf5): sudo curl -fsSL https://rpm.mcpproxy.app/mcpproxy.repo -o /etc/yum.repos.d/mcpproxy.reposudo dnf install -y mcpproxy

Arch Linux (AUR): mcpproxy-bin

bash
yay -S mcpproxy-bin# orgit clone https://aur.archlinux.org/mcpproxy-bin.git && cd mcpproxy-bin && makepkg -si

The apt and dnf packages ship a hardened systemd unit and start the service automatically. Repository signing key fingerprint: 3B6F A1AD 5D53 59DA 51F1 8DDC E1B5 9B9B A1CB 8A3B.

For one-off .deb / .rpm downloads (air-gapped installs), grab them from the latest release.

Manual download (all platforms):

Prerelease Builds (Latest Features):

Want to try the newest features? Download prerelease builds from the next branch:

  1. Go to GitHub Actions
  2. Click the latest successful "Prerelease" workflow run
  3. Download from Artifacts:
    • dmg-darwin-arm64 (Apple Silicon Macs)
    • dmg-darwin-amd64 (Intel Macs)
    • versioned-linux-amd64, versioned-windows-amd64 (other platforms)

Note: Prerelease builds are signed and notarized for macOS but contain cutting-edge features that may be unstable.

Anywhere with Go 1.26+:

bash
go install github.com/smart-mcp-proxy/mcpproxy-go/cmd/mcpproxy@latest

2. Run

bash
mcpproxy serve          # starts HTTP server on :8080 and shows tray

3. Add your first server and approve it

New servers are held in quarantine until you review them, so adding a server is a two-step journey: add, then review and approve. The full walkthrough, with a real remote server (Context7), is the published Quick Start. In short (Context7 is a public, read-only documentation server; substitute any server you trust):

bash
# 1. add (held in quarantine until approved)mcpproxy upstream add context7 https://mcp.context7.com/mcp
# 2. review: capture the tool definitions, run the offline scan, read the verdictmcpproxy review fetch context7mcpproxy security rescan context7mcpproxy review show context7
# 3. approve (with no --tools/--all, only read-only tools with a clean scan are allowed)mcpproxy review approve context7 --yes
# 4. one harmless read, then see it in the activity logmcpproxy call tool-read -t context7:resolve-library-id -j '{"libraryName":"vue-router","query":"routing"}'mcpproxy activity list --limit 3

A clean scan is not proof that a server is safe; it only means the offline checks found nothing in the tool definitions. Review what you approve.

You can also edit ~/.mcpproxy/mcp_config.json by hand; a first-seen entry is held for review in the same way:

jsonc
{  "listen": "127.0.0.1:8080",  "mcpServers": [    { "name": "local-python", "command": "python", "args": ["-m", "my_server"], "protocol": "stdio", "enabled": true },    { "name": "remote-http", "url": "http://localhost:3001", "protocol": "http", "enabled": true }  ]}

See Configuration and Upstream Servers for the full reference, and Security Quarantine for what the review gate does and does not cover.

4. Connect to your IDE/AI tool

📖 Complete Setup Guide - Detailed instructions for Cursor, VS Code, Claude Desktop, and Goose

Add proxy to Cursor

One-click install into Cursor IDE

[Install in Cursor IDE]

Manual install

  1. Open Cursor Settings
  2. Click "Tools & Integrations"
  3. Add MCP server
json
    "MCPProxy": {      "type": "http",      "url": "http://localhost:8080/mcp/"    }

How AI Agents Work Through MCPProxy

Once connected, your agent sees a handful of built-in MCPProxy tools instead of hundreds of upstream schemas. A typical session has three beats — discover, call, audit — plus an optional preflight gate for unattended automations.

1. Discover — spend one query, not your context window

The agent asks for what it needs in plain keywords via retrieve_tools:

json
{ "query": "create github issue", "limit": 5 }

MCPProxy runs a BM25 search across every connected server and returns only the top-ranked matches — each with a call_with hint recommending the right call variant for its annotations:

json
{  "tools": [    { "name": "github:create_issue", "score": 0.89, "call_with": "call_tool_write" },    { "name": "gitlab:create_issue", "score": 0.72, "call_with": "call_tool_write" }  ]}

This is where the token savings come from: the schemas of the hundreds of tools the agent didn't need never enter its context. The agent loads full schemas on demand with describe_tool (batch up to 5 ids) only for the tools it's about to use.

2. Call — with declared intent

The agent executes the tool through the variant matching its intent (call_tool_read, call_tool_write, or call_tool_destructive), addressing it as server:tool:

json
{  "name": "github:create_issue",  "args": { "repo": "acme/api", "title": "Bug report" },  "intent_reason": "Filing bug per user request"}

MCPProxy validates the intent against the tool's annotations (a "read" call can't reach a destructive tool) and checks quarantine and approval state before the call is forwarded. Sensitive-data detection flags potential secrets in arguments and responses in the activity log; it does not block the call by default. Optional output sanitisation can redact detected secrets or block critical detections in supported text responses before they are forwarded. It does not cover tool arguments, non-text content, direct routing mode, or upstream error responses.

3. Audit — every call is on the record

Calls are recorded in the local Activity Log with a request ID, so you can inspect what an agent did. The log is bounded by configurable retention (age, record count and size) and a per-record response size cap, so it is an inspection and debugging aid, not a compliance guarantee:

bash
mcpproxy activity list                          # everything, newest firstmcpproxy activity list --request-id <id>        # one workflow, correlated

Gate automations before they burn tokens

For recurring headless jobs (cron, CI, n8n), don't let the agent discover a missing tool the expensive way. One preflight command checks that every required tool is ready — without contacting any upstream server — and reports exactly why when it isn't (server quarantined, tool changed since approval, OAuth expired, typo'd id):

bash
mcpproxy tools preflight gh-ops:sync_issues slack:post_message --wait 10scase $? in  0)  run-agent-session ;;   # all ready — go  10) exit 75 ;;             # transient (server starting) — let the next cron tick retry  11) page-operator ;;       # blocked — someone must approve / enable / log in  12) fail-pipeline ;;       # unknown tool id — the automation itself is misconfiguredesac

See Required-Tools Preflight for the full reason taxonomy, REST endpoint, and GitHub Actions / n8n recipes.


🔐 Optional HTTPS Setup

MCPProxy works with HTTP by default for easy setup. HTTPS is optional and primarily useful for production environments or when stricter security is required.

💡 Note: Most users can stick with HTTP (the default) as it works perfectly with all supported clients including Claude Desktop, Cursor, and VS Code.

Quick HTTPS Setup

1. Enable HTTPS (choose one method):

bash
# Method 1: Environment variableexport MCPPROXY_TLS_ENABLED=truemcpproxy serve
# Method 2: Config file# Edit ~/.mcpproxy/mcp_config.json and set "tls.enabled": true

2. Trust the certificate (one-time setup):

bash
mcpproxy trust-cert

3. Use HTTPS URLs:

  • MCP endpoint: https://localhost:8080/mcp
  • Web UI: https://localhost:8080/ui/

Claude Desktop Integration

For Claude Desktop, add this to your claude_desktop_config.json:

HTTP (Default - Recommended):

json
{  "mcpServers": {    "mcpproxy": {      "command": "npx",      "args": [        "-y",        "mcp-remote",        "http://localhost:8080/mcp"      ]    }  }}

HTTPS (With Certificate Trust):

json
{  "mcpServers": {    "mcpproxy": {      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://localhost:8080/mcp"      ],      "env": {        "NODE_EXTRA_CA_CERTS": "~/.mcpproxy/certs/ca.pem"      }    }  }}

Certificate Management

  • Automatic generation: Certificates created on first HTTPS startup
  • Multi-domain support: Works with localhost, 127.0.0.1, ::1
  • Trust installation: Use mcpproxy trust-cert to add to system keychain
  • Certificate location: ~/.mcpproxy/certs/ (ca.pem, server.pem, server-key.pem)

Troubleshooting HTTPS

Certificate trust issues:

bash
# Re-trust certificatemcpproxy trust-cert --force
# Check certificate locationls ~/.mcpproxy/certs/
# Test HTTPS connectioncurl -k https://localhost:8080/api/v1/status

Claude Desktop connection issues:

  • Ensure NODE_EXTRA_CA_CERTS points to the correct ca.pem file
  • Restart Claude Desktop after config changes
  • Verify HTTPS is enabled: mcpproxy serve --log-level=debug

Documentation

Getting Started

Configuration

Features

CLI Reference

API


Contributing

We welcome issues, feature ideas, and PRs!

Development Setup

bash
make dev-setup                # Install swag, frontend deps, Playwrightbrew install prek             # Install pre-commit hook runner (or: uv tool install prek)prek install                  # Install pre-commit hooksprek install --hook-type pre-push  # Install pre-push hooks

Pre-commit Hooks

We use prek to catch issues before they reach CI:

HookStageWhat it does
gofmtpre-commitAuto-formats staged Go files
trailing-whitespacepre-commitRemoves trailing whitespace
end-of-file-fixerpre-commitEnsures files end with newline
check-merge-conflictpre-commitDetects merge conflict markers
swagger-verifypre-pushFails if OpenAPI spec is out of date
go-buildpre-pushVerifies the project compiles

Run hooks manually: prek run --all-files

Build & Test

bash
make build          # Build frontend + backendmake swagger        # Regenerate OpenAPI specmake test           # Unit testsmake test-e2e       # E2E testsmake lint           # Run linters

來源:README.md,提交 ec2cd70

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

8
  1. v0.73.0最新Nov 7, 2026
  2. v0.72.0Oct 29, 2026
  3. v0.71.1Oct 17, 2026
  4. v0.70.0Oct 4, 2026
  5. v0.69.0Sep 24, 2026
  6. v0.68.0Sep 21, 2026
  7. v0.67.0Sep 17, 2026
  8. v0.66.1Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分