
MCP 도구 오버헤드 측정: 26개 도구 사용 시 호출당 $0.03 발생
요약
MCP(Model Context Protocol) 서버를 에이전트에 연결할 때 발생하는 도구 정의(Tool definitions)의 토큰 비용 오버헤드를 분석합니다. 도구 개수와 모델 종류에 따라 호출당 비용이 크게 달라지며, 캐싱을 통한 비용 절감 방안을 제시합니다.
핵심 포인트
- MCP 도구 스키마는 매 API 호출마다 입력 토큰으로 청구되어 비용을 발생시킴
- Claude Opus 4.8은 GitHub MCP 서버(26개 도구) 사용 시 호출당 약 $0.03의 비용 발생
- 모델별 토큰 효율 차이가 크며, Gemini Flash가 Claude 대비 약 10배 저렴함
- 명시적 캐싱(Explicit caching)을 통해 토큰 사용량을 1/10로 줄일 수 있음
하나의 MCP 서버를 에이전트에 연결하면 어떤 일이 일어나기 전에 호출당 세금(tax)이 추가됩니다. GitHub 서버의 26개 도구는 도구 사용 여부와 관계없이 Claude Opus 4.8 호출마다 매번 $0.0302의 비용이 발생합니다. 이 메커니즘은 미터기를 읽기 전까지는 보이지 않으며, 비용의 크기는 연결된 도구의 개수보다 어떤 모델을 실행하느냐에 더 크게 좌우되며, 대부분은 회복(recoverable) 가능합니다. 우리는 전체 체인을 측정했습니다: 5개의 모델 제품군, 5개의 실제 MCP 서버, 0개에서 40개 도구까지의 합성 사다리(synthetic ladders), 그리고 비용을 줄여주는 캐싱(caching) 및 슬리밍(slimming) 레버를 포함합니다.
요약 (TL;DR)
- 도구 정의(Tool definitions)는 API 호출 시마다 입력 토큰(input tokens)으로 다시 청구됩니다. 하나의 작은 도구는 Claude Opus 4.8에서 401개의 토큰으로 측정되었습니다.
- 동일한 도구 세트는 GPT-5.6보다 Claude에서 2.7배 더 많은 토큰 비용이 발생합니다 (측정 결과 도구당 173개 vs 64개).
- 실제 GitHub MCP 서버(26개 도구)는 Opus 4.8에서 호출당 $0.0302를 청구하는 반면, Gemini 3.6 Flash에서는 $0.0029를 청구하여 10배의 차이를 보입니다.
- 명시적 캐싱(Explicit caching)은 전달되는 블록을 10분의 1로 줄여주지만, 하위 계층(sub-floor) 도구 세트는 캐싱할 수 없으며, 도구 하나만 변경해도 전체 블록이 다시 청구됩니다.
MCP 서버는 어떻게 입력 토큰으로 변환되는가?
3단계 체인을 통해 진행되며, 마지막 단계에서만 비용이 발생하지만 매 호출마다 반복됩니다. 먼저 범위(scoping)에 관한 참고 사항을 말씀드리자면, MCP 서버는 세 가지 기본 요소(primitives)인 도구(tools), 리소스(resources), 프롬프트(prompts)를 노출하는데, 이 중 도구만이 지속적인 비용을 발생시킵니다. 그 이유는 API에 모든 요청마다 모든 스키마(schema)를 포함해야 하는 tools 파라미터가 있기 때문입니다. 리소스와 프롬프트는 자체적인 API 필드가 없으며, 그 콘텐츠가 실제로 대화에 포함될 때만 토큰 비용이 발생합니다. 1단계는 MCP 프로토콜 자체입니다. 에이전트 클라이언트가 JSON-RPC를 통해 서버에 tools/list를 요청하고 스키마를 받아옵니다. 이 과정은 세션당 한 번 발생하며 모델을 사용하지 않습니다. 2단계는 클라이언트가 해당 스키마를 API의 tools 파라미터로 변환하면서 annotations나 outputSchema와 같은 MCP 전용 필드를 제거하는 과정입니다. 이 단계 역시 비용이 들지 않습니다. 3단계는 제공자(provider)가 매 요청마다 해당 스키마를 숨겨진 프롬프트 텍스트로 렌더링하는 단계입니다. API는 상태가 저장되지 않는(stateless) 방식이며, 모델은 어떤 도구가 존재하는지 기억할 수 없기 때문입니다. 이렇게 렌더링된 텍스트는 사용 여부와 관계없이 매 호출마다 전체 입력 요율(input rate)로 청구됩니다.
가장 작은 규모의 데모를 살펴보면, 사용자 메시지가 단순히 "Reply OK"인 요청은 Opus 4.8에서 11개의 프롬프트 토큰(prompt tokens)이 소요됩니다. 여기에 두 개의 파라미터와 한 줄짜리 설명을 가진 적당한 get_weather 도구 하나를 추가하면, 동일한 요청에 412개의 토큰이 소요됩니다. 이 단일 도구는 해당 도구가 포함된 모든 호출마다 401토큰, 즉 $0.002의 추가 비용(rider)을 발생시킵니다. 사용자가 보낸 내용과의 비대칭성에 주목하십시오. 도구의 JSON은 약 130토큰 정도의 텍스트이지만, 제공자의 렌더링 과정에서 그 양이 거의 세 배로 늘어났습니다.
각 모델에서 도구 하나당 비용은 얼마인가?
이는 대부분의 팀이 예상하는 것보다 모델에 따라 훨씬 더 크게 달라집니다. 저희는 5개의 모델 제품군(families)에 대해 0개에서 40개까지 단계별 크기로 동일한 합성 도구 세트(three parameters, one-line descriptions)를 전송하고 청구된 차이(deltas)를 측정했습니다:
| 모델 | 고정 오버헤드 (도구 활성화 시) | 도구당 한계 비용 | 40개의 동일한 도구 |
|---|---|---|---|
| Claude Opus 4.8 | 290 | 173 | 7,210 |
| ... | |||
| 동일한 도구에 대해 2.7배의 편차가 발생합니다: Claude는 그룹 내에서 가장 장황한 도구 하네스 (tool harness)를 렌더링하며, GPT-5.6은 가장 간결하게 렌더링합니다. 전송하는 JSON과의 관계 또한 양방향으로 작용합니다: Claude는 전송 페이로드 (wire payload)에 대한 단순 바이트 기반 추정치보다 약 1.36배 더 많이 청구하는 반면, GPT-5.6과 Gemini는 그 절반 정도를 청구합니다. 도구 블록 (tool blocks)에 대한 토큰 수 (Token counts)는 모델 제품군(families) 간에 호환되지 않으므로, 스키마 (schema) 기준이 아닌 모델별로 예산을 책정해야 합니다. |
실제 MCP 서버는 호출당 비용이 얼마나 들까요?
다음은 공식 MCP 저장소에서 가져온, 수정되지 않은 5개의 실제 서버에 대한 표입니다. 표준 필드 매핑 (field mapping)으로 변환되었으며, 호출당 발생한 오버헤드로 측정되었습니다:
| MCP 서버 (도구 수) | Opus 4.8 | GPT-5.6 Terra | Gemini 3.6 Flash | Kimi K3 | GLM 5.2 |
|---|---|---|---|---|---|
| GitHub (26) | 6,043 tok / $0.0302 | 2,076 / $0.0052 | 1,931 / $0.0029 | 3,152 / $0.0095 | 4,077 / $0.0022 |
| ... | |||||
| 마지막 행에는 두 가지 교훈이 숨어 있습니다. Sequential-thinking은 단 하나의 도구만 노출함에도 불구하고, 5개 제품군 중 4개에서 Memory의 9개 도구보다 더 많은 비용이 발생합니다. 그 이유는 이 도구의 설명 (description)이 매우 방대하기 때문입니다: 도구의 개수가 지표가 아니라, 렌더링된 크기가 지표입니다. 그리고 첫 번째 행은 에이전트 빌더들을 놀라게 하는 부분입니다: GitHub의 도구 세트를 사용하여 10회의 호출로 구성된 에이전트 에피소드 (agent episode)를 수행할 경우, 실제 작업이 시작되기도 전에 Opus 4.8에서는 $0.30, Gemini에서는 $0.03가 소요됩니다. 이는 무려 10배(an order of magnitude) 차이입니다. GLM 5.2는 Gemini보다 두 배 이상의 토큰을 청구하면서도 달러 기준으로는 더 낮게 나타난다는 점에 주목하십시오. 저렴한 리스트 요금 (list rate)이 장황한 렌더러 (renderer)보다 더 큰 영향을 미치므로, 토큰과 달러 예산을 별도로 관리해야 합니다. |
에이전트는 실제로 도구 세트의 얼마나 많은 부분을 사용하나요?
호출당 아주 적은 부분만이 사용되는데, 바로 이 점이 비용 부담(tax)을 불공정하게 느껴지게 만듭니다. 저희 에이전트 제품군(agent suite)의 도구 시나리오에서, 8개 도구 세트는 전형적인 에피소드의 세 번의 호출 모두에 걸쳐 작동하며, 각 호출은 최대 하나의 도구만을 호출합니다. 즉, 모든 호출이 단 하나의 도구를 사용하기 위해 8개의 스키마 (schema) 비용을 지불하는 셈입니다. Opus 4.8의 측정된 요율에 따르면, 이 8개 도구 블록은 호출당 약 1,674 토큰이며, 순수하게 스키마를 운반(carriage)하는 데 에피소드당 약 5,000 토큰이 소모됩니다. 도구 루프 (tool-loop) 시나리오는 가장 유리한 경우로, 3개의 도구가 거의 매 호출마다 사용되지만, 그 경우에도 루프의 4~5회 호출 모두에서 블록이 다시 전송됩니다. 기록을 통한 일반적인 규칙은 다음과 같습니다: 호출당 활용도는 도구 1개를 초과하는 경우가 드물기 때문에, 도구 세트의 호출당 비용은 에이전트가 '무엇을 하는가'가 아니라 '무엇을 연결했는가'에 따라 결정됩니다.
캐싱(Caching)이 도구 비용(tool tax)을 상쇄할 수 있을까요?
적절한 모델을 사용한다면 대체로 가능하지만, 저희가 측정한 세 가지 날카로운 예외 사항이 있습니다. Claude Opus 4.8의 경우, 도구 블록은 일급 캐싱 가능한 접두사 (cacheable prefix)입니다. 마지막 도구에 cache_control을 표시하면 20개 도구 블록을 한 번 작성하고 (1.25배의 쓰기 프리미엄이 적용된 3,682 토큰), 이후 모든 호출은 이를 0.1배의 비용으로 다시 읽어 들여 실질적인 운반 비용을 90% 절감했습니다. Kimi K3's의 자동 캐싱은 별도의 설정 없이도 훨씬 더 나은 성능을 보였습니다. 블록의 2,112 토큰 중 97%인 2,048 토큰이 두 번째 호출에서 익숙한 256 토큰 블록 단위로 캐시로부터 제공되었습니다. GPT-5.6의 명시적 중단점 (explicit breakpoints) 또한 해당 제품군에 대한 저희의 출시 첫날 측정 결과, 1.25배 쓰기 대 0.1배 읽기라는 동일한 구조의 가격을 책정했습니다. Gemini의 암시적 캐시 (implicit cache)는 저희가 측정한 다른 모든 결과들과 마찬가지로, 도구 블록에 대해 세 번의 준비된 탐색(primed probes)을 수행했음에도 히트(hit)가 전혀 발생하지 않았습니다. 따라서 Gemini에서의 할인은 계획된 기능이 아닌 일시적인 환급(rebate)으로 간주해야 합니다.
한계점들입니다. 첫째, 하한선(floor) 문제입니다. Claude의 경우 2개의 도구 블록은 약 655 토큰으로, 1,024 토큰인 캐시 최소 기준(cache minimum)보다 낮습니다. 따라서 작은 도구 세트는 명시적으로 표시하더라도 전혀 캐싱할 수 없습니다. 이 레버(lever)를 사용할 수 있는지 여부는 모델별 하한선(per-model floors)에 의해 결정됩니다. 둘째, 변동성(volatility)입니다. 도구 블록은 프롬프트의 맨 최상단에 위치하므로, 도구 목록을 변경하면 그 뒤의 모든 내용이 깨집니다. 저희는 이 페널티를 직접 측정했습니다. Claude Opus 5에서 캐싱된 20개 도구 세트에 도구 하나를 추가했을 때, 4,082 토큰 전체 블록이 쓰기 프리미엄(write premium) 비용을 지불하며 다시 작성되었습니다. 세션 동안 도구 목록을 고정하거나, 변경할 때마다 재작성 비용을 지불해야 합니다. 셋째, 이러한 고정 요구 사항은 바로 Anthropic의 대화 중간 도구 변경(mid-conversation tool changes) 베타(Opus 5에 대해 문서화됨)가 완화하고자 하는 핵심 요소입니다. 이 기능은 캐시를 무효화하지 않고 턴(turn) 사이에 도구를 변경할 수 있게 해주며, 도구 사용량이 많은 에이전트(agent)가 주목해야 할 기능입니다.
도구 블록 자체를 어떻게 줄일 수 있나요?
설명(prose)보다 파라미터(parameter)를 먼저 줄이십시오. 저희의 20개 도구 블록을 기준으로, 설명을 간결한 단일 절(clause)로 다듬었을 때 10%를 절약했습니다. 각 도구의 파라미터를 3개에서 1개로 줄였을 때는 34%를 절약했습니다. 이 두 가지를 모두 적용하면 44%(3,768 토큰에서 2,128 토큰으로)를 절약할 수 있었습니다. 파라미터 스키마(parameter schemas: 이름, 유형, 중첩된 설명)가 토큰이 집중되는 곳이며, 이는 설명을 다듬고 스키마를 방대하게 두려는 일반적인 본능과 반대되는 지점입니다.
더 큰 레버는 사용하지 않을 것을 연결하지 않는 것입니다. 연결된 모든 MCP 서버는 호출할 때마다 전체 블록을 추가하므로, 두 번째 설정 라인이 비용을 두 배로 늘릴 수 있습니다. 클라이언트가 필터링을 지원하는 경우, 서버 도구의 하위 집합만 등록하면 부가 비용(rider)을 대략 그 비율에 맞춰 줄일 수 있습니다. 예를 들어 GitHub 서버의 26개 도구 중 5개만 유지한다면, Opus 4.8의 $0.0302 비용은 서버의 평균 도구 크기를 기준으로 약 $0.007까지 떨어집니다. 또한 두 개 이상의 모델 제품군을 실행한다면, 앞서 언급한 2.7배의 차이를 기억하십시오. 예산을 재조정하지 않고 동일한 에이전트를 Gemini에서 Claude로 옮기면, 도구 운송(tool carriage)에 소요되는 토큰량이 거의 세 배로 늘어납니다.
FAQ
MCP 자체가 토큰 비용을 추가하나요?
아니요. MCP 프로토콜, 디스커버리 (discovery), JSON-RPC, 도구 호출을 위한 배관 (tool invocation plumbing) 작업은 모델에 전혀 영향을 미치지 않으며 비용도 발생시키지 않습니다. 비용은 클라이언트가 서버의 스키마 (schemas)를 API의 tools 파라미터로 전달할 때 발생하며, 제공업체는 호출할 때마다 이를 비용이 청구되는 프롬프트 텍스트 (prompt text)로 다시 렌더링합니다. MCP의 기여는 규모 (scale)에 있습니다. MCP는 26개의 도구를 연결하는 것을 단 한 줄의 결정으로 만들었으며, 그 이후의 모든 호출에는 26개의 스키마가 함께 실려 나갑니다.
사용하지 않는 도구도 비용이 발생하나요?
네, 사용 중인 도구와 정확히 동일한 비용이 발생합니다. 모델은 호출할 때마다 자신이 무엇을 호출할 수 있는지 알기 위해 모든 스키마를 읽어야 합니다. 당사의 에이전트 제품군 (agent-suite) 기록에 따르면, 호출당 최대 하나의 도구만 호출되지만 전체 세트가 매번 비용으로 청구됩니다. 연결되어 있지만 유휴 상태인 서버는 순수한 운송 비용 (carrying cost)이며, 캐싱 (caching)을 통해 이를 할인할 수는 있지만, 이를 제거하려면 슬리밍 (slimming)을 하거나 연결을 해제해야만 합니다.
MCP 리소스 (resources)와 프롬프트 (prompts)도 도구처럼 토큰 비용이 발생하나요?
아니요. 도구는 tools 파라미터가 매 요청마다 모든 스키마를 다시 전송하기 때문에 호출당 운송 비용 (carriage cost)이 발생한다는 점에서 독특합니다. 리소스는 클라이언트가 이를 읽고 그 내용을 대화에 삽입할 때만 비용이 청구되며, 이 시점에는 일반적인 입력값으로서 검색된 다른 문서와 동일한 가격이 책정됩니다. 또한 동일한 계층 구조 원칙 (same layering discipline)이 적용됩니다: 휘발성 리소스 콘텐츠는 캐시 중단점 (cache breakpoints) 뒤에 위치해야 합니다. 프롬프트 템플릿 (prompt templates) 역시 호출될 때 생성된 렌더링 텍스트에 대해서만 비용이 청구됩니다. 연결된 서버의 사용되지 않는 리소스와 프롬프트는 비용이 전혀 발생하지 않으므로, MCP 통합 결과가 청구서에 나타날 때 감사 (audit)해야 할 대상은 바로 도구입니다.
도구 목록을 변경하면 프롬프트 캐시 (prompt cache)가 무효화되나요?
네, 완전히 그렇습니다. 도구 블록 (tool block)은 프롬프트의 상단에 렌더링되므로, 어떠한 변경이라도 발생하면 해당 블록과 그 뒤에 캐시된 모든 내용을 다시 작성하게 됩니다. 저희는 도구 하나를 추가했을 때 4,082 토큰 블록이 1.25배의 프리미엄 요율로 재청구되는 것을 측정했습니다. 세션당 도구 목록을 고정하고, 도구 목록 변경 사항을 일괄 처리(batch)하십시오. 또한, Opus 5에서 정확히 이러한 페널티를 제거하기 위해 설계된 Anthropic의 대화 중 도구 변경 (mid-conversation tool changes) 베타 버전을 주시하십시오.
2026-07-31 Synthorai 게이트웨이를 통해 측정됨: 5개 모델 제품군에 걸쳐 합성 도구 사다리 (synthetic tool ladders, 0-40개 도구, n=2) 및 5개의 실제 MCP-서버 도구 세트 (JSON-RPC tools/list를 통해 공식 서버로부터 실시간 캡처된 스키마) 사용; 솔트가 추가된 접두사 (salted prefixes) 및 호출당 캐시 항목화를 통한 캐싱 프로브 (caching probes); 저희의 에이전트 비용 연구 뒤에 있는 스위트 기록의 에이전트 활용도; GPT-5.6 캐싱 배수(multipliers)는 저희의 출시 첫날 비용 가이드 측정값을 인용함. 달러 수치는 리스트 입력 요율로 가격이 책정되는 게이트웨이 미터기에서 읽은 청구 비용 차이(billed-cost deltas)입니다. 요율 및 렌더링 동작은 변경될 수 있으므로, 귀하의 사용 기록과 대조하여 확인하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기