mcpField
J
Juhe Mcp Server

Juhe Mcp Server

ローカル
github.com/juhemcp開発ツール384 週間前に更新

Juhe Mcp Server について

Juhe Mcp Server(ドキュメント上の名称はmcp-proxy)は、MCPサーバーのトランスポートを双方向に中継します。stdio対応クライアントからリモートSSEサーバーへ接続するほか、ローカルのstdioサーバーをSSE経由でリモートクライアントに公開できます。

主な機能

  1. 01stdioクライアントをリモートSSEサーバーに接続
  2. 02ローカルstdioサーバーをSSE経由で公開
  3. 03SSEのホストとポートを指定
  4. 04ヘッダーと環境変数を渡す
  5. 05Pythonパッケージまたはコンテナで実行

活用シーン

  1. 01stdioのみ対応のクライアントからSSEサーバーへ接続
  2. 02リモートクライアントからローカルstdioサーバーに接続
  3. 03SSEエンドポイントに認証ヘッダーを渡す
  4. 04SSEプロキシの背後でローカルMCPサーバーを実行

MCP 対応

stdioからSSE、およびSSEからstdioへの変換に対応するMCPトランスポートプロキシです。異なるトランスポートを使うMCPクライアントとサーバーを接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"juhe-mcp-proxy": {
"command": "uvx",
"args": [
"juhe-mcp-proxy"
],
"env": {
"LOG_LEVEL": "<LOG_LEVEL>",
"API_ACCESS_TOKEN": "<API_ACCESS_TOKEN>"
}
}
}
}
起動コマンドuvx juhe-mcp-proxy
設定が必要な環境変数
LOG_LEVEL
API_ACCESS_TOKENシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypijuhe-mcp-proxy

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-proxy

GitHub ライセンス PyPI - Python バージョン PyPI - ダウンロード数 codecov smithery バッジ

概要

mcp-proxy は、サーバーのトランスポートを切り替えられるツールです。次の 2 つのモードに対応しています。

  1. stdio から SSE へ
  2. 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.1SSE サーバーがリッスンするホストの 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。