Skip to main content

도구

Copilot CLI의 빌트인 도구는 기본적으로 활성화되어 있습니다. 여기서 지정할 수 있는 것은 커스텀 도구입니다.

기본 사용법

SessionConfig의 tools에 도구 정의를 지정합니다. Tool::define()은 타 언어 버전의 defineTool과 같은 헬퍼입니다. parameters에는 Laravel 자체가 Laravel MCP에서 사용하는 JsonSchema를 사용할 수 있습니다. JsonSchema를 사용하지 않고 직접 배열을 지정할 수도 있습니다.

skipPermission

skipPermission: true를 지정하면 그 도구는 퍼미션 프롬프트 없이 실행할 수 있습니다.

$invocation

도구 핸들러의 두 번째 인자 $invocation에는 다음 필드가 전달됩니다.

프로토콜 세부

Protocol v3(현재의 기본값)에서는 도구 호출이 JSON-RPC 요청이 아니라 세션 이벤트(external_tool.requested)로 브로드캐스트됩니다. SDK는 이 이벤트를 내부적으로 처리해 session.tools.handlePendingToolCall RPC로 응답합니다. SessionConfig의 사용법은 변하지 않습니다. tools에 정의를 전달하는 것만으로 프로토콜 차이는 SDK가 흡수합니다.

MCP CallToolResult의 변환

MCP 서버의 도구 결과(CallToolResult)를 Copilot SDK의 ToolResultObject로 변환하려면 McpCallToolResult::convert()를 사용합니다. MCP 도구의 결과는 text, image, resource 등의 content 블록 배열이지만, Copilot SDK는 ToolResultObject 형식을 기대하므로 변환이 필요합니다.
최신 정보는 GitHub 저장소를 참고하세요.
마지막 수정일 2026년 7월 13일