The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Mcpproxy Go listing page.
📺 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).
retrieve_tools function instead of hundreds of schemas. Research shows ~99 % token reduction with 43 % accuracy improvement.macOS (Recommended - DMG Installer):
Download the latest DMG installer for your architecture:
mcpproxy-*-darwin-arm64.dmgmcpproxy-*-darwin-amd64.dmgWindows (Recommended - Installer):
Download the latest Windows installer for your architecture:
mcpproxy-setup-*-amd64.exemcpproxy-setup-*-arm64.exeThe installer automatically:
mcpproxy.exe (core server) and mcpproxy-tray.exe (system tray app) to Program Files.\mcpproxy-setup.exe /VERYSILENTAlternative install methods:
macOS (Homebrew):
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:
Linux (Fedora / RHEL / Rocky / AlmaLinux) — dnf repository, auto-updates via dnf upgrade:
Arch Linux (AUR): mcpproxy-bin
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:
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.25+:
Create or edit ~/.mcpproxy/mcp_config.json:
See Configuration and Upstream Servers for the full reference.
📖 Complete Setup Guide - Detailed instructions for Cursor, VS Code, Claude Desktop, and Goose
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.
The agent asks for what it needs in plain keywords via retrieve_tools:
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:
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.
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:
MCPProxy validates the intent against the tool's annotations (a "read" call can't reach a destructive tool), checks quarantine and approval state, and scans arguments and responses for sensitive data before anything leaves the machine.
Every call lands in the local Activity Log with a request ID, so you can reconstruct exactly what an agent did:
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):
See Required-Tools Preflight for the full reason taxonomy, REST endpoint, and GitHub Actions / n8n recipes.
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.
1. Enable HTTPS (choose one method):
2. Trust the certificate (one-time setup):
3. Use HTTPS URLs:
https://localhost:8080/mcphttps://localhost:8080/ui/For Claude Desktop, add this to your claude_desktop_config.json:
HTTP (Default - Recommended):
HTTPS (With Certificate Trust):
localhost, 127.0.0.1, ::1mcpproxy trust-cert to add to system keychain~/.mcpproxy/certs/ (ca.pem, server.pem, server-key.pem)Certificate trust issues:
Claude Desktop connection issues:
NODE_EXTRA_CA_CERTS points to the correct ca.pem filemcpproxy serve --log-level=debugWe welcome issues, feature ideas, and PRs!
We use prek to catch issues before they reach CI:
| Hook | Stage | What it does |
|---|---|---|
gofmt | pre-commit | Auto-formats staged Go files |
trailing-whitespace | pre-commit | Removes trailing whitespace |
end-of-file-fixer | pre-commit | Ensures files end with newline |
check-merge-conflict | pre-commit | Detects merge conflict markers |
swagger-verify | pre-push | Fails if OpenAPI spec is out of date |
go-build | pre-push | Verifies the project compiles |
Run hooks manually: prek run --all-files