Blog
Key Changes - Model Context Protocol
2026.08.02
·Web·by Homin.Lee#API#HTTP#JSON-RPC#MCP#Protocol
핵심 포인트
- 1Model Context Protocol(MCP)은 세션과 핸드셰이크 과정을 제거하여 프로토콜을 상태 비저장(Stateless) 방식으로 전면 개편하고, 모든 요청에 버전과 기능을 포함하도록 변경했습니다.
- 2서버가 추가 정보를 요청하는 Multi Round-Trip Requests(MRTR) 패턴을 도입하고, 스트리밍 연결 방식의 단순화와 캐싱 최적화를 위해 CacheableResult 인터페이스를 새롭게 추가했습니다.
- 3Roots, Sampling, Logging 기능을 공식적으로 폐기(Deprecated)하며, 앞으로는 명확한 명세 기능 생애주기 관리 정책에 따라 변경 사항을 운영합니다.
본 문서는 2025-11-25 개정 이후 시행된 Model Context Protocol (MCP)의 주요 사양 변경 사항과 프로토콜 아키텍처의 현대화 방향을 기술합니다. 이번 업데이트의 핵심은 프로토콜의 무상태(stateless) 전환, 통신 모델의 간소화, 그리고 체계적인 기능 폐기 정책(feature lifecycle) 도입입니다.
1. 주요 사양 변경 및 아키텍처 개선
- 프로토콜 무상태(Stateless) 전환: 기존의
initialize및notifications/initialized핸드셰이크가 삭제되었습니다. 모든 요청은_meta필드를 통해io.modelcontextprotocol/protocolVersion및clientCapabilities를 포함하며, 개별 요청마다 독립적으로 인증 및 버전 관리가 이루어집니다. - Multi Round-Trip Requests (MRTR): 서버가 추가 정보가 필요할 때
InputRequiredResult(결과 타입:"input_required")를 반환하는 패턴이 도입되었습니다. 클라이언트는 이를 수신하면 필요한 데이터를 제공하고 원래의 요청을 재시도(retry)합니다. - 통신 모델 최적화:
- Streamable HTTP: 프로토콜 레벨의 세션 및
Mcp-Session-Id헤더가 제거되었습니다. SSE(Server-Sent Events) 기반의 스트림 복구 기능 또한 삭제되어, 연결 단절 시 요청을 새 ID로 재발행해야 합니다. - subscriptions/listen: 개별 리소스 구독 방식 대신, 단일 long-lived POST-response 스트림을 통해 서버-클라이언트 간 변경 알림을 처리합니다.
- Streamable HTTP: 프로토콜 레벨의 세션 및
- 캐싱 전략 도입:
tools/list,resources/read등에CacheableResult인터페이스가 추가되었습니다.ttlMs(freshness hint)와cacheScope("public" 또는 "private")를 통해 클라이언트와 중간 프록시의 효율적인 캐싱을 지원합니다.
2. 기술적 사양 상세
- 에러 코드 정책: JSON-RPC 스펙을 준수하며
-32020에서-32099사이의 범위를 MCP 전용 에러로 할당했습니다.HeaderMismatchError(-32022),UnsupportedProtocolVersion(-32022) 등 명시적 오류 코드가 정비되었습니다. - OpenTelemetry 표준 준수:
_meta키에traceparent,tracestate,baggage를 사용하여 트레이스 컨텍스트 전파 규격을 표준화했습니다. - 확장성:
extensions필드를ClientCapabilities와ServerCapabilities에 추가하여 핵심 프로토콜 외의 선택적 기능 확장을 허용했습니다.
3. 기능 폐기 정책 및 거버넌스
- Deprecation (기능 폐기): Roots, Sampling, Logging 기능과 HTTP+SSE 전송 방식이 'Deprecated' 상태로 분류되었습니다. 12개월의 유예 기간을 두는 'feature lifecycle' 정책이 채택되어, 신규 구현체는 해당 기능 사용을 지양해야 합니다.
- 프로세스 혁신:
SEP(Specification Enhancement Proposal) 체계가 도입되어 PR(Pull Request) 기반의 워크플로우와 거버넌스가 공식화되었습니다.
4. 기타 변경 사항
- JSON Schema:
inputSchema,outputSchema에서 JSON Schema 2020-12 키워드를 폭넓게 허용하며,$ref해석 및 복합 키워드에 대한 리소스 바운드를 정의했습니다. - 데이터 타입 교정:
schema.json에서minimum,maximum,default필드가 정수형뿐만 아니라 실수(number)를 지원하도록 타입 정의를 수정했습니다.