Zum Hauptinhalt springen

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 in tools 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

Mit skipPermission: true können Sie das entsprechende Tool ohne Berechtigungsprompt ausführen.

Tools mit Namespaces gruppieren (experimentell)

Mit namespace können Sie zusammengehörige Tools für die Tool-Suche des Modells gruppieren. Bei unterstützten Modellen und Providern werden verzögert geladene Tools gebündelt präsentiert. In anderen Umgebungen sowie bei immer geladenen Tools werden sie wie bisher als einzelne Tools behandelt.
name muss aus 1 bis 64 ASCII-Zeichen bestehen (alphanumerische Zeichen, Unterstriche und Bindestriche). description ist optional. Der Namespace ändert den Tool-Namen nicht, daher wird der Handler weiterhin als lookup_fruit aufgerufen. Diese Funktion ist experimentell. Bei einem ungültigen Namespace wird eine Warnung ausgegeben, und das Tool wird ohne Namespace behandelt.

$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.
Zuletzt geändert am 26. Oktober 2026