AI 에이전트 시대의 도구 연결 방식: MCP vs CLI

김소연·2026년 4월 22일

AI가 단순히 답변을 생성하는 단계를 넘어, 직접 작업을 수행하는 에이전트로 발전했다. 그렇다면 AI는 외부 시스템을 어떻게 사용할까?

다음과 같은 작업은 외부 시스템에서 실행되어야 한다.

  • 데이터베이스에서 사용자 조회
  • API 호출
  • 웹 페이지 조작
  • 코드 수정 및 실행

이 문제를 해결하기 위한 대표적인 두 가지 접근 방식이 MCP(Model Context Protocol)CLI(Command Line Interface)다.


MCP

MCP가 등장한 배경

예를 들어 AI 모델이 3개이고, 연결해야 할 시스템이 5개라면 총 15개의 연결을 각각 구현해야 한다. 새로운 시스템이 하나 추가되면 모든 AI와 연결해야 하고, 새로운 AI가 추가되면 기존 모든 시스템과 다시 연결해야 한다. 이 과정에서 연결 코드가 계속 늘어나고, 구현 방식이 제각각이라 유지보수도 어려워진다. 보안이나 권한 관리 역시 분산되면서 통제가 어려워진다.

이 문제를 해결하기 위해 Anthropic에서 제안한 것이 MCP다.

MCP(Model Context Protocol)는 AI가 외부 시스템과 상호작용할 수 있도록 만든 도구 기반 인터페이스다.

MCP의 3가지 구성 요소

MCP는 다음 세가지의 표준화된 능력(Capability)를 통해 자신의 기능을 알린다.

1. Tools (도구)

  • AI가 실행 가능한 기능 (예: DB 조회, 이메일 발송, API 호출)
{
  "tools": [
    {
      "name": "getUser",
      "description": "유저 정보를 조회한다",
      "parameters": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "유저 ID"
          }
        },
        "required": ["id"]
      }
    }
  ]
}

2. Resources (리소스)

  • AI가 참고할 수 있는 데이터
  • 예: 기업 내부 문서, 파일, 데이터셋

3. Prompts (프롬프트)

  • 자주 사용되는 복잡한 요청에 대한 표준화된 템플릿

MCP의 장점

1. 안정성
같은 요청은 항상 같은 방식으로 처리되기 때문에 결과 예측이 가능하다.

2. 보안과 제어
허용된 기능만 노출할 수 있고, 권한 관리와 로그 추적이 가능하다. 이 점은 특히 기업 환경에서 중요하다.

3. 확장성
새로운 기능을 추가할 때 tool만 추가하면 된다.

MCP의 단점

1. 컨텍스트 비만(Context Bloat)
에이전트는 작업 시작 전 모든 도구(tool) JSON 명세서를 컨텍스트 윈도우에 전부 주입한다. 어떠한 지시가 내려지기 전 이미 도구 명세서를 위해 수많은 토큰이 소모되어버린다는 것이다. 이는 AI 모델의 추론 능력을 저하시키고 API 비용을 낭비하게 만든다.

2. 무거운 구현 오버헤드 (Wrapper Tax)
기존 API를 MCP라는 규격에 맞추기 위한 작업이 필요하다.

CLI

AI가 직접 CLI 명령어를 생성하고 실행하는 방식을 말한다.

최근 “MCP is dead. Long live the CLI” 관련 논쟁이 화제가 됐다.
굳이 MCP가 필요없다는 주장이었다.

CLI의 장점

1. Wrapper Tax 제로화
이미 LLM은 학습 과정에서 방대한 쉘 스크립트, 기술 문서를 다 학습했으므로, MCP처럼 중간 레이어를 만들 필요가 없이 빈 터미널만 있으면 된다는 것이다.

2. Context Diet (토큰 효율성)
MCP는 처음부터 모든 도구에 대한 설명을 컨텍스트에 포함시키지만, CL는 그렇지 않다.
처음에는 SKILL.md 파일에서 스킬 이름과 요약 내용만 확인 후, 실제 필요할 때 상세 정보를 동적으로 읽는다(Progressive Disclosure).
문제 해결을 위한 추론에 토큰을 더 투자할 수 있다.

3. 메모리 절약
MCP에서는 보통 대용량 데이터를 그대로 메모리에 전달되면서, 컨텍스트가 커지고 병목이 발생한다.
CLI는 터메널에서 1차적으로 데이터를 정제하고, 핵심 결과만 컨텍스트로 전달한다.
kubectl get pods | grep “api” | awk ‘{print $1}’
컨텍스트 사용량, 응답 속도, 비용을 개선할 수 있다.

4. 디버깅과 재현성
CLI는 같은 명령어를 그대로 실행 가능하기 때문에 문제가 발생하면 재형하기 쉽다. 반면 MCP는 JSON/프로토콜 레이어까지 추적해야하기 때문에 복잡하다.

CLI의 단점

1. 보안취약성
CLI는 에이전트가 호스트 환경에서 직접 명령어를 실행한다. 파일이 삭제되거나 민감한 데이터 노출, 시스템 변경 같은 작업이 그대로 실행되어버릴 수 있다.
따라서 실무에서 CLI 에이전트를 사용할 때는 샌드박스 기반의 실행환경에서 작업을 수행하는 것이 필수다. E2B, Modal 같은 전용 마이크로VM 플랫폼을 사용하면 AI 에이전트의 코드 실행만을 위한 안전한 임시 환경을 만들 수 있다.

언제 CLI를 쓰는 게 좋은가

1.단순하고 명확한 작업
ex: 파일 처리, 로그 분석, 간단한 API 호출

  1. 로컬 환경 중심 작업
    ex: 개발 환경, 코드 수정, 테스트 실행

  2. 빠른 실행 또는 디버깅이 중요한 경우

언제 MCP를 쓰는 게 좋은가

  1. 여러 시스템을 동시에 다루는 경우
    DB, API, 파일, 외부 서비스 등 여러 시스템을 함께 사용해야 하거나, 하나의 작업 안에서 여러 단계의 처리가 필요한 복잡한 워크플로우를 가진 경우

  2. 인증 / 권한 / 보안이 중요한 경우
    사용자별 접근 제어가 필요하거나, 민감한 데이터를 다루는 등 중앙에서 권한과 보안을 통제해야 하는 경우

  3. 원격 시스템 / SaaS 연동이 필요한 경우
    클라우드 서비스나 외부 API처럼 네트워크 기반 시스템을 일관된 방식으로 연결하고 관리해야 하는 경우
    (예: AWS, Slack, Notion 등)

  4. 에이전트 기반 자동화가 필요한 경우
    현재 상태를 확인하고, 필요한 도구를 스스로 선택하며, 결과에 따라 다음 행동을 바꾸는 방식의 자동화를 구현하고 싶은 경우
    즉, 정해진 순서를 실행하는 것이 아니라 목표를 주면 AI가 상황에 맞게 작업을 이어가야 하는 경우

마무리

MCP와 CLI는 경쟁 관계가 아니다. 상황에 맞게 선택하는 것, 어떤 문제를 어떤 방식으로 해결할 것인지 결정하는 것이 가장 중요하다

0개의 댓글