MCP (Model Context Protocol)
2026-04-07
개념
MCP는 Agent와 외부 도구 사이의 공통 프로토콜이다. 2024년 11월 Anthropic이 공개했다. 각 도구마다 다른 SDK·API를 따로 붙이지 않고, "MCP Server"라는 공통 껍데기에 맞춰서 노출하면 MCP를 지원하는 모든 Agent가 그 도구를 쓸 수 있다.
왜 필요한가
Agent가 도구를 쓰려면 도구마다 연결 코드가 전부 달랐다.
벡터 검색 → ChromaDB 파이썬 코드
슬랙 메시지 → Slack API + OAuth 토큰
DB 쿼리 → PostgreSQL 드라이버
파일 읽기 → 로컬 파일시스템
도구 10개면 어댑터 코드 10개. Agent마다 같은 어댑터를 또 써야 했다. MCP는 이 M×N 조합 문제를 M+N으로 줄이는 게 목표다.
해결 방식
Agent와 도구 사이에 공통 규격을 끼운다.
기존:
Agent → (각자 다른 방식) → 도구 A, 도구 B, 도구 C
MCP:
Agent → [MCP 프로토콜] → MCP Server A
→ MCP Server B
→ MCP Server C
USB에 비유하면 쉽다. 프린터·마우스·키보드 포트가 전부 달랐는데 USB로 통일된 것과 같은 구조.
구조
MCP Host (Agent, Claude Code 등)
↕ MCP 프로토콜 (JSON-RPC)
MCP Server (도구를 감싼 서버)
↕
실제 도구 (DB, API, 파일시스템 등)
- Host — Agent 런타임. Claude Code, Claude Desktop 등
- Server — 도구 하나를 MCP 규격으로 감싼 서버. 로컬 프로세스 or 원격
- 프로토콜 — JSON-RPC 2.0 기반 메시지 교환
MCP Server가 제공하는 것
- Tools — Agent가 호출할 수 있는 함수 (read_file, run_query 등)
- Resources — Agent가 읽을 수 있는 데이터 (파일, URL, DB row)
- Prompts — 미리 정의된 프롬프트 템플릿
생태계 효과
- 도구 하나를 MCP Server로 만들면 → MCP 지원하는 모든 Agent에서 쓸 수 있음
- Agent 하나를 MCP Host로 만들면 → 모든 MCP 도구를 쓸 수 있음
누군가 Notion MCP Server를 만들면 Claude Code에서도, 다른 MCP 호환 Agent에서도 Notion 접근이 가능해진다. 개별 어댑터를 다시 짤 필요가 없다.
Claude Code와 MCP
Claude Code의 도구가 전부 MCP Server로 연결되어 있다.
Read, Write, Edit → 파일시스템 MCP
Bash → 셸 MCP
Glob, Grep → 검색 MCP
mcp__playwright__* → 브라우저 MCP
Claude Code는 MCP Host(클라이언트)다. 그래서 Claude Code에 새 MCP Server를 추가하는 것만으로 도구를 확장할 수 있다.
더 보기
- [[Agentic-RAG]] — MCP 도구를 활용한 대표적 Agent 패턴
- [[Sandbox]] — MCP 도구(특히 Bash, 파일시스템)를 격리 실행할 때 고려할 것