Labsco
smart-mcp-proxy logo

mcpproxy-go

β˜… 273

from smart-mcp-proxy

Open-source local MCP proxy server. Routes multiple MCP servers through a single endpoint with BM25 tool filtering, quarantine security, activity logging, and web UI.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup
<p align="center"> <a href="https://mcpproxy.app" target="_blank" rel="noopener"> <img src="docs/social.png" alt="MCPProxy β€” Supercharge AI Agents, Safely Β· One safe endpoint in front of every MCP server" width="100%" /> </a> </p> <div align="center">

Release Build Go Report Card Go Reference License: MIT GitHub stars OpenSSF Scorecard

</div> <p align="center"> <img src="docs/demo.gif" alt="MCPProxy web UI demo: server dashboard, tool discovery, activity log, and security quarantine" width="900" /> </p> <p align="center"> <strong>πŸ“Ί <a href="https://youtu.be/2aKrgJnbbcw">Watch the full walkthrough</a></strong> &nbsp;Β·&nbsp; <strong>πŸ“š <a href="https://docs.mcpproxy.app/">Read the docs</a></strong> &nbsp;Β·&nbsp; <strong>🌐 <a href="https://mcpproxy.app">mcpproxy.app</a></strong> </p>

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).

<div align="center"> <img src="docs/screenshot-macos-tray.png" height="300" alt="MCPProxy macOS menu-bar app" /> &nbsp;&nbsp;&nbsp;&nbsp; <img src="docs/screenshot-macos-activity.png" height="300" alt="MCPProxy macOS app β€” Activity log with sensitive-data detection" /> <br /> <em>macOS menu‑bar app &nbsp;&nbsp;Β·&nbsp;&nbsp; Activity log &amp; audit in the macOS app</em> </div>

Why MCPProxy?

  • Scale beyond API limits – Federate hundreds of MCP servers while bypassing Cursor's 40-tool limit and OpenAI's 128-function cap.
  • Save tokens & accelerate responses – Agents load just one retrieve_tools function instead of hundreds of schemas. Research shows ~99 % token reduction with 43 % accuracy improvement.
  • Advanced security protection – Automatic quarantine blocks Tool Poisoning Attacks until you manually approve new servers.
  • 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.

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
Copy & paste β€” that's it
    "MCPProxy": {
      "type": "http",
      "url": "http://localhost:8080/mcp/"
    }

Documentation

Getting Started

Configuration

Features

CLI Reference

API


Contributing

We welcome issues, feature ideas, and PRs!

Development Setup

Copy & paste β€” that's it
make dev-setup                # Install swag, frontend deps, Playwright
brew install prek             # Install pre-commit hook runner (or: uv tool install prek)
prek install                  # Install pre-commit hooks
prek 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

Copy & paste β€” that's it
make build          # Build frontend + backend
make swagger        # Regenerate OpenAPI spec
make test           # Unit tests
make test-e2e       # E2E tests
make lint           # Run linters