Tools
Die integrierten Tools der Copilot CLI sind standardmäßig aktiviert. An dieser Stelle geben Sie ausschließlich benutzerdefinierte Tools an.Grundlegende Verwendung
Definieren Sie die Tools intools von SessionConfig.
Tool::define() ist ein Helper analog zu defineTool anderer Sprachversionen.
Für parameters können Sie das von Laravel selbst in Laravel MCP verwendete JsonSchema nutzen. Alternativ ist auch die direkte Angabe eines Arrays möglich.
skipPermission
MitskipPermission: true können Sie das entsprechende Tool ohne Berechtigungsprompt ausführen.
$invocation
Dem zweiten Argument$invocation des Tool-Handlers werden die folgenden Felder übergeben.
Protokoll-Details
Ab Protocol v3 (aktueller Standard) werden Tool-Aufrufe nicht als JSON-RPC-Requests, sondern als Session-Events (external_tool.requested) gesendet. Das SDK verarbeitet dieses Event intern und antwortet mit dem RPC session.tools.handlePendingToolCall.
Die Verwendung von SessionConfig ändert sich dadurch nicht. Sie übergeben lediglich die Definitionen an tools, und die Protokollunterschiede fängt das SDK ab.
Umwandlung eines MCP-CallToolResult
Um ein Tool-Ergebnis eines MCP-Servers (CallToolResult) in ein ToolResultObject des Copilot SDK zu konvertieren, verwenden Sie McpCallToolResult::convert().
Die Ergebnisse von MCP-Tools sind ein Array von content-Blöcken (text/image/resource), das Copilot SDK erwartet jedoch das ToolResultObject-Format, daher ist die Umwandlung erforderlich.
Aktuelle Informationen finden Sie im GitHub-Repository.