Tools
De ingebouwde tools van de Copilot CLI zijn standaard ingeschakeld. Wat je hier kunt opgeven zijn custom tools.Basisgebruik
Geef de tooldefinities op viatools in de SessionConfig.
Tool::define() is een helper vergelijkbaar met defineTool in versies voor andere talen.
Voor parameters kun je het JsonSchema gebruiken dat Laravel zelf gebruikt in Laravel MCP. Je kunt ook rechtstreeks een array opgeven zonder JsonSchema.
skipPermission
Als jeskipPermission: true opgeeft, kan die tool worden uitgevoerd zonder permissieprompt.
Tools groeperen met een namespace (experimenteel)
Metnamespace kun je gerelateerde tools groeperen in de toolzoekfunctie van het model. Bij ondersteunde modellen en providers worden lazy geladen tools gegroepeerd aangeboden. In andere omgevingen en voor tools die altijd geladen zijn, worden ze zoals voorheen als afzonderlijke tools behandeld.
name moet 1 tot 64 tekens lang zijn en mag alleen ASCII-letters en -cijfers, underscores en koppeltekens bevatten. description is optioneel. Een namespace verandert de toolnaam niet, dus de handler wordt nog steeds aangeroepen als lookup_fruit. Dit is een experimentele functie. Bij een ongeldige namespace wordt een waarschuwing gegeven en wordt de tool zonder namespace behandeld.
$invocation
Het tweede argument$invocation van de toolhandler bevat de volgende velden.
Protocoldetails
In Protocol v3 (de huidige standaard) worden toolaanroepen niet als JSON-RPC-requests verstuurd, maar als sessie-events (external_tool.requested) gebroadcast. De SDK verwerkt dit event intern en antwoordt met de RPC session.tools.handlePendingToolCall.
Het gebruik van SessionConfig verandert niet. Je geeft alleen definities door via tools; de SDK vangt de protocolverschillen op.
MCP CallToolResult converteren
GebruikMcpCallToolResult::convert() om het toolresultaat van een MCP-server (CallToolResult) te converteren naar het ToolResultObject van de Copilot SDK.
Het resultaat van een MCP-tool is een array van content-blokken zoals text, image en resource, maar de Copilot SDK verwacht het ToolResultObject-formaat, dus conversie is nodig.
Zie de GitHub-repository voor de meest recente informatie.