mcp-プロキシ
について
mcp-proxy
サーバートランスポートを切り替えるためのツールです。サポートされているモードは2つあります。
- stdio から SSE/StreamableHTTP へ
- SSEからstdioへ
1. stdio から SSE/StreamableHTTP へ
リモート SSE サーバーに接続するプロキシ サーバーを stdio から実行します。
このモードでは、Claude Desktop などのクライアントは、ネイティブではサポートされていない場合でも、SSE 経由でリモート サーバーと通信できます。
1.1 構成
このモードでは、MCPサーバーのSSEエンドポイントのURLをプログラムの最初の引数として指定する必要があります。サーバーがStreamable HTTPトランスポートを使���している場合は、 mcp-proxy
側で--transport=streamablehttp
を指定してこれを強制してください。
議論
名前 | 必須 | 説明 | 例 |
---|---|---|---|
command_or_url | はい | 接続するMCPサーバーのSSEエンドポイント | http://example.io/sse |
--headers | いいえ | MCP サーバーの SSE 接続に使用するヘッダー | 承認「Bearer my-secret-access-token」 |
--transport | いいえ | MCPサーバーに接続する際に使用するトランスポートプロトコルを決定します。「sse」または「streamablehttp」のいずれかになります。 | ストリーミング可能なhttp |
環境変数
名前 | 必須 | 説明 | 例 |
---|---|---|---|
API_ACCESS_TOKEN | いいえ | --headers Authorization 'Bearer <API_ACCESS_TOKEN>' の代わりに使用できます。 | あなたのトークン |
1.2 使用例
mcp-proxy
MCP クライアントによって起動されるはずなので、それに応じて構成を行う必要があります。
Claude Desktop の場合、構成エントリは次のようになります。
2. SSEからstdioへ
ローカル stdio サーバーに接続する SSE サーバーを公開するプロキシ サーバーを実行します。
これにより、ローカル標準入出力サーバーへのリモート接続が可能になります。mcp mcp-proxy
SSE リクエストをリッスンするためのポートを開き、MCP リクエストを処理するローカル標準入出力サーバーを起動します。
2.1 構成
このモードでは、 --sse-port
引数を設定する必要があります。-- --sse-host
引数は、SSE サーバーが listen するホストの IP アドレスを指定するために使用できます。-- --env
引数を使用して、追加の環境変数をローカル stdio サーバーに渡すことができます。ローカル stdio サーバーのコマンドライン引数は、 --
区切り記号の後に渡す必要があります。
議論
名前 | 必須 | 説明 | 例 |
---|---|---|---|
command_or_url | はい | MCP stdioサーバーを起動するコマンド | uvx mcp-server-fetch |
--port | いいえ、ランダムに利用可能です | リッスンするMCPサーバーポート | 8080 |
--host | いいえ、デフォルトでは127.0.0.1 | MCP サーバーが listen するホスト IP アドレス | 0.0.0.0 |
--env | いいえ | MCP stdio サーバーに渡す追加の環境変数。複数回使用できます。 | フーバー |
--cwd | いいえ | MCP stdio サーバー プロセスに渡す作業ディレクトリ。 | /tmp |
--pass-environment | いいえ | サーバーの起動時にすべての環境変数を渡す | --no-pass-environment |
--allow-origin | いいえ | SSEサーバーで許可されるオリジン。複数回使用できます。デフォルトではCORSは許可されません。 | --allow-origin "*" |
--stateless | いいえ | ストリーミング可能なHTTPトランスポートのステートレスモードを有効にします。デフォルトはFalseです。 | --ステートレスなし |
--named-server NAME COMMAND_STRING | いいえ | 名前付き stdio サーバーを定義します。 | --named-server fetch 'uvx mcp-server-fetch' |
--named-server-config FILE_PATH | いいえ | 名前付き stdio サーバーを定義する JSON ファイルへのパス。 | --named-server-config /path/to/servers.json |
--sse-port (非推奨) | いいえ、ランダムに利用可能です | リッスンするSSEサーバーポート | 8080 |
--sse-host (非推奨) | いいえ、デフォルトでは127.0.0.1 | SSEサーバーがリッスンするホストIPアドレス | 0.0.0.0 |
2.2 使用例
ポート 8080 をリッスンし、ローカル MCP サーバーに接続するmcp-proxy
サーバーを起動するには:
名前付きサーバー
NAME
は URL パス/servers/NAME/
で使用されます。COMMAND_STRING
、サーバーを起動するコマンドです (例: 'uvx mcp-server-fetch')。- 複数回使用できます。
--named-server-config
が使用されている場合、この引数は無視されます。
FILE_PATH
- 指定されている場合、これは名前付きサーバーの排他ソースであり、--named-server
CLI 引数は無視されます。
デフォルト サーバーが指定されている場合 ( --named-server
または--named-server-config
のcommand_or_url
引数)、ルート パスでアクセスできるようになります (例: http://127.0.0.1:8080/sse
)。
名前付きサーバー( --named-server
または--named-server-config
で定義されているサーバー)は/servers/<server-name>/
(例: http://127.0.0.1:8080/servers/fetch1/sse
)でアクセスできます。 /status
エンドポイントはグローバルステータスを提供します。
--named-server-config
の JSON 構成ファイル形式:
JSON ファイルは次の構造に従う必要があります。
mcpServers
: 各キーがサーバー名 (URL パスで使用される、例:/servers/fetch/
) であり、値がサーバーを定義するオブジェクトである辞書。command
: (必須) stdio サーバーに対して実行するコマンド。args
: (オプション) コマンドの引数のリスト。デフォルトは空のリストです。enabled
: (オプション)false
の場合、このサーバー定義はスキップされます。デフォルトはtrue
です。timeout
とtransportType
: これらのフィールドは標準の MCP クライアント設定に存在しますが、現在mcp-proxy
は名前付きサーバーのロード時に無視します。トランスポートタイプは暗黙的に「stdio」になります。
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の MCP Proxy を自動的にインストールするには:
PyPI経由でインストール
パッケージの安定版はPyPIリポジトリから入手できます。以下のコマンドでインストールできます。
インストールが完了したら、 mcp-proxy
コマンドを使用してサーバーを実行できます。各モードの設定オプションについては、上記の各モードの設定オプションをご覧ください。
Githubリポジトリ経由でインストール(最新)
最新バージョンのパッケージは、次のコマンドを使用して git リポジトリからインストールできます。
[!NOTE] サーバーをすでにインストールしている場合は、
uv tool upgrade --reinstall
コマンドを使用して更新できます。
[!NOTE] サーバーを削除する場合は、
uv tool uninstall mcp-proxy
コマンドを使用します。
コンテナとしてインストール
バージョン 0.3.2 以降では、対応するコンテナ イメージをプルして実行できます。
トラブルシューティング
- 問題: Claude Desktop がサーバーを起動できません: ログに ENOENT コードが記録されています解決策:バイナリへのフルパスを使用してください。ターミナルを開き、コマンド
where mcp-proxy
(macOS、Linux)またはwhere.exe mcp-proxy
(Windows)を実行します。出力パスを 'command' 属性の値として使用します。
コンテナイメージの拡張
mcp-proxy
コンテナイメージを拡張して、追加の実行ファイルを含めることができます。例えば、 uv
はデフォルトでは含まれていませんが、uv を含むカスタムイメージを作成できます。
Docker Compose のセットアップ
カスタム Dockerfile を使用すると、Docker Compose ファイルでサービスを定義できます。
[!NOTE]
--pass-environment
引数を設定することを忘れないでください。そうしないと、「管理対象インストールまたは検索パスにインタープリターが見つかりません」というエラーが発生します。
コマンドライン引数
設定ファイルの例
テスト
mcp-server-fetch
サーバーでmcp-proxy
サーバーを実行して確認します。inspectorツールを使用してターゲットサーバーをテストできます。
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
通信機能を強化するために、STDIO の代わりに SSE トランスポートを使用してリモート MCP サーバーとの対話を有効にします。
- について
- stdio から SSE/StreamableHTTP へ
- SSEからstdioへ
- 名前付きサーバー
- インストール
- コンテナイメージの拡張
- Docker Compose のセットアップ
- コマンドライン引数
- テスト
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA simple MCP server that facilitates website fetching through a configurable server platform using stdio or SSE transport, allowing integration with tools like Cursor for streamlined access.Last updated -223PythonMIT License
- -securityFlicense-qualityMCP server enabling LLMs to perform browser tasks via SSE transport, allowing clients like Cursor.ai and Claude to open websites and interact with web content through natural language commands.Last updated -
- -securityFlicense-qualityA remote MCP server implementation for Cloudflare that uses server-sent events (SSE) to enable Model Control Protocol communication.Last updated -TypeScript
- AsecurityAlicenseAqualityThe most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.Last updated -2122GoMIT License