@haram

MCP v2.0 출시 — Hono와 Cloudflare로 서버리스 에이전트 도구 만들기
요즘 AI 에이전트를 만들 때 꼭 언급되는 기술이 있습니다. 바로 AI와 다양한 외부 도구를 매끄럽게 연결해 주는 모델 컨텍스트 프로토콜(MCP)입니다.
이 MCP가 최근 v2.0 규격으로 개정되면서 완전히 새로워졌습니다. 핵심은 복잡한 연결 유지 단계를 과감히 없애고, 요청과 응답을 가볍게 주고받는 무상태 구조로 탈바꿈했다는 점인데요.
덕분에 이제 웹소켓처럼 상시 연결을 유지하는 무거운 서버를 감당할 필요가 없어졌습니다. 가장 가볍고 빠른 서버리스 환경인 클라우드플레어 워커스(Cloudflare Workers)에 나만의 에이전트 도구를 단 5분 만에 올릴 수 있게 된 것이죠. 한층 명쾌해진 새로운 MCP의 매력과 이를 엣지 서버에 가장 깔끔하게 배포하는 방법을 함께 살펴보겠습니다.
연결 세션이 사라졌다! MCP v2.0이 가벼운 이유
기존의 MCP 서버는 클라이언트가 접속하면 악수를 나누듯 복잡한 초기 핸드셰이크를 주고받고, 세션 ID를 만들어 연결 상태를 계속 유지해야 했습니다. 이 때문에 상시 켜져 있는 서버를 유지하며 비용을 내거나, 서버리스 환경에 억지로 올리기 위해 복잡한 편법을 써야 했습니다.
하지만 최근 발표된 MCP v2.0 규격에서는 이 번거로운 연결 과정이 통째로 사라졌습니다. 이제 모든 요청이 클라이언트 메타데이터와 버전을 스스로 품고 날아오는 무상태 방식으로 완전히 바뀌었기 때문입니다.
덕분에 이제는 연결을 굳이 붙잡고 있을 필요가 없습니다. 요청이 들어올 때만 잠깐 켜져서 반응하는 클라우드플레어 워커스 같은 서버리스 환경과 찰떡궁합을 자랑하게 된 것이죠. 매달 나가는 서버 유지비 부담 없이, 가볍고 빠른 나만의 AI 에이전트 도구를 배포할 최고의 조건이 갖춰졌습니다.
Hono 어댑터로 완성하는 초간단 엣지 서버 코드
이번 MCP v2.0 업데이트에서 개발자들이 가장 반긴 소식은 공식 패키지가 역할별로 가볍게 쪼개져 출시되었다는 점입니다. 그중에서도 @modelcontextprotocol/hono 어댑터는 가벼운 엣지 서버를 구축할 때 엄청난 편리함을 제공합니다. 웹 표준 기반의 초경량 프레임워크인 Hono 위에서 단 몇 줄의 코드만으로 보안 걱정 없는 서버를 완성할 수 있기 때문입니다.
기존의 일체형 패키지 대신 딱 필요한 핵심 모듈만 설치하므로 서버가 켜지고 요청에 응답하는 속도가 압도적으로 빠릅니다. 도구에 들어오는 입력값을 검증하는 작업도 Zod를 사용해 깔끔하고 안전하게 처리할 수 있어 초보자도 안심하고 개발할 수 있습니다.
실제 코드가 얼마나 간단한지 클라우드플레어 워커스에 바로 배포할 수 있는 최소한의 뼈대 코드로 살펴보겠습니다.
import { McpServer } from "@modelcontextprotocol/server";
import { createMcpHonoApp } from "@modelcontextprotocol/hono";
import { z } from "zod";
// 1. MCP 서버 인스턴스 생성
const server = new McpServer({
name: "shipping-agent-server",
version: "1.0.0",
});
// 2. 에이전트가 사용할 도구 등록
server.tool(
"calculate-shipping",
"배송비를 계산합니다.",
{ weight: z.number().describe("무게 (kg)") },
async ({ weight }) => {
const fee = weight * 5000;
return {
content: [{ type: "text", text: `예상 배송비는 ${fee}원입니다.` }]
};
}
);
// 3. Hono 앱 생성 및 연동
const app = createMcpHonoApp(server);
export default app;이처럼 createMcpHonoApp에 우리가 만든 서버 인스턴스를 통째로 넘겨주기만 하면 Hono가 알아서 연동 작업을 끝마칩니다. 내부적으로 데이터 파싱은 물론 로컬호스트를 노리는 보안 위협을 자동으로 차단하는 필터링 기능까지 기본으로 탑재되어 있습니다. 덕분에 개발자는 에이전트가 실제로 수행할 도구의 비즈니스 로직 개발에만 온전히 집중할 수 있습니다.
엣지 성능 100% 쥐어짜기: preloadSchemas 최적화
클라우드플레어 워커스처럼 요청당 CPU 처리 시간을 기준으로 비용을 매기는 엣지 환경에서는 아주 작은 지연 시간도 성능과 비용에 직접적인 영향을 줍니다. 이번 MCP SDK v2는 첫 요청이 들어올 때 내부 통신용 스키마를 실시간으로 빌드하는 지연 평가 방식을 사용합니다. 일반적인 서버 환경에서는 문제가 없지만, 인스턴스가 빠르게 켜지고 꺼지는 서버리스 환경에서는 첫 번째 요청이 들어올 때 불필요한 연산 병목을 일으킬 수 있습니다.
이를 완벽하게 보완하는 해결책이 바로 preloadSchemas 함수입니다. 이 함수를 코드의 최상단에서 동기식으로 호출해 주면, 서버가 활성화되는 실행 준비 시간 동안 스키마 생성을 미리 끝내 놓습니다. 덕분에 첫 에이전트 요청이 유입될 때 발생하던 콜드 스타트 지연과 병목 현상을 깔끔하게 우회할 수 있습니다.
import { preloadSchemas } from "@modelcontextprotocol/server";
// 코드 최상단 모듈 범위에서 동기식으로 호출해 줍니다.
preloadSchemas();특히 이번 SDK v2는 클라우드플레어 워커스 빌드 환경을 감지하면 이 작업을 자동으로 처리하도록 내장되었습니다. 직접 빌드 설정을 튜닝하거나 다른 엣지 플랫폼으로 이식할 때만 위 코드를 직접 명시해 주면 됩니다. 배포 역시 Wrangler 도구 덕분에 명령어 한 줄이면 끝납니다.
# 완성된 코드를 전 세계 엣지에 배포합니다
npx wrangler deploy인프라 걱정 없이 시작하는 에이전트 도구 만들기
무상태 구조로 거듭난 MCP v2.0과 클라우드플레어 워커스의 만남은 개인 개발자와 창작자들에게 무척 반가운 변화입니다. 복잡한 서버 가상 머신이나 도커 설정 없이도 가볍게 동작하는 나만의 에이전트 도구를 비용 부담 없이 띄워볼 수 있으니까요. 평소 상시 구동 서버의 비용이나 인프라 관리가 부담스러웠다면, 이번 주말에 Hono 어댑터를 활용해 나만의 작고 유용한 도구부터 직접 배포해 보는 것은 어떨까요?