ルート (Roots) は、サーバが動作できる境界を定義する MCP の概念です。それらはクライアントがサーバに関連リソースとそれらの場所について知らせる手段を提供します。主にファイルシステム・パスのために使用されますが、ルートは HTTP URL を含む任意の有効な URI で構いません。
Model Context Protocol (MCP) : コンセプト : ルート (Roots) – サンプル
作成 : クラスキャット・セールスインフォメーション
作成日時 : 05/27/2025
* 本記事は github modelcontextprotocol の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
◆ お問合せ : 下記までお願いします。
- クラスキャット セールス・インフォメーション
- sales-info@classcat.com
- ClassCatJP
Model Context Protocol (MCP) : コンセプト : ルート (Roots) – サンプル
MCP のルートを理解します。
ルートは、サーバが動作できる境界を定義する MCP の概念です。それらはクライアントがサーバに関連リソースとそれらの場所について知らせる手段を提供します。
What are Roots?
ルートは、クライアントがサーバに焦点を合わせるべきと提案する URI です。クライアントがサーバに接続する際、それはサーバがどのルートで作業するべきかを宣言します。主にファイルシステム・パスのために使用されますが、ルートは HTTP URL を含む任意の有効な URI で構いません。
For example, roots could be:
file:///home/user/projects/myapp
https://api.example.com/v1
Why Use Roots?
ルートは幾つかの重要な目的を果たします :
- Guidance : 関連リソースと場所についてサーバに知らせます。
- Clarity (明確さ) : ルーツはどのリソースがワークスペースの一部であるかを明確にします。
- Organization : 複数のルートにより異なるリソースを同時に操作できます。
How Roots Work
クライアントがルートをサポートする場合、それは :
- 接続中にルート機能を宣言する
- 提案ルートのリストをサーバに提供する
- ルートが (サポートされている場合に) 変更された時にはサーバに通知する
ルートは情報提供であり厳密に強制するものではありませんが、サーバは以下に注意するべきです :
- 提供されたルートを尊重する
- ルート URI を使用してリソースの位置決めをしてアクセスします
- ルート境界内の操作を優先します
Common ユースケース
ルートは一般的には以下を定義するために使用されます :
- プロジェクト・ディレクトリ
- レポジトリの場所
- API エンドポイント
- 設定の場所
- リソース境界
ベスト・プラクティス
ルートを取り扱う場合 :
- 必要なリソースのみを提示する
- ルートには明確で説明的な名前を使用する
- ルートのアクセス可能性の監視
- ルート変更を上手く処理する
サンプル
通常の MCP クライアントがルートを公開する方法が以下です :
{
"roots": [
{
"uri": "file:///home/user/projects/frontend",
"name": "Frontend Repository"
},
{
"uri": "https://api.example.com/v1",
"name": "API Endpoint"
}
]
}
この設定は、サーバがローカルレポジトリと API エンドポイントの両方に焦点を当てながら、それらを論理的に分類されたままにすることを提案しています。
以上