Skip to main content

ツール

Copilot CLIのビルトインツールはデフォルトで有効です。ここで指定できるのはカスタムツールです。

基本的な使い方

SessionConfigの tools にツールの定義を指定します。 Tool::define()は他言語版のdefineToolと同様のヘルパーです。 parametersにはLaravel自身がLaravel MCPで使っているJsonSchemaを使用可能です。JsonSchemaを使わず直接配列を指定も可能です。

skipPermission

skipPermission: true を指定すると、そのツールはパーミッションプロンプトなしで実行できます。

$invocation

ツールハンドラの第2引数 $invocation には以下のフィールドが渡されます。

プロトコルの詳細

Protocol v3(現在のデフォルト)では、ツール呼び出しはJSON-RPCリクエストではなくセッションイベント(external_tool.requested)としてブロードキャストされます。SDKはこのイベントを内部的に処理して session.tools.handlePendingToolCall RPCで応答します。 SessionConfig の使い方は変わりません。 tools に定義を渡すだけで、プロトコルの違いはSDKが吸収します。

MCP CallToolResult の変換

MCPサーバーのツール結果(CallToolResult)をCopilot SDKのToolResultObjectに変換するにはMcpCallToolResult::convert()を使います。 MCPツールの結果はtext・image・resourceなどのcontentブロック配列ですが、Copilot SDKはToolResultObject形式を期待するため変換が必要です。
最新情報は GitHub リポジトリ を参照してください。
最終更新日 2026年6月20日