
MCP 서버와 에이전트 호스트, 왜 둘로 나누었는가
두줄요약
MCP 서버와 에이전트 호스트를 책임과 통제 경계에 따라 분리한 설계를 설명했습니다. 승인 제안·폼 정의의 소유권을 서버로 모아 ID 노출과 조용한 실패를 줄였습니다.
문제 상황
- 사내 플랫폼의 자연어 서비스 조작 기능에서 MCP 서버와 에이전트 호스트의 통합·분리 경계 검토
- 승인 대기를 예외 문자열로 반환하고 양쪽 계층에 통제를 둔 결과, 승인 카드 미노출과 내부 ID 재질문 발생
구조와 흐름
- 에이전트 호스트의 대화 처리·LLM 호출·실행 루프와 MCP 서버의 도구·정책·승인·감사 책임 분리
- 승인 대기를 구조화된 실행 제안으로 반환하고, 원본 실행 인자와 카드 표시용 필드 분리
- 도구 소유자인 MCP 서버의 폼 정의 제공과 프론트엔드의 검증·렌더링 역할 한정
선택 이유
- MCP의 프로세스 경계 통신 목적과 여러 MCP 클라이언트의 서버 공유 필요성
- 느리고 비용이 큰 LLM 호출과 빠른 도구 조회의 상반된 지연·비용 특성
- 추론은 범용 LLM에 위임하고 실행 통제는 플랫폼이 소유하는 원칙
성능/운영 포인트
- 도구 목록 권한 필터링과 실행 직전 재검증, 감사 기록
- 응답의 아이콘 이미지 제거로 모델 전달 도구 응답을 1.1MB에서 약 5,900자로 축소
- 폴백 경로가 있는 기능의 실제 실행 경로 로그 검증과 미구현 승인 처리·호출량 제한 확인 필요



