피드로 돌아가기
Dev.toAI/ML
원문 읽기
Fuzzy Discovery 도입을 통한 MCP 서버 성공률 99.3% 달성 및 장애 제거
MCP Discovery: Why Your MCP Server Needs Better Tool Discovery Than You Think (After 85 Production Outages)
AI 요약
Context
LLM이 MCP Tool List를 정확히 읽지 않고 패턴에 기반해 도구 이름을 예측하는 Hallucination 현상 발생. 기존의 엄격한 Exact Match 방식으로는 사소한 명칭 차이(단수/복수 등)로 인한 Tool Not Found 에러와 세션 단절을 방지할 수 없는 구조적 한계 존재.
Technical Solution
- 요청 가로채기를 위한 Java Spring Boot 기반의 OncePerRequestFilter 구현
- 요청된 도구 명칭과 실제 정의된 도구 목록 간의 유사도를 측정하는 FuzzyMatcher 레이어 도입
- 0.7 이상의 유사도 점수 확보 시 요청 바디의 도구 이름을 정답 값으로 Rewrite 하여 처리하는 자동 교정 로직 설계
- 매칭 실패 시 단순 에러 반환이 아닌 추천 도구 목록을 포함한 가이드성 에러 메시지를 반환하는 Graceful Degradation 적용
- LLM의 예측 특성을 수용하여 시스템이 스스로 오류를 보정하는 유연한 인터페이스 구조로 전환
Impact
- Tool Not Found 에러 발생 빈도: 일평균 14건에서 2건으로 급감
- 도구 호출 성공률: 95.1%에서 99.3%로 향상
- 일평균 성공 호출 수: 287건에서 301건으로 증가
- 사용자 불만 접수 건수: 주당 2~3건에서 0건으로 제거
Key Takeaway
LLM 기반 시스템 설계 시 모델의 완벽한 이해를 전제하지 않고 예측 실패를 전제한 보정 레이어(Correction Layer)를 구축하는 것이 시스템 안정성 확보의 핵심임.
실천 포인트
- MCP 도구 명칭 설계 시 LLM이 예측하기 쉬운 명확한 네이밍 컨벤션 적용 - 도구 설명(Description)에 사용 시점과 반환 값의 특성을 구체적으로 명시 - API 진입점에 유사도 기반의 Fuzzy Matching 필터 도입 검토 - 에러 응답 시 LLM이 스스로 교정할 수 있도록 가능한 대안(Alternative) 목록 제공