mcp-proxy

View Source

An Elixir escript 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

$ mix escript.install hex mcp_proxy

The escript is installed into your HOME's .mix directory: /path/to/home/.mix/escripts/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

You will also need to know the location of the escript executable, so run which escript before to get the value of "path/to/escript":

{
  "mcpServers": {
    "my-server": {
      "command": "/path/to/escript",
      "args": ["/$HOME/.mix/escripts/mcp-proxy", "http://localhost:4000/tidewave/mcp"]
    }
  }
}

Remember to replace $HOME by your home directory, such as "/Users/johndoe".

On Windows

{
  "mcpServers": {
    "my-server": {
      "command": "escript.exe",
      "args": ["c:\$HOME\.mix\escripts\mcp-proxy", "http://localhost:4000/tidewave/mcp"]
    }
  }
}

Remember to replace $HOME by your home directory, such as "c:\Users\johndoe".

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.
  • --receive-timeout the maximum amount of time to wait for an individual reply from the MCP server in milliseconds. Defaults to 60000 (60 seconds).