MCP-of-MCPS について
MCP-of-MCPS は、複数の MCP サーバーを扱う AI エージェント向けのメタサーバーです。セマンティックなツール検索、必要なスキーマの選択的読み込み、ツール間でデータを直接渡すコード実行に対応します。
主な機能
- 01タスクの説明からツールを検索
- 02各サーバーのツール名を一覧表示
- 03選択したツールのスキーマを必要時に読み込み
- 04複数ツールをまたぐ JavaScript ワークフローを実行
- 05分析済みのツールメタデータを保持
活用シーン
- 01接続済みサーバーから適切なツールを探す
- 02必要なツールの定義だけを読み込む
- 03モデルを介さずツール間でファイル内容を渡す
- 04複数の MCP サーバーにまたがる手順を組み立てる
MCP 対応
設定済みの MCP サーバーを単一のエンドポイントに集約し、MCP クライアントに検索、スキーマ参照、コード実行のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP of MCPs
MCP of MCPs は、すべての MCP サーバーを単一のスマートなエンドポイントに統合するメタサーバーです。 AI エージェントがツールをすぐに検出し、スキーマを選択的に読み込み、実行コストを大幅に削減できるため、トークンや時間を無駄にせずに済みます。
ツールのメタデータを永続的に保持し、セマンティック検索を行い、ツール間でコードを直接実行することで、混沌としたマルチサーバー構成を、高速で効率的かつハルシネーションのないワークフローに変えます。 また、必要に応じてツールの出力スキーマを自動的に分析し、セッションをまたいで保持することで、一貫した動作を実現します。
つまり:
🚀 自動化の高速化
🧠 より明快な推論
💰 トークンを大幅に削減
📦 スキーマのメタデータを永続的に保持・分析

ツール 1:semantic_search_tools
セマンティック検索ツール - 実現したいタスクを説明して、ツールを検索します。すべてのツール名を確認する代わりに、あるいはツール名だけでは何ができるのかわからない場合は、平易な英語で意図を説明するだけで(例:「通知を送信する」「データベースに問い合わせる」「画像を処理する」)、最も関連性の高いツールだけをすぐに取得できます。これにより、ツール定義をすべて読み込まずに、接続されたすべてのサーバーで利用できるツールをすばやく軽量に調べられます。
// Search by task/intent, not by tool names:
// Input: { query: "send notifications to a channel", limit: 5 }
// Returns only relevant matches (ranked by similarity):
// [
// {
// serverName: "slack",
// toolName: "post_message",
// description: "Post a message to a Slack channel",
// similarityScore: 0.94,
// fullPath: "slack/post_message"
// },
// ....
// // Only 5 most relevant tools returned - fast and lightweight!
// ]
手早く調べるのに最適です:
- 必要なツールではなく、実行したいことを説明します
- スキーマ全体を読み込まずに、すぐに結果を取得できます
- すべてのサーバーの機能を数ミリ秒で見つけられます
- トークンのオーバーヘッドはありません。軽量なツール名と説明だけを取得できます
ツール 2:get_mcps_servers_overview
検出ツール - このツールは、完全なスキーマを含まずにツール名だけを返します。これにより、エージェントは詳細な定義を何百件も最初に読み込む代わりに、数秒で軽量な概要を把握できます。利用できるものだけを表示し、詳細で圧倒することがないため、読み込みの遅延をなくしながら、混乱やハルシネーションを防ぎます。
// Returns:
// google_drive/download_file
// google_drive/upload_file
// slack/send_message
// database/execute_query
// ...
ツール 3:get_tools_overview
イントロスペクションツール - 30 個以上あるすべてのツールではなく、実際に必要なツールだけを読み込み、選択的な読み込みによって数千トークンを節約します。このオンデマンド方式により、応答が速くなり、焦点を絞ったコンテキストで混乱を減らし、精度を高められます。
// Input: ["google_drive/download_file", "slack/send_message"]
// Returns: Full tool definitions with:
// - Parameter schemas
// - Required vs optional fields
// - Example usage code
ツール 4:run_functions_code
実行ツール - モデルを介した往復を挟まずにツール間でデータが直接受け渡されるため、2 MB のファイル転送に必要なトークンは 50,000 以上ではなく約 100 です。モデルにはノイズの多い中間データではなく、整理された最終結果だけが表示されるため、処理の遅延なく複雑なワークフローを一度に実行できます。
// Write code that:
// - Calls multiple tools in sequence or parallel
// - Processes and transforms data
// - Implements complex logic and error handling
// - Returns only final results to the model
一連のフローですべての問題を解決する方法
タスクを実行する際は、まず get_mcps_servers_overview を使って、サーバー全体で利用可能なツール名を軽量な一覧として取得します。これにより、スキーマを読み込まずに利用可能なツールをすばやく確認できます。タスクに必要なツールが見つからない場合や、ツール名がわかりにくい場合は、平易な英語で意図を説明して(例:「チャンネルに通知を送信する」)、semantic_search_tools で検索します。AI を活用したセマンティック理解により、類似度順に並べられた、最も関連性の高いツールだけがすぐに返されます。必要なツールを特定したら、get_tools_overview を使って、完全なスキーマとパラメーターを含むツール定義のうち、必要なものだけを読み込みます。これにより、関係のないツールを避けて数千トークンを節約し、モデルに焦点を絞ったコンテキストを提供できます。最後に、run_functions_code を使ってワークフローを実行します。データはツール間でメモリー上を直接流れ、中間結果はトークンにシリアライズされずネイティブオブジェクトとして保持され、最終結果だけがモデルに返されます。このパターンにより、トークン使用量を大幅に削減し、不要なモデル処理を避けて実行を高速化するとともに、各段階で関連情報だけを表示することでハルシネーションをなくします。
実例
従来の方法:
TOOL CALL: gdrive.getDocument(documentId: "abc123")
→ returns full transcript text (loads into context: 50,000 tokens)
TOOL CALL: salesforce.updateRecord(...)
→ model writes entire transcript again (doubles the tokens: +50,000 tokens)
合計:100,000 以上のトークンを処理し、応答に時間がかかります
MCP of MCPs を使用した場合:
const transcript = (await gdrive.getDocument({ documentId: 'abc123' })).content;
await salesforce.updateRecord({
objectType: 'SalesMeeting',
data: { Notes: transcript }
});
コードは1回の操作で実行されます。データはツール間を直接流れます。最終結果だけがモデルに返されます。
合計:2,000 トークンを処理(98.7%削減)⚡
主なメリット
✅ 応答時間の短縮 - すべてのツールを事前に読み込む必要がありません
✅ ハルシネーションの低減 - モデルには関連情報だけが表示されます
✅ 段階的な開示 - 必要に応じてツールをオンデマンドで読み込みます
✅ コードの組み合わせ - 馴染みのある JavaScript で複雑なワークフローをオーケストレーションできます
✅ ツールのメタデータを保持 - セッション間でツールの出力スキーマが自動的に保持されます
セットアップ
前提条件
- Node.js
- npm または yarn
- 集約する MCP サーバーの設定
Cline への追加
Cline の MCP 設定ファイルに以下を追加します。
オプション 1:インライン設定を使用
{
"mcpServers": {
"mcp-of-mcps": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dbestai/mcp-of-mcps",
"--config",
"[{\"name\":\"weather\",\"command\":\"npx\",\"args\":[\"-y\",\"@h1deya/mcp-server-weather\"]},{\"name\":\"time\",\"command\":\"uvx\",\"args\":[\"mcp-server-time\"]}]"
]
}
}
}
オプション 2:設定ファイルを使用
まず、接続する MCP サーバーを指定する config.json ファイルを作成します。
[
{
"name": "weather",
"command": "npx",
"args": ["-y", "@h1deya/mcp-server-weather"]
},
{
"name": "time",
"command": "uvx",
"args": ["mcp-server-time"]
}
]
次に、このファイルを Cline の設定で参照します。
{
"mcpServers": {
"mcp-of-mcps": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dbestai/mcp-of-mcps",
"--config-file",
"/absolute/path/to/your/config.json"
]
}
}
}
設定オプション:
autoApprove:承認が不要なツール名の配列(例:["get_mcps_servers_overview"])disabled:サーバーを有効にするにはfalseに設定しますtimeout:ツール実行のタイムアウト秒数(デフォルト:60)type:接続タイプ。MCP サーバーでは常に"stdio"です
詳細を見る
この実装は、MCP を使用したコード実行について説明する Anthropic の記事で紹介されたパターンに沿っています。
📖 MCP を使用したコード実行:より効率的なエージェントの構築
貢献
貢献を歓迎します!Pull Request をお気軽に送信してください。
ライセンス
ISC
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。