MCP Remote Py MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
python -m venv .venv
source .venv/bin/activate
pip install -e .
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add mcp-remote-py -- node "<FULL_PATH_TO_MCP_REMOTE_PY>/dist/index.js"

Replace <FULL_PATH_TO_MCP_REMOTE_PY>/dist/index.js with the actual folder you prepared in step 1.

README.md

Minimal MCP STDIO to Remote SSE proxy in Python.

mcp-remote-py

Minimal MCP STDIO ↔ Remote SSE proxy in Python.

This project is a deliberately small reimplementation of the core idea from mcp-remote:

  • Local side: MCP over STDIO (newline-delimited JSON / JSONL)
  • Remote side: MCP over SSE (receives JSON-RPC via SSE message events)
  • Send path: remote provides an endpoint SSE event; subsequent client→server messages are sent via HTTP POST to that endpoint.

What this is / isn’t

Included

  • Bidirectional proxying of MCP JSON-RPC messages
  • No stdout contamination (logs go to stderr)
  • Optional custom headers (--header 'Name: value')
  • Stateful HTTP Support: Handles FastMCP's "streamable-http" by persisting mcp-session-id.
  • Protocol Version Hijacking: Transparently rewrites protocol versions (e.g., handles clients on 2025-06-18 vs strict servers on 2025-11-25).

Intentionally excluded (keep it simple)

  • OAuth / authorization flows
  • Token storage / refresh
  • Multi-instance coordination / lockfiles
  • Automated HTTP↔SSE fallback (manual strategy selection via --transport)

Install

Option A — “Global” install with `uv` (recommended)

Installs a user-scoped executable into ~/.local/bin (macOS/Linux) or %USERPROFILE%\.local\bin (Windows).

chmod +x ./*.sh
./install-global-uv.sh

Windows (CMD):

install-global-uv.cmd

Uninstall:

./uninstall-global-uv.sh

Windows (CMD):

uninstall-global-uv.cmd

If your shell can’t find the command, ensure ~/.local/bin is on your PATH.

Option B — Dev install (editable)

python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .

Run

mcp-remote-py http://127.0.0.1:8080/mcp

Transport strategy (Node mcp-remote와 유사):

# default: http-first
mcp-remote-py http://127.0.0.1:8080/mcp --transport http-first

# force SSE-only (서버가 HTTP transport를 지원하지 않을 때)
mcp-remote-py http://127.0.0.1:8080/mcp --transport sse-only

Custom headers:

mcp-remote-py http://127.0.0.1:8080/mcp \
	--header 'Authorization: Bearer TOKEN'

MCP client configs (copy/paste)

Codex (`~/.codex/config.toml`)

Codex expects TOML like this:

[mcp_servers.ida-remote]
command = "/Users/<you>/.local/bin/mcp-remote-py"
args = ["http://127.0.0.1:8080/mcp"]

If you installed via uv into ~/.local/bin, command is typically:

command = "/Users/<you>/.local/bin/mcp-remote-py"

Claude Desktop (`claude_desktop_config.json`)

{
  "mcpServers": {
    "ida-remote": {
      "command": "mcp-remote-py",
      "args": ["http://127.0.0.1:8080/mcp"]
    }
  }
}

Cursor (`~/.cursor/mcp.json`)

{
  "mcpServers": {
    "ida-remote": {
      "command": "mcp-remote-py",
      "args": ["http://127.0.0.1:8080/mcp"]
    }
  }
}

Windsurf (`~/.codeium/windsurf/mcp_config.json`)

{
  "mcpServers": {
    "ida-remote": {
      "command": "mcp-remote-py",
      "args": ["http://127.0.0.1:8080/mcp"]
    }
  }
}

Troubleshooting

  • Nothing works / random parse errors: ensure the remote SSE server emits JSON-RPC only on the default message event. Non-protocol events are ignored.
  • Don’t see the command: add ~/.local/bin to PATH (macOS zsh: ~/.zprofile is a good default).
  • Logs: all logs go to stderr by design; stdout is reserved for MCP protocol.

Configuration

claude_desktop_config.json
{"mcpServers": {"ida-remote": {"command": "mcp-remote-py", "args": ["http://127.0.0.1:8080/mcp"]}}}

Try it

Connect to the remote MCP server at http://127.0.0.1:8080/mcp using the default transport.
Run the remote MCP proxy with custom authorization headers.
Force the remote MCP connection to use sse-only transport mode.

Frequently Asked Questions

What are the key features of MCP Remote Py?

Bidirectional proxying of MCP JSON-RPC messages. Stateful HTTP support for FastMCP streamable-http. Protocol version hijacking to handle version mismatches. No stdout contamination with logs directed to stderr. Support for custom HTTP headers.

What can I use MCP Remote Py for?

Connecting local AI clients to remote MCP servers hosted on web endpoints. Bridging MCP clients that only support STDIO to servers that only support SSE. Standardizing communication between different MCP protocol versions. Developing and testing remote MCP services locally.

How do I install MCP Remote Py?

Install MCP Remote Py by running: chmod +x ./*.sh && ./install-global-uv.sh

What MCP clients work with MCP Remote Py?

MCP Remote Py works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Remote Py docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare