MCP의 추악한 비밀: 당신의 에이전트가 토큰을 태우고 있습니다
AI 에이전트가 MCP 서버를 호출할 때마다 숨겨진 세금을 지불합니다. 이 세금은 달러가 아니라 토큰으로 지불됩니다.
에이전트를 대규모로 운영한다면 이 비용은 빠르게 증가합니다. 제가 토큰 사용량을 추적해 본 결과, 엄청난 급증(spike)을 확인했습니다. 문제는 모델의 추론 능력이 아닙니다. 문제는 컨텍스트 오버헤드(context overhead)입니다.
에이전트를 MCP 서버에 연결하면, 서버는 시스템 프롬프트에 도구 정의(tool definitions)를 보냅니다. 여기에는 모든 파라미터와 설명이 포함됩니다.
만약 각각 20개의 도구를 가진 5개의 MCP 서버를 사용한다면, 매 턴마다 최대 15,000개의 토큰이 추가됩니다. 이는 모델이 답변을 생성하기도 전에 발생합니다.
10턴 대화 테스트 결과는 다음과 같습니다:
• MCP 미사용: 턴당 2,400 토큰 • MCP 서버 3개: 턴당 18,700 토큰 • MCP 서버 5개: 턴당 31,200 토큰
현재 가격 기준으로, 5개의 서버를 사용하여 하루에 50개의 대화를 진행하는 팀은 MCP 오버헤드 비용으로만 한 달에 23,400달러를 지출할 수 있습니다.
이는 두 가지 주요 문제를 일으킵니다:
- 품질 저하. 도구 스키마(tool schemas)가 컨텍스트 창의 40%를 차지하면, 모델이 대화 기록을 담을 공간이 줄어듭니다. 공간이 부족해지면서 모델은 내용을 잊기 시작합니다.
- 고정된 비용. 매 턴마다 이러한 시스템 프롬프트에 대해 전체 비용을 지불해야 합니다.
이를 해결하기 위한 세 가지 방법은 다음과 같습니다:
게이트웨이(Gateway) 사용 모든 도구 정의를 한꺼번에 로드하지 마세요. 게이트웨이를 사용하여 현재 작업에 필요한 도구만 주입하십시오. 이렇게 하면 호출당 오버헤드를 8,000토큰에서 400토큰으로 줄일 수 있습니다.
의도 분류기(Intent Classifier) 사용 저렴한 모델을 먼저 호출하여 어떤 서버가 관련 있는지 결정하십시오. 분류기에 드는 아주 적은 비용으로 MCP 오버헤드를 60%에서 80%까지 절감할 수 있습니다.
스키마 압축 MCP 스키마는 많은 단어를 사용합니다. 설명을 핵심 명사 위주로 축약하세요. 예시 필드(example fields)는 제거하십시오. 텍스트를 단순화하면 400토큰 규모의 스키마도 120토큰만으로 완벽하게 작동한다는 것을 확인했습니다.
컨텍스트를 무제한이라고 생각하지 마세요. 컨텍스트 예산은 인프라입니다. 실제 비용처럼 관리하십시오.
여러분의 프로덕션 에이전트에서는 MCP 오버헤드를 어떻게 처리하고 계신가요? 댓글로 알려주세요.
Optional learning community: https://t.me/GyaanSetuAi