A Python-based MCP proxy server (Model Context Protocol) that facilitates communication between MCP clients and various backend MCP servers (stdio, SSE, or streamable HTTP). It supports two primary modes: proxying a local stdio server to SSE/StreamableHTTP, or proxying an external SSE/StreamableHTTP server to stdio. The library is actively maintained, with version 0.11.0 released in January 2026, and typically sees frequent updates.
pip install mcp-proxyNo compatibility data collected yet for this library.
The `mcp-proxy` library is primarily a command-line tool. These examples demonstrate how to run `mcp-proxy` to expose a local STDIO MCP server over SSE/HTTP, or to proxy a remote SSE/HTTP MCP server to STDIO, including the use of named servers. Ensure `uvx` (part of the `uv` toolchain) is available if you're using it to run local MCP servers.
Update client configurations to provide the `API_ACCESS_TOKEN` or other required client credentials as specified by your `mcp-proxy` setup.
Replace `--sse-port <value>` with `--port <value>` and `--sse-host <value>` with `--host <value>`.
Use the `--pass-environment` argument when running `mcp-proxy` to forward all current environment variables to the spawned STDIO server. Example: `mcp-proxy --pass-environment --port 8080 uvx mcp-server-fetch`.
Review the documentation for 'Named servers' and update your `mcp-proxy` command-line arguments or `servers.json` configuration file to align with the new approach for managing multiple backend servers.
Add the `--pass-environment` argument to your `mcp-proxy` command: `mcp-proxy --pass-environment <other_args> <command_for_stdio_server>`.
Replace `--sse-port` with `--port` and `--sse-host` with `--host`.
Ensure the client making requests to `mcp-proxy` provides the correct authentication credentials, typically via an `Authorization: Bearer <token>` header or `X-API-Key: <key>`, or by setting the `API_ACCESS_TOKEN` environment variable if configured this way. Alternatively, review `mcp-proxy` configuration to disable authentication if it's not needed for your environment.
Verify that `mcp-proxy` is running (`ps aux | grep mcp-proxy`), check the `--host` and `--port` arguments used when starting the proxy, and confirm that no firewall rules (e.g., `ufw`, `iptables`, security groups) are preventing inbound connections to the `mcp-proxy`'s listening address and port.