MCP-Compose-Proxy-Shim について
Claude Desktop などのローカル MCP クライアントを、Docker 上で稼働する MCP-Compose サーバーに接続する Node.js ブリッジです。ローカルのプロトコル要求を MCP-Compose プロキシ経由でコンテナ内のサーバーへ転送します。
主な機能
- 01ローカルクライアントとリモートサーバーを接続
- 02MCP-Compose プロキシ経由で要求を転送
- 03API キー認証に対応
- 04キャッシュ、再試行、ログの設定
- 05パスと要求サイズの制限
活用シーン
- 01Claude Desktop から Docker 上のサーバーを利用
- 02ローカルクライアントを MCP-Compose プロキシに接続
- 03デバッグログで転送要求を確認
MCP 対応
クライアントにはローカル MCP サーバーのインターフェースを提供し、要求を MCP-Compose プロキシへ転送します。プロキシが Docker 上の MCP サーバーと通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-Compose-Proxy-Shim
Docker コンテナで実行されているリモート MCP-Compose サーバーに、ローカルの LLM クライアント(Claude Desktop など)を接続するブリッジです。
🚀 概要
MCP-Compose-Proxy-Shim を使うと、MCP サーバーをローカルで実行する想定の LLM クライアントから、コンテナ化された MCP サーバーを利用できます。透過的なブリッジとして動作し、ローカルの MCP サーバー呼び出しを受け取り、リモートの MCP-Compose プロキシに転送します。
主なメリット:
- Docker コンテナで実行されている MCP サーバーを Claude Desktop で利用できます
- 有料のリモート MCP サーバーの制約やコストを回避できます
- Docker ベースの MCP サーバーのパワーと柔軟性を最大限に活用できます
- filesystem、memory、weather など、さまざまな MCP サーバーで動作します
このプロジェクトは、Docker コンテナで Model Context Protocol(MCP)サーバーを実行するツールである MCP-Compose との連携を目的としています。
📋 必要条件
- Node.js v14 以降
- Claude Desktop またはその他の MCP 対応 LLM クライアント
- プロキシを実行中の MCP-Compose(MCP-Compose を参照)
🔧 インストール
-
このリポジトリをクローンします:
git clone https://github.com/phildougherty/mcp-compose-proxy-shim.git cd mcp-compose-proxy-shim -
依存関係をインストールします:
npm install -
スクリプトを実行可能にします:
chmod +x bin/npx lib/mcp-shim.js
🔌 設定
Claude Desktop の設定
「Import Servers」機能を利用するには Claude Max プランが必要なため、Claude の設定ファイルを手動で編集する必要があります。
-
Claude Desktop の設定ディレクトリを確認します:
- macOS:
~/Library/Application Support/Claude - Windows:
%APPDATA%\Claude - Linux:
~/.config/Claude
- macOS:
-
MCP サーバーの設定ファイルを作成または編集します:
- 設定ディレクトリに
claude_desktop_config.jsonというファイルを作成します - 次の内容を追加します(環境に合わせてパスを変更してください):
- 設定ディレクトリに
{
"mcpServers": {
"filesystem": {
"command": "/absolute/path/to/mcp-compose-proxy-shim/bin/npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/phildougherty/Documents",
"/Users/phildougherty/Downloads"
]
},
"memory": {
"command": "/absolute/path/to/mcp-compose-proxy-shim/bin/npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
- 重要:設定ファイルを編集した後、Claude Desktop を再起動してください。
🚀 使い方
先に MCP-Compose をセットアップする
-
まず、MCP-Compose がインストールされ、実行中であることを確認します:
cd /path/to/mcp-compose ./mcp-compose up ./mcp-compose proxyこれにより、Docker コンテナ内の MCP サーバーと、ポート 9876 のプロキシが起動します。
環境変数
Claude Desktop を実行する前に、次の環境変数を設定します。
| 変数 | 説明 | デフォルト |
|---|---|---|
MCP_PROXY_URL | MCP-Compose プロキシの URL | http://localhost:9876 |
MCP_API_KEY | 認証用 API キー | "" |
MCP_DEBUG | デバッグ出力を有効にする | false |
MCP_LOG_LEVEL | ログレベル(trace、debug、info、warn、error) | info |
MCP_CACHE | 応答キャッシュを有効にする | true |
MCP_CACHE_TTL_MS | キャッシュの TTL(ミリ秒) | 300000(5 分) |
MCP_MAX_RETRIES | 最大再試行回数 | 3 |
MCP_LOG_FILE | ファイルへのログ出力を有効にする | false |
🔍 仕組み
bin/npxスクリプトが、Claude が通常ローカルで実行する MCP サーバーへの呼び出しを受け取ります- 実際のサーバーを実行する代わりに、
lib/mcp-shim.jsスクリプトを起動します - shim は想定どおり、stdin/stdout を介して Claude と通信します
- 裏では、すべてのリクエストを MCP-Compose プロキシに転送します
- プロキシが、Docker コンテナとの実際の通信を処理します
- 結果はプロキシを経由して shim に戻り、さらに Claude に渡されます
📝 ログ
ログは次の場所に出力されます:
MCP_DEBUG=trueの場合はコンソール(stderr)MCP_LOG_FILE=trueの場合はファイル/tmp/mcp-shim-[server].log
🔒 セキュリティ機能
- ディレクトリトラバーサルを防止するパスのサニタイズ
- 不正利用を防止するレート制限
- リクエストサイズの制限
- API キーによる認証
- 安全なエラー処理
📚 関連プロジェクト
- MCP-Compose:MCP サーバー向けの Docker オーケストレーション
- Model Context Protocol:MCP の公式ドキュメント
🤝 コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
📄 ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。