원문 정보

David Soria Parra, Den Delimarsky (Lead Maintainers), "The 2026-07-28 Specification", Model Context Protocol 공식 블로그, 2026-07-28 확정 발표. 릴리스 후보는 2026-05-21 공개, 10주 검증 기간을 거쳤습니다.

이번 리뷰 대상은 학술 논문이 아니라 프로토콜 스펙입니다. MCP는 SEP(제안 문서) 공개 리뷰를 거치는 오픈 거버넌스를 표방하지만, Anthropic이 출범시킨 사실상의 벤더 주도 표준이라는 점, 그리고 아래 채택 수치가 프로젝트 자체 발표라 독립 검증이 없다는 점을 감안하고 읽어야 합니다.

무엇이 바뀌었나

한 문장으로 요약하면 MCP가 상태 유지 프로토콜을 버렸습니다. initialize/initialized 핸드셰이크와 Mcp-Session-Id 헤더가 사라지고(SEP-2575·2567), 모든 요청이 프로토콜 버전·클라이언트 신원·역량을 _meta에 담아 자기기술적으로 갑니다. 서버가 세션 도중 사용자 입력이 필요하면 열린 스트림 대신 input_required 결과를 반환하는 다중 왕복 요청(MRTR)으로 처리하고, Mcp-Method·Mcp-Name HTTP 헤더가 필수화되어(SEP-2243) 게이트웨이가 JSON 본문을 파싱하지 않고도 라우팅·계측할 수 있게 됐습니다. 목록·리소스 응답에는 ttlMs·cacheScope 캐시 힌트가 붙습니다(SEP-2549).

구분이전 (2025-11-25)현재 (2026-07-28)
프로토콜 모델세션 기반 상태 유지요청/응답 무상태
서버발 요청열린 스트림 유지MRTR(input_required 왕복)
라우팅JSON 본문 파싱Mcp-Method·Mcp-Name 헤더
인증 등록Dynamic Client RegistrationCIMD(Client ID Metadata Documents)
로드밸런싱공유 저장소 필요라운드로빈 가능

장기 실행 작업은 실험적 핵심 기능에서 io.modelcontextprotocol/tasks 독립 확장으로 승격됐습니다(SEP-2663). tools/call이 작업 핸들을 반환하고 tasks/get(폴링)·tasks/update·tasks/cancel로 수명주기를 관리하되, tasks/list는 제거됐습니다 — 세션이 없어 서버가 작업 목록의 범위를 안전하게 정할 수 없기 때문입니다. Roots·Sampling·Logging 세 기능은 공식 폐기(최소 12개월 제거 유예, SEP-2577)됐고, 리소스 누락 오류 코드는 -32002에서 JSON-RPC 표준 -32602로 바뀌었으며, 도구 스키마는 JSON Schema 2020-12로 전환됐습니다(SEP-2106).

채택 규모로는 Tier 1 SDK 합산 월 다운로드 약 5억 건, TypeScript·Python SDK 각각 누적 10억 건 이상, Honeycomb의 월간 인터랙티브 쿼리 중 약 20%가 에이전트발이라는 수치가 제시됐습니다.

신뢰도·성숙도 평가

절차는 이전보다 성숙해졌습니다. 5월 21일 RC 공개 후 7월 28일 확정까지 10주 검증 기간을 지켰고, 기능 라이프사이클 정책(Active → Deprecated → Removed, 최소 12개월)과 적합성 테스트 의무(SEP-2484), SDK 티어 시스템이 함께 도입돼 "깨뜨리는 방식"이 예측 가능해졌습니다. 변경 하나하나가 SEP 번호로 추적된다는 점도 검증 가능성을 높입니다.

감안할 점은 세 가지입니다. 첫째, 위 채택 수치는 전부 프로젝트 자체 발표로 독립 검증이 없습니다. 둘째, 2025-11-25판 이후 약 8개월 만의 두 번째 대규모 재설계라 구현자의 마이그레이션 피로가 실재합니다 — 특히 2025-11 Tasks API 사용자에게는 호환 경로 없이 새 수명주기로의 이전이 필수입니다. 셋째, 무상태 전환의 비용이 구현자에게 전가됩니다: tasks/list가 사라지면서 작업 목록·감사 추적은 각자 만들어야 합니다.

리뷰어 판단: 표준이 웹 인프라에 맞춰 항복했다

이번 개정의 본질은 기능 추가가 아니라 MCP가 웹 인프라의 문법 — 로드밸런서, 게이트웨이, WAF, HTTP 캐시 — 에 맞춰 스스로를 재단한 것이라고 판단합니다. 세션 제거·헤더 라우팅·캐시 힌트·라운드로빈은 전부 "기존 웹 운영 도구로 MCP를 다루게 해달라"는 대규모 운영자의 요구 목록입니다. 프로토콜이 데모 단계를 지나 인프라 단계에 들어섰다는 신호로 읽습니다.

또 하나 주목할 것은 Roots·Sampling·Logging 폐기의 방향성입니다. 셋 다 "서버가 클라이언트의 LLM·파일시스템·로그에 개입하는" 기능이었고, 대체 경로는 전부 클라이언트/호스트 책임(LLM 제공자 API 직접 통합, 도구 매개변수, OpenTelemetry)으로 넘어갔습니다. MCP는 이제 도구 연결 프로토콜로 역할을 좁혀 수렴하고 있습니다. 야심을 줄인 표준이 오래 살아남는다는 점에서 옳은 방향이라고 보지만, tasks/list 제거가 보여주듯 무상태의 대가는 사라지지 않고 구현자의 숙제로 이동했습니다 — 핸들을 잃으면 작업도 잃습니다.

실무 적용: 12개월 유예를 계획으로 바꾸는 법

  • 마이그레이션 창 확정 — Roots·Sampling·Logging 의존 지점을 지금 인벤토리하고, 12개월 유예 안에 대체 경로(도구 매개변수·제공자 API·OpenTelemetry) 전환 일정을 박아둡니다. 2025-11 Tasks API 사용자는 유예 없이 새 수명주기로 이전해야 합니다.
  • 작업 핸들 대장(레지스터) 구축 — tasks/list가 없으므로 클라이언트가 발급받은 핸들을 영속 저장하고 tasks/get 폴링·복구를 자체 관리해야 합니다. 핸들 유실 = 작업 유실이 새 기본값입니다.
  • 헤더 라우팅 활용 — Mcp-Method·Mcp-Name 필수화는 게이트웨이에서 메서드별 레이트리밋·감사·차단 정책을 걸 수 있게 합니다. JSON 파싱 프록시를 걷어낼 기회입니다.
  • 기계적 호환성 수정 — 오류 코드 -32002 매칭 로직을 -32602로 갱신하고, 스키마 검증기를 JSON Schema 2020-12로 올립니다. W3C Trace Context(traceparent) 전파를 관측 파이프라인에 연결합니다.

결론

2026-07-28 스펙은 MCP가 "에이전트 데모의 공용어"에서 "운영 인프라의 구성 요소"로 넘어가는 분기점입니다. 표준이 웹의 문법에 맞춰 몸을 줄였고, 그 대가로 상태 관리의 부담이 구현자에게 왔습니다. 12개월 유예와 SEP 추적성 덕분에 계획적 이전이 가능한 만큼, 지금 필요한 것은 새 기능 추격이 아니라 폐기 목록 기준의 의존성 인벤토리입니다. 이 스펙을 운영 체크리스트 관점에서 푼 실행 가이드는 아래 블로그 글에서 이어집니다.

참고 링크