피드로 돌아가기
GeekNewsAI/ML
원문 읽기
MCP 도구 50개를 짜며 깨달은 것: 함수 호출은 비정상적으로 친밀한 관계였다
MCP 설계를 통한 LLM 호출 최적화: 시그니처 중심에서 어포던스 중심으로의 패러다임 전환
AI 요약
Context
전통적인 RPC 구조의 SQLite 기반 CLI 도구를 MCP 서버로 전환하는 과정에서 발생한 인터페이스 불일치 분석. 호출자가 인간에서 LLM으로 변경됨에 따라 엄격한 Type System과 시그니처만으로는 함수 호출 시점과 의도를 제어하기 어려운 한계 직면.
Technical Solution
- zod 스키마를 통한 타입 정의보다 호출 시점과 경계를 명시한 description 기반의 어포던스 설계 적용
- Single Responsibility Principle(SRP) 기반의 세분화된 함수 구조에서 LLM의 호출 횟수를 줄이고 응답 속도를 높이는 의도 중심의 Heavy Tool(예: show_portfolio) 설계로 전환
- "Use this when..." 및 "Do NOT use this for..." 패턴의 프롬프트를 통한 도구 간 상호 배타적 호출 조건 정의
- 호출자(LLM)에게 부여하는 운영 원칙을 description에 통합하여 단순 기능 설명을 넘어선 실행 정책(Policy) 수립
- 인터페이스의 신뢰 방향을 '호출자의 신뢰'에서 '도구 제공자의 LLM 신뢰'로 재설계하여 자연어 인터페이스 최적화
실천 포인트
- 도구 설명에 단순 기능 정의가 아닌 '호출해야 할 상황'과 '호출하지 말아야 할 상황'을 명시했는가 - LLM이 여러 번 호출하여 조합해야 하는 구조를 단일 Heavy Tool로 통합하여 레이턴시를 줄일 수 있는가 - 단순 타입 정의(Schema) 외에 LLM이 준수해야 할 운영 정책(Operational Principle)이 description에 포함되었는가