Juhe Mcp Server について
Juhe Mcp Server(ドキュメント上の名称はmcp-proxy)は、MCPサーバーのトランスポートを双方向に中継します。stdio対応クライアントからリモートSSEサーバーへ接続するほか、ローカルのstdioサーバーをSSE経由でリモートクライアントに公開できます。
主な機能
- 01stdioクライアントをリモートSSEサーバーに接続
- 02ローカルstdioサーバーをSSE経由で公開
- 03SSEのホストとポートを指定
- 04ヘッダーと環境変数を渡す
- 05Pythonパッケージまたはコンテナで実行
活用シーン
- 01stdioのみ対応のクライアントからSSEサーバーへ接続
- 02リモートクライアントからローカルstdioサーバーに接続
- 03SSEエンドポイントに認証ヘッダーを渡す
- 04SSEプロキシの背後でローカルMCPサーバーを実行
MCP 対応
stdioからSSE、およびSSEからstdioへの変換に対応するMCPトランスポートプロキシです。異なるトランスポートを使うMCPクライアントとサーバーを接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-proxy
概要
mcp-proxy は、サーバーのトランスポートを切り替えられるツールです。次の 2 つのモードに対応しています。
- stdio から SSE へ
- SSE から stdio へ
1. stdio から SSE へ
リモート SSE サーバーに接続する、stdio からのプロキシサーバーを起動します。
このモードを使うと、Claude Desktop のようなクライアントは、ネイティブではサポートされていない場合でも、SSE 経由でリモートサーバーと通信できます。
graph LR
A["Claude Desktop"] <--> |stdio| B["mcp-proxy"]
B <--> |SSE| C["External MCP Server"]
style A fill:#ffe6f9,stroke:#333,color:black,stroke-width:2px
style B fill:#e6e6ff,stroke:#333,color:black,stroke-width:2px
style C fill:#e6ffe6,stroke:#333,color:black,stroke-width:2px
1.1 設定
このモードでは、プログラムの最初の引数として、MCP サーバーの SSE エンドポイントの URL を渡す必要があります。
引数
| 名前 | 必須 | 説明 | 例 |
|---|---|---|---|
command_or_url | はい | 接続先の MCP サーバーの SSE エンドポイント | http://example.io/sse |
--headers | いいえ | MCP サーバーの SSE 接続で使用するヘッダー | Authorization 'Bearer my-secret-access-token' |
環境変数
| 名前 | 必須 | 説明 | 例 |
|---|---|---|---|
API_ACCESS_TOKEN | いいえ | --headers Authorization 'Bearer <API_ACCESS_TOKEN>' の代わりに使用できます | YOUR_TOKEN |
1.2 使用例
mcp-proxy は MCP クライアントによって起動されるため、それに合わせて設定する必要があります。
Claude Desktop の場合、設定項目は次のようになります。
{
"mcpServers": {
"mcp-proxy": {
"command": "mcp-proxy",
"args": ["http://example.io/sse"],
"env": {
"API_ACCESS_TOKEN": "access-token"
}
}
}
}
2. SSE から stdio へ
ローカルの stdio サーバーに接続する SSE サーバーを公開する、プロキシサーバーを起動します。
これにより、ローカルの stdio サーバーへのリモート接続が可能になります。mcp-proxy は SSE リクエストを待ち受けるポートを開き、MCP リクエストを処理するローカルの stdio サーバーを起動します。
graph LR
A["LLM Client"] <-->|SSE| B["mcp-proxy"]
B <-->|stdio| C["Local MCP Server"]
style A fill:#ffe6f9,stroke:#333,color:black,stroke-width:2px
style B fill:#e6e6ff,stroke:#333,color:black,stroke-width:2px
style C fill:#e6ffe6,stroke:#333,color:black,stroke-width:2px
2.1 設定
このモードでは、--sse-port 引数を設定する必要があります。SSE サーバーがリッスンするホストの IP アドレスを指定するには、--sse-host 引数を設定できます。追加の環境変数は、--env 引数を使用してローカルの stdio サーバーに渡すことができます。ローカルの stdio サーバーのコマンドライン引数は、-- 区切り文字の後に渡す必要があります。
引数
| 名前 | 必須 | 説明 | 例 |
|---|---|---|---|
command_or_url | はい | MCP stdio サーバーを起動するコマンド | uvx mcp-server-fetch |
--sse-port | いいえ。利用可能なポートをランダムに使用 | SSE サーバーがリッスンするポート | 8080 |
--sse-host | いいえ。デフォルトは 127.0.0.1 | SSE サーバーがリッスンするホストの IP アドレス | 0.0.0.0 |
--env | いいえ | MCP stdio サーバーに渡す追加の環境変数 | FOO=BAR |
--pass-environment | いいえ | サーバーの起動時にすべての環境変数を引き継ぐ | --no-pass-environment |
--allow-origin | いいえ | サーバーの起動時にすべての環境変数を引き継ぐ | --allow-cors "*" |
2.2 使用例
ポート 8080 でリッスンし、ローカルの MCP サーバーに接続する mcp-proxy サーバーを起動するには、次のようにします。
# Start the MCP server behind the proxy
mcp-proxy uvx mcp-server-fetch
# Start the MCP server behind the proxy with a custom port
mcp-proxy --sse-port=8080 uvx mcp-server-fetch
# Start the MCP server behind the proxy with a custom host and port
mcp-proxy --sse-host=0.0.0.0 --sse-port=8080 uvx mcp-server-fetch
# Start the MCP server behind the proxy with a custom user agent
# Note that the `--` separator is used to separate the `mcp-proxy` arguments from the `mcp-server-fetch` arguments
mcp-proxy --sse-port=8080 -- uvx mcp-server-fetch --user-agent=YourUserAgent
これにより、http://127.0.0.1:8080/sse で接続できる MCP サーバーが起動します。
インストール
Smithery を使用したインストール
Smithery 経由で MCP Proxy を Claude Desktop に自動的にインストールするには、次のようにします。
npx -y @smithery/cli install mcp-proxy --client claude
PyPI を使用したインストール
パッケージの安定版は PyPI リポジトリで入手できます。次のコマンドを使用してインストールできます。
# Option 1: With uv (recommended)
uv tool install mcp-proxy
# Option 2: With pipx (alternative)
pipx install mcp-proxy
インストール後は、mcp-proxy コマンドを使用してサーバーを実行できます。各モードの設定オプションについては、上記を参照してください。
Github リポジトリからのインストール(最新)
次のコマンドを使用すると、git リポジトリからパッケージの最新バージョンをインストールできます。
uv tool install git+https://github.com/sparfenyuk/mcp-proxy
メモ
すでにサーバーをインストールしている場合は、
uv tool upgrade --reinstallコマンドを使用して更新できます。
メモ
サーバーを削除するには、
uv tool uninstall mcp-proxyコマンドを使用してください。
コンテナーとしてのインストール
バージョン 0.3.2 以降、対応するコンテナーイメージをプルして実行できるようになりました。
docker run -t ghcr.io/sparfenyuk/mcp-proxy:v0.3.2-alpine --help
コンテナーイメージの拡張
mcp-proxy コンテナーイメージを拡張して、追加の実行可能ファイルを含めることができます。たとえば、uv はデフォルトでは含まれていませんが、これを含むカスタムイメージを作成できます。
# file: mcp-proxy.Dockerfile
FROM ghcr.io/sparfenyuk/mcp-proxy:latest
# Install the 'uv' package
RUN python3 -m ensurepip && pip install --no-cache-dir uv
ENV PATH="/usr/local/bin:$PATH" \
UV_PYTHON_PREFERENCE=only-system
ENTRYPOINT [ "mcp-proxy" ]
Docker Compose のセットアップ
カスタム Dockerfile を使用して、Docker Compose ファイルにサービスを定義できます。
services:
mcp-proxy-custom:
build:
context: .
dockerfile: mcp-proxy.Dockerfile
network_mode: host
restart: unless-stopped
ports:
- 8096:8096
command: "--pass-environment --sse-port=8096 --sse-host 0.0.0.0 uvx mcp-server-fetch"
メモ
--pass-environment引数を設定するのを忘れないでください。設定しないと、「No interpreter found in managed installations or search path」というエラーが発生します。
コマンドライン引数
usage: mcp-proxy [-h] [-H KEY VALUE] [-e KEY VALUE] [--pass-environment | --no-pass-environment] [--sse-port SSE_PORT] [--sse-host SSE_HOST]
[--allow-origin ALLOW_ORIGIN [ALLOW_ORIGIN ...]]
[command_or_url] [args ...]
Start the MCP proxy in one of two possible modes: as an SSE or stdio client.
positional arguments:
command_or_url Command or URL to connect to. When a URL, will run an SSE client, otherwise will run the given command and connect as a stdio client. See corresponding options for more details.
options:
-h, --help show this help message and exit
SSE client options:
-H KEY VALUE, --headers KEY VALUE
Headers to pass to the SSE server. Can be used multiple times.
stdio client options:
args Any extra arguments to the command to spawn the server
-e KEY VALUE, --env KEY VALUE
Environment variables used when spawning the server. Can be used multiple times.
--pass-environment, --no-pass-environment
Pass through all environment variables when spawning the server.
SSE server options:
--sse-port SSE_PORT Port to expose an SSE server on. Default is a random port
--sse-host SSE_HOST Host to expose an SSE server on. Default is 127.0.0.1
--allow-origin ALLOW_ORIGIN [ALLOW_ORIGIN ...]
Allowed origins for the SSE server. Can be used multiple times. Default is no CORS allowed.
Examples:
mcp-proxy http://localhost:8080/sse
mcp-proxy --headers Authorization 'Bearer YOUR_TOKEN' http://localhost:8080/sse
mcp-proxy --sse-port 8080 -- your-command --arg1 value1 --arg2 value2
mcp-proxy your-command --sse-port 8080 -e KEY VALUE -e ANOTHER_KEY ANOTHER_VALUE
mcp-proxy your-command --sse-port 8080 --allow-origin='*'
テスト
mcp-server-fetch サーバーを使用して mcp-proxy サーバーを実行し、動作を確認してください。対象のサーバーをテストするには、インスペクターツールを使用できます。
# Run the stdio server called mcp-server-fetch behind the proxy over SSE
mcp-proxy --sse-port=8080 uvx mcp-server-fetch &
# Connect to the SSE proxy server spawned above using another instance of mcp-proxy given the URL of the SSE server
mcp-proxy http://localhost:8080/sse
# Send CTRL+C to stop the second server
# Bring the first server to the foreground
fg
# Send CTRL+C to stop the first server
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。