Model Context Protocol(MCP) 개념 정리
AI 모델과 외부 리소스를 연결하는 오픈 프로토콜 MCP의 통신 방식, 구조, 전송 방식, 보안 모델을 최신 스펙(2026-07-28) 기준으로 정리한다. Serena·Codex 등 구현체별 사용은 별도 글 참고.
관련: AI 로드맵의 MCP 갈래 · 구현체는 Serena 기본 가이드, 여러 서버 붙이기는 MCP 서버 더 붙이기
MCP란
MCP(Model Context Protocol) 는 Anthropic이 2024년 11월에 공개한 오픈 프로토콜로, AI 애플리케이션이 외부 도구와 리소스(파일, DB, API 등)를 표준화된 방식으로 발견하고 호출하도록 한다.
기존에는 AI 애플리케이션과 외부 시스템을 연결할 때 도구마다 별도 통합을 만들어야 했고(N × M 문제), 양쪽이 늘어날수록 통합 부담이 커졌다. MCP는 그 사이에 공통 규격을 두어 클라이언트와 서버가 같은 방식으로 기능을 노출하고 호출할 수 있게 한다.
MCP는 특정 모델 하나를 위한 API가 아니라, AI 클라이언트와 외부 Tool·Resource 사이의 발견·호출 규격이다.
핵심 특징
| 항목 | 내용 |
|---|---|
| 통신 | JSON-RPC 2.0 기반 |
| 전송 | stdio(로컬) · Streamable HTTP(원격) |
| 구조 | MCP Client ↔ MCP Server |
| 노출 단위 | tools · resources · prompts |
| 보안 | 로컬 실행 권한과 사용자 승인, 원격은 OAuth 기반 인가 |
| 활용 | 파일 읽기, API 호출, DB 조회, 코드베이스 분석 등 |
기본 구조
1
2
3
4
5
6
7
8
9
+----------------+ JSON-RPC +--------------+
| AI Application | <------------------> | MCP Server |
| (MCP Client) | | Tool/Resource|
+----------------+ +--------------+
|
v
+-----------------------+
| Files / DB / APIs ... |
+-----------------------+
서버는 자기가 제공하는 Tool·Resource·Prompt를 노출하고, 클라이언트는 이를 발견한 뒤 필요한 기능을 호출한다. 실제 호출 승인 방식과 권한 범위는 클라이언트와 배포 환경에 따라 달라질 수 있다.
전송 방식(Transport)
MCP는 같은 JSON-RPC 메시지를 여러 전송 계층 위에서 주고받는다.
| 전송 | 용도 | 특징 |
|---|---|---|
| stdio | 로컬 서버 | 클라이언트가 서버를 자식 프로세스로 실행하고 표준 입출력으로 통신. 로컬 도구에 적합 |
| Streamable HTTP | 원격 서버 | HTTP 기반 원격 전송. 필요에 따라 스트리밍을 지원하며 다중 사용자 서비스에 적합 |
초기 스펙에서 원격 전송에 사용하던 HTTP+SSE는 2025-03-26 개정부터 Streamable HTTP로 대체됐다.
2026-07-28 스펙에서 달라진 핵심
2026-07-28 스펙은 이전의 세션 중심 구조를 단순화해 무상태(stateless) 프로토콜 코어를 기본으로 삼는다. 연결마다 고정 세션을 유지해야 한다는 전제를 줄여 로드밸런서 뒤에서 수평 확장하기 쉬워졌다.
주요 변화는 다음과 같다.
- 무상태 코어: 초기화 핸드셰이크와 장기 세션 의존을 줄여 요청을 독립적으로 처리하기 쉬워졌다.
- MRTR(Multi Round-Trip Requests): 하나의 상위 요청을 처리하는 동안 여러 차례 클라이언트↔서버 왕복 상호작용을 수행할 수 있다.
- Header 기반 라우팅: HTTP 헤더를 이용해 요청을 적절한 서버나 실행 경로로 전달할 수 있다.
- 목록 결과 캐싱: Tool·Resource 같은 목록 조회 결과를 캐시해 반복 조회 비용을 줄일 수 있다.
- Authorization 강화: 원격 서버의 인가 모델과 보안 요구사항이 더 명확해졌다.
- Extensions Framework: 핵심 스펙을 바꾸지 않고 기능을 확장할 수 있는 공식 확장 체계를 제공한다.
보안 모델
MCP 서버는 파일·DB·브라우저·외부 API처럼 실제 시스템에 접근할 수 있으므로, 프로토콜 자체보다 서버가 가진 권한과 클라이언트의 승인 정책이 더 중요하다.
- 로컬(stdio): 서버 프로세스는 실행한 사용자 계정의 권한 범위 안에서 동작한다. 필요 이상의 파일·명령 권한을 주지 않는 것이 기본이다.
- 원격(Streamable HTTP): OAuth 기반 인가를 사용하며, 서버는 필요한 Scope만 요청하도록 구성한다.
- 공통: 출처를 신뢰할 수 없는 MCP Server를 등록하지 않고, 읽기 전용으로 충분한 작업에는 쓰기 권한을 주지 않는다.
MCP를 쓴다고 자동으로 안전해지는 것은 아니다. MCP는 호출 규격을 표준화할 뿐, 실제 접근 권한은 실행 환경과 서버 구현이 결정한다.
스펙 버전 흐름
MCP 스펙은 날짜 기반으로 개정된다.
| 개정 | 주요 변화 |
|---|---|
2024-11-05 | 최초 공개 |
2025-03-26 | Streamable HTTP 도입, OAuth 기반 인가 체계 확장 |
2025-06-18 | 구조화 출력, elicitation, resource links, 인가 모델 보강 |
2026-07-28 (현재 안정) | 무상태 코어, MRTR, Header 기반 라우팅, 목록 캐싱, Authorization 강화, Extensions Framework |
스펙과 SDK는 계속 개정되므로 구현 세부를 문서화할 때는 Model Context Protocol 공식 Specification과 SDK 문서를 함께 확인한다.
장점과 주의사항
장점
- 클라이언트와 외부 시스템 사이의 연결 방식을 공통 규격으로 맞출 수 있다.
- Tool·Resource를 표준 방식으로 발견하고 호출할 수 있다.
- 같은 서버를 여러 MCP 호환 클라이언트에서 재사용하기 쉽다.
- 로컬
stdio부터 원격 HTTP 서비스까지 같은 개념 모델을 사용할 수 있다.
주의사항
- MCP Server가 실제로 무엇을 읽고 실행할 수 있는지 반드시 확인한다.
- 원격 서버는 신뢰할 수 있는 출처인지와 OAuth Scope가 과하지 않은지 확인한다.
- 표준이 빠르게 변하므로 오래된 설정 예제나 Transport 명칭을 그대로 복사하지 않는다.
구현체 예시
- Serena MCP — 코드베이스 의미 기반 검색·편집을 제공하는 MCP 서버. 설치·등록·Codex 연동은 Serena 기본 가이드 참고.
- MCP 공식 서버 저장소 — 공식·참고용 서버 구현과 생태계 예시를 확인할 수 있다.
요약
| 구분 | 설명 |
|---|---|
| MCP | AI Client와 외부 Tool·Resource 사이의 발견·호출 규격 |
| 통신 | JSON-RPC 2.0 기반 |
| 전송 | stdio(로컬) · Streamable HTTP(원격) |
| 현재 스펙 | 2026-07-28 |
| 핵심 변화 | 무상태 코어, MRTR, Header 라우팅, 캐싱, 확장 체계 |
한마디로: MCP는 AI 애플리케이션이 외부 도구와 리소스를 공통 방식으로 발견하고 호출하게 만드는 표준 프로토콜이다. 어떤 서버를 붙이고 어떤 권한을 줄지는 그 다음 문제다.