MCP Proxy
A bidirectional MCP proxy connecting stdio and Server-Sent Events (SSE) with OAuth support.
mcp-proxy
A Rust bidirectional MCP proxy supporting SSE and Streamable HTTP transports with OAuth.
Features
- Multiple transports: SSE and Streamable HTTP
- OAuth authentication: Full OAuth flow with automatic token refresh
- Bidirectional proxy: Connect remote servers to local clients or expose local servers remotely
- Fast and lightweight: Built in rust for performance
Usage
Installing
# from crates.io
cargo install rmcp-proxy
# from github
cargo install --git https://github.com/stephenlacy/mcp-proxy
Building
cargo build --release
Running
The proxy can operate in two modes:
1. Remote Client Mode
Connect to a remote MCP server and expose it as a local stdio server. Supports both SSE and Streamable HTTP transports with automatic detection.
Transport Detection:
- URLs containing
/sse→ Uses SSE transport - All other URLs → Uses Streamable HTTP transport
- Override with
--transportflag
Basic Examples
# Streamable HTTP
mcp-proxy http://localhost:9090/mcp/instances_abc123
# SSE transport
mcp-proxy http://localhost:8080/sse
mcp-proxy --transport sse http://localhost:8080/events
# Specific
mcp-proxy --transport streamable-http http://localhost:9090/api
Using with Claude or Cursor
{
"mcpServers": {
"my-remote-server": {
"command": "mcp-proxy",
"args": ["http://example.com/mcp/instances_abc123"]
},
"sse-server": {
"command": "mcp-proxy",
"args": ["--transport", "sse", "http://example.com/sse"]
}
}
}
2. Local Server Mode
Connect to a local MCP server via stdio and expose it as a remote server. Supports both SSE and Streamable HTTP endpoints.
# Expose as SSE server
mcp-proxy --port 8080 -- your-command --arg1 value1 --arg2 value2
mcp-proxy --port 8080 python mcp_server.py
mcp-proxy --port 8080 -- npx -y @modelcontextprotocol/server-everything
# Or http+streamable
mcp-proxy --port 9090 --transport streamable-http -- python mcp_server.py
mcp-proxy --port 8080 -e KEY VALUE -e ANOTHER_KEY ANOTHER_VALUE -- your-command
Authentication Management
Clearing Auth Cache
If you encounter authentication issues, clear the auth cache:
# Clear all auth data
mcp-proxy reset
# Or manually delete the directory
rm -rf ~/.mcp-auth
Command Line Options
# Transport selection
--transport <TRANSPORT> # sse, streamable-http, or auto (default: auto)
# Server mode options
--port <PORT> # Port for local server mode (default: random)
--host <HOST> # Host to bind to (default: 127.0.0.1)
# Environment variables (server mode)
-e, --env <KEY> <VALUE> # Set environment variable
--pass-environment # Pass through all environment variables
# Headers (client mode)
-H, --headers <KEY> <VALUE> # Add custom headers
# Reset auth
mcp-proxy reset # Clear all stored auth data
Logging
The upstream rmcp crate dumps noisy logs unfortunately
Control log verbosity with the RUST_LOG environment variable:
# Minimal logging
RUST_LOG=error mcp-proxy http://example.com/mcp
RUST_LOG=debug mcp-proxy http://example.com/mcp
RUST_LOG=info mcp-proxy http://example.com/mcp
Library Usage
use rmcp_proxy::{
sse_client::run_sse_client,
streamable_http_client::run_streamable_http_client,
StreamableHttpClientConfig, SseClientConfig
};
// Streamable HTTP client
let config = StreamableHttpClientConfig {
url: "http://example.com/mcp/instances_abc123".to_string(),
headers: HashMap::new(),
};
run_streamable_http_client(config).await?;
// SSE client
let config = SseClientConfig {
url: "http://example.com/sse".to_string(),
headers: HashMap::new(),
};
run_sse_client(config).await?;
License
MIT
Похожие серверы
Scout Monitoring MCP
спонсорPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
спонсорAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Stackzero Labs MCP
A server for generating Stackzero Labs UI components.
Remote MCP Server on Cloudflare
A template for deploying a remote MCP server on Cloudflare Workers, allowing for custom tool integration.
Cygnus MCP Server
A simple MCP server exposing Cygnus tools for demonstration, including 'cygnus_alpha' and 'invoke-service'.
Last9
Seamlessly bring real-time production context—logs, metrics, and traces—into your local environment to auto-fix code faster.
Reactive AI Agent Framework
A reactive AI agent framework for creating agents that use tools to perform tasks, with support for multiple LLM providers and MCP servers.
Figma MCP Server
Enables AI assistants to interact with Figma via WebSocket for reading data and design analysis.
SACL MCP Server
A framework for bias-aware code retrieval using semantic-augmented reranking and localization.
Hashnet MCP (Hashgraph Online Registry Broker)
MCP server for agent discovery, registration, and chat via the Hashgraph Online Registry Broker.
GitHub MCP Server
Repository analysis, issues, pull requests, and code structure exploration
YetiBrowser MCP
YetiBrowser MCP is a fully open-source solution to allow AI assistants to easily interact with your existing browser