MCP v2.0 SDK 출시 — 무상태 HTTP와 OAuth 2.1 보안 표준 도입

Maru

@maru

MCP v2.0 SDK 출시 — 무상태 HTTP와 OAuth 2.1 보안 표준 도입

MCP v2.0 SDK 출시 — 무상태 HTTP와 OAuth 2.1 보안 표준 도입

인공지능 에이전트와 외부 도구를 연결하는 기술 표준인 모델 컨텍스트 프로토콜(MCP)이 무상태 HTTP 아키텍처로 전면 개편됩니다. 기존 MCP는 로컬 중심의 표준 입출력이나 세션 유지가 필수적인 서버 전송 이벤트 방식에 의존하여 분산 서버 환경에서 확장하기 까다로운 한계가 있었습니다. 최근 공개된 2026-07-28 명세 후보와 TypeScript SDK v2.0은 이 제약을 극복하고, 무상태 네트워크 설계와 강력한 엔터프라이즈 보안 사양을 도입해 대규모 프로덕션 환경 구축을 무리 없이 지원합니다.

무상태 HTTP 설계로의 패러다임 변화와 패키지 분할

모델 컨텍스트 프로토콜 명세 후보와 TypeScript SDK v2.0의 핵심 변화는 무상태 HTTP 전송으로의 전면적인 전환입니다. 기존 사양에서는 서버가 클라이언트와 연결을 유지하며 세션 ID를 발급하고 관리해야 했습니다. 이 때문에 대규모 서비스에서 서버를 수평 확장하려면 로드 밸런서에 스티키 세션을 지정하거나 별도의 세션 공유 저장소를 구축해야 하는 인프라 부담이 따랐습니다.

반면 새롭게 개편된 명세에서는 초기 핸드셰이크 과정이 생략되고, 프로토콜 버전과 기능 정의가 매 요청마다 독립적으로 전송됩니다. 모든 요청이 완전히 스스로 동작할 수 있는 자급식 구조로 설계된 덕분에, 개발자는 복잡한 세션 유지 없이 일반적인 라운드 로빈 방식의 로드 밸런싱을 통해 서버 인스턴스를 자유롭게 분산 배치할 수 있습니다.

이러한 무상태 아키텍처를 원활하게 구현할 수 있도록 기존의 단일 SDK 패키지는 서버 개발을 위한 @modelcontextprotocol/server와 클라이언트 개발을 위한 @modelcontextprotocol/client로 깔끔하게 분할되었습니다. 또한 개발자가 선호하는 웹 프레임워크에 맞춰 통합할 수 있도록 다양한 경량 어댑터 패키지가 함께 제공됩니다.

예를 들어 웹 표준 인터페이스를 지원하는 Hono나 클라우드플레어 워커스 환경에서는 SDK가 제공하는 표준 핸들러를 별도의 변환 없이 직접 서빙할 수 있습니다. 반면 기존 Node.js 생태계에서 널리 쓰이는 Express 환경이라면 다음과 같이 전용 어댑터를 통해 몇 줄의 코드만으로 라우터에 쉽게 연동할 수 있습니다.

typescript
// @modelcontextprotocol/server v2.0 및 Node.js 어댑터 기준
import express from 'express';
import { createMcpHandler, McpServer } from '@modelcontextprotocol/server';
import { toNodeHandler } from '@modelcontextprotocol/node';

const mcpHandler = createMcpHandler(() => {
  const server = new McpServer({ name: 'enterprise-tools', version: '2.0.0' });
  // 여기에 도구 및 리소스 등록 로직을 추가합니다.
  return server;
});

const app = express();
app.all('/mcp', toNodeHandler(mcpHandler));
app.listen(3000);

새로운 무상태 설계와 모듈화된 패키지 구성 덕분에 가벼운 가상 서버나 서버리스 서버뿐만 아니라 복잡한 마이크로서비스 아키텍처 내에서도 MCP 도구 서버를 매우 유연하게 구축하고 운영할 수 있게 되었습니다.

OAuth 2.1과 RFC 9728 기반의 보안 상호연동 구조

에이전트가 외부 서버의 도구를 동적으로 탐색하고 안전하게 실행하려면 견고한 인증 체계가 뒷받침되어야 합니다. MCP v2는 대규모 분산 환경에 대응하기 위해 최신 보안 표준인 OAuth 2.1과 OAuth 보호 자원 메타데이터 명세인 RFC 9728을 핵심 인증 아키텍처로 채택했습니다.

비인증 상태의 에이전트 클라이언트가 도구 실행 API를 호출하면, MCP 서버는 요청을 거절하는 동시에 클라이언트가 스스로 인증 방식을 파악할 수 있도록 챌린지 응답을 전송합니다. 이때 서버는 401 Unauthorized 상태 코드와 함께 WWW-Authenticate 헤더에 보호 자원 메타데이터 경로를 담아 반환합니다.

http
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer resource_metadata="https://mcp.example.com/.well-known/oauth-protected-resource"

클라이언트는 헤더에 명시된 resource_metadata 엔드포인트에 접근해 해당 MCP 서버가 신뢰하는 인가 서버 주소와 지원하는 권한 범위를 서술한 JSON 메타데이터를 가져옵니다. 이를 통해 에이전트는 하드코딩된 인증 정보 없이도 기계적으로 다음 단계의 OAuth 2.1 인가 코드 흐름을 시작할 수 있습니다. 결과적으로 이 구조는 다수의 MCP 서버와 클라이언트가 복잡한 사전 연동 설정 없이도 신뢰 경계를 동적으로 확장할 수 있는 고도의 상호운용성을 제공합니다.

Standard Schema v1.0 통합으로 간결해진 인터페이스 검증

에이전트가 실행하는 도구의 입력값을 실시간으로 검증하는 아키텍처도 대폭 개편되었습니다. MCP TypeScript SDK v2는 타입스크립트 에코시스템의 공통 검증 명세인 Standard Schema v1.0을 내장했습니다. 이에 따라 Zod, Valibot, ArkType 등 어떤 검증 라이브러리를 사용하더라도 별도의 어댑터나 변환 레이어 없이 도구의 입력 스키마로 직접 활용할 수 있습니다.

과거에는 SDK 내부에 특정 버전의 Zod 의존성이 강하게 결합되어 있어, 개발자 프로젝트의 Zod 버전과 충돌하거나 JSON 스키마 변환 과정에서 스키마가 누락되는 등의 의존성 문제가 잦았습니다. v2 SDK는 Standard Schema 규격을 충족하는 객체라면 무엇이든 inputSchema로 즉시 바인딩하므로 이러한 고질적인 버전 갈등을 완벽히 해결합니다.

다음은 @modelcontextprotocol/server 패키지를 사용하여 Zod 스키마로 도구를 등록하는 예시입니다.

typescript
import { McpServer } from "@modelcontextprotocol/server";
import { z } from "zod";

const server = new McpServer({
  name: "weather-service",
  version: "1.0.0"
});

server.registerTool(
  "get_weather",
  {
    description: "특정 도시의 현재 날씨를 조회합니다.",
    inputSchema: z.object({
      city: z.string().describe("날씨를 조회할 도시 이름 (예: 서울, 부산)")
    })
  },
  async ({ city }) => {
    return {
      content: [{ type: "text", text: `${city}의 날씨는 맑음입니다.` }]
    };
  }
);

이 방식을 활용하면 호출 시점에 클라이언트가 보낸 요청 본문이 정의한 스키마에 맞춰 자동으로 검증됩니다. 개발자는 복잡한 수동 파싱 과정 없이 핸들러 내부에서 정적 타입이 보장된 입력 인자를 즉시 사용할 수 있어 런타임 안정성과 개발 경험이 대폭 향상됩니다.

분산 환경에서 실현되는 보안 도구 인프라

무상태 HTTP 설계와 OAuth 2.1 표준 보안 체계를 결합한 MCP v2.0은 AI 에이전트 연동을 단순한 프로토타입 수준에서 진정한 엔터프라이즈급 마이크로서비스 아키텍처로 끌어올립니다.

이제 개발자들은 클라이언트에 결합한 무거운 연동 로직 대신, 독립적으로 스케일 아웃이 가능하고 보안이 검증된 분산형 MCP 도구 네트워크를 구축할 수 있습니다. Vercel AI SDK나 LangChain 같은 주요 에이전트 프레임워크가 이를 빠르게 흡수하고 있는 만큼, 무상태 API 기반의 도구 생태계 구축은 실전 프로덕션 도입을 위한 필수 선택지가 될 것입니다.


참고 링크