---
schema_version: "newruntime-agent-readable-v0.2"
type: "post"
stable_id: "post:vercel-mcp-handler-stateless-protocol-bridge"
slug: "vercel-mcp-handler-stateless-protocol-bridge"
title: "Vercel's mcp-handler 2.0 Makes MCP Servers More Stateless"
description: "mcp-handler 2.0 supports the 2026-07-28 MCP spec while keeping older Streamable HTTP clients on the same endpoint and removing Redis or session-storage requirements."
retrieval_nugget: "mcp-handler 2.0 supports the 2026-07-28 MCP spec while keeping older Streamable HTTP clients on the same endpoint and removing Redis or session-storage requirements. Vercel's mcp-handler 2.0 release is small, but it points to where MCP server packaging is going: less bespoke state machinery and more framework-native endpoints. The release supports the 2026-07-28 MCP specification and the new @modelcontextprotocol/server package."
status: "published"
published_at: "2026-07-30"
updated_at: "2026-07-30"
record_date: "2026-07-30"
date_kind: "published_at"
topics: ["mcp","developer-tools","api-design","infrastructure"]
source_urls: ["https://x.com/vercel_dev/status/2082861506316873959","https://vercel.com/changelog/latest-mcp-spec-now-supported-in-mcp-handler"]
visuals: [{"id":"vercel-mcp-handler-stateless-protocol-bridge-nano-banana","kind":"editorial-diagram","role":"hero","src":"https://newruntime.com/images/posts/vercel-mcp-handler-stateless-protocol-bridge-nano-banana.webp","alt":"Hand-drawn architecture diagram where new and older MCP clients route through one web handler into tool cards while session storage is crossed out.","caption":"mcp-handler 2.0 makes a single web route carry the new stateless protocol and a compatibility path without Redis or session storage.","credit":"New Runtime synthesis from public source inspection","source_url":"https://vercel.com/changelog/latest-mcp-spec-now-supported-in-mcp-handler","generated_with":"nano-banana-style-imagegen","width":1600,"height":900,"legend":[{"label":"Current spec","description":"The release supports the 2026-07-28 MCP spec and MCP TypeScript SDK v2."},{"label":"Compatibility","description":"Existing stateless Streamable HTTP clients can continue using the same MCP endpoint."},{"label":"No sessions","description":"The handler runs both paths without Redis or per-client session storage."}]}]
routes: {"html":"https://newruntime.com/posts/vercel-mcp-handler-stateless-protocol-bridge/","markdown":"https://newruntime.com/posts/vercel-mcp-handler-stateless-protocol-bridge.md","json":"https://newruntime.com/posts/vercel-mcp-handler-stateless-protocol-bridge.json"}
source_format: "markdown"
---

# Vercel's mcp-handler 2.0 Makes MCP Servers More Stateless

## Retrieval answer

mcp-handler 2.0 supports the 2026-07-28 MCP spec while keeping older Streamable HTTP clients on the same endpoint and removing Redis or session-storage requirements. Vercel's mcp-handler 2.0 release is small, but it points to where MCP server packaging is going: less bespoke state machinery and more framework-native endpoints. The release supports the 2026-07-28 MCP specification and the new @modelcontextprotocol/server package.

Vercel's `mcp-handler` 2.0 release is small, but it points to where MCP server packaging is going: less bespoke state machinery and more framework-native endpoints.

The release supports the 2026-07-28 MCP specification and the new `@modelcontextprotocol/server` package. It also keeps a stateless compatibility layer for clients still using 2025-era Streamable HTTP, so a server can adopt the latest protocol without forcing every client to move at once.

The practical detail is important: both paths run without Redis or session storage. MCP servers have often been treated as small sidecars that need their own deployment habits. A stateless route handler makes them easier to run inside existing web frameworks and serverless-style infrastructure.

The upgrade command is explicit:

```bash
npm install mcp-handler@^2 @modelcontextprotocol/server@^2 zod@^4
```

Vercel's example creates `app/api/mcp/route.ts`, registers a tool through `registerTool`, sets `basePath: "/api"`, and exports the same handler as `GET` and `POST`. MCP clients then connect to `/api/mcp`.

There are real migration constraints. Version 2 requires Node.js 20 or later and zod 4. It replaces `@modelcontextprotocol/sdk` with `@modelcontextprotocol/server`. The old HTTP+SSE transport is removed; `/sse` and `/message` now return `410 Gone`, so clients that still depend on that transport should stay on 1.x while migrating.

## New Runtime Read

This is the MCP version of a broader infrastructure move: agent capabilities are becoming normal web routes with clear protocol versions, compatibility lanes, and deployment boundaries.

That matters for product teams because the MCP server stops being an experimental daemon hidden next to the app. It becomes an API surface that can be reviewed, tested, deployed, and rolled back like the rest of the system.
