메타데이터
- 발신자: TLDR (Dev & Engineering)
- 원문 URL(TLDR 링크): https://threadreaderapp.com/thread/2082164248697069935.html?utm_source=tldrnewsletter
- 참고: 위 threadreaderapp 링크는 접근 시 주제와 무관한 콘텐츠(다른 스레드)를 반환하여 접근 실패로 처리. 대신 동일 주제를 다루는 공식 발표 원문인 Model Context Protocol 블로그(https://blog.modelcontextprotocol.io/posts/2026-07-28/)를 근거로 직역 및 요약을 작성함.
- 발행일: 2026-07-29
- 카테고리: dev-engineering
직역 전문
지난해 11월 릴리스 이후 MCP(Model Context Protocol)는 놀라운 속도로 성장을 계속했다. Tier 1 SDK 전체에서 월간 다운로드가 거의 5억 건에 이르며, TypeScript와 Python SDK 모두 누적 다운로드 10억 건을 넘어섰다. 불과 몇 달 사이 이 프로토콜은 에이전틱 워크플로의 데이터 및 상호작용 기반으로 계속 성장했다.
오늘, 우리는 MCP 스펙의 다음 버전인 2026-07-28을 공식적으로 출시하며, 동시에 이를 활용해 즉시 클라이언트와 서버를 구축할 수 있는 SDK도 함께 공개한다.
이번 릴리스의 핵심은 상태 비저장(stateless) 프로토콜 코어다. MCP는 양방향 상태 유지형(stateful) 프로토콜에서 요청/응답 기반의 상태 비저장 프로토콜로 전환되고 있다. 이는 자신의 MCP 서버에서 더 나은 신뢰성과 확장성을 원했던 개발자들이 가장 많이 요청했던 기능 중 하나였다.
이번 버전에서 도입하는 것은 이 외에도 더 있다.
- 모든 요청은 자기서술적(self-describing)이며, 사전에 기능(capability)을 알고 싶은 클라이언트를 위한 선택적 디스커버리 호출이 존재한다. 따라서 어떤 요청이든 평범한 라운드로빈 로드밸런서 뒤의 어떤 인스턴스에도 도달할 수 있다.
- 메서드와 도구 이름은 Mcp-Method와 Mcp-Name이라는 HTTP 헤더로 전달되므로, 게이트웨이가 헤더를 기준으로 직접 라우팅하고 인가할 수 있다.
- 샘플링(sampling)이나 유도(elicitation) 같은 서버→클라이언트 요청은 멀티 라운드트립 요청(Multi Round-Trip Requests, MRTR) 방식으로 재설계되어, 지속적으로 열려 있는 양방향 스트림이 필요 없어졌다.
- 목록(list) 응답은 캐시 힌트와 결정적(deterministic) 순서를 포함하므로, 클라이언트가 도구 카탈로그를 캐시하고 재연결 시에도 상위 프롬프트 캐시를 안정적으로 유지할 수 있다.
- Tasks가 MCP Apps, Enterprise Managed Authorization(EMA) 등 다른 확장 기능들과 함께 정식 확장 프레임워크에 공식적으로 편입되었다.
- RFC 9207 발급자(issuer) 검증과, 동적 클라이언트 등록(DCR)에서 클라이언트 메타데이터 문서(CIMD)로의 공식적인 전환을 포함한 인가(authorization) 강화 변경 사항들.
- 최소 12개월의 유예 기간을 보장하는 공식 폐기(deprecation) 정책이 마련되어, 급하게 대응하기보다 미리 업그레이드를 계획할 수 있게 되었다.
TypeScript, Python, Go, C# SDK가 이에 맞춰 업데이트되었으며, 주요 변경 사항(breaking changes)에 대한 상세한 마이그레이션 노트도 함께 제공되어 새 스펙을 즉시 사용할 수 있다.
무엇이 바뀌었나
핸드셰이크와 세션의 폐지: 새 스펙 버전에서는 initialize/initialized 교환과 Mcp-Session-Id 헤더가 공식적으로 폐지되었다(SEP-2575, SEP-2567 참조). 이제 각 요청은 자신의 프로토콜 버전, 클라이언트 신원, 클라이언트 기능을 _meta에 담아 독립적으로 전달된다. 클라이언트가 다른 작업을 하기 전에 서버의 기능을 먼저 알고 싶다면, 새로운 server/discover RPC를 사용할 수 있으나 필수는 아니다. 이제 어떤 요청이든 공유 스토리지 없이 평범한 라운드로빈 로드밸런서 뒤의 어떤 서버 인스턴스에도 도달할 수 있다. 프로토콜 수준의 세션을 제거한다고 해서 애플리케이션이 반드시 상태 비저장이 되어야 하는 것은 아니다. 서버가 호출 간 상태를 유지해야 한다면, 도구에서 명시적인 핸들(handle)을 발급하고 모델이 그것을 인자로 다시 전달하게 하면 된다. 이 방식이 트랜스포트에 숨겨진 세션 상태보다 더 잘 작동한다는 것을 발견했다. 모델이 핸들을 볼 수 있고 도구 사이로 전달할 수 있기 때문이다.
멀티 라운드트립 요청(MRTR): MRTR은 이전에 열려 있는 스트림을 필요로 했던 서버 주도 elicitation/create, sampling/createMessage, roots/list 요청을 대체한다. 때로는 도구가 호출 도중 확인이나 누락된 파라미터 같은 것을 사용자로부터 얻어야 한다. MRTR(SEP-2322)은 상태 비저장 프로토콜에서 이 시나리오를 가능하게 한다. 서버는 resultType: "input_required"와 함께 필요한 요청들을 반환하고, 클라이언트는 inputResponses에 답변을 담아 원래 호출을 재시도한다. Streamable HTTP 요청은 이제 Mcp-Method와 Mcp-Name을 반드시 포함해야 하며(SEP-2243), 게이트웨이, 레이트 리미터, WAF가 JSON 본문을 파싱하는 대신 이 헤더들로 라우팅과 계측을 할 수 있다.
목록 결과의 캐시 가능성: tools/list, prompts/list, resources/list, resources/read의 응답은 이제 ttlMs와 cacheScope를 포함한다(SEP-2549). 이를 통해 클라이언트는 최적의 캐싱 전략을 결정하고 불필요한 재요청을 줄일 수 있다.
인가(Authorization): 지난 1년간 구현자들과의 논의 결과, 인가는 구현자들이 통합 작업에 가장 많은 시간을 쓰는 영역이었다. 이번 스펙 개정에서는 MCP 인증 및 보안 태세를 계속 발전시켰다. 인가 서버는 RFC 9207에 따라 iss 파라미터를 반환해야 하고, 클라이언트는 코드를 교환하기 전에 이를 검증해야 한다(SEP-2468). 이는 인가 서버 혼동(mix-up) 취약점을 차단한다. 클라이언트는 동적 클라이언트 등록(DCR) 중 application_type을 설정해야 하며, 이를 통해 인가 서버가 데스크톱 및 CLI 앱의 localhost 리다이렉트를 거부하지 않게 된다(SEP-837). 클라이언트 자격 증명은 이를 발급한 발급자에게 바인딩되며 다른 인가 서버 간에 재사용할 수 없다(SEP-2352). 동적 클라이언트 등록 자체는 이제 CIMD를 위해 공식적으로 폐기되었다. DCR은 하위 호환을 위해 계속 작동하지만 향후 스펙 버전에서 제거될 예정이다.
Tasks: Tasks는 실험적 코어에서 벗어나 io.modelcontextprotocol/tasks 확장으로 이동했으며, 폴링 기반의 tasks/get과 새로운 tasks/update를 갖춘다(SEP-2663). 변경 알림은 기존 HTTP GET 엔드포인트에서 클라이언트가 알림 유형별로 선택 구독하는 단일 subscriptions/listen 스트림으로 이동한다.
폐기 사항: Roots, Sampling, Logging이 폐기되었다(SEP-2577). 여전히 작동하며 최소 12개월간 계속 작동할 것이나, 새로운 구현체는 이를 채택해서는 안 된다. 레거시 HTTP+SSE 트랜스포트 역시 공식적으로 폐기되었으며 1년의 유예 기간이 주어진다.
SDK
4개의 Tier 1 SDK(TypeScript, Python, Go, C#) 모두 오늘부로 2026-07-28을 지원한다. Tier 1 외에도 Rust SDK가 베타로 새 스펙을 지원한다.
생태계 지원
이 릴리스는 리모트 MCP가 처음 출시된 지 1년이 넘은 시점에서 MCP의 가장 중요한 릴리스다. 확장 가능한 MCP 서버 제공에 있어 도약이며, 지난 18개월간의 교훈을 모두 반영해 MCP의 미래를 위한 견고한 기반을 제공한다. AWS, Cloudflare, Figma, Google Cloud, Microsoft, Netlify, Honeycomb, Manufact 등 다수의 파트너사 임원들이 상태 비저장 아키텍처로의 전환이 기업 규모의 에이전트 인프라 구축을 어떻게 단순화하는지에 대한 지지 코멘트를 남겼다.
4계층 심층 요약
1. 핵심 주장
MCP(Model Context Protocol)의 2026-07-28 스펙은 프로토콜 출시 이후 가장 큰 규모의 개정으로, 핵심 아키텍처를 양방향 상태 유지형(stateful)에서 상태 비저장(stateless) 요청/응답 구조로 전환한다. 이 변화로 MCP 서버를 서버리스·엣지 인프라에 배포하거나 일반적인 로드밸런서 뒤에서 수평 확장하기가 훨씬 쉬워지며, 프로토콜을 공식적으로 확장할 수 있는 경로도 처음으로 마련되었다.
2. 근거
- initialize/initialized 핸드셰이크와 Mcp-Session-Id 헤더가 폐지되어, 모든 요청이 자신의 프로토콜 버전과 클라이언트 정보를 스스로 담아 전달되므로 공유 스토리지 없이 어떤 서버 인스턴스로도 라우팅될 수 있다.
- 메서드/도구 이름이 HTTP 헤더(Mcp-Method, Mcp-Name)로 노출되어 게이트웨이·레이트리미터·WAF가 JSON 바디를 파싱하지 않고도 라우팅과 인가를 수행할 수 있다.
- 서버가 사용자 확인이나 추가 입력이 필요할 때 열린 스트림을 유지하는 대신 멀티 라운드트립 요청(MRTR)으로 처리하도록 재설계되어, 상태 비저장 환경에서도 대화형 상호작용이 가능해졌다.
- RFC 9207 발급자 검증, 클라이언트 자격 증명의 발급자 바인딩, DCR에서 CIMD로의 전환 등 인가 관련 취약점을 겨냥한 다수의 보안 강화 조치가 포함되었다.
- 최소 12개월의 공식 폐기 유예 기간을 명문화하여 개발자들이 급박하게 대응하는 대신 계획적으로 마이그레이션할 수 있게 되었다.
3. 사례
- TypeScript와 Python SDK가 각각 누적 다운로드 10억 건을 돌파했고, Tier 1 SDK 전체 월간 다운로드가 약 5억 건에 달할 만큼 MCP 생태계가 급성장했다는 수치가 이번 릴리스의 배경으로 제시되었다.
- Cloudflare는 Agents SDK가 출시 당일부터 새 스펙을 지원해 Workers에서 직접 MCP 서버를 실행할 수 있다고 밝혔고, Figma는 상태 비저장 아키텍처 덕분에 생성된 결과물을 캔버스로 가져오는 워크플로가 더 잘 확장될 것이라고 언급했다.
- Manufact는 새 SDK v2 덕분에 패키지 크기를 약 83% 줄이고 속도를 25% 개선했다고 밝혔으며, honeycomb.io는 월간 인터랙티브 쿼리의 거의 20%가 이미 에이전트에 의한 것이라며 새 기능이 대규모 운영에 도움이 될 것이라 언급했다.
- AWS는 Tasks 확장 기능을 직접 기여했으며, Amazon Bedrock AgentCore Gateway에서 세션이나 지속 연결 관리 없이 표준 확장 인프라에 MCP 서버를 배포할 수 있게 되었다고 설명했다.
4. 시사점
MCP를 상태 비저장으로 전환한 것은 단순한 기술적 리팩토링이 아니라, MCP 서버를 웹의 나머지 부분과 동일한 방식(캐시 가능, 라우팅 가능, 전역적으로 확장 가능)으로 취급할 수 있게 만드는 구조적 변화다. 이는 MCP가 실험적 프로토콜에서 프로덕션급 에이전트 인프라로 성숙하고 있음을 보여주는 신호이며, 향후 엔터프라이즈 에이전트 시스템을 설계하는 개발자들은 세션 기반 상태 관리에 의존하던 기존 패턴을 도구 호출로 전달되는 명시적 핸들 방식으로 재설계해야 할 필요가 있다. 또한 공식 확장 프레임워크(Tasks, MCP Apps, EMA)의 등장은 MCP 생태계가 서드파티 혁신을 흡수할 수 있는 표준화된 경로를 갖췄다는 의미이며, 최소 12개월의 폐기 정책은 대규모 마이그레이션 계획 수립 시 실질적인 기준점이 된다.
핵심 요약 (20줄)
- MCP(Model Context Protocol)는 지난해 11월 릴리스 이후 폭발적으로 성장하여 Tier 1 SDK 전체에서 월간 약 5억 건의 다운로드를 기록하고 있다.
- TypeScript와 Python SDK는 각각 누적 다운로드 10억 건을 돌파하며 에이전틱 워크플로의 핵심 기반으로 자리 잡았다.
- MCP 프로젝트는 2026년 7월 28일 공식적으로 스펙 버전 2026-07-28과 이에 맞춘 SDK들을 출시했다.
- 이번 릴리스의 핵심은 MCP를 양방향 상태 유지형 프로토콜에서 요청/응답 기반의 상태 비저장 프로토콜로 전환한 것이다.
- 상태 비저장 전환은 더 나은 신뢰성과 확장성을 원했던 개발자들이 가장 많이 요청했던 기능 중 하나였다.
- initialize/initialized 핸드셰이크와 Mcp-Session-Id 헤더가 공식적으로 폐지되어 세션 개념이 프로토콜 계층에서 사라졌다.
- 이제 모든 요청은 자신의 프로토콜 버전과 클라이언트 정보를 스스로 담아 전달되므로 공유 스토리지 없이 어떤 서버 인스턴스로도 라우팅될 수 있다.
- 서버가 상태를 유지해야 할 경우 도구가 명시적인 핸들을 발급하고 모델이 이를 인자로 전달하는 방식이 트랜스포트 숨김 세션보다 더 잘 작동한다는 것이 확인되었다.
- 메서드와 도구 이름은 Mcp-Method, Mcp-Name이라는 HTTP 헤더로 전달되어 게이트웨이가 JSON 본문을 파싱하지 않고도 라우팅과 인가를 수행할 수 있게 되었다.
- 서버가 사용자로부터 확인이나 추가 입력을 받아야 할 때는 열린 스트림 대신 멀티 라운드트립 요청(MRTR) 방식으로 재설계되었다.
- 목록 응답에 캐시 힌트와 결정적 순서가 추가되어 클라이언트가 도구 카탈로그를 캐시하고 재연결 시에도 안정적으로 유지할 수 있게 되었다.
- Tasks 기능이 실험적 코어에서 벗어나 MCP Apps, Enterprise Managed Authorization과 함께 공식 확장 프레임워크에 편입되었다.
- RFC 9207 기반의 발급자 검증이 도입되어 인가 서버 혼동 취약점을 차단하는 보안 강화가 이루어졌다.
- 동적 클라이언트 등록(DCR)은 공식적으로 폐기되고 클라이언트 메타데이터 문서(CIMD) 방식으로 전환되지만 하위 호환을 위해 당분간 계속 작동한다.
- 최소 12개월의 유예 기간을 보장하는 공식 폐기 정책이 마련되어 개발자들이 급박한 대응 대신 계획적인 업그레이드를 할 수 있게 되었다.
- TypeScript, Python, Go, C# 네 개의 Tier 1 SDK가 모두 새 스펙을 지원하며 Rust SDK도 베타로 지원을 시작했다.
- Cloudflare는 Agents SDK가 출시 당일부터 새 스펙을 지원해 Workers에서 직접 MCP 서버를 실행할 수 있다고 밝혔다.
- Manufact는 새 SDK 덕분에 패키지 크기를 약 83% 줄이고 속도를 25% 향상시켰다고 발표했다.
- AWS는 Tasks 확장 기능을 직접 기여했고 Amazon Bedrock AgentCore Gateway에서 세션 관리 없이 MCP 서버를 배포할 수 있게 되었다고 설명했다.
- 이번 릴리스는 MCP가 실험적 프로토콜에서 벗어나 프로덕션급 엔터프라이즈 에이전트 인프라로 성숙해가고 있음을 보여주는 가장 명확한 신호로 평가된다.