Model Context Protocol(MCP)은 2024년 11월 Anthropic이 출시한 오픈 프로토콜로, 대규모 언어 모델(LLM)이 GitHub, Linear, Slack, Notion 같은 외부 도구 및 서비스와 상호작용할 수 있도록 표준화된 인터페이스를 제공한다.

개요

MCP는 LLM과 외부 도구 간의 연결을 표준화하려는 시도로서, “AI의 USB-C”라는 별명을 얻었다. 초기에는 많은 SaaS 업체들이 “MCP 지원”을 표방하며 빠르게 채택했지만, 곧 컨텍스트 블롯(context bloat) 문제가 핵심 비판으로 부상했다. 그러나 이후 Anthropic과 Cloudflare 등의 최적화 접근법으로 이 문제가 크게 완화되었으며, MCP는 여전히 특정 사용 사례에서 CLI보다 강점을 가진다.

배경

MCP가 등장하기 전에는 각 LLM 애플리케이션이 외부 도구와의 연동을 위해 맞춤형 코드나 임시 방식을 사용해야 했다. 이는 유지보수 비용이 높고 확장성이 부족했다. MCP는 이러한 문제를 해결하기 위해 도구 정의를 표준화하고, LLM이 동적으로 도구를 검색하고 호출할 수 있는 체계를 제공했다. 그러나 초기 구현에서는 연결된 모든 MCP 서버의 모든 도구 정의를 컨텍스트 윈도우에 미리 로드해야 했으며, 사용 여부와 관계없이 토큰을 소모했다.

작동 방식

초기 MCP의 문제점은 컨텍스트 블롯이었다.

  • 초기 방식: 에이전트가 시작될 때 연결된 모든 MCP 서버의 모든 툴 정의를 한 번에 컨텍스트에 로드. 예를 들어, 3개의 서버(GitHub, Slack, Sentry)에 약 40개의 툴이 있는 경우, 모델이 아무 것도 읽기 전에 약 143K 토큰(200K 중 72%)을 소모했다(Apideck 측정).
  • 개선된 방식(코드 실행 접근법): Anthropic은 2025년 11월 “code execution with MCP”를 발표했다. 이 방식에서는 에이전트가 툴 정의를 코드 파일 형태로 브라우징하고, 필요한 것만 로드한다. 서버는 코드 파일 디렉토리 구조로 제공되며, 에이전트는 필요한 파일을 임포트하여 사용한다. 이 방법으로 한 워크플로우는 150,000 토큰에서 2,000 토큰으로 98.7% 감소했다. Cloudflare는 독자적으로 유사한 ‘Code Mode’를 개발했으며, Claude Code는 지연 로딩(deferred loading)을 통해 MCP 컨텍스트 사용량을 85% 이상 줄였다고 보고한다.

주요 아이디어

  • 표준화된 인터페이스: MCP는 도구 연결에 대한 공통 프로토콜을 제공하여 상호운용성을 높인다.
  • 컨텍스트 블롯 문제: 초기 MCP의 가장 큰 단점으로, 불필요한 툴 정의가 컨텍스트를 소모하여 효율성을 크게 떨어뜨렸다.
  • 온디맨드 로딩으로의 진화: 코드 실행 접근법과 지연 로딩을 통해 컨텍스트 사용량을 극적으로 줄였으며, “MCP는 죽었다”는 주장은 과장되었다.
  • MCP vs CLI: CLI는 모델이 이미 훈련 데이터에서 학습한 명령어(예: gh, psql)를 사용하므로 컨텍스트 비용이 거의 없지만, MCP는 CLI가 없는 웹 전용 SaaS, 팀 인증 및 권한 범위 지정, 프로덕션 DB에서의 안전한 읽기 전용 접근 등에 더 적합하다.

예시 / 사용 사례

  • CLI가 적합한 경우: GitHub CLI(gh), PostgreSQL CLI(psql), AWS CLI 등 실제 CLI가 존재하고 모델이 이미 그 사용법을 알고 있는 경우. CLIE는 완전히 구성 가능하며(pipe, grep, jq 등), 터미널에서 직접 디버깅 가능.
  • MCP가 적합한 경우: CLI가 없는 웹 전용 SaaS(예: Linear, Notion), 팀 단위의 공유 인증 및 권한 스코핑이 필요한 경우, 그리고 프로덕션 데이터베이스에서 DROP TABLE 같은 위험한 명령을 서버 차원에서 차단해야 하는 경우.
  • 언어 스킬(Skills): 반복 가능한 다단계 워크플로우에 적합하며, 호출될 때만 로드됨.

한계 / 고려사항

  • 여전히 많은 툴을 가진 서버는 최적화에도 불구하고 일정 수준의 컨텍스트를 소모하므로, 좁은 범위의 소규모 MCP(4-5개 툴)가 더 효율적이다.
  • MCP가 CLI를 완전히 대체하지는 않으며, 각 사용 사례에 적합한 도구를 선택하는 것이 중요하다.
  • 프로토콜 자체는 계속 진화 중이며, 현재의 ‘최적화’ 단계는 일시적일 수 있다.

관련 개념

출처