
CLI vs MCP: 동일한 작업에 대해 250 토큰 vs 2,000개 이상의 토큰 사용 결과 비교
요약
AI 에이전트 구현을 위한 CLI 방식과 MCP(Model Context Protocol) 방식의 토큰 효율성을 비교 실험했습니다. 파일 및 Git 작업에서는 CLI가 압도적으로 효율적이었으나, 웹 페칭 작업에서는 MCP가 우위를 보였습니다.
핵심 포인트
- CLI는 모델의 내재된 지식을 활용해 토큰 소모가 매우 적음
- MCP는 도구 스키마 오버헤드로 인해 대량의 토큰을 소비함
- 로컬 개발 도구 활용 시에는 CLI 방식이 더 경제적임
- 웹 페칭 등 특정 작업에서는 MCP가 더 효과적일 수 있음
한 AI 개발자가 AI 에이전트를 위한 CLI와 MCP를 비교하는 세 가지 실험을 진행했습니다. CLI는 파일 작업 및 Git 작업에 250 토큰을 사용한 반면, MCP는 도구 스키마 (tool schema) 오버헤드로 인해 2,000개 이상의 토큰을 사용했습니다. 하지만 웹 페칭 (web fetching) 작업에서는 MCP가 승리했습니다 (CLI 250 토큰 vs MCP 2,000+ 토큰).
핵심 요약 (Key Takeaways)
- 한 AI 개발자가 AI 에이전트를 위한 CLI와 MCP를 비교하는 세 가지 실험을 진행했습니다.
- CLI는 파일 작업 및 Git 작업에 250 토큰을 사용한 반면, MCP는 도구 스키마 (tool schema) 오버헤드로 인해 2,000개 이상의 토큰을 사용했습니다. 하지만 웹 페칭 (web fetching) 작업에서는 MCP가 승리했습니다 (CLI 250 토큰 vs MCP 2,000+ 토큰).
발생한 상황 (What Happened)
한 개발자가 AI 에이전트를 실제 세상과 연결하는 두 가지 접근 방식인 명령줄 인터페이스 (CLI, Command Line Interface)와 모델 컨텍스트 프로토콜 (MCP, Model Context Protocol)을 비교하는 세 가지 실습 실험을 진행했습니다. 이 실험들은 파일 작업, Git 명령, 웹 페이지 페칭 (fetching)을 테스트하며 토큰 사용량과 효과성을 측정했습니다.
CLI는 AI 에이전트가 cat, grep, curl과 같은 셸 명령어를 직접 실행할 수 있게 하며, 수백만 개의 Stack Overflow 게시물과 매뉴얼 페이지 (man pages)로부터 모델 학습 과정에 내재된 지식을 활용합니다. Anthropic이 2024년 11월에 도입한 MCP는 전용 서버가 이름, 설명, JSON 스키마 (JSON schema)가 포함된 구조화된 도구를 노출하는 표준화된 프로토콜입니다.
실험 1: 간단한 파일 작업 (Simple File Operations)
에이전트는 파일(notes.md)을 읽고 두 파일 모두에서 "agent"라는 단어를 검색해야 했습니다.
CLI 접근 방식: 두 개의 bash 명령어인 cat notes.md와 grep -n "agent" *.md를 사용했습니다. 모델은 학습을 통해 명령어와 플래그 (flags)를 알고 있었기에 스키마 (schema)가 필요하지 않았습니다. 토큰 사용량: 최소 수준.
MCP 접근 방식: 파일 시스템 서버로부터 read_file 및 search_files라는 두 개의 도구 호출 (tool calls)을 수행했습니다. 서버는 각각 전체 JSON 스키마 (JSON schema)를 가진 13개의 도구를 광고합니다. 비록 두 개의 도구만 사용되었음에도 불구하고, 13개 도구의 모든 스키마가 컨텍스트 윈도우 (context window)에 로드되어 수천 개의 토큰을 소비했습니다.
결론: 둘 다 성공했지만, CLI가 더 간결하고 토큰 효율적이었습니다.
실험 2: Git을 통한 규모 확장 (Scaling Up with Git)
에이전트는 최근 커밋 확인 및 상태 체크와 같은 Git 작업을 수행했습니다.
CLI 접근 방식 (CLI approach): git log -n 10 --pretty=format:"%h %an %s" 및 git status와 같은 단순한 명령어를 사용합니다. 모델은 학습을 통해 Git에 대해 이미 알고 있습니다.
MCP 접근 방식 (MCP approach): GitHub MCP 서버는 각각 고유한 JSON 스키마를 가진 80개의 서로 다른 도구(tools)를 제공합니다. 단 한두 개의 도구만 필요하더라도, 대화 시작 시 80개의 도구 정의가 모두 컨텍스트 윈도우(context window)에 주입되어 수만 개의 토큰을 소비합니다.
결론: 로컬 개발자 도구의 경우 CLI가 압도적으로 승리합니다. MCP는 모델이 이미 알고 있는 지식에 대해 과도한 토큰 비용(token tax)을 지불합니다.
실험 3: 웹페이지 가져오기 (Fetching a Webpage)
에이전트는 modelcontextprotocol.io를 가져와서, 메인 헤딩(heading)을 식별하고 첫 번째 단락들을 요약해야 했습니다.
MCP 접근 방식 (MCP approach): fetch_url 도구를 사용하여 (헤드리스 브라우저 기반의) Fetcher MCP 서버에 단 한 번 호출합니다. 서버는 브라우저를 실행하고, JavaScript를 렌더링하며, 읽기 가능한 텍스트로 변환하여 콘텐츠를 반환했습니다. 약 250개의 토큰을 사용했으며 몇 초 정도 소요되었습니다.
CLI 접근 방식 (CLI approach): 에이전트는 curl -s <URL> | head -n 200을 시도했습니다. 하지만 modelcontextprotocol.io는 Next.js 애플리케이션입니다. 서버는 완성된 HTML이 아닌 JavaScript 프레임워크 코드를 전송합니다. curl은 JavaScript를 실행하지 못하므로, 에이전트는 뼈대와 번들(bundle) 코드만을 받게 되었습니다. 이에 에이전트는 즉흥적으로 대응했습니다. 텍스트 처리 도구들을 체이닝(chaining)하고, HTML 태그를 제거하며, JavaScript를 필터링하고, JSON에 임베디드된 콘텐츠를 검색했습니다. 심지어 Next.js의 내부 데이터 스트리밍 형식을 역공학(reverse engineer)하기 위해 Python 스크립트까지 작성했습니다. 이 과정은 몇 분이 소요되었으며 2,000개 이상의 토큰을 사용했습니다.
결론: 웹 가져오기에서는 MCP가 승리합니다. CLI는 JavaScript로 렌더링되는 페이지에서 어려움을 겪습니다.
패턴: 각각이 승리하는 경우
- CLI가 승리하는 경우는 명령어가 작업(파일 작업, Git, 텍스트 처리, 스크립트 실행 등)에 직접 매핑될 때입니다. CLI 도구는 파이프(pipes)를 통해 자연스럽게 조합되지만, MCP는 각 도구 호출(tool call)이 독립적이기 때문에 이를 수행할 수 없습니다.
- MCP가 승리하는 경우는 원시 도구(raw tool)가 제공하는 데이터와 실제로 필요한 데이터 사이에 간극이 있을 때입니다. 이는 인증(Slack, Notion, 데이터베이스) 영역까지 확장되는데, MCP 서버는 OAuth 토큰과 갱신(refresh)을 관리하는 반면, CLI는 수동적인 토큰 처리를 요구합니다.
기술적 세부 사항 (Technical Details)

MCP의 오버헤드(overhead)는 컨텍스트 윈도우(context window)에 로드되는 도구 스키마(tool schema) 정의에서 발생합니다. 각 도구는 이름, 설명, 그리고 매개변수 타입이 포함된 JSON 입력 스키마를 가집니다. 80개의 도구를 가진 서버의 경우, 작업을 시작하기도 전에 수만 개의 토큰을 소비할 수 있습니다. API 가격 책정 방식에서 이러한 토큰은 곧 실제 비용입니다.
CLI는 모델이 이미 학습을 통해 명령어를 알고 있기 때문에 이러한 오버헤드를 피할 수 있습니다. 하지만 CLI는 JavaScript로 렌더링된 웹 페이지와 같이, 기반 도구가 처리가 필요한 원시 데이터(raw data)를 반환할 때 실패합니다.
리테일 및 럭셔리 분야에 미치는 영향 (Retail & Luxury Implications)
리테일 및 럭셔리 분야의 AI 에이전트에게 CLI 대 MCP의 선택은 비용과 성능에 직접적인 영향을 미칩니다:
- 내부 운영 (Internal operations): 파일 관리, Git 작업, 스크립트 실행과 같은 작업에는 CLI가 더 효율적입니다. 코드베이스나 데이터 파이프라인을 관리하는 럭셔리 브랜드는 토큰 비용을 최소화하기 위해 이러한 작업에 CLI를 선호해야 합니다.
- 웹 데이터 추출 (Web data extraction): 경쟁사 웹사이트 스크래핑, 제품 페이지 모니터링, 시장 데이터 수집과 같은 경쟁 정보 수집(Competitive intelligence)을 위해서는 MCP의 헤드리스 브라우저(Headless browser) 방식이 필수적입니다. 많은 럭셔리 및 리테일 사이트들은
curl과 같은 CLI 도구가 렌더링할 수 없는 JavaScript 프레임워크(Next.js, React)를 사용합니다. - 인증 중심 워크플로 (Authentication-heavy workflows): Slack, Notion 또는 데이터베이스와의 통합을 위해서는 CLI의 수동 토큰 처리보다 MCP의 서버 관리형 인증(Server-managed authentication)이 더 신뢰할 수 있습니다.
핵심 통찰: 어느 하나가 보편적으로 우월한 것은 아닙니다. 리테일 AI 아키텍트들은 작업에 따라 CLI와 MCP 사이를 동적으로 선택하는 에이전트를 설계해야 합니다. 즉, 로컬의 잘 알려진 작업에는 CLI를, 웹 페칭(Web fetching) 및 인증된 서비스에는 MCP를 사용하는 방식입니다.
비즈니스 영향 (Business Impact)
토큰 비용은 운영 비용에 직접적인 영향을 미칩니다. 매일 수천 건의 요청을 처리하는 리테일 AI 에이전트의 경우:
- 단순 파일/Git 작업에 CLI를 사용하면 MCP 대비 토큰 오버헤드를 80-90% 절감할 수 있습니다.
- 웹 페칭에 MCP를 사용하면 CLI의 무차별 대입(Brute-force) 방식 대비 유사한 수준의 비용을 절감할 수 있습니다.
선택은 이분법적인 문제가 아니라, 작업을 적절한 도구로 라우팅(Routing)하는 문제입니다.
구현 접근 방식 (Implementation Approach)
- 에이전트 작업 감사 (Audit your agent's tasks): 모델이 이미 도구를 알고 있는지(CLI 친화적) 또는 추상화가 필요한지(MCP 친화적)에 따라 작업을 분류합니다.
- 동적 라우팅 구현 (Implement dynamic routing): 로컬 파일 작업, Git 및 텍스트 처리에는 CLI를 우선하도록 에이전트를 구성하고, 웹 페칭 및 인증된 서비스에는 MCP를 사용하도록 설정합니다.
- 토큰 사용량 모니터링 (Monitor token usage): 라우팅 결정이 유효한지 검증하기 위해 작업 유형별 토큰 소비량을 추적합니다.
- 하이브리드 접근 방식 고려 (Consider hybrid approaches): 복잡한 워크플로의 경우 CLI와 MCP 호출을 체이닝(Chaining)합니다. 예를 들어, MCP를 사용하여 데이터를 가져온 다음 CLI를 사용하여 로컬에서 이를 처리하는 방식입니다.
거버넌스 및 리스크 평가 (Governance & Risk Assessment)
- 성숙도 (Maturity): CLI와 MCP 모두 프로덕션 환경에서 사용할 준비가 되어 있으나, 동적 라우팅 (Dynamic Routing) 방식은 아직 초기 단계입니다.
- 보안 (Security): CLI는 전체 시스템 명령 표면 (System Command Surface)을 노출하는 반면, MCP는 도구 접근을 정의된 스키마 (Schema)로 제한합니다. 엔터프라이즈 리테일 (Enterprise Retail) 분야에서는 MCP의 샌드박스 (Sandboxed) 방식이 프로덕션 에이전트 (Production Agents)를 위해 더 안전할 수 있습니다.
- 토큰 비용 (Token Cost): 로컬 작업에는 CLI가 유리하며, 웹 작업에는 MCP가 유리합니다. 잘못된 라우팅 (Misrouting)은 비용을 두 배로 증가시킬 수 있습니다.
원문 게시: gentic.news
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기