6 단계: MCP(Model Context Protocol) 활용 설계 - 100-hours-a-week/6-nemo-wiki GitHub Wiki

MCP(Model Context Protocol) 활용 설계 - MCP 미도입 선택

1. MCP를 도입하지 않은 배경

  • 모델 호출의 복잡도가 낮음: 단일 로컬 모델을 호출하고, 관심사 추출 및 간단한 텍스트 생성만 수행
  • 외부 툴 연동 필요성 부재: 모델이 직접 Redis, ChromaDB 등을 호출하는 툴 콜링 구조가 존재하지 않음
  • FastAPI 서버 내에서 직접 처리 가능: Redis 조회, ChromaDB 검색은 FastAPI 서버의 내부 로직으로 충분히 처리 가능
  • 개발 효율성 고려: MCP 표준을 강제할 경우 초기 개발 속도 및 단순성 저하 우려
  • 운영 부담 최소화: 현재 규모에서는 별도의 MCP 서버나 컨텍스트 관리 체계 없이도 장애 대응 및 유지보수가 가능

2. 현행 아키텍처에서 외부 연계 요구 처리 방식

항목 설명
모델 호출 FastAPI 서버가 로컬 모델에 직접 요청
벡터 검색 FastAPI 서버가 직접 ChromaDB에 질의 수행
캐시 조회/저장 FastAPI 서버가 Redis에 직접 접근
컨텍스트 관리 요청별 단순 데이터 전달 및 반환 (MCP 표준화 불필요)
오류 대응 FastAPI 서버 내 에러 핸들링 및 HTTP Status 관리

3. MCP 없이 가능한 이유 및 현재 구조의 한계

3.1 가능한 이유

  • 모든 외부 시스템 접근이 FastAPI 서버 내에서 통제됨
  • 로컬 모델이 외부 툴 사용 요청(tool calling)을 하지 않음
  • 요청/응답 포맷이 단순하고 명확하여 추가 표준화 없이도 안정적 운영 가능

3.2 현재 구조의 한계

  • 향후 모델이 직접 다양한 외부 시스템에 동적 요청을 해야 할 경우, FastAPI 코드 수정이 반복될 수 있음
  • 대규모 다중 모델 환경으로 확장 시 일관성 관리 어려움 발생 가능

그러나 현재 버전 2 단계에서는 이러한 한계가 서비스 품질이나 운영 안정성에 직접적인 영향을 미치지 않음.


4. 향후 MCP 도입 고려 계획

시나리오 MCP 도입 고려 여부
다양한 외부 API 연동 필요 시 MCP 기반 통합 요청 처리 체계 도입 검토
LLM이 직접 툴 호출(tool calling) 기능 사용 시 MCP 기반 표준화된 컨텍스트 교환 체계 도입
다중 모델 운영 필요 시 모델 호출/응답 표준화를 위해 MCP 도입

향후 복잡한 툴 통합, 에이전트형 AI 기능 추가, 다중 모델 운영 등으로 인한 복잡성 증가가 확인될 경우, MCP 기반 아키텍처 전환을 공식 검토할 예정입니다.