sparfenyuk/mcp-proxy
A bridge between Streamable HTTP and stdio MCP transports
何を解決するか
mcp-proxy は、Model Context Protocol (MCP) の異なるサーバー通信プロトコル間を切り替えることを可能にします。特に、stdio をサポートするクライアントが SSE(Server-Sent Events)または StreamableHTTP を使用するリモートサーバーに接続する必要がある場合など、クライアントとサーバーの通信方法が異なる場合の互換性問題を解決します。
動作方法
このツールは主に2つのモードで動作します:
- stdio から SSE/StreamableHTTP:ローカルブリッジとして機能します。クライアント(例:Claude Desktop)は stdio でプロキシと通信し、プロキシはそのリクエストを SSE または StreamableHTTP を使ってリモート MCP サーバーに転送します。
- SSE から stdio:サーバーとして機能します。プロキシはネットワークポートを開いてリモート LLM クライアントからの SSE リクエストを待機し、その後ローカルの stdio ベースの MCP サーバーを起動してリクエストを処理します。
また、「Named Servers」機能をサポートしており、URL パスに基づいて複数の異なる stdio サーバーにリクエストをルーティングできる単一のプロキシインスタンスを管理できます。
対象ユーザー
リモートサーバーに接続する必要がある、またはローカルツールをリモートクライアントに公開したい MCP 対応 LLM クライアントの開発者やユーザー。特にクライアントやサーバーのネイティブなトランスポートサポートが制限されている場合に有用です。
特徴
- 双方向トランスポート切り替え:stdio → SSE/StreamableHTTP および SSE → stdio の両方をサポート。
- Named Server ルーティング:ユニークな URL パス(例:
/servers/fetch/sse)で複数の stdio サーバーをホスト可能。 - 認証サポート:OAuth2(クライアントID、シークレット、トークンURL)およびカスタムHTTPヘッダーによるリモート接続用の組み込みオプション。
- 柔軟なデプロイ:PyPI、GitHub、またはマルチプラットフォーム Docker コンテナとして利用可能。
- CORS 設定:SSE サーバーモードで許可するオリジンと露出ヘッダーを指定可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch