mcp-proxy
A MCP server which proxies requests to a remote MCP server over streamable HTTP or SSE.
What it is and what it does
mcp-proxy is a transport adapter for the Model Context Protocol that allows clients and servers to communicate across incompatible network protocols. It operates in two modes: forwarding stdio connections from local clients (like Claude Desktop) to remote MCP servers over SSE or Streamable HTTP, or exposing local stdio-based MCP servers as remote SSE endpoints. This is useful when a client natively supports only stdio but needs to reach a remote server, or when a local server needs to be accessible over HTTP.
The tool is built on httpx-auth, mcp, and uvicorn, and is designed to be configured either as a command-line invocation or through configuration files. It supports optional authentication via API tokens or OAuth2, custom headers, CORS policies, and environment variable injection for spawned servers. The package is actively maintained, supports modern Python versions (3.10–3.14), and carries no known security vulnerabilities.
Use it for:
- Enable Claude Desktop to connect to remote MCP servers that expose only SSE endpoints, bridging the stdio-to-SSE gap.
- Expose a local stdio-based MCP server to remote LLM clients over HTTP without modifying the server itself.
- Route MCP traffic through an authentication layer (OAuth2 or bearer tokens) for secure remote access.
- Run multiple named MCP servers behind a single proxy endpoint with dynamic server selection.
- Deploy MCP servers in containerized environments where stdio-only communication is impractical.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
mcp-proxy bridges Model Context Protocol (MCP) servers and clients across different transports, converting between stdio and SSE/Streamable HTTP protocols to enable remote communication.
Yes. mcp-proxy solves a real transport compatibility problem for MCP ecosystems with low install friction, active maintenance, permissive licensing, and no known vulnerabilities. Install it if you need to bridge stdio and HTTP-based MCP communication or expose local servers remotely.
Install
mcp-proxy on PyPI
pip
pip install mcp-proxyuv
uv add mcp-proxypoetry
poetry add mcp-proxyInstalling mcp-proxy
Before you install
Low friction: pure Python wheel with only three runtime dependencies (httpx-auth, mcp, uvicorn). Active maintenance with recent commits and 2707 GitHub stars. Supports Python 3.10 through 3.14.
License in practice
MIT License permits unrestricted use, modification, and distribution with minimal restrictions—suitable for commercial and open-source projects alike.
Quickstart
pip install mcp-proxy
# Mode 1: Proxy stdio to remote SSE server
mcp-proxy http://example.io/sse
# Mode 2: Expose local stdio server over SSE
mcp-proxy --sse-port 8080 'local-command'
Requires Python 3.10 or later. For mode 2, the local MCP server command must be specified after the proxy arguments.
Verify before relying
- Whether OAuth2 authentication (--client-id, --client-secret, --token-url) is fully tested and production-ready.
- Performance characteristics under high-concurrency SSE connections.
- Compatibility with all MCP server implementations beyond the documented examples.
Package facts
| License | MIT License Copyright (c) 2024 Sergey Parfenyuk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — httpx-auth, mcp, uvicorn |
| Maintenance | actively maintained — 92 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,619,879/month — #3,712 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mcp_proxy-0.12.0-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
markitdown-mcpExposes MarkItDown's document-to-markdown…
permissive · top 15,000 on PyPI
mcp-proxy-for-awsBridges MCP clients to AWS-hosted MCP servers…
permissive · top 5,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
arcade-mcp-serverArcade MCP Server provides a FastAPI-like…
permissive · top 15,000 on PyPI
mcpoExposes MCP (Model Context Protocol) servers as…
unclear · top 15,000 on PyPI
excel-mcp-serverProvides a Model Context Protocol server that…
unclear · top 15,000 on PyPI
mcp-server-fetchProvides a Model Context Protocol server that…
permissive · top 5,000 on PyPI
duckduckgo-mcp-serverProvides web search and content fetching…
permissive · top 15,000 on PyPI
wikipedia-mcpExposes Wikipedia search, article retrieval,…
permissive · top 15,000 on PyPI
llama-index-tools-mcpConnects LlamaIndex agents to MCP (Model…
permissive · top 15,000 on PyPI