https://github.com/tidewave-ai/mcp_proxy_elixir
A proxy to use SSE MCPs from STDIO clients
https://github.com/tidewave-ai/mcp_proxy_elixir
Last synced: 15 days ago
JSON representation
A proxy to use SSE MCPs from STDIO clients
- Host: GitHub
- URL: https://github.com/tidewave-ai/mcp_proxy_elixir
- Owner: tidewave-ai
- License: apache-2.0
- Created: 2025-04-11T17:18:20.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-04-26T15:20:45.000Z (6 months ago)
- Last Synced: 2025-04-29T16:18:07.304Z (6 months ago)
- Language: Elixir
- Size: 55.7 KB
- Stars: 63
- Watchers: 7
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-elixir-ai - MCP Proxy - Proxy that connects STDIO-based MCP clients to HTTP-based Server-Sent Events (SSE) MCP servers. (Resources / Model Context Protocol (MCP))
- awesome-elixir-ai - MCP Proxy - Proxy that connects STDIO-based MCP clients to HTTP-based Server-Sent Events (SSE) MCP servers. (Resources / Model Context Protocol (MCP))
- awesome-ml-gen-ai-elixir - MCP Proxy - Proxy that connects STDIO-based MCP clients to HTTP-based Server-Sent Events (SSE) MCP servers. (Generative AI / Development Tools)
README
> [!WARNING]
> This project is deprecated. Use [the Rust MCP Proxy](https://github.com/tidewave-ai/mcp_proxy_rust) instead, which is easier to install if you don't already have Elixir.
# mcp-proxy
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
```bash
$ 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":
```json
{
"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
```json
{
"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).