Content
# mcp-proxy
A standalone binary for connecting STDIO based MCP clients to HTTP (SSE) based MCP servers.
Note: At the moment this only works with MCP servers that use the `2024-11-05` specification.
## Installation
The latest releases are available on the [releases page](https://github.com/tidewave-ai/mcp_proxy_rust/releases).
### macOS
Depending on your Mac, you can download the latest version with one of the following commands:
Apple Silicon:
```bash
$ curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-aarch64-apple-darwin.tar.gz | tar xv
```
Intel:
```bash
$ curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-x86_64-apple-darwin.tar.gz | tar xv
```
which will put the `mcp-proxy` binary in the current working directory (`pwd`).
Note that the binaries are not notarized, so if you download the release with the browser, you won't be able to open it.
Alternatively, you can remove the quarantine flag with:
```bash
$ xattr -d com.apple.quarantine /path/to/mcp-proxy
```
### Linux
You can download the latest release from the [Releases page](https://github.com/tidewave-ai/mcp_proxy_rust/releases) or with one command, depending on your architecture:
x86:
```bash
$ curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-x86_64-unknown-linux-musl.tar.gz | tar xv
```
arm64 / aarch64:
```bash
$ curl -sL https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-aarch64-unknown-linux-musl.tar.gz | tar xv
```
### Windows
You can download the latest release from the [Releases page](https://github.com/tidewave-ai/mcp_proxy_rust/releases) or with the following Powershell command:
```powershell
curl.exe -L -o mcp-proxy.zip https://github.com/tidewave-ai/mcp_proxy_rust/releases/latest/download/mcp-proxy-x86_64-pc-windows-msvc.zip; Expand-Archive -Path mcp-proxy.zip -DestinationPath .
```
## Building from scratch
The proxy is built in Rust. If you have Rust and its tools installed, the project can be built with `cargo`:
```bash
$ cargo build --release
```
Then, the binary will be located at `target/release/mcp-proxy`.
## Usage
If you have an SSE MCP server available at `http://localhost:4000/tidewave/mcp`, a client like Claude Desktop would then be configured as follows.
### On macos/Linux
```json
{
"mcpServers": {
"my-server": {
"command": "/path/to/mcp-proxy",
"args": ["http://localhost:4000/tidewave/mcp"]
}
}
}
```
### On Windows
```json
{
"mcpServers": {
"my-server": {
"command": "c:\\path\\to\\mcp-proxy.exe",
"args": ["http://localhost:4000/tidewave/mcp"]
}
}
}
```
## Configuration
`mcp-proxy` either accepts the SSE URL as argument or using the environment variable `SSE_URL`. For debugging purposes, you can also pass `--debug`, which will log debug messages on stderr.
Other supported flags:
* `--max-disconnected-time` the maximum amount of time for trying to reconnect while disconnected. When not set, defaults to infinity.