VL

vercel-labs/mcp-handler

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

694 stars 94 forks Качество 67 Тренд 36

Легко запустить MCP-сервер на Next.js, Nuxt, Svelte и других

Обзор

MCP-handler — это независимый от фреймворка HTTP-адаптер для размещения серверов Model Context Protocol (MCP) в приложениях JavaScript и TypeScript. Он превращает определение сервера MCP в веб-стандарт (Request) => Promise обработчик, который можно монтировать в Next.js, Nuxt/Nitro, SvelteKit, Hono и других фреймворках, совместимых с Fetch. Построенный на базе MCP SDK v2, он обслуживает спецификацию MCP нативно, при этом прозрачно возвращаясь к безсостоятельному потоковому HTTP для клиентов эпохи 2025 года — один обработчик, оба поколения протоколов. : mcp-handler 2.x требует пакетов MCP SDK v2 (@modelcontextprotocol/server ^2.0.0), zod ^4.2.0 и Node.js 20+. Если у вас @modelcontextprotocol/sdk 1.x, используйте mcp-handler 1.x. createMcpHandler возвращает веб-стандартный обработчик запросов, поэтому пакет не привязан к Vercel или какому-либо конкретному фреймворку. Его можно монтировать в: - Next.js Route Handlers — обработчики серверов Nuxt/Nitro, использующие fromWebHandler - Маршруты сервера SvelteKit — Hono маршруты с использованием c.req.

Обзор (машинный перевод)

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-handler 2.x требует пакетов MCP SDK v2 (@modelcontextprotocol/server ^2.0.0), zod ^4.2.0 и Node.js 20+. Если у вас есть @modelcontextprotocol/sdk 1.x, используйте mcp-handler 1.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-handler 2.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/sdk 1.x, use mcp-handler 1.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 Request and Response APIs

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 };
Открыть полный README на GitHub

Установка

npx -y mcp-remote http://localhost:3000/api/mcp
Новичок в MCP? Начните с руководства на mcpskill.org →