Vercel
Easily spin up an MCP Server on Next.js, Nuxt, Svelte, and more.
Mind the Product take
If you're shipping on Vercel (and many modern product teams are), this MCP server gives your AI agent visibility into your deployment pipeline. Check deployment status, manage preview URLs, review build logs, and manage environment variables - all without opening the Vercel dashboard. Particularly useful during launch weeks when you're deploying frequently and need to quickly verify that previews are working for stakeholder review.
How product builders use Vercel
- 1Check deployment status and preview URLs during feature reviews
- 2Monitor build logs for deployment failures after pushes
- 3Manage environment variables across preview and production
- 4List recent deployments and their status for release tracking
- 5Quickly share preview URLs with stakeholders for feedback
Getting started
From the official Vercel README
mcp-handler
A Vercel adapter for the Model Context Protocol (MCP), enabling real-time communication between your applications and AI models. Supports Next.js and Nuxt.
Installation
npm install mcp-handler @modelcontextprotocol/sdk@1.26.0 zod@^3
Note: Versions of
@modelcontextprotocol/sdkprior to 1.26.0 have a security vulnerability. Use version 1.26.0 or later.
Quick Start (Next.js)
// app/api/[transport]/route.ts
import { createMcpHandler } from "mcp-handler";
import { z } from "zod";
const handler = createMcpHandler(
(server) => {
server.registerTool(
"roll_dice",
{
title: "Roll Dice",
description: "Roll a dice with a specified number of sides.",
inputSchema: {
sides: z.number().int().min(2),
},
},
async ({ sides }) => {
const value = 1 + Math.floor(Math.random() * sides);
return {
content: [{ type: "text", text: `🎲 You rolled a ${value}!` }],
};
}
);
},
{},
{
basePath: "/api", // must match where [transport] is located
maxDuration: 60,
verboseLogs: true,
}
);
export { handler as GET, handler as POST };
Connecting Clients
If your client supports Streamable HTTP, connect directly:
{
"remote-example": {
"url": "http://localhost:3000/api/mcp"
}
}
For stdio-only clients, use mcp-remote:
{
"remote-example": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3000/api/mcp"]
}
}
Documentation
- Client Integration - Claude Desktop, Cursor, Windsurf setup
- Authorization - OAuth and token verification
- Advanced Usage - Dynamic routing, Nuxt, configuration options
Features
- Framework Support: Next.js and Nuxt
- Multiple Transports: Streamable HTTP and Server-Sent Events (SSE)
- Redis Integration: Optional, for SSE transport resumability
- TypeScript Support: Full type definitions included
Requirements
- Next.js 13+ or Nuxt 3+
- Node.js 18+
- Redis (optional, for SSE)
License
Apache-2.0