TL;DR
- 일반적인 agent loop에서 도구 발견과 실행은 결정적 애플리케이션 코드가 맡고, 도구 선택은 LLM이 맡는다. 다만 최종 선택은 Host 정책·사용자 승인이 제한하거나 직접 개시할 수 있다.
- 목록 조회·수신은 Client 코드가 처리한다. 언제 어떤 도구를 탐색할지는 모델이 관여하는 구현도 가능하다.
- 일반적인 agent loop에서 LLM은 제공된 목록과 문맥을 보고 도구·인자를 제안하며, 실행 계층이 이를 검증한다.
- 실행과 결과 전달은 다시 코드가 한다. LLM은 결과를 자연어로 해석할 뿐 호출 자체를 수행하지 않는다.
MCP에서 도구 발견은 코드가 하고 선택은 LLM이 한다
일반적인 MCP agent loop에서는 프로토콜 호출을 처리하는 코드와 도구 사용을 판단하는 LLM이 역할을 나눈다. 아래는 흔한 구현 흐름이며 MCP가 특정 사용자 상호작용 방식이나 모델의 참여를 강제하는 것은 아니다. MCP Tools.
단계별 담당자
| 단계 | 하는 일 | 담당 | LLM 관여 |
|---|---|---|---|
| 발견 | 연결된 서버에서 도구 목록을 받아 저장 | Client 코드 | 탐색 시점·대상 판단에 관여할 수 있음 |
| 선택 | 사용자 메시지에 맞는 도구·인자 결정 | LLM | 판단 |
| 실행 | 선택된 도구를 실제로 호출 | Client 코드 | 없음 |
| 해석 | 호출 결과를 자연어 응답으로 변환 | LLM | 판단 |
도구 목록은 연결 시점에 조회하거나 필요할 때 가져올 수 있다. 호스트는 받은 목록 전체 또는 필요한 일부를 모델에 제공한다. 모델이 목록에 없는 이름이나 잘못된 인자를 출력할 수 있으므로 실행 계층은 도구 이름·입력 스키마·권한을 검증해야 한다.
2026-07-28의 ttlMs는 캐시 유효 기간(freshness) 힌트이고 cacheScope는 공유 가능 범위다. 목록이 다시 필요할 때 유효한지 확인하며, notifications/tools/list_changed를 받으면 캐시를 무효화한다. 해당 알림은 새 사양에서 subscriptions/listen 스트림으로 전달된다. private 캐시는 같은 인증 문맥에서만 재사용한다. TTL 만료는 즉시 백그라운드 재조회를 시작하라는 뜻이 아니다. MCP Caching.
발견·선택·실행을 구현한 클라이언트 골격 코드는 2025-11-30-[MCP-Study]-MCP 서버·클라이언트 구현 코드 레퍼런스 참조.
역할 분담의 이점
- 효율: 유효한 캐시를 재사용하고 목록이 필요할 때 유효 기간·변경 알림·오류 등에 따라 재조회한다.
- 역할 명확성: 코드는 프로토콜·라우팅이라는 결정적 작업을, LLM은 의도 해석이라는 판단 작업을 맡는다. 섞으면 디버깅과 검증이 어려워진다.
- 확장성: 호스트가 새 서버의 도구를 발견해 모델에 제공하면 별도 모델 학습 없이 호출 후보로 사용할 수 있다.
해당 방식은 하네스 엔지니어링의 전형이다. 모델에게는 좁고 검증된 선택지(도구 목록)만 주고 발견·실행·전달 같은 반복 가능한 절차는 결정적 하네스가 감싼다. 역할 주체가 누구인지는 MCP는 Host·Client·Server·외부 서비스로 역할을 나눈다에서 정리한다.
버전 주의
여기서 말한 것은 "누가 무엇을 담당하는가"라는 역할 분담이다. 버전과는 무관하다. 다만 발견의 메커니즘은 버전에 따라 다르다. 이전 스펙은 initialize 핸드셰이크로 세션을 연 뒤 tools/list로 목록을 받았다. MCP 2026-07-28은 핸드셰이크를 없앴고, 클라이언트가 선택적 server/discover로 서버의 버전·capability·identity를 먼저 확인할 수 있다. 다만 server/discover는 도구 목록을 반환하지 않는다. 도구 카탈로그는 두 버전 모두 tools/list로 얻는다. 세부는 Model Context Protocol 2026-07-28 사양은 핸드셰이크와 프로토콜 세션을 없앤다를 참조한다.
Connections
- MCP는 Host·Client·Server·외부 서비스로 역할을 나눈다 — 발견·실행을 맡는 Client와 선택을 맡는 LLM이 누구인지 정의
- MCP는 JSON-RPC 2.0 요청-응답으로 도구를 호출한다 — 발견(tools/list)과 실행(tools/call)이 오가는 메시지 형태
- Model Context Protocol 2026-07-28 사양은 핸드셰이크와 프로토콜 세션을 없앤다 — 발견 메커니즘을 바꾼 최신 개정
- 하네스 엔지니어링은 모델 바깥의 실행 환경을 설계하는 일이다 — 모델에는 판단만, 절차는 결정적 하네스라는 일반 원리
Discussion
Comments
댓글은 승인 후 공개됩니다.