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つのモードで動作します:

  1. stdio から SSE/StreamableHTTP:ローカルブリッジとして機能します。クライアント(例:Claude Desktop)は stdio でプロキシと通信し、プロキシはそのリクエストを SSE または StreamableHTTP を使ってリモート MCP サーバーに転送します。
  2. 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