Strumenti
Gli strumenti integrati di Copilot CLI sono abilitati di default. Qui puoi specificare gli strumenti personalizzati.Uso di base
Specifica la definizione degli strumenti intools di SessionConfig.
Tool::define() è un helper analogo a defineTool delle altre versioni di linguaggio.
In parameters puoi usare il JsonSchema che Laravel stesso adotta in Laravel MCP. È possibile anche specificare direttamente un array senza JsonSchema.
skipPermission
SpecificandoskipPermission: true, lo strumento può essere eseguito senza prompt di permesso.
$invocation
Al secondo argomento$invocation dell’handler dello strumento vengono passati i seguenti campi.
Dettagli di protocollo
Nel Protocol v3 (default attuale) le chiamate a strumenti vengono trasmesse come eventi di sessione (external_tool.requested) anziché come richieste JSON-RPC. L’SDK elabora questo evento internamente e risponde con l’RPC session.tools.handlePendingToolCall.
L’utilizzo di SessionConfig non cambia. Basta passare la definizione in tools: le differenze di protocollo sono assorbite dall’SDK.
Conversione di MCP CallToolResult
Per convertire il risultato di uno strumento MCP (CallToolResult) in ToolResultObject di Copilot SDK, usa McpCallToolResult::convert().
I risultati degli strumenti MCP sono un array di blocchi content (text, image, resource, ecc.), ma Copilot SDK si aspetta il formato ToolResultObject, quindi serve la conversione.
Per le informazioni più recenti fai riferimento al repository GitHub.