import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js"; import { NextResponse } from "next/server"; import { auth } from "@/app/(auth)/auth"; import { createCanvasCapabilityMcpServer } from "@/lib/canvas/capabilities/mcp-server"; export const dynamic = "force-dynamic"; export const maxDuration = 600; async function handleMcpRequest( request: Request, { params }: { params: Promise<{ id: string }> } ) { const session = await auth(); if (!session?.user?.id) { return NextResponse.json( { error: "未登录,无法访问画布 MCP 服务" }, { status: 401 } ); } const { id: projectId } = await params; const transport = new WebStandardStreamableHTTPServerTransport({ enableJsonResponse: true, }); const server = await createCanvasCapabilityMcpServer({ projectId, requestHeaders: request.headers, requestUrl: request.url, userId: session.user.id, }); await server.connect(transport); return transport.handleRequest(request); } export const POST = handleMcpRequest; export const GET = handleMcpRequest; export const DELETE = handleMcpRequest;