Model Context Protocol (MCP)
MCP는 Model Context Protocol의 약자로, 2024년 11월 Anthropic이 발표한 오픈 표준 프로토콜입니다. AI 애플리케이션(특히 LLM)이 외부 데이터 소스, 도구, 시스템과 표준화된 방식으로 연결될 수 있게 해주는 인터페이스 규격입니다.
개요
MCP는 마치 AI를 위한 USB-C 포트와 같습니다. USB-C가 다양한 주변기기를 표준화된 포트 하나로 연결하듯, MCP는 다양한 데이터 소스와 도구를 LLM 애플리케이션에 표준화된 방식으로 연결합니다.
- 개발자: Anthropic (David Soria Parra, Justin Spahr-Summers)
- 발표일: 2024년 11월 25일
- 라이선스: 오픈 소스
- 공식 사이트: modelcontextprotocol.io
- 2025년 12월: Linux Foundation 산하 Agentic AI Foundation(AAIF)으로 기부됨 (Anthropic, Block, OpenAI 공동 창립)
핵심 아키텍처
MCP는 클라이언트-호스트-서버 3계층 구조로 동작합니다:
| 구성 요소 | 설명 |
|---|---|
| MCP Host | AI 애플리케이션 (예: Claude Desktop, VS Code, IDE) - 여러 MCP 클라이언트를 생성/관리 |
| MCP Client | 호스트 내부에서 각 서버와 1:1 연결을 유지하는 프로토콜 클라이언트 |
| MCP Server | 특정 기능(도구, 리소스, 프롬프트)을 노출하는 경량 프로그램 |
통신 방식: JSON-RPC 2.0 기반, Stateful 연결, STDIO(로컬) 또는 Streamable HTTP(원격) 전송 지원
3대 핵심 프리미티브 (Primitives)
MCP 서버는 다음 세 가지 기능을 노출할 수 있습니다:
| 프리미티브 | 설명 | 비유 |
|---|---|---|
| Tools (도구) | LLM이 호출할 수 있는 실행 가능한 함수 (파일 작업, API 호출, DB 쿼리 등) | POST/PUT 엔드포인트 |
| Resources (리소스) | LLM에 컨텍스트를 제공하는 읽기 전용 데이터 (파일 내용, DB 스키마, 문서 등) | GET 엔드포인트 |
| Prompts (프롬프트) | 재사용 가능한 템플릿 (시스템 프롬프트, few-shot 예제 등) | 워크플로 레시피 |
주요 특징
- 표준화된 통합: 기존의 M×N 통합 문제를 M+N으로 단순화
- 보안: 사용자 동의 기반, 데이터 프라이버시 보호, 도구 호출 승인 절차
- 확장성: 새로운 기능을 점진적으로 추가 가능
- 벤더 중립성: LLM 제공자와 무관하게 동작
- 실시간 업데이트: 알림(Notification) 시스템을 통한 동기화
SDK 지원 언어
- Python (
mcp패키지, PyPI) - TypeScript/JavaScript (
@modelcontextprotocol/sdk) - Java, Kotlin, C#, Go, PHP, Perl, Ruby, Rust, Swift
채택 현황
- OpenAI (2025년 3월) - ChatGPT 데스크톱 앱에 MCP 지원 통합
- Google DeepMind (2025년 4월) - MCP 채택 발표
- Elastic - Elasticsearch MCP 서버 공식 제공
- Cloudflare, Salesforce, Microsoft (Semantic Kernel, Azure OpenAI) 등 다수 기업 채택
- VS Code, Cursor, Replit, Sourcegraph 등 개발 도구에서 폭넓게 사용
간단한 예제 (Python SDK)
from mcp.server import MCPServer
mcp = MCPServer("Demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
"""Greet someone by name."""
return f"Hello, {name}!"
참고 자료
- 공식 문서: modelcontextprotocol.io
- GitHub: github.com/modelcontextprotocol
- Python SDK: github.com/modelcontextprotocol/python-sdk
- 위키백과: Model Context Protocol