MCP란 무엇인가: AI의 USB-C 포트
MCP(Model Context Protocol)는 Anthropic이 2024년 11월에 공개한 오픈소스 프로토콜이다. AI 애플리케이션이 외부 시스템과 연결되는 방식을 표준화한 것으로, 공식 문서에서는 이를 “AI 애플리케이션의 USB-C 포트”라고 비유한다.
USB-C가 충전, 데이터 전송, 영상 출력을 하나의 포트로 통합한 것처럼, MCP는 AI가 데이터 소스(로컬 파일, DB), 도구(검색엔진, 계산기), 워크플로우(프롬프트 템플릿)에 접근하는 방식을 하나의 규격으로 통일한다.
왜 MCP가 필요한가
MCP 이전의 세계를 떠올려보자. Claude가 GitHub에 접근하려면 GitHub 전용 플러그인이 필요하고, Slack에 접근하려면 Slack 전용 연동을 만들어야 했다. ChatGPT, Gemini, Claude가 각각 다른 방식으로 외부 도구를 호출했다. N개의 AI 앱이 M개의 외부 서비스와 연동하려면 N x M개의 커넥터가 필요한 셈이다.
MCP는 이 문제를 해결한다. MCP 서버를 한 번 만들면 Claude Desktop, VS Code, Cursor, Zed 등 MCP를 지원하는 모든 AI 앱에서 사용할 수 있다. N + M개의 구현만 있으면 된다.
아키텍처: Host, Client, Server
MCP의 구조는 세 가지 참여자로 이루어진다.
- MCP Host: AI 애플리케이션 자체. Claude Desktop, VS Code Copilot, Cursor 등이 여기에 해당한다.
- MCP Client: Host 안에서 각 서버와 1:1 연결을 유지하는 컴포넌트. Host가 여러 서버에 연결하면 Client도 여러 개 생긴다.
- MCP Server: 실제로 데이터나 도구를 제공하는 프로그램. 파일시스템, DB, Sentry, GitHub 등.
예를 들어 VS Code가 Sentry MCP 서버와 로컬 파일시스템 MCP 서버에 동시에 연결하면, VS Code(Host) 내부에 두 개의 MCP Client가 각각의 Server와 전용 커넥션을 유지한다.
두 개의 레이어: Data Layer와 Transport Layer
Data Layer (내부 레이어)
JSON-RPC 2.0 기반의 메시지 프로토콜이다. 핵심 구성요소는 다음과 같다.
- Lifecycle Management: 연결 초기화, 기능 협상(capability negotiation), 연결 종료를 처리한다.
- Tools: AI가 실행할 수 있는 함수들. “GitHub 이슈 생성”, “DB 쿼리 실행” 같은 액션.
- Resources: AI에게 제공되는 컨텍스트 데이터. 파일 내용, API 응답 등.
- Prompts: 상호작용 템플릿. 특정 작업을 위한 프롬프트 패턴을 서버가 제공.
Transport Layer (외부 레이어)
실제 통신 채널을 담당한다. 두 가지 메커니즘을 지원한다.
- STDIO Transport: 로컬 프로세스 간 표준 입출력 통신. 같은 머신에서 실행되는 서버에 최적화되어 네트워크 오버헤드가 없다.
- Streamable HTTP Transport: HTTP POST + Server-Sent Events(SSE). 원격 서버 통신에 사용되며, OAuth 기반 인증을 권장한다.
실전 코드: MCP 서버 만들기 (Python)
간단한 날씨 정보 MCP 서버를 만들어보자. 공식 Python SDK를 사용한다.
# weather_server.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Weather Server")
@mcp.tool()
async def get_weather(city: str) -> str:
"""특정 도시의 현재 날씨를 반환합니다."""
# 실제로는 날씨 API를 호출
weather_data = {
"서울": "맑음, 3도",
"부산": "흐림, 7도",
"제주": "비, 10도"
}
return weather_data.get(city, f"{city}의 날씨 정보가 없습니다")
@mcp.resource("weather://forecast/{city}")
async def get_forecast(city: str) -> str:
"""3일간의 날씨 예보를 리소스로 제공합니다."""
return f"{city} 3일 예보: 맑음 → 흐림 → 비"
@mcp.prompt()
async def weather_report(city: str) -> str:
"""날씨 리포트 작성을 위한 프롬프트 템플릿"""
return f"{city}의 현재 날씨와 3일 예보를 분석해서 외출 추천을 해주세요."
if __name__ == "__main__":
mcp.run(transport="stdio")
이 서버는 세 가지 MCP 프리미티브를 모두 사용한다.
@mcp.tool(): AI가 호출할 수 있는 도구 (get_weather)@mcp.resource(): AI에게 제공되는 데이터 (forecast)@mcp.prompt(): 작업 템플릿 (weather_report)
Claude Desktop에서 연결하기
위 서버를 Claude Desktop에 연결하는 설정 파일이다.
// claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["weather_server.py"],
"env": {}
}
}
}
이 설정을 추가하면 Claude Desktop이 시작할 때 자동으로 weather_server.py를 STDIO 방식으로 실행하고, 사용자가 “서울 날씨 알려줘”라고 하면 get_weather 도구를 호출한다.
MCP 생태계 현황 (2026년 2월 기준)
MCP는 출시 1년 만에 사실상의 업계 표준이 되었다. 주요 채택 현황을 정리한다.
- AI 앱 지원: Claude Desktop, Claude Code, VS Code(GitHub Copilot), Cursor, Windsurf, Zed, Cline 등 주요 AI 코딩 도구가 MCP를 지원한다.
- OpenAI 합류: 2025년 3월, OpenAI가 ChatGPT와 Agents SDK에 MCP 지원을 발표했다. 경쟁사가 만든 프로토콜을 채택한 것은 MCP의 위상을 보여주는 사건이었다.
- Google 합류: Google의 ADK(Agent Development Kit)도 MCP 도구를 네이티브로 지원한다.
- 공식 서버: GitHub, Slack, Google Drive, PostgreSQL, Puppeteer, Sentry, Cloudflare 등 수백 개의 공식/커뮤니티 MCP 서버가 존재한다.
- SDK: Python, TypeScript, Java, Kotlin, C#, Swift, Rust 등 주요 언어별 SDK가 제공된다.
ACP와의 차이: 1편 복습
1편에서 다룬 ACP(Agent Client Protocol)와 MCP의 핵심 차이를 정리하면 다음과 같다.
| 항목 | MCP | ACP |
|---|---|---|
| 만든 곳 | Anthropic | Zed Industries |
| 목적 | AI와 외부 도구/데이터 연결 | AI 에이전트와 에디터 간 통신 |
| 비유 | USB-C 포트 | USB 허브의 개별 포트 프로토콜 |
| 방향 | AI → 외부 세계 | 에디터 ↔ AI 에이전트 |
| 관계 | 도구 호출 표준 | 에이전트 실행 환경 표준 |
쉽게 말하면, MCP는 AI의 “손과 발”이다. AI가 외부 세계와 상호작용하는 방법을 정의한다. ACP는 AI 에이전트가 코드 에디터 안에서 어떻게 동작하는지를 정의한다. 두 프로토콜은 경쟁이 아니라 서로 다른 층(layer)을 담당한다.
MCP의 한계와 과제
MCP가 만능은 아니다. 현재 알려진 한계들이다.
- 보안 우려: MCP 서버가 악의적인 도구를 노출하면, AI가 이를 실행할 수 있다. Tool Poisoning 공격이 보고된 바 있다.
- 인증 복잡성: 원격 MCP 서버의 OAuth 인증 플로우가 아직 사용자 경험이 매끄럽지 않다.
- 에이전트 간 통신 부재: MCP는 “AI ↔ 도구” 연결이다. “AI ↔ AI” 에이전트 간 통신은 Google의 A2A(Agent-to-Agent) 프로토콜이 담당한다.
- 버전 관리: MCP 서버 업데이트 시 하위 호환성 관리가 아직 체계적이지 않다.
다음 편 예고
3편에서는 ACP를 실전에서 활용한다. Zed 에디터에 Claude Agent를 연결해서 AI 코딩 환경을 구축하는 과정을 step-by-step으로 다룰 예정이다. MCP 서버를 Zed에 연결하는 방법도 포함된다.
시리즈 전체 목록:
- 1편: ACP 완전 분석 (발행완료)
- 2편: MCP 딥다이브 – Anthropic이 만든 에이전트의 손과 발 (본편)
- 3편: ACP 실전 – Zed + Claude Agent로 AI 코딩 환경 구축하기
- 4편: ACP vs MCP vs A2A – 프로토콜 전쟁의 승자는?
- 5편: 에이전트 커머스(Stripe ACP) – AI가 돈을 쓰는 시대