당신이 한 마디를 입력하기도 전에 MCP 서버가 5만 개 이상의 토큰을 낭비하고 있습니다
요약
Model Context Protocol(MCP) 서버가 매 요청마다 도구 정의를 컨텍스트 윈도우에 로드하여 발생하는 막대한 토큰 낭비와 지연 시간 문제를 다룹니다. 사용하지 않는 서버를 끄고 중복을 제거하는 등 효율적인 MCP 관리 방법을 제안합니다.
핵심 포인트
- MCP 서버의 도구 정의는 매 요청마다 수만 개의 토큰 오버헤드를 발생시킴
- 과도한 토큰 사용은 비용 증가, 지연 시간 상승, 컨텍스트 밀어내기 유발
- mcp-audit 도구를 사용하여 현재 설정의 토큰 소모량을 측정 가능
- 사용하지 않는 서버 비활성화 및 중복 서버 제거를 통한 최적화 권장
컨텍스트 윈도우 (context window)가 아무 이유 없이 계속 가득 차는 느낌을 받기 전까지는 Model Context Protocol (MCP)에 대해 미처 깨닫지 못했던 사실이 하나 있습니다.
연결된 모든 MCP 서버는 매 요청마다 도구 정의 (tool definitions) 전체 세트를 컨텍스트 윈도우 (context window)에 로드합니다. 이러한 스키마 (schemas)는 공짜가 아닙니다. 각 도구는 수백 개의 토큰을 소모하며, 모델이 사용자의 프롬프트 (prompt)를 한 단어라도 읽기 전에 이미 전송됩니다.
각각 12개 이상의 도구를 가진 5개의 전형적인 서버는 일반적으로 요청당 50,000에서 75,000 토큰의 오버헤드 (overhead)를 추가합니다. 이는 매 호출마다 발생하는 실제 비용이며, 매 턴마다 느껴지는 지연 시간 (latency)입니다. 또한 모델이 실제로 사용하기를 원하는 컨텍스트 (context)를 밀어내기도 합니다.
먼저 측정하세요
보이지 않는 것은 줄일 수 없습니다. 대략적인 규칙은 도구당 약 200 토큰에 서버당 약간의 오버헤드가 추가된다는 것입니다. 저는 실제 설정에 대한 추정치를 출력하고 보안도 함께 점검하는 작은 도구를 만들었습니다:
pipx install git+https://github.com/alih552/mcp-audit
mcp-audit
# -> 7 server(s) - ~13,160 context tokens - score 0/100
이 도구는 완전히 로컬에서 실행되며, 의존성(dependencies)이 없고, MIT 라이선스입니다.
그다음 줄이세요
- 사용하지 않는 것은 끄세요. 가장 큰 영향력을 발휘하면서도 가장 쉬운 방법입니다. 대부분의 사람들은 한 번만 사용했던 서버를 연결된 상태로 둡니다. 항상 켜져 있는 7개의 서버를 실제로 사용하는 2개로 줄이는 것만으로도 수만 개의 토큰을 확보할 수 있습니다.
- 중복된 서버를 제거하세요. 검색 서버 두 개, 파일 서버 두 개. 기능당 하나씩만 선택하세요.
- 직접 만드는 서버의 도구 범위를 다듬으세요. 10개의 집중된 도구가 30개의 중복된 도구보다 토큰 비용 측면에서나 모델이 올바른 도구를 선택하는 측면에서나 더 낫습니다. 설명을 간결하게 유지하세요.
- 모든 것을 항상 켜두기보다 특수 목적의 서버는 필요할 때만 로드하세요.
"모든 것을 항상 연결해 둔다"는 기본 설정이 비대함을 만듭니다. 몇 분간의 정리 작업은 이후의 모든 요청에서 그 가치를 충분히 보상해 줄 것입니다.
리포지토리 (Repo) 및 전체 글: https://github.com/alih552/mcp-audit
사람들이 자신의 설정에서 어느 정도의 컨텍스트 토큰 (context-token) 수치를 얻는지 궁금하네요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기