피드로 돌아가기
Dev.toBackend
원문 읽기
의존성 기반 자동 등록 구조를 통한 MCP Toolbox의 동적 가용성 확보
The Generic MCP Toolbox: Tools That Register Themselves
AI 요약
Context
다수의 Laravel 앱에 MCP 서버를 구축하며 반복 발생하는 공통 Ops 도구의 중복 구현 문제 발생. 외부 패키지 의존성에 따라 도구의 가용성이 결정되는 환경에서, 미설치 패키지의 도구가 노출될 시 발생하는 Runtime Error 및 LLM Agent의 잘못된 도구 호출로 인한 시스템 불안정성 식별.
Technical Solution
isAvailable()정적 메서드를 통한 패키지 및 테이블 존재 여부 기반의 Opt-in 등록 메커니즘 설계ToolRegistry클래스에 등록 로직을 단일화하여 서버 부팅 시 가용 도구만 필터링하는 Single Source of Truth 구조 채택handle()내부의 2차 검증 로직을 통해 Registry 우회 호출 시에도 Fatal Error를 방지하는 Belt and Suspenders 전략 적용configuredAbility추상화를 통해 패키지의 공통 권한 요구사항을 호스트 앱의 개별 Permission 체계로 매핑하는 간접 참조 구조 설계#[IsReadOnly]태그 및 Invokable Action 패턴을 도입하여 MCP 인터페이스와 실제 비즈니스 상태 변경 로직을 완전히 분리
실천 포인트
- 외부 의존성 기반의 플러그인 구조 설계 시, 인터페이스 노출 전 `class_exists` 등의 런타임 검증 단계 포함 여부 검토 - 프레임워크 공통 모듈 개발 시 하드코딩된 권한 명칭 대신 설정 파일(Config)을 통한 권한 매핑 구조 적용 - 외부 인터페이스(API/MCP)와 핵심 비즈니스 로직(Action)을 분리하여 테스트 가능성과 재사용성 확보