MCP 툴 토큰 최적화 패턴
2026-08-11 작성16분 읽기
개 요
Model Context Protocol(MCP) 서버는 연결 시 모든 툴 정의를 업프론트 로딩(upfront loading)합니다. 툴 1개당 JSON Schema가 300~1,000+ 토큰을 소비하며, 10개 서버 × 20개 툴 구성에서는 사용자 입력 전에 100,000 토큰이 컨텍스트 윈도우를 점유합니다. 이 문서는 토큰 오버헤드를 정량화하고, Progressive Discovery·툴 압축·Code Execution·프롬프트 캐시 정합성이라는 4가지 최적화 기법을 제시합니다.
문서 위치
- 본 문서: MCP 토큰 최적화 기법 (설계 관점)
- Tiered Gateway Architecture: Agent Data Plane 아키텍처 컨텍스트
- AI Gateway Guardrails: MCP 서버 Tool Allow-list·보안 정책
배경: 문제 정량화
업 프론트 로딩 비용
MCP 서버는 list_tools 호출 시 모든 툴 메타데이터(이름, 설명, JSON Schema)를 반환합니다. 클라이언트는 이를 시스템 프롬프트에 포함하여 LLM에 전달하므로, 툴 개수가 많을수록 컨텍스트 윈도우 초기 점유율이 급증합니다.
실측 사례 (출처 명시)
- StackOne 분석: 10개 MCP 서버 × 20개 툴 × 평균 500토큰 = 100,000 토큰 사용자 입력 전 선점 (출처)
- Atlassian 실측: GitHub MCP 서버(94-tool) 무압축 시 17,600 토큰 (출처)
- Anthropic 사례: 10,000행 스프레드시트를 코드 실행으로 5행만 노출 시 150,000 → 2,000 토큰 (98.7% 절감) (출처)
복합 비용
토 큰 오버헤드는 다음 세 가지 차원에서 비용을 증가시킵니다.
| 차원 | 영향 | 정량 예시 |
|---|---|---|
| 입력 토큰 비용 | 매 요청마다 툴 정의 전송 | Claude Sonnet 4.5 기준 $3/M 토큰 → 100k 툴 정의 = $0.30/요청 |
| 컨텍스트 윈도우 소진 | 사용자 대화 길이 제약 | 200k 윈도우 중 100k 선점 → 실질 50% 가용 |
| 프롬프트 캐시 히트율 저하 | 툴 목록 변동 시 캐시 무효화 | 동적 툴 추가·제거마다 재전송 |
아키텍처: 4가지 최적화 기법
기법 1: Progressive Discovery
개념
툴 정의를 필요 시점에 지연 로딩(lazy loading) 합니다. 초기 연결 시에는 툴 이름과 한 줄 설명만 전달하고, LLM이 특정 툴을 선택하면 그때 상세 스키마를 조회합니다.