sparfenyuk/mcp-proxy

A bridge between Streamable HTTP and stdio MCP transports

解決する問題

mcp-proxy を使用すると、Model Context Protocol (MCP) のサーバートランスポート方式を切り替えることができます。特に、MCP クライアントとサーバーが異なる通信プロトコルを使用する場合の非互換性の問題を解決します。たとえば、クライアントが標準入出力 (stdio) のみをサポートしているが、Server-Sent Events (SSE) や Streamable HTTP を使用するリモートサーバーに接続する必要がある場合などです。

仕組み

このツールは主に 2 つのモードで動作します。

  1. stdio から SSE/StreamableHTTP へ:ローカルブリッジとして機能します。MCP クライアント(例:Claude Desktop)は stdio を介して mcp-proxy と通信し、プロキシはそれらのリクエストを SSE または Streamable HTTP を介してリモート MCP サーバーに転送します。
  2. SSE から stdio へ:サーバーとして機能します。LLM クライアントからの SSE リクエストを待ち受けるネットワークポートを開き、ローカルの stdio ベースの MCP サーバーを起動してそれらのリクエストを処理します。

また、「名前付きサーバー」もサポートしており、単一のプロキシインスタンスが URL パスに基づいて複数の異なる stdio サーバーへのリクエストを管理およびルーティングできます。

対象読者

リモート MCP サーバーに接続する必要がある、またはローカル MCP サーバーをリモートクライアントに公開する必要がある、MCP 互換の LLM クライアントの開発者およびユーザー。ネイティブでサポートされているトランスポートプロトコルに関係なく使用できます。

ハイライト

  • 双方向トランスポート変換:stdio と SSE/Streamable HTTP 間をシームレスに変換します。
  • 柔軟な認証:OAuth2、ベーシック認証、ダイジェスト認証、カスタムヘッダーなど、さまざまな認証方法をサポートします。
  • 名前付きサーバールーティング:設定ファイルまたは CLI 引数を使用して、単一の SSE エンドポイントの背後で複数の stdio サーバーをホストできます。
  • CORS サポート:特定のオリジンを許可し、SSE サーバー用にカスタムヘッダーを公開するオプションが含まれています。
  • コンテナ化されたデプロイ:セットアップと拡張を容易にするために Docker イメージとして提供されます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch