
vercel/mcp-handler
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Легко запустить MCP-сервер на Next.js, Nuxt, Svelte и других
Обзор
Адаптер Vercel для протокола Model Context Protocol (MCP), обеспечивающий взаимодействие в реальном времени между вашими приложениями и AI-моделями. Поддерживает Next.js и Nuxt. : Версии @modelcontextprotocol/sdk до 1.26.0 имеют уязвимость безопасности. Используйте версию 1.26.0 или более позднюю. Если ваш клиент поддерживает Streamable HTTP, подключитесь напрямую: - Интеграция с клиентом — Claude Desktop, курсор, настройка Windsurf — авторизация — проверка OAuth и токенов — расширенное использование — динамическая маршрутизация, Nuxt, опции конфигурации - : Next.js и Nuxt - : Потоковые HTTP и события, отправляемые сервером (SSE) - : Необязательно, для возобновления транспорта SSE - : Включены полные определения типов - Next.js 13+ или Nuxt 3+ - Node.js 18+ - Redis (опционально, для SSE)
Обзор (машинный перевод)
mcp-handler — это HTTP-адаптер, независимый от фреймворка, для размещения серверов Model Context Protocol (MCP) в приложениях JavaScript и TypeScript. Он превращает определение сервера MCP в веб-стандартный обработчик (Request) => Promise , который может монтироваться в Next.js, Nuxt/Nitro, SvelteKit, Hono и других фреймворках, совместимых с Fetch.
Построенный на базе MCP SDK v2, он обслуживает спецификацию 2026-07-28 MCP нативно, при этом прозрачно возвращается к безсостоятельному потоковому HTTP для клиентов эпохи 2025 года — один обработчик, оба поколения протоколов.
Установка
Примечание:
mcp-handler2.x требует пакетов MCP SDK v2 (@modelcontextprotocol/server^2.0.0), zod ^4.2.0 и Node.js 20+. Если у вас есть@modelcontextprotocol/sdk1.x, используйтеmcp-handler1.x.
Совместимость фреймворков
createMcpHandler возвращает веб-стандартный обработчик запросов, поэтому пакет не привязан к Vercel или какому-либо конкретному фреймворку. Его можно монтировать в:
- Next.js Обслуживающие маршруты
- Обработчики серверов Nuxt/Nitro с использованием
fromWebHandler - Маршруты серверов SvelteKit
- Маршруты Хоно с использованием
c.req.raw - Другие фреймворки, предоставляющие Fetch-совместимые API
RequestиResponse
Фреймворки, основанные на Node.
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
mcp-handler
mcp-handler is a framework-agnostic HTTP adapter for hosting Model Context Protocol (MCP) servers in JavaScript and TypeScript applications. It turns an MCP server definition into a Web-standard (Request) => Promise handler that can be mounted in Next.js, Nuxt/Nitro, SvelteKit, Hono, and other Fetch-compatible frameworks.
Built on MCP SDK v2, it serves the 2026-07-28 MCP specification natively while transparently falling back to stateless Streamable HTTP for 2025-era clients — one handler, both protocol generations.
Installation
npm install mcp-handler@^2 @modelcontextprotocol/server@^2 zod@^4
Note:
mcp-handler2.x requires the MCP SDK v2 packages (@modelcontextprotocol/server^2.0.0), zod ^4.2.0, and Node.js 20+. If you’re on@modelcontextprotocol/sdk1.x, usemcp-handler1.x.
Framework Compatibility
createMcpHandler returns a Web-standard request handler, so the package is not tied to Vercel or any particular framework. It can be mounted in:
- Next.js Route Handlers
- Nuxt/Nitro server handlers using
fromWebHandler - SvelteKit server routes
- Hono routes using
c.req.raw - Other frameworks that expose Fetch-compatible
RequestandResponseAPIs
Frameworks based on Node.js IncomingMessage and ServerResponse, such as Express, require a Web Request adapter or the official MCP framework middleware.
Quick Start (Next.js)
// app/api/mcp/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: z.object({
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}!` }],
};
},
);
});
export { handler as GET, handler as POST };
Установка
npx -y mcp-remote http://localhost:3000/api/mcp