Herramientas
Las herramientas integradas de Copilot CLI están habilitadas por defecto. Aquí puedes indicar herramientas personalizadas.Uso básico
Indica la definición de las herramientas entools de SessionConfig.
Tool::define() es un helper equivalente a defineTool de las versiones en otros lenguajes.
En parameters puedes usar el JsonSchema que Laravel usa en Laravel MCP. También puedes pasar directamente un array sin JsonSchema.
skipPermission
Si indicasskipPermission: true, esa herramienta se ejecuta sin prompt de permiso.
$invocation
Al segundo argumento del handler,$invocation, se le pasan los siguientes campos.
Detalles del protocolo
En Protocol v3 (el valor por defecto actual), las invocaciones de herramientas se emiten como eventos de sesión (external_tool.requested), no como peticiones JSON-RPC. El SDK procesa este evento internamente y responde con el RPC session.tools.handlePendingToolCall.
El uso de SessionConfig no cambia. Simplemente pasa la definición en tools; el SDK absorbe las diferencias de protocolo.
Conversión de MCP CallToolResult
Para convertir el resultado de una herramienta MCP (CallToolResult) al ToolResultObject de Copilot SDK, usa McpCallToolResult::convert().
El resultado de una herramienta MCP es un array de bloques content de texto, imagen, recursos, etc., pero Copilot SDK espera el formato ToolResultObject, así que hay que convertirlo.
Consulta la información más reciente en el repositorio de GitHub.