MCP Local Router について
MCP Local Router は、複数の上流 MCP サーバーに接続し、その機能を下流のクライアント向けに 1 つのインターフェースへまとめるローカルのアグリゲーションプロキシです。複数の MCP サーバーを単一の入口から管理したい開発者に向けたツールです。
主な機能
- 01コマンドライン引数による設定ファイルの指定
- 02複数の上流 MCP サーバーの設定
- 03stdio トランスポートと環境変数の注入
- 04集約型および上流ごとの SSE エンドポイント
活用シーン
- 01複数の MCP サーバーのツールを 1 つの入口から公開
- 02特定の上流サーバーのツールだけをクライアントに提供
MCP 対応
本プロジェクトは MCP プロキシとして動作し、複数の上流 MCP サーバーに接続して、集約したツールを下流の MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP ローカルルーター
このプロジェクトは、MCP(Model Context Protocol)サーバーの集約プロキシとして機能する、MCP ローカルルーターです。複数の上流 MCP サーバーに接続し、その機能を単一のインターフェースに集約して、下流のクライアントに提供できます。
機能
- コマンドライン引数で設定ファイルを指定できます
- 複数の上流 MCP サーバーを設定できます
- stdio トランスポートに対応しています
- stdio トランスポートに環境変数を挿入できます
- SSE トランスポートに対応しており、集約された
/sseエンドポイントと上流サーバーごとの/sse/{serverName}エンドポイントを提供します
使用方法
実行方法
設定ファイルを指定して実行する必要があります:
cargo run -- --config mcp-config.json --transport sse
SSE ルーティング
ルーターを --transport sse で実行すると、次の 2 種類のエンドポイントが提供されます:
/sseは、設定されたすべての上流サーバーのツールを集約して配信します。/sse/{serverName}は、単一の上流サーバーのツールのみを配信します。{serverName}の部分は、設定ファイルのmcpServersにあるキーと一致する必要があります(例:/sse/filesystemや/sse/workspace-search)。
サーバー名のキーはパスの一部として直接使用されるため、URL で使用できる形式にしてください。
各 SSE 接続では、クライアントが POST リクエストに使用する HTTP パスを含む初期 endpoint イベントが送信されます。すべてのストリーミングエンドポイントで、同じ POST /message?sessionId=… チャネルを共有します。
設定ファイルの形式
設定ファイルは JSON 形式です。以下に例を示します:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop"
],
"env": {
"LINEAR_ACCESS_TOKEN": "your_personal_access_token"
}
},
"workspace-search": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-everything"
],
"env": {}
}
}
}
説明:
- mcpServers:複数のサーバー設定を格納するマッピング
- 各キーはサーバー名です(ログ記録と
/sse/{serverName}パスで使用されます) - 各値は、次のフィールドを含むオブジェクトです:
- command:実行するコマンド
- args:コマンド引数の配列
- env:挿入する環境変数のマッピング
- 各キーはサーバー名です(ログ記録と
ビルドとインストール
# Build the project
cargo build --release
# Run
cargo run --release -- --config mcp-config.json --transport stdio
依存関係
- Rust 2021 Edition
- tokio 非同期ランタイム
- MCP 関連ライブラリ:rmcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。