用途:在 Next.js 16 App Router 项目中集成 Clerk 身份验证,并提供从 Next.js 15 的 middleware.ts 向 proxy.ts 迁移的指引,以及基于 Clerk 的 MCP 服务器集成方案。
主要能力:使用 clerkMiddleware() 处理认证中间件;通过 auth.protect() 保护路由或整体路由;读取用户数据(客户端 useUser() 钩子、服务端 auth() 与 clerkClient());校验环境变量;集成 MCP 服务器(需 @vercel/mcp-adapter 与 @clerk/mcp-tools),并暴露 OAuth 元数据端点。
使用方式:安装依赖 pnpm add @clerk/nextjs,MCP 场景再装 pnpm add @vercel/mcp-adapter @clerk/mcp-tools;在根目录或 /src 创建 proxy.ts 导出 clerkMiddleware() 与 config.matcher;在 .env.local 配置 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY、CLERK_SECRET_KEY、NEXT_PUBLIC_CLERK_SIGN_IN_URL 等;在 app/layout.tsx 用 ClerkProvider 包裹,并可用 SignInButton、SignUpButton、SignedIn、SignedOut、UserButton;运行 pnpm dev。
适用场景:Next.js 16 App Router 应用的登录注册、路由保护、用户信息读取及 MCP 服务器 OAuth 集成。
限制:仅支持 Next.js 16 App Router,不使用 Pages Router;proxy.ts 必须置于根目录或 /src,不能放在 app/(Next.js 15 及以下仍用 middleware.ts,代码相同);默认不保护任何路由;MCP OAuth 令牌在公开测试期免费,定价待定;需在 Clerk Dashboard 启用 Dynamic Client Registration。资料未提供收费与价格细节,未说明平台兼容细节。