MCP Proxy Server
mcp-proxy
About
The mcp-proxy
is a tool that lets you switch between server transports. There are two supported modes:
- stdio to SSE
- SSE to stdio
1. stdio to SSE
Run a proxy server from stdio that connects to a remote SSE server.
This mode allows clients like Claude Desktop to communicate to a remote server over SSE even though it is not supported natively.
1.1 Configuration
This mode requires passing the URL to the MCP Server SSE endpoint as the first argument to the program.
Arguments
Name | Required | Description | Example |
---|---|---|---|
command_or_url | Yes | The MCP server SSE endpoint to connect to | http://example.io/sse |
--api-access-token | No | Will be sent as a Bearer access token in the Authorization header | YOUR_TOKEN |
Environment Variables
Name | Required | Description | Example |
---|---|---|---|
API_ACCESS_TOKEN | No | Can be used instead of --api-access-token | YOUR_TOKEN |
1.2 Example usage
mcp-proxy
is supposed to be started by the MCP Client, so the configuration must be done accordingly.
For Claude Desktop, the configuration entry can look like this:
2. SSE to stdio
Run a proxy server exposing a SSE server that connects to a local stdio server.
This allows remote connections to the local stdio server. The mcp-proxy
opens a port to listen for SSE requests, spawns a local stdio server that handles MCP requests.
2.1 Configuration
This mode requires the --sse-port
argument to be set. The --sse-host
argument can be set to specify the host IP address that the SSE server will listen on. Additional environment variables can be passed to the local stdio server using the --env
argument. The command line arguments for the local stdio server must be passed after the --
separator.
Arguments
Name | Required | Description | Example |
---|---|---|---|
command_or_url | Yes | The command to spawn the MCP stdio server | uvx mcp-server-fetch |
--sse-port | No, random available | The SSE server port to listen on | 8080 |
--sse-host | No, 127.0.0.1 by default | The host IP address that the SSE server will listen on | 0.0.0.0 |
--env | No | Additional environment variables to pass to the MCP stdio server | FOO=BAR |
2.2 Example usage
To start the mcp-proxy
server that listens on port 8080 and connects to the local MCP server:
This will start an MCP server that can be connected to at http://127.0.0.1:8080/sse
Installation
Installing via Smithery
To install MCP Proxy for Claude Desktop automatically via Smithery:
The stable version of the package is available on the PyPI repository. You can install it using the following command:
Once installed, you can run the server using the mcp-proxy
command. See configuration options for each mode above.
The latest version of the package can be installed from the git repository using the following command:
[!NOTE] If you have already installed the server, you can update it using
uv tool upgrade --reinstall
command.
[!NOTE] If you want to delete the server, use the
uv tool uninstall mcp-proxy
command.
Command line arguments
Testing
Check the mcp-proxy
server by running it with the mcp-server-fetch
server. You can use the inspector tool to test the target server.
Enables interaction with remote MCP servers using SSE transport instead of STDIO for enhanced communication capabilities.