mcpField
M
mcp-proxy

mcp-proxy

ローカル
github.com/stephenlacy開発ツール3370 週間前に更新

mcp-proxy について

mcp-proxy は、OAuth に対応し SSE と Streamable HTTP トランスポートをサポートする、Rust 製の双方向 MCP プロキシです。リモートの MCP サーバーを stdio のローカルクライアントに接続し、ローカルのサーバーをネットワーク経由で公開できます。

主な機能

  1. 01SSE と Streamable HTTP トランスポート
  2. 02トークン自動更新を含む OAuth 認証
  3. 03双方向のプロキシ動作
  4. 04URL からのトランスポート自動判定
  5. 05RUST_LOG によるログレベルの制御

活用シーン

  1. 01リモート MCP サーバーの Claude や Cursor への接続
  2. 02ローカルの stdio MCP サーバーのネットワーク経由での公開
  3. 03認証キャッシュの削除による認証問題の解決

MCP 対応

このプロジェクトは MCP プロキシであり、stdio クライアントからリモート MCP サーバーへの接続を可能にし、ローカルの MCP サーバーを SSE または Streamable HTTP エンドポイントとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-proxy

SSE と Streamable HTTP トランスポートに対応し、OAuth をサポートする Rust 製の双方向 MCP プロキシです。

機能

  • 複数のトランスポート:SSE と Streamable HTTP
  • OAuth 認証:自動トークン更新に対応した完全な OAuth フロー
  • 双方向プロキシ:リモートサーバーをローカルクライアントに接続するか、ローカルサーバーをリモートに公開します
  • 高速かつ軽量:パフォーマンスを重視して Rust で構築されています

使用方法

インストール
# from crates.io
cargo install rmcp-proxy
# from github
cargo install --git https://github.com/stephenlacy/mcp-proxy
ビルド
cargo build --release
実行

このプロキシは 2 つのモードで動作します。

1. リモートクライアントモード

リモート MCP サーバーに接続し、ローカルの stdio サーバーとして公開します。SSE と Streamable HTTP の両トランスポートに対応し、自動検出します。

トランスポートの検出:

  • /sse を含む URL → SSE トランスポートを使用します
  • それ以外のすべての URL → Streamable HTTP トランスポートを使用します
  • --transport フラグで上書きできます
基本的な例
# 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
Claude または 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. ローカルサーバーモード

stdio 経由でローカル MCP サーバーに接続し、リモートサーバーとして公開します。SSE と Streamable HTTP のエンドポイントに対応しています。

# 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
認証の管理
認証キャッシュのクリア

認証の問題が発生した場合は、認証キャッシュをクリアしてください。

# Clear all auth data
mcp-proxy reset

# Or manually delete the directory
rm -rf ~/.mcp-auth
コマンドラインオプション
# 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
ログ

上流の rmcp クレートは残念ながら大量のログを出力します

RUST_LOG 環境変数でログの詳細度を制御します。

# 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
ライブラリの使用方法
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?;

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。