MCP(Model Context Protocol)는 Anthropic이 2024년 11월에 발표한 오픈 표준으로, AI 애플리케이션과 외부 도구·데이터를 연결하는 통일된 규약입니다. 흔히 "AI를 위한 USB-C 포트"라고 비유합니다 — 어떤 AI 앱이든, 어떤 외부 서비스든, MCP만 지원하면 별도 어댑터 없이 즉시 연결됩니다.
왜 필요했나
LLM은 추론과 텍스트 생성에는 뛰어나지만, 실시간 데이터에 접근하거나 외부 시스템을 조작할 수 없습니다. 전통적 해결책은 "function calling" 같이 각 AI 제품·각 외부 서비스마다 개별 통합 코드를 짜는 것이었습니다. N개의 AI 앱과 M개의 서비스가 있으면 N × M개의 연결 코드가 필요했고, 어느 한쪽이 바뀌면 다 깨졌습니다.
MCP는 이 문제를 표준화로 해결합니다. AI 앱은 MCP 클라이언트만 구현하면 되고, 서비스 제공자는 MCP 서버 하나만 만들면 됩니다. 그러면 N + M의 비용으로 모든 조합이 가능해집니다.
구조: Host · Client · Server
MCP는 클라이언트-서버 아키텍처를 따르며, Language Server Protocol(LSP)에서 영감을 받았습니다. 통신 규격은 JSON-RPC 2.0 기반입니다.
- Host (호스트): 사용자가 직접 쓰는 AI 애플리케이션. Claude Desktop, Cursor, VS Code Copilot 등. 호스트가 클라이언트를 띄우고 어떤 서버에 연결할지 결정합니다.
- Client (클라이언트): 호스트 안에서 동작하는 통신 주체. 연결된 서버 1개당 클라이언트 1개가 붙습니다.
- Server (서버): 외부 도구·데이터를 노출하는 주체. Google Drive, Slack, GitHub, 데이터베이스 등 무엇이든 가능합니다.
한 MCP 서버가 동시에 다른 MCP 서버의 클라이언트가 될 수도 있어, 여러 서버를 체인으로 묶는 그래프 구조도 만들 수 있습니다.
3개 핵심 Primitive
MCP 서버는 LLM에게 다음 세 가지를 노출할 수 있습니다.
- Tools: 모델이 호출할 수 있는 실행 가능한 함수. 데이터베이스 조회, API 호출, 파일 조작 등. (모델 주도, model-controlled)
- Resources: 모델이 읽을 수 있는 파일/문서 형태의 데이터. API 응답, 지식 베이스, 코드 파일 등. (애플리케이션 주도, app-controlled)
- Prompts: 미리 정의된 대화 템플릿. 자주 쓰는 워크플로를 표준화. (사용자 주도, user-controlled)
실무에서 가장 많이 쓰이는 건 Tools와 Resources입니다.
전송 방식
MCP는 통신 방식을 두 가지 지원합니다.
- stdio: 로컬 프로세스 간 표준 입출력으로 통신. 같은 머신 안의 MCP 서버에 적합.
- HTTP/SSE (또는 Streamable HTTP): 원격 서버와의 통신. 클라우드 서비스나 다른 호스트의 도구를 연결할 때 사용.
보안 모델
MCP는 단순한 API 호출이 아니라 모델이 외부 시스템에 접근하게 한다는 점에서 보안이 핵심입니다. 다음 원칙이 적용됩니다.
- 호스트가 권한의 게이트: 사용자는 어떤 서버를 연결할지 호스트 단계에서 명시적으로 승인합니다. 모델이 임의로 새 서버를 추가할 수 없습니다.
- 도구 입력은 신뢰하지 않음: LLM이 만드는 인자값을 절대 신뢰하지 말고, 서버에서 엄격한 JSON Schema로 검증해야 합니다(
additionalProperties: false). - 최소 권한: 서버가 노출하는 도구의 범위를 작업에 꼭 필요한 만큼으로 제한합니다.
- 로깅·감사: 모델이 어떤 도구를 어떻게 호출했는지 기록을 남깁니다.
SDK와 생태계
공식 SDK는 Python, TypeScript, Java, Kotlin이 1차 지원이고, Microsoft가 C# SDK를 기여 중입니다. Shopify, Block, Microsoft, JetBrains, Pydantic 등 외부 기업도 활발히 기여하고 있어, Anthropic 단독이 아닌 진짜 오픈 표준으로 자리 잡고 있습니다.
Claude는 1급 지원이고, 다른 호스트(Cursor, VS Code, Zed, ChatGPT 일부 모드)에서도 점진적으로 도입 중입니다. 사전 빌드된 MCP 서버로는 Google Drive, Slack, GitHub, Postgres, Sentry, Notion 등이 공개되어 있습니다.
언제 MCP를 쓰는가
- 여러 AI 앱에서 같은 외부 도구를 쓰고 싶을 때: 한 번 서버를 짜면 Claude Desktop, Cursor, VS Code에서 모두 사용 가능.
- 회사 내부 시스템을 AI 보조 도구로 노출할 때: 사내 DB, 위키, 티켓 시스템을 MCP 서버로 만들면 어떤 AI 앱에서도 접근 가능.
- 벤더 락인을 피하고 싶을 때: 도구 통합 코드를 LLM 제공자에 묶어두지 않을 수 있음.
한계와 주의점
- 아직 진화 중: 핵심 개념은 안정적이지만 SDK·스펙은 자주 업데이트됩니다. 프로덕션 사용 시 버전 고정 권장.
- 비-Anthropic 호스트의 지원 편차: Claude 외 호스트는 MCP 지원 수준이 제각각이며, 일부는 우회 어댑터가 필요합니다.
- 도구 남용 위험: 모델이 의도치 않은 도구를 호출하지 않도록 호스트 UI에서 명시적 승인 흐름이 필요합니다.