DEV.co
MCP Servers · sparfenyuk

mcp-proxy

mcp-proxy is a Python-based bridge tool that enables communication between different MCP transport protocols (stdio, SSE, and Streamable HTTP). It runs as a local proxy service that either translates stdio to remote SSE/HTTP endpoints or exposes local stdio servers over HTTP for remote access.

Source: GitHub — github.com/sparfenyuk/mcp-proxy
2.7k
GitHub stars
243
Forks
Python
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorysparfenyuk/mcp-proxy
Ownersparfenyuk
Primary languagePython
LicenseMIT — OSI-approved
Stars2.7k
Forks243
Open issues52
Latest releasev0.12.0 (2026-05-14)
Last updated2026-06-08
Sourcehttps://github.com/sparfenyuk/mcp-proxy

What mcp-proxy is

mcp-proxy implements bidirectional protocol translation: (1) stdio-to-SSE mode connects local MCP clients to remote SSE servers via stdio bridge, and (2) SSE-to-stdio mode spawns local stdio servers and exposes them over HTTP/SSE on configurable ports. Supports OAuth2, custom headers, stateless operation, and named server configurations.

Quickstart

Get the mcp-proxy source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/sparfenyuk/mcp-proxy.gitcd mcp-proxy# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Bridging Claude Desktop to remote MCP servers

Enable Claude Desktop clients (which only support stdio) to connect to remote MCP servers that expose SSE endpoints without native SSE support in the client.

Exposing local MCP servers for remote access

Run local stdio-based MCP servers behind mcp-proxy to make them accessible remotely via HTTP/SSE endpoints, useful for multi-client or distributed architectures.

Protocol translation in heterogeneous MCP environments

Translate between MCP transport protocols (stdio, SSE, Streamable HTTP) to enable interoperability in mixed deployments where clients and servers use different transport mechanisms.

Implementation considerations

  • Configure transport mode (SSE vs. Streamable HTTP) explicitly; default is SSE. Verify the remote MCP server's transport type before deploying.
  • For mode 1 (stdio-to-SSE): Pass API tokens via environment variable (API_ACCESS_TOKEN) or --headers; ensure secure handling of credentials in config files and Claude Desktop settings.
  • For mode 2 (SSE-to-stdio): Choose host/port binding carefully; default is 127.0.0.1 which is localhost-only. Use --host 0.0.0.0 only if the proxy is on a trusted network.
  • Set up CORS correctly for remote SSE clients using --allow-origin; default is no CORS headers, which may block browser clients.
  • Monitor 52 open issues and 243 forks; consider stability and whether bug fixes are actively rolled into releases before production adoption.

When to avoid it — and what to weigh

  • Direct stdio-to-stdio communication is sufficient — If your MCP client and server already communicate directly via stdio on the same machine, mcp-proxy adds unnecessary complexity and latency.
  • Your infrastructure requires guaranteed low-latency communication — As a proxy/bridge layer, mcp-proxy introduces network hops and serialization overhead that may impact latency-sensitive applications.
  • You need transparent protocol negotiation — mcp-proxy requires explicit configuration of transport mode and endpoints; it does not auto-negotiate or auto-discover MCP server capabilities.
  • Binary protocol support is required — mcp-proxy currently bridges text-based transports (SSE, HTTP); binary MCP transports are not mentioned as supported.

License & commercial use

MIT License. Permits commercial use, modification, and distribution under the conditions of including license and copyright notice. No royalty or attribution fees for commercial products.

MIT is a permissive OSI-approved license. Commercial use is explicitly allowed. No evidence of proprietary add-ons, commercial tiers, or vendor lock-in in the provided data. Use permitted in commercial products as long as MIT license text is included.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

mcp-proxy handles bearer tokens and OAuth2 credentials; ensure these are stored securely in environment variables or encrypted config management, not in plain-text files. When mode 2 exposes local stdio servers over HTTP, verify network access controls and origin restrictions to prevent unauthorized remote access. SSE connections inherit HTTP security considerations (TLS for remote endpoints, certificate validation). No explicit security audit or penetration testing data provided. Review source code and dependency trees before deploying in high-security environments.

Alternatives to consider

Direct MCP SDK/libraries

If you control both client and server, use native MCP libraries (in Python, JavaScript, etc.) to avoid proxy overhead and gain full protocol control.

Reverse proxy (nginx, caddy) with WebSocket tunneling

For simpler transport-agnostic proxying, a standard HTTP reverse proxy may suffice if MCP clients and servers support HTTP/WebSocket natively.

Custom adapter/middleware

For specialized transport requirements or legacy integration, a tailored adapter may be less overhead than a general-purpose proxy like mcp-proxy.

Software development agency

Build on mcp-proxy with DEV.co software developers

Start with the PyPI install, configure your transport mode (stdio-to-SSE or SSE-to-stdio), and test with Claude Desktop or your MCP client. Review the 52 open issues to assess stability for your use case.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

mcp-proxy FAQ

Can I use mcp-proxy to connect two local servers on the same machine?
Yes, mode 2 (SSE-to-stdio) is designed for this: spawn a local stdio MCP server and expose it via HTTP/SSE on localhost. Mode 1 is for remote servers only.
What if my MCP server uses Streamable HTTP instead of SSE?
Use --transport=streamablehttp flag in mode 1. mcp-proxy will negotiate the correct protocol when connecting to the remote server.
How do I pass secrets to the remote MCP server?
Use API_ACCESS_TOKEN environment variable (auto-converted to Bearer header) or --headers argument for custom headers (e.g., Authorization, API keys). Avoid embedding secrets in Claude Desktop config files.
Does mcp-proxy support stateless/session-less operation?
Yes, --stateless flag is available for Streamable HTTP transports in mode 2. This disables session affinity; refer to MCP protocol docs to ensure your server supports stateless operation.

Custom software development services

Adopting mcp-proxy is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate mcp servers software in production.

Ready to integrate mcp-proxy into your MCP architecture?

Start with the PyPI install, configure your transport mode (stdio-to-SSE or SSE-to-stdio), and test with Claude Desktop or your MCP client. Review the 52 open issues to assess stability for your use case.