McpOrchestrator について
McpOrchestratorは、エージェントと複数の下流MCPサーバーを中継する.NET製MCPサーバーです。ツール定義を必要に応じて検出して常時のコンテキストを抑え、Agent Skillsもオンデマンドで提供します。
主な機能
- 01機能の検出とルーティングによるリクエスト中継
- 02下流ツール定義のオンデマンド読み込み
- 03設定変更のホットリロード
- 04ディレクトリ、Git、HTTPのスキルソース
- 05設定初期化とコンテキスト使用量の分析
活用シーン
- 01複数のMCPサーバーを単一の接続先に集約
- 02事前読み込みするツール定義のコンテキスト削減
- 03タスクに応じたスキル指示の提供
MCP 対応
McpOrchestratorは複数の下流サーバーに接続するMCPサーバーです。エージェントは`list_capabilities`、`discover_tools`、`route`を使って段階的にツールを発見・呼び出し、Agent Skillsもオンデマンドで利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細

McpOrchestrator — .NET ネイティブの MCP オーケストレーター
MCP サーバーを接続するたびに、エージェントが何かをする前からコンテキストを消費します。ツールのマニフェストは、すべてのターンでプロンプトに含まれます。 McpOrchestrator は、エージェントとほかのすべてのサーバーの間に 1 つのサーバーを置き、下流のツールマニフェストを必要に応じて読み込みます。そのため、サーバーをいくつ追加しても、エージェントが常に保持するコンテキスト量は変わりません。エージェントから見えるのは 3 つのメタツール、list_capabilities → discover_tools → route です。オーケストレーターは純粋なリレーとして、エージェントから送られた内容をそのまま転送し、決して解釈しません。同じオンデマンド方式で**Agent Skills**を提供することもできます。
70 秒で見る
https://github.com/user-attachments/assets/741c1afa-4bef-4870-9b84-e2c245b8117e
実測した効果
実際の職場の MCP 構成で、Copilot CLI の /usage を使って測定しました。
| コンテキスト内のトークン数 | |
|---|---|
| MCP を直接接続(マニフェストを事前に読み込み) | 17,900 |
| 同じ MCP を McpOrchestrator 経由で接続 | 1,400 |
| 削減率 | 約 13 倍 |
削減量はサーバー数に応じて増えます。まずはご自身の構成で測定してみてください。コマンド 1 つで、インストール不要、ファイル変更も一切ありません(.NET SDK が必要です)。
cd ~/my-project # a folder with a .mcp.json / .vscode/mcp.json / Cursor config
dotnet tool execute McpOrchestrator profile
クイックスタート
既存の MCP 構成から始めます。ホスト設定(.mcp.json、.vscode/mcp.json、または Cursor の設定)があるフォルダーに cd して、次を実行します。
dotnet tool execute McpOrchestrator --yes init # dnx McpOrchestrator --yes init works too
stdio サーバーを生成された orchestrator.config.json に移し、ホスト設定をバックアップしたうえで、オーケストレーターのみを起動するように書き換えます。生成されるカタログは次のようになります。下流サーバーごとにエントリが 1 つあります。
{
"capabilities": [
{
"name": "files",
"summary": "Read and search files under the project root.", // auto-generated
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "C:/projects"]
}
// …one entry per server init found
]
}
summary の行は、エージェントがルーティングに使う説明です。わかりにくいものは書き直してください。MCP ホストを再起動すれば完了です。エージェントは list_capabilities → discover_tools → route を通じてすべてを自動で検出します。また、このファイルへの以降の変更は、再起動なしでホットリロードされます。
スキルを追加する
スキルは SKILL.md を含むフォルダーで、タスクに合致したときにエージェントが自ら検出して従う指示です。次のように作成します。
my-skills/
└── release-notes/
└── SKILL.md
---
name: release-notes
description: Writes user-facing release notes from a git commit range. Use when asked for release notes or a changelog entry.
---
1. Collect the commits since the last release tag.
2. Group by user impact; drop internal-only changes.
3. One sentence per change, present tense.
orchestrator.config.json で、このフォルダーをオーケストレーターに指定します。
"skills": {
"sources": [{ "id": "local", "type": "directory", "path": "C:/my-skills" }]
}
保存するとホットリロードされます。エージェントは list_skills を通じてスキル名と 1 行の説明を確認し、タスクに必要な場合にのみ指示の全文を読み込みます。スキルは共有 git リポジトリや HTTP インデックスから取得することもでき、許可・拒否リストや整合性の固定にも対応しています。詳しくはdocs/skills.mdをご覧ください。
注:これらのスキルはエージェント専用です。モデルはツールを通じてスキルを検出し、それに従います。ホストネイティブのスキルにはなりません(Claude Code の
/skills一覧やスラッシュコマンド、IDE のスキル選択項目には表示されません)。
ドキュメント
その他の内容は、McpOrchestrator/README.md と docs/ にあります。
- 仕組みと3つのツール — アーキテクチャとトークンのスケーリング
- トークンの経済性のプロファイリング —
profileコマンドの詳細、トレースモード、CI のゲート設定 - CLI リファレンス — サーバー、
init、profileの各コマンドとフラグ、およびすべての環境変数 - 手動セットアップ —
initが生成する2つの設定ファイルを手動で作成する方法 - 設定リファレンス — すべてのフィールド、プレースホルダー、プロアクティブ機能、ホットリロード、中央(チーム)設定
- プロジェクトごとの値を使った中央カタログへの移行 — 既存のセットアップの段階的な変換、バージョン互換性、ロールバック
- エージェントスキル — ソース(ディレクトリ/git/HTTP)、ガバナンス、配信モード、仕組み
- パッケージ化と Native AOT — .NET ツール、または Releases からセルフ完結型バイナリとしてインストール
- 比較 — mcp-aggregator やゲートウェイとの比較、およびこのツールを使うべきでない場合
- トラブルシューティング
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。