mcp-proxy

A proxy between MCP transports: connects stdio clients to remote SSE and HTTP servers and exposes local servers over the network

MCP serverMedium risk

sparfenyuk/mcp-proxy

Install

uv tool install mcp-proxy

Alternative: 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-proxy

Limitations

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

Editors’ pick

An MCP server built into the Netdata agent: metrics, logs, alerts and live process, service and container data for an AI assistant

MCP serverMedium risk80.5K
Editors’ pick

GitHub's official MCP server: code, issues, pull requests, Actions and security alerts straight from the agent

MCP serverHigh risk32.9K
Editors’ pick

AWS's official MCP server suite: docs, IaC, containers, serverless, databases, cost and monitoring

MCP serverHigh risk9.7K
Editors’ pick

A GitHub Action that runs Claude Code in pull requests and issues: answers mentions, reviews and makes changes

PluginHigh risk8.9K