mcp-proxy
A proxy between MCP transports: connects stdio clients to remote SSE and HTTP servers and exposes local servers over the network
Install
uv tool install mcp-proxyAlternative: pipx install mcp-proxy.
This is third-party code. Review the repository files before installing.
What it does
mcp-proxy has two modes. In the first, a client like Claude Desktop launches it over stdio and it forwards requests to a remote server over SSE or Streamable HTTP, including auth headers and OAuth2. In the second, it opens an HTTP port and runs a local stdio server behind it for remote access. One proxy can host several named servers defined via flags or a JSON file. It ships as a PyPI package and a container image.
Who it is for. For developers and admins connecting MCP clients and servers that speak different transports.
Good fit when
- The client supports only stdio while the server is SSE or HTTP only
- You need to run a local stdio server and reach it over the network
- You need several servers behind one port in Docker
Not a fit when
- The client already connects to remote servers natively
- You need grouping, tool filtering and a web UI: gateways like MetaMCP cover that
Example request
Connect a remote SSE MCP server to Claude Desktop through mcp-proxyLimitations
The proxy adds no tools; it only translates transports. It listens on 127.0.0.1 by default, and exposing it on 0.0.0.0 requires your own access control. The --sse-port and --sse-host flags are deprecated.
How to disable. Remove the mcp-proxy block from the client config and run uv tool uninstall mcp-proxy.
MCP
- Transport
- stdio, sse, http
- Authentication
- not required
| Environment variables | |
|---|---|
| API_ACCESS_TOKEN secret | Bearer token for the remote server connection |
Security check
- Opens a network port to a local server
- Forwards access tokens to remote servers
README in short
The README walks through both modes with diagrams, argument tables and launch examples. It covers named servers and their JSON file format. It shows install via uv, pipx, from the repo and as a container, extending the image with a custom Dockerfile and a Docker Compose example. It ends with the full CLI argument list. MIT licensed.
FAQ
Claude Desktop reports ENOENT on start
Put the full path to mcp-proxy in command; which mcp-proxy prints it.
Can it host several servers?
Yes, via --named-server or --named-server-config; each is served under /servers/name/.
Related
An MCP server built into the Netdata agent: metrics, logs, alerts and live process, service and container data for an AI assistant
GitHub's official MCP server: code, issues, pull requests, Actions and security alerts straight from the agent
AWS's official MCP server suite: docs, IaC, containers, serverless, databases, cost and monitoring
A GitHub Action that runs Claude Code in pull requests and issues: answers mentions, reviews and makes changes