피드로 돌아가기
Dev.toAI/ML
원문 읽기
Subprocess 제거 및 RPC 직접 호출 기반 MCP Tool Hooks 도입으로 오버헤드 최소화
MCP Tool Hooks in Claude Code
AI 요약
Context
기존 Hooks는 Shell Script 기반의 Subprocess 실행 방식으로 인해 호출마다 Transport 연결 및 Auth 처리 오버헤드가 발생함. 특히 파일 쓰기 시마다 발생하는 보안 검사 같은 빈번한 작업에서 누적 지연 시간이 시스템 병목 지점으로 작용함.
Technical Solution
mcp_tool타입을 신설하여 기존 실행 중인 MCP Server와 direct RPC Connection을 통한 통신 구조 설계- Subprocess 생성 및 Shell 환경 변수 의존성을 완전히 제거하여 PATH 설정 오류나 외부 의존성(jq 등) 문제 해결
- Stateful Server 활용 구조를 통해 매 호출 시 재파싱하던 설정값(tsconfig.json 등)을 메모리에 캐싱하여 처리 속도 향상
${field.path}Dot-notation 기반의 Event JSON 데이터 바인딩으로 유연한 입력 값 전달 메커니즘 구현if조건절에 Permission-rule 구문을 도입하여 특정 파일 확장자에 대해서만 Hook이 실행되도록 필터링 최적화updatedMCPToolOutput필드를 통해 LLM이 인지하기 전 MCP Server 단에서 출력 결과를 후처리하는 파이프라인 구축
실천 포인트
- 빈번한 호출이 발생하는 Hook의 경우 Subprocess 방식 대신 RPC 기반의 `mcp_tool` 적용 검토 - Server-side Caching이 가능한 Stateful Server를 구축하여 반복적인 I/O 및 파싱 비용 절감 - 무한 루프 방지를 위해 Stop Hook 설계 시 `stop_hook_active` 필드 검증 로직 필수 포함 - Non-blocking 에러로 인한 침묵 실패를 방지하기 위해 MCP Server 설정 명칭의 정확한 일치 여부 확인