
MCP는 무엇을 뜻하는가?
Model Context Protocol(MCP)
- Model (모델) : 거대 언어 모델(LLM) 을 의미한다. MCP architecture에서 모델은 추론의 중심으로 외부 데이터(Context)를 받아들여 사용자의 의도를 해석하고, 어떤 도구(Tool)를 사용할지 결정하는 브레인 역할을 한다.
- Context(컨텍스트) : 작업이 수행되는 주변환경정보 또는 상태정보 이다. 모델이 답변을 수행하기 위해서 필요한 '외부 지식과 실행 도구의 집합' 을 가르킨다.
- Protocol (프로토콜) : 네트워크 및 통신 분야에서 프로토콜은 '데이터를 주고받기 위한 약속된 규칙(규격)' (예를 들면 HTTP, TCP/IP 같은) 이다. MCP에서 프로토콜은 모델와 외부 데이터 사이에서의 '범용 연결 규격(Universal Interface)' 이다.
이를 종합해 보면 MCP(Model Context Protocol)란, "모델(Model)이 외부의 실시간 정보와 기능(Context)을 안전하고 효율적으로 활용할 수 있도록 정립된 통신 규격(Protocol)"을 의미한다.
결국 MCP는 Protocol 이다.
MCP는 누가, 왜 만들었는가?
💡 MCP(Model Context Protocol)는 2024년 11월 Anthropic 에서 설계하고 발표한 오픈 표준 프로토콜이다.
MCP의 지난 역사
- 시작 : 2022년 ChatGPT의 출시를 시작으로 LLM이 급부상하던 시기, 모델은 외부 데이터에 접근할 방법이 거의 없었다. 모델은 오직 학습 데이터에만 의존하는 Closed System 이었다.
- 함수 호출의 등장 : 이를 넘어서기 위해 정보가 필요한 경우 지식 베이스나 파일, 컨텍스트 등 외부 정보 소스에 접근해야만 했다.
하지만 각 모델 제조사(OpenAI, Anthropic, Google 등)마다 함수를 정의하고 호출하는 규격이 모두 달랐다. 개발자는 같은 도구라도 모델마다 다른 코드를 작성해야 했다.
- 파편화된 에이전트 프레임워크 (Fragmented Agent Framework): 이후 LangChain, AutoGPT 등 수많은 에이전트 프레임워크가 쏟아져 나왔다. 각 프레임워크는 자신들만의 방식으로 도구(Tools)를 관리했다. 프레임워크 간 호환성이 없었으며, 특정 라이브러리에 종속(lock-in)될 수 밖에 없었다.
- MCP의 등장 : 이때 Anthropic이 조용히 공개한 오픈소스 프로젝트가 바로 MCP이다. 처음에는 큰 반향을 얻지 못했지만 2025년 들어 바이브 코딩(vibe coding)이라는 용어가 유행하며 AI 코딩 도구들이 폭발적으로 성장했고 AI가 실제 프로젝트 컨텍스트에 접근할 수 있게 해주는 표준화된 방법이 절실해졌다.
2025년은 MCP 역사의 전환점
- 2024년 11월: 앤스로픽의 첫 제안
앤스로픽이 MCP를 오픈 소스로 발표하며 "모델과 도구 사이의 벽을 허물자"고 제안했다. 당시만 해도 이는 특정 벤더의 규격 중 하나로 여겨졌다.
- 2025년 3월: 오픈AI의 합류와 샘 알트먼의 결단
업계의 리더인 오픈AI가 MCP 지지를 선언하며 자사 제품군 통합을 발표했다.
- 2025년 중반: 빅테크의 연쇄 가세 (MS, Google)
마이크로소프트가 윈도우 11 OS 레벨에서 MCP를 수용하며 에이전틱 AI 시대를 공식화했고, 구글 역시 버텍스 AI(Vertex AI) 등 자사 생태계에 이를 녹여내며 표준 경쟁은 사실상 종료되었다.
- 2025년 12월: 리눅스 재단(AAIF) 기증
앤스로픽이 MCP를 에이전틱 AI 재단(AAIF)에 기증함으로써, 특정 기업의 독점적 영향력을 배제한 공공 인프라로서의 지위를 확립했다.
표준이 없다면 기기마다 USB-A, USB-B 등 포트 모양이 다 달라서 매번 다른 케이블을 준비해야 해서 번거롭다. 그런데 USB-C 포트(전 세계적으로 통용되는 국제 표준 커넥터 규격)처럼 USB-C 케이블 하나만 있으면 다 연결할 수 있다. MCP도 똑같다. 즉 LLM이 외부 데이터 및 도구와 상호작용하는 방식의 표준화(Standardization) 를 의미한다. 여러 가지 정보나 도구를 쓸 때마다 매번 다르게 연결할 필요 없이, MCP라는 하나의 규칙만 알면 뭐든지 쉽게 연결할 수 있게 된다.
💡 USB-C가 다양한 장치를 컴퓨터에 연결하는 방식을 간소화하는 것처럼, MCP는 AI 모델이 데이터, 도구 및 서비스와 상호 작용하는 방식을 간소화한다.
MCP Architecture
MCP 구조의 기본
| 구성 요소 | 역할 (Responsibility) | 주요 기능 (Key Functions) | 예시 (Examples) |
|---|
| Host | LLM 실행 환경 (전체 컨테이너) | MCP를 통해 데이터에 접근하고자 하는 LLM 애플리케이션 | Claude Desktop, Cursor, VS Code, 사용자 정의 AI Agent 앱 |
| MCP Client | 프로토콜 인터페이스 (통신 중계) | 호스트 내부에서 특정 서버와 1:1 세션 유지, JSON-RPC 메시지 생성 및 해석 | 호스트 앱 내부에 포함된 MCP 프로토콜 커넥터 모듈 |
| MCP Server | 기능(Capabilities)/데이터 제공자 (엔드포인트) | 로컬/원격 데이터 노출(expose), 특정 도구(Tools) 및 리소스 제공, 실행 권한 제어 | GitHub API 서버, Local SQLite 서버, Google Drive 연동 서버 |
MCP의 세 가지 기본 요소(Primitives)
- Tools : 실행 가능한 함수를 말한다. 클라이언트에 의해 수행되는 함수이다. 데이터 조회, 검색, 메세지 전송, 데이터베이스에 record 업데이트 등 수행한다.
- Resources : 읽기 전용의 데이터(read-only data) 또는 context 이다. MCP Server는 모델이 추론을 수행할 때 배경 지식으로 사용할 수 있는 원시 데이터를 공급한다. PDF files, database records, API response 등이 이에 해당한다.
- Prompts : 사용자와 모델 사이의 상호작용을 구조화하는 '미리 정의된 프롬프트 템플릿(Prompt Template)' 이다. 사용자가 prompt engineering을 해야 하는 부담을 덜어준다.
| ⬇️ MCP는 다음과 같이 동작한다. |
|---|
 |
| 요소 | 정의 | 주요 예시 |
|---|
| 도구 (Tools) | 클라이언트가 호출할 수 있는 실행 가능한 함수와 도구 | - 정보 검색 및 탐색 (Retrieve / Search) - 메시지 전송 (Send a message) - 데이터베이스 레코드 업데이트 |
| | |
| 리소스 (Resources) | 서버에 의해 공개된 읽기 전용 데이터 | - 로컬 및 클라우드 파일 (Files) - 데이터베이스 기록 (Database Records) - 외부 API 응답 데이터 |
| | |
| 프롬프트 (Prompts) | AI와 상호작용을 위해 미리 정의된 템플릿 | - 문서 질의응답 (Document Q&A) - 대화 기록 요약 (Transcript Summary) - JSON 형식 출력 제어 |
- 통신 레이어 관점에서 MCP의 본질은 JSON-RPC 2.0 프로토콜 기반의 메시지 교환 이다.
- MCP 아키텍처는 클라이언트(Client) 와 서버(Server) 의 상호작용으로 이루어진다. 서버가 기능을 공개(Expose)하면 클라이언트가 이를 호출하여 활용하는 구조다.
- Expose(공개/노출) 는 내부의 자원이나 기능을 외부 시스템(클라이언트)이 접근하고 사용할 수 있도록 인터페이스를 통해 열어두는 것을 의미한다.
MCP의 한계
MCP의 과도한 토큰과 비용
- MCP는 작동 원리상 언어 모델에게 현재 어떤 도구들을 사용할 수 있는지 인지시키기 위해 연결된 모든 도구의 명칭, 세부적인 매개변수(Parameter) 조건, 입력 형식의 스키마(Schema), 그리고 각 도구의 기능 설명 등을 프롬프트 컨텍스트 윈도우에 모두 포함하게 된다.
- 메타데이터 오버헤드 (Metadata Overhead)
MCP 서버가 가진 수많은 도구(Tools)와 리소스(Resources)의 정의는 모두 텍스트(JSON Schema) 형태다. 모델이 이 도구들을 인식하게 하려면 대화할 때마다 이 명세서들을 시스템 프롬프트에 포함해야 하는데, 도구가 많아질수록 기본적으로 소모되는 '기본 토큰(Base Tokens)'이 기하급수적으로 늘어난다.
- 리소스(Resources) 호출 시, 필터링되지 않은 대용량 로그 파일이나 DB 레코드를 통째로 가져올 경우 모델이 처리해야 할 컨텍스트가 순식간에 수만 토큰을 넘어설 수 있다.
- 복잡한 작업을 수행할 때 여러 도구를 반복적으로 호출(Chaining) 하면, 호출마다 전체 컨텍스트가 다시 계산되면서 비용이 누적된다.
- 앤스로픽은 최근 시장의 비용 최적화 요구에 직면하여 '스킬(Skills)'이라는 새로운 개념과 아키텍처를 도입했다.
주요 보안 이슈
- 프롬프트 인젝션 (Prompt Injection) : 모델이 Tools나 Resources를 통해 악의적인 명령어가 담긴 데이터를 읽게 될 경우, 모델의 의사결정 프로세스가 오염되어 허용되지 않은 동작(예: 데이터 삭제, 무단 이메일 발송)을 수행할 수 있다.
- 과도한 권한 문제 : MCP 서버가 실행되는 로컬 시스템이나 서버의 권한이 너무 높게 설정된 경우, 모델이 도구를 오용하여 시스템 파일에 접근하거나 민감한 설정을 변경할 수 있다. (시스템의 /etc/passwd 같은 핵심 설정 파일을 수정하게 되는 상황)
- 데이터 유출 : 공격자가 모델을 속여 MCP 서버를 통해 얻은 민감 정보를 외부 API 호출 도구를 이용해 특정 서버로 전송하도록 유도할 수 있다.
- 현재는 OAuth 2.0 기반의 인증과 최소 권한 원칙이 명세에 반영되어 있으며, 구글 등 주요 기업들은 이를 보완하기 위한 전용 방화벽 기술을 도입하고 있다. 기술을 도입하는 기업 입장에서는 에이전트에게 어디까지 권한을 줄 것인지에 대한 세밀한 설계가 필수적이다.