关于 @vercel/mcp-adapter
mcp-handler 是与框架无关的 HTTP 适配器,可将 MCP 服务端定义转换为 Web 标准的请求处理函数,挂载到 Next.js、Nuxt、SvelteKit、Hono 等框架中。它面向 JavaScript 和 TypeScript 开发者,同时支持 2026-07-28 规范与 2025 年代的 Streamable HTTP 客户端。
主要功能
- 01基于 Web 标准 Request 与 Response 的处理函数
- 02兼容 Next.js、Nuxt/Nitro、SvelteKit 与 Hono
- 03同一处理函数同时支持两代协议
- 04附带 TypeScript 类型定义
- 05提供 OAuth 令牌验证与受保护资源元数据
适用场景
- 01在 Next.js 路由中托管 MCP 服务
- 02在 Nuxt 或 SvelteKit 服务端路由中提供远程 MCP 服务
- 03为仅支持 stdio 的客户端通过 mcp-remote 连接远程服务
MCP 相关
该项目用于构建 MCP 服务端:将 MCP 服务定义挂载为 HTTP 端点,供 MCP 客户端通过 Streamable HTTP 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-handler
mcp-handler 是一个与框架无关的 HTTP 适配器,可在 JavaScript 和 TypeScript 应用中托管 Model Context Protocol(MCP)服务。它会将 MCP 服务定义转换为符合 Web 标准的 (Request) => Promise<Response> 处理程序,可挂载到 Next.js、Nuxt/Nitro、SvelteKit、Hono 及其他兼容 Fetch 的框架中。
它基于 MCP SDK v2 构建,原生支持 2026-07-28 MCP 规范,同时会透明地回退到无状态 Streamable HTTP,以兼容 2025 年的客户端——一个处理程序,支持两个协议世代。
安装
npm install mcp-handler@^2 @modelcontextprotocol/server@^2 zod@^4
注意:
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 返回一个符合 Web 标准的请求处理程序,因此此软件包不依赖 Vercel 或任何特定框架。它可以挂载到:
- Next.js Route Handlers
- 使用
fromWebHandler的 Nuxt/Nitro 服务端处理程序 - SvelteKit 服务端路由
- 使用
c.req.raw的 Hono 路由 - 其他提供兼容 Fetch 的
Request和ResponseAPI 的框架
基于 Node.js IncomingMessage 和 ServerResponse 的框架(例如 Express)需要使用 Web Request 适配器或官方 MCP 框架中间件。
快速开始(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 };
/api/mcp 是一种约定,并非必需的路径。mcp-handler 不会检查
请求路径名,因此你可以将此处理程序放在任何框架路由下,并将该路由的完整 URL
提供给客户端。
连接客户端
如果你的客户端支持 Streamable HTTP,可直接连接:
{
"remote-example": {
"url": "http://localhost:3000/api/mcp"
}
}
对于仅支持 stdio 的客户端,请使用 mcp-remote:
{
"remote-example": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3000/api/mcp"]
}
}
协议支持
- 2026-07-28(当前版本):原生支持——无状态、无会话、每个请求都带有
_meta信封、server/discover。 - 2025 年的 Streamable HTTP:由同一处理程序通过 SDK 的无状态旧版回退机制提供支持。GET/DELETE 会话操作会返回
405(服务为无状态)。 - HTTP+SSE 传输(2024-11-05):已在 2.x 中移除。仅挂载 Streamable HTTP 处理程序;未挂载的
/sse和/message路径由你的框架处理。不再需要或使用 Redis。
授权(CIMD 时代)
2026-07-28 规范弃用 Dynamic Client Registration(DCR),改用 Client ID Metadata Documents(CIMD);在这种方式下,OAuth 客户端通过提供其元数据的 HTTPS URL 来表明自身身份。CIMD 支持由你的授权服务声明并实现(在其 RFC 8414 元数据中设置 client_id_metadata_document_supported);此软件包则会确保你的 MCP 服务资源服务端接口保持最新:
withMcpAuth会验证 bearer token,并使用符合 RFC 9728 的WWW-Authenticate挑战响应401/403,指向你的受保护资源元数据。protectedResourceHandler会提供 RFC 9728 Protected Resource Metadata 文档,其中列出你的授权服务。
有关接线配置的详细信息,请参阅授权。
从 1.x 迁移
- 安装
@modelcontextprotocol/server(v2)和zod@^4;移除@modelcontextprotocol/sdk和redis。 inputSchema/argsSchema接受完整的 Standard Schema(例如z.object({ ... })),而不是原始 zod 结构。- 已移除可变参数形式的
server.tool(...)/.prompt(...)/.resource(...),请改用registerTool/registerPrompt/registerResource。 - 在处理程序回调中,
extra.authInfo现在是ctx.http?.authInfo。 createMcpHandler(initialize, serverOptions, config)现在改为createMcpHandler(initialize, options)——使用一个选项对象,合并 SDK 的服务选项与serverInfo、verboseLogs和onEvent。- 已移除 1.x 中的路由和传输配置选项(
basePath、streamableHttpEndpoint、sseEndpoint、sseMessageEndpoint、disableSse、redisUrl、maxDuration和sessionIdGenerator)。请将处理程序挂载到所需路由。
文档
- 客户端集成 - Claude Desktop、Cursor、Windsurf 设置
- 授权 - OAuth 和令牌验证
- 高级用法 - 动态路由、Nuxt、配置选项
- WebMCP 桥接 - 向页面内 Agent 开放允许列表中的工具(实验性)
- MCP 事件 - 使用由应用程序管理的存储和交付,注册草案中的 webhook 订阅方法(实验性)
功能
- 与框架无关:符合 Web 标准的
Request和Response处理程序 - 兼容多种框架:Next.js、Nuxt/Nitro、SvelteKit、Hono 及其他兼容 Fetch 的框架
- 双时代协议支持:通过单个处理程序支持 2026-07-28(无状态)和 2025 年版 Streamable HTTP
- TypeScript 支持:内含完整类型定义
要求
- Node.js 20+
- 支持 Web 标准
Request和ResponseAPI 的框架,可直接支持或通过适配器支持 - 使用 Next.js 时需 Next.js 13+,使用 Nuxt 时需 Nuxt 3+
许可证
Apache-2.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。