>_toolkitbox

~/ / AI 기사 / MCP 사양 2026-07-28: 무엇이 바뀌었고, 내 파일에서 무엇을 확인해야 할까

MCP 사양 2026-07-28: 무엇이 바뀌었고, 내 파일에서 무엇을 확인해야 할까

Model Context Protocol(MCP) 사양 개정판 2026-07-28은 프로토콜 수준의 세션을 없애고, 이전 HTTP+SSE 전송 방식과 여러 기능을 지원 중단 대상으로 지정하며, 도구 스키마의 규칙을 완화합니다. 이 글은 공식 변경 내역을 요약하고, 직접 작성하는 두 가지 파일인 MCP 설정과 도구 스키마를 확인하는 방법을 보여 줍니다.

게시: · 2026-10-24에 공식 사양과 대조해 확인했습니다. 이 글은 사양을 요약한 것이며 사양을 대신하지 않습니다.

가장 큰 변경점

  • Streamable HTTP 전송 방식에서 프로토콜 수준의 세션과 Mcp-Session-Id 헤더가 없어집니다. 호출 사이에 상태가 필요한 서버는 직접 만든 명시적 핸들을 일반 도구 인수로 넘기는 방식을 씁니다.
  • MCP가 스테이트리스가 됩니다. initialize 핸드셰이크가 없어지고, 모든 요청이 프로토콜 버전과 클라이언트의 기능(capabilities)을 _meta에 담아 보내며, 버전이 맞지 않으면 UnsupportedProtocolVersionError가 반환됩니다.
  • 서버는 지원하는 프로토콜 버전, 기능, 신원을 알리는 새 server/discover 호출을 반드시 구현해야 합니다.
  • HTTP GET 엔드포인트와 resources/subscribe는 subscriptions/listen으로 대체됩니다. 클라이언트가 구독을 선택한 변경 알림을 하나의 오래 유지되는 응답 스트림으로 받는 방식입니다.
  • roots/list, sampling/createMessage, elicitation/create 같은 서버 발신 요청은 Multi Round-Trip Requests 패턴으로 대체됩니다. 서버가 입력을 요구하는 결과를 반환하면, 클라이언트가 답을 담아 원래 요청을 다시 보냅니다.
  • 실험적 기능인 tasks가 핵심 프로토콜에서 빠져 공식 확장으로 옮겨집니다.
  • 재개 가능한 SSE 스트림(Last-Event-ID)이 없어집니다. 응답 스트림이 끊기면 처리 중이던 요청은 사라지므로, 클라이언트는 새 요청으로 다시 보내야 합니다.

지금 지원 중단된 기능

기능지원 중단 시점가장 이른 제거 시점권장 이전 방법
Roots2026-07-282027-07-28 이후에 처음 공개되는 개정판도구 매개변수, 리소스 URI, 서버 설정으로 디렉터리나 파일을 전달
Sampling2026-07-282027-07-28 이후에 처음 공개되는 개정판LLM 제공업체의 API와 직접 연동
Logging2026-07-282027-07-28 이후에 처음 공개되는 개정판stdio에서는 stderr에 로그를 남기거나 OpenTelemetry 사용
Dynamic Client Registration2026-07-282027-07-28 이후에 처음 공개되는 개정판Client ID Metadata Documents
HTTP+SSE 전송 방식2025-03-26SEP-2596이 Final에 도달한 지 3개월 후Streamable HTTP
includeContext의 값 thisServer와 allServers2025-11-25Sampling을 따라감필드를 생략하거나 none 사용

지원 중단된 기능도 여전히 사양의 일부입니다. 가장 이른 제거 시점은 제거 대상이 될 수 있는 시기를 뜻하며, 실제 제거는 릴리스 준비 과정에서 결정됩니다. 새 기능 수명 주기 정책은 지원 중단 기간을 최소 12개월로 정하고 있습니다.

MCP 설정 확인하기

설정에서 아직 HTTP+SSE 전송 방식을 쓰고 있다면 지원 중단 목록에 해당합니다. Claude Code 문서도 sse 타입을 지원 중단된 것으로 설명하며, 가능한 곳에서는 HTTP 서버를 쓰라고 안내합니다. 사양이 설명하는 대체 방식인 Streamable HTTP에서는 서버가 POST를 받는 단일 엔드포인트를 제공하고, 클라이언트는 모든 JSON-RPC 메시지를 각각 별도의 HTTP POST로 보냅니다.

  • 모든 POST에는 application/json과 text/event-stream을 모두 나열한 Accept 헤더가 있어야 합니다.
  • 모든 POST에는 값이 요청 본문의 프로토콜 버전과 일치하는 MCP-Protocol-Version 헤더가 있어야 합니다.
  • 요청에는 Mcp-Method 헤더가 포함되고, tools/call, resources/read, prompts/get에는 Mcp-Name 헤더도 포함됩니다.
  • 서버는 각 요청에 단일 JSON 객체로 응답하거나, 그 요청에만 해당하는 SSE 스트림으로 응답합니다.

클라이언트가 어느 프로토콜 개정판을 지원하는지는 클라이언트 문서에서 확인할 일입니다. 아래 검사 도구는 .mcp.json이나 claude_desktop_config.json을 읽어, type이 없는 원격 서버나 아직 sse를 쓰는 항목 등을 알려 줍니다.

직접 해 보기: MCP Config Checker

2026-10-23에 문서를 기준으로 규칙을 확인했습니다.

문서: Claude Code / Model Context Protocol / VS Code

확인하지 않는 것: 명령이 존재하는지, 패키지가 설치되는지, 원격 서버가 응답하는지, 그리고 다른 애플리케이션이 다르게 읽는 설정.

모든 처리는 브라우저 안에서 이루어집니다. 설정은 업로드되지 않습니다.

도구 스키마에서 JSON Schema 2020-12 전체를 쓸 수 있습니다

  • inputSchema와 outputSchema에서 JSON Schema 2020-12의 모든 키워드를 쓸 수 있게 되었고, structuredContent는 어떤 JSON 값이든 될 수 있습니다. 사양은 $ref를 해석하는 방법에 대한 요건과, 조합 키워드가 사용할 수 있는 자원의 한도를 추가합니다.
  • 서버는 도구 매개변수에 x-mcp-header를 표시해 그 값을 Mcp-Param-{name} HTTP 헤더로 복사하게 할 수 있습니다. 표시된 매개변수는 문자열, 정수, 불리언 중 하나여야 하며 number는 안 됩니다.
  • 표시된 속성은 스키마 루트에서 properties 키만 거쳐 닿을 수 있어야 합니다. 그 경로가 items, oneOf, anyOf, allOf, not, if/then/else, $ref를 지나서는 안 됩니다.
  • Streamable HTTP를 쓰는 클라이언트는 x-mcp-header 주석이 이 규칙을 어기는 도구 정의를 거부해야 하며, 이는 그 도구가 tools/list 결과에서 빠진다는 뜻입니다.

도구 스키마를 시험하려면 아래 검증기에 스키마와 샘플 인수를 붙여 넣으세요. Draft 2020-12의 주요 키워드를 검사하고, 검사하지 않는 키워드가 무엇인지도 알려 줍니다.

직접 해 보기: JSON Schema Validator

지원하는 키워드는 JSON Schema Draft 2020-12를 따릅니다. $ref는 같은 스키마 안에서만 읽습니다.

모든 처리는 브라우저 안에서 이루어집니다. 스키마와 데이터는 업로드되지 않습니다.

서버를 위한 보안 사항

  • 서버는 DNS 리바인딩 공격을 막기 위해 들어오는 모든 연결에서 Origin 헤더를 검증해야 합니다. 헤더가 있는데 유효하지 않으면 HTTP 403 Forbidden으로 응답해야 합니다.
  • 로컬에서 실행되는 서버는 모든 네트워크 인터페이스(0.0.0.0)가 아니라 localhost(127.0.0.1)에만 바인딩하는 것이 좋습니다.
  • 서버는 모든 연결에 적절한 인증을 구현하는 것이 좋습니다.
  • 요청 본문을 처리하는 서버는 헤더가 본문과 일치하지 않는 요청을 HTTP 400과 JSON-RPC 오류 HeaderMismatch(코드 -32020)로 거부해야 합니다.
  • 인증 서버는 인증 응답에 iss 매개변수를 포함하는 것이 좋으며(RFC 9207), iss가 있으면 클라이언트는 인증 코드를 사용하기 전에 이를 검증해야 합니다.
  • 클라이언트는 저장한 클라이언트 자격 증명을 발급한 발급자별로 구분해 보관해야 하며, 다른 인증 서버에 재사용해서는 안 됩니다.

출처