프로그래밍 및 소프트웨어 개발

Microsoft, C#용 공식 MCP 패키지 버전 2.0 출시

새 버전은 2026-07-28자 MCP 사양과 호환되며, 기본적으로 무상태 방식을 채택하고 HTTP 헤더를 표준화하며 대화형 도구를 처리하기 위한 다중 라운드 요청을 지원한다. 또한 실험적인 Tasks 확장을 제외하고 기존 코드와 클라이언트 및 서버와의 폭넓은 호환성을 유지한다.

2026-07-28
4 분 읽기
217 조회수
certi.news Editorial Team
Microsoft, C#용 공식 MCP 패키지 버전 2.0 출시

Microsoft는 2026-07-28 사양 적용과 함께 C#용 공식 MCP 소프트웨어 개발 키트 버전 2.0을 발표했다. 이번 버전은 HTTP를 통한 MCP 서버의 작동 방식을 변경해 기본적으로 무상태로 만들고, 표준화된 HTTP 헤더를 추가하며, 도구가 지속적인 세션에 의존하지 않고 사용자 또는 언어 모델의 입력을 요청할 수 있도록 하는 다중 라운드 요청을 지원한다.

이번 버전은 .NET에서 MCP 서버와 클라이언트를 구축하는 개발자를 대상으로 하며, 1.x 버전의 안정적인 API가 계속 작동하도록 유지한다. 또한 net8.0, net9.0, net10.0 프레임워크와 .NET Framework에서 사용할 수 있는 netstandard2.0을 지원한다.

기본적으로 무상태인 서버

이전 버전에서는 Streamable HTTP를 사용하려면 초기화 핸드셰이크를 완료하고 세션을 생성한 다음, 이후 모든 요청에 Mcp-Session-Id 헤더를 전송해야 했다. 이 방식은 요청을 해당 식별자를 발급한 서버 인스턴스에 연결하므로, 여러 인스턴스를 실행할 때 고정 라우팅이나 세션 이전이 필요했다.

2026-07-28 사양은 initialize 및 initialized 핸드셰이크와 Mcp-Session-Id 헤더를 제거하고, 프로토콜 버전과 기능을 각 요청에 포함한다. 그 결과 어떤 서버 인스턴스든 모든 요청을 처리할 수 있으며, 프로토콜 수준에서 고정 세션이나 공유 세션 저장소가 필요하지 않다. 이에 따라 serverless, 다중 인스턴스 또는 엣지 환경에서 MCP 서버를 배포하는 방식이 로드 밸런서 뒤에서 일반적인 ASP.NET Core 애플리케이션을 실행하는 방식에 가까워진다.

버전 2.0에서는 HttpServerTransportOptions.Stateless 옵션이 기본적으로 true로 설정된다. 서버에서 클라이언트로 보내는 비요청 메시지나 세션에 연결된 전송 상태가 필요한 경우에는 상태 유지 모드를 활성화할 수 있다. 세션은 여전히 사용할 수 있지만 더 이상 기본 설정이 아니다.

라우팅 및 모니터링을 위한 HTTP 헤더

무상태 방식은 MCP 요청을 독립적인 HTTP POST 요청으로 변환하므로, 일반적인 인프라가 다른 HTTP 트래픽과 동일한 방식으로 처리할 수 있다. 사양은 Mcp-Method 및 Mcp-Name과 같은 헤더를 제공하며, 일부 도구 매개변수를 Mcp-Param-* 형식의 헤더로 승격할 수도 있다.

로드 밸런서, 프록시, 게이트웨이 또는 웹 애플리케이션 방화벽은 JSON-RPC 요청 본문을 분석하지 않고도 이러한 헤더를 라우팅과 모니터링에 사용할 수 있다. 요청 본문은 계속 신뢰할 수 있는 출처로 유지된다. 헤더 값이 본문에 있는 값과 다르면 서버는 HeaderMismatch 오류와 함께 요청을 거부한다. 또한 이 설계는 ASCII가 아닌 값과 같이 헤더에서 지원되지 않는 값의 인코딩을 Base64 지시자를 사용해 지원한다.

대화형 도구를 위한 다중 라운드 요청

Multi Round-Trip Requests 또는 MRTR 기능은 한 번의 호출로 작업을 완료할 수 없는 도구를 처리하는 방법을 추가한다. 요청을 실행하는 동안 서버가 활성 세션을 통해 클라이언트에 연결하는 대신, 입력 요청과 requestState라는 불투명한 상태를 포함하는 InputRequiredResult 유형의 결과를 반환한다.

클라이언트는 사용자 확인 요청, 언어 모델 호출 또는 작업 공간 루트 표시와 같은 필요한 작업을 수행한 다음 inputResponses와 requestState를 첨부해 동일한 도구 호출을 다시 전송한다. 이 과정은 여러 라운드에 걸쳐 반복할 수 있으며, 지속성 정보가 페이로드 안에서 전달되므로 세션이 필요하지 않다.

고수준 McpClient는 적절한 핸들러를 등록한 후 MRTR을 자동으로 처리한다. 또한 상태 유지 세션이 있는 경우 이전 클라이언트와의 호환성 브리지를 사용할 수 있다. 세션 없이 작동하는 이전 클라이언트는 다중 라운드 상호작용을 수행할 수 없으므로, 도구는 필요한 값을 호출 매개변수로 직접 전달하는 방식과 같은 대체 경로를 제공해야 한다.

호환성 및 제공 패키지

폐기되지 않은 안정적인 1.x API는 2.0에서도 계속 컴파일되고 실행되며, 변경된 폐기 예정 항목은 삭제되지 않고 경고로 표시된다. 2.0 클라이언트는 이전 서버에 연결할 때 기존 초기화 핸드셰이크를 사용할 수 있으며, 2.0 서버도 이전 클라이언트의 해당 핸드셰이크를 수락한다.

프로토콜 호환성의 유일한 예외는 Tasks 확장이다. 2.0에서 재설계된 방식이 2025-11-25 사양에 포함된 실험적 Tasks를 대체하며, 인터페이스 또는 프로토콜 수준에서 서로 호환되지 않는다. Tasks는 이제 별도 패키지인 ModelContextProtocol.Extensions.Tasks로 제공되며, 실험적인 MCP Apps는 ModelContextProtocol.Extensions.Apps에 포함된다.

핵심 패키지에는 클라이언트와 저수준 구성 요소를 위한 ModelContextProtocol.Core, 대부분의 서버를 위한 ModelContextProtocol, Streamable HTTP 서버를 위한 ModelContextProtocol.AspNetCore가 포함된다. 게시물은 2.x 시리즈의 다음 초점이 OAuth 및 OpenID Connect와의 더욱 긴밀한 호환성을 기반으로 한 포괄적인 인증 및 권한 부여가 될 것이라고 밝혔다.

뉴스 출처
.NET Blog
원문 보기 ↗
c
작성자

certi.news Editorial Team

핵심 내용

Microsoft가 C#용 공식 MCP 패키지 버전 2.0을 출시했습니다. 기본 전송 방식으로 상태 비저장(stateless)을 채택하고, 대화형 도구를 위한 다중 라운드 요청을 지원합니다. 이번 버전은 1.x API와 폭넓은 호환성을 유지하지만, 기존의 실험적 Tasks 확장과는 호환되지 않습니다.

  • 버전 2.0에서는 HTTP를 통해 실행되는 MCP 서버가 기본적으로 상태 비저장 방식으로 동작하므로, 프로토콜 수준에서 영구 세션이나 공유 세션 저장소가 필요하지 않습니다.
  • Mcp-Method 및 Mcp-Name과 같은 표준 HTTP 헤더가 추가되었습니다. 헤더의 값이 JSON-RPC 본문에 있는 값과 충돌하면 요청이 거부됩니다.
  • MRTR 기능을 사용하면 지속적인 세션 없이도 InputRequiredResult와 requestState를 통해 여러 라운드에 걸쳐 대화형 도구를 실행할 수 있습니다.
  • 이 패키지는 net8.0, net9.0, net10.0 및 netstandard2.0 프레임워크를 지원합니다. 안정적인 1.x API는 컴파일 및 실행 호환성을 유지하며, 변경된 부분은 사용 중단 경고로 표시됩니다.
  • 버전 2.0의 Tasks 확장은 2025-11-25 사양의 실험적 Tasks와 호환되지 않으며, 현재 별도 패키지로 제공됩니다.

자주 묻는 질문

HTTP를 통한 MCP 서버의 새로운 기본 설정은 무엇인가요?

HttpServerTransportOptions.Stateless 옵션이 기본적으로 true로 설정됩니다. 필요한 경우 상태 저장 모드를 계속 사용할 수 있습니다.

버전 2.0은 이전 버전의 클라이언트 및 서버와 호환되나요?

예. 2.0 클라이언트는 이전 서버와 기존 초기화 핸드셰이크를 사용할 수 있으며, 2.0 서버도 이전 클라이언트의 핸드셰이크를 수락합니다. 그러나 이전 버전의 상태 비저장 클라이언트는 다중 라운드 상호작용을 수행할 수 없습니다.

제공되는 핵심 패키지는 무엇인가요?

저수준 구성 요소를 위한 ModelContextProtocol.Core, 대부분의 서버를 위한 ModelContextProtocol, Streamable HTTP 서버를 위한 ModelContextProtocol.AspNetCore가 포함됩니다.

같은 카테고리

추천 기사

모든 뉴스 보기