重要
MCP および API プラグインは、 宣言型エージェント内のアクションとしてサポートされます。 これらは、Microsoft 365 Copilot のスタンドアロン エクスペリエンスとして有効になっていません。
Microsoft 365 Copilot がモデル コンテキスト プロトコル (MCP) または API プラグインを初めて使用すると、ユーザーに通知され、操作を許可またはキャンセルするように求められます。 ユーザーが Copilot によるプラグインへの接続を許可した場合、データを取得する今後のすべての操作 (HTTP GET 操作) では確認は必要ありません。 その他の HTTP 操作は、送信するデータを示し、ユーザーに許可または拒否を選択させるプロンプトを表示します。
プラグイン開発者は、MCP サーバーまたは API の個々の操作に対してこの動作を変更できます。 開発者は、確認プロンプトの一部として Copilot がユーザーに表示されるテキストをカスタマイズすることもできます。
プロンプト動作のオーバーライド
開発者は、MCP サーバーのtools/list応答で readOnlyHint プロパティを true に設定することで、(最初の初回プロンプトの後に) 特定のツールについて、Microsoft 365 Copilotユーザーに確認を求めるかどうかを制御できます。 詳細については、 MCP スキーマ リファレンスを参照してください。
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "get_weather",
"title": "Weather Information Provider",
"description": "Get current weather information for a location",
"annotations": {
"readOnlyHint": true,
},
"inputSchema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name or zip code"
}
},
"required": ["location"]
}
}
]
}
}
確認テキストのカスタマイズ
開発者は、プラグイン マニフェストの関数の Function capabilities オブジェクトの Confirmation オブジェクトに body プロパティを設定することで、確認テキストを指定できます。
body の値は、関数が何を行うかを示す必要があります。 このプロパティがマニフェストに存在しない場合は、Function オブジェクトの description プロパティが代わりに使用されます。
注:
確認テキストのカスタマイズは、プラグイン マニフェストの functions 配列で宣言されているツール (ピン留めされたツール) にのみ適用されます。
動的ツール検出を使用する MCP プラグインの場合、ツールは実行時に MCP サーバーから解決され、マニフェストで宣言されていないため、確認テキストをカスタマイズすることはできません。 Copilot は、代わりに MCP サーバーのtools/list応答からのツールのdescriptionを使用します。
{
"name": "GetBudgets",
"description": "Returns details including name and available funds of budgets, optionally filtered by budget name",
"capabilities": {
"confirmation": {
"type": "AdaptiveCard",
"title": "Search budgets",
"body": "Do you want to allow searching for budgets?"
}
}
}
確認テキストのローカライズ
確認プロンプトとして使用されるロー カライズ可能な文字列 を構成できます。 次の手順では、プロセスを説明します。
手順 1: プラグイン マニフェストでローカライズ キーを使用する
プラグイン マニフェスト (plugin.json など) で、次の形式を使用して、リテラル文字列をローカライズ キーに置き換えます。
{
"schema_version": "v2.3",
"name_for_human": "[[plugin_name]]",
"description_for_human": "[[plugin_description]]"
}
これらのキー ( plugin_name や plugin_description など) は、ローカリゼーション ファイルのエントリと一致し、正規表現 ^[a-zA-Z_][a-zA-Z0-9_]*に準拠する必要があります。
手順 2: ローカライズ ファイルを作成する
次の例に示すように、ローカリゼーション ファイルを JSON 形式で作成し、各キーを翻訳された文字列にマップする localizationKeys プロパティを含めます。
{
"localizationKeys": {
"plugin_name": "Weather Assistant",
"plugin_description": "Provides weather updates and forecasts."
}
}
異なる言語 (en.json、fr.json、de.json など) の複数のローカリゼーション ファイルを作成し、プラグイン構成で参照できます。
手順 3: アプリ マニフェストに localizationInfo を追加する
ローカリゼーション ファイルを参照する localizationInfo セクションをアプリ マニフェストに含めます。 例えば、
"localizationInfo": {
"defaultLanguageTag": "en",
"defaultLanguageFile": "en.json",
"additionalLanguages": [
{
"languageTag": "fr",
"file": "fr.json"
}
]
}