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:
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.
