MCP Server Proxy について
MCP Server Proxyは複数のMCPサーバーに接続し、そのツールを統一インターフェースで提供します。名前付き設定プロファイル、サーバー名によるツール名の接頭辞付け、stdioまたはSSEでの実行に対応します。
主な機能
- 01複数のMCPサーバーへの接続
- 02設定プロファイルの管理
- 03サーバー名をツール名に付加
- 04stdioまたはSSEモードで実行
- 05SSEのホストとポートを設定
活用シーン
- 01複数のMCPサーバーのツールを集約
- 02開発用と個人用の設定を切り替え
- 03集約したツールをSSEで公開
- 04サーバーごとに同名ツールを区別
MCP 対応
複数のMCPサーバーに接続し、ツールを統一されたMCPインターフェースで公開します。stdioまたはSSEで動作し、プロファイルごとにサーバー設定を選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバープロキシ
複数の MCP サーバーに接続し、ツールにアクセスするための統一インターフェースを提供するプロキシサーバーです。
特長
- 複数の MCP サーバーに同時に接続
- 複数の設定プロファイルに対応
- サーバー名を使用したツール名のプレフィックス付け
- stdio モードまたは SSE モードで実行
- プロファイルベースの設定管理
設定
各プロファイル用の設定ファイルを config.<profile>.json という形式で作成します。例:
// config.developer.json
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
// config.personal.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/mirilale/Desktop"
]
}
}
}
インストール
npm install
使用方法
コマンドラインオプション
サーバーは、次の各種コマンドラインオプションを指定して起動できます。
# Start with default settings
node dist/server.js
# Start with a specific profile
node dist/server.js --profile developer
# or
node dist/server.js -p developer
# Start in SSE mode
node dist/server.js --mode sse
# or
node dist/server.js -m sse
# Start in SSE mode with custom port and host
node dist/server.js --mode sse --port 8080 --host 0.0.0.0
# Combine options
node dist/server.js --profile developer --mode sse --port 8080
利用可能なオプション:
-p, --profile <name>:使用するプロファイルを指定します(デフォルトは「default」です)-m, --mode <mode>:「stdio」モードまたは「sse」モードを選択します(デフォルトは「stdio」です)--port <number>:SSE モードのポートを設定します(デフォルトは 3000 です)--host <host>:SSE モードのホストを設定します(デフォルトは「localhost」です)
ヘルプを表示します:
node dist/server.js --help
ツールの命名規則
ツール名にはサーバー名がプレフィックスとして付与されます。例:
filesystemサーバーのread_fileというツールはfilesystem_read_fileになりますkubernetesサーバーのget_podsというツールはkubernetes_get_podsになります
SSE モードのエンドポイント
SSE モードで実行すると、サーバーは次のエンドポイントを公開します。
GET /sse:SSE 接続を確立しますPOST /messages:ツールリクエストを処理します(sessionIdクエリパラメーターが必要です)
SSE クライアントの使用例:
const eventSource = new EventSource("http://localhost:3000/sse");
eventSource.onmessage = (event) => {
console.log("Received:", event.data);
};
エラー処理
サーバーは、次のような詳細なエラーメッセージを提供します。
- プロファイルの読み込みエラー
- サーバーへの接続失敗
- ツールが見つからないエラー
- サーバーの切断エラー
すべてのエラーには、状況を把握しやすいよう現在のプロファイル名が含まれます。
開発
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev:stdio:developer
# or
npm run dev:sse:developer
# Run with mpc inspector
npm run inspect
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。