Outils
Les outils intégrés du Copilot CLI sont activés par défaut. Ce que vous configurez ici, ce sont des outils personnalisés.Utilisation de base
Spécifiez la définition des outils danstools de SessionConfig.
Tool::define() est un helper équivalent à defineTool dans d’autres versions linguistiques.
Le paramètre parameters accepte le JsonSchema utilisé par Laravel MCP. Vous pouvez aussi passer directement un tableau sans JsonSchema.
skipPermission
AvecskipPermission: true, l’outil s’exécute sans prompt de permission.
$invocation
Le second argument du gestionnaire d’outil,$invocation, reçoit les champs suivants.
Détails du protocole
En Protocol v3 (défaut actuel), les appels d’outils sont diffusés comme des événements de session (external_tool.requested) plutôt que comme des requêtes JSON-RPC. Le SDK traite ces événements en interne et répond via le RPC session.tools.handlePendingToolCall.
L’usage de SessionConfig est inchangé. Il suffit de passer les définitions à tools, le SDK absorbe les différences de protocole.
Convertir un CallToolResult MCP
Pour convertir un résultat d’outil d’un serveur MCP (CallToolResult) en ToolResultObject du Copilot SDK, utilisez McpCallToolResult::convert().
Les résultats d’outils MCP sont un tableau de blocs content (text, image, resource, etc.), mais le Copilot SDK attend un ToolResultObject, d’où la conversion.
Pour les dernières informations, consultez le dépôt GitHub.