Hi,
I have a nextjs app and under /mcp there is this file:
import { createMcpHandler } from "mcp-handler";import axios from "axios";import { z } from "zod";
const handler = createMcpHandler( async (server) => { server.tool( "example", "example-tool", { key: z.string(), }, async (args, context) => { const authHeader = context?.requestInfo?.headers["authorization"]; console.log(authHeader);
try { const url = `https://exampleapi.com/`;
const res = await axios.get(url);
switch (res.status) { case 400: throw new Error("Missing"); case 404: throw new Error("Not Valid"); case 423: throw new Error("Product Blocked"); case 402: throw new Error("Payment Required"); case 500: throw new Error("Internal Server Error"); }
return { content: [ { type: "text", text: res.data, }, ], }; } catch (error) { return { content: [ { type: "text", text: error, }, ], }; } }, ); }, { capabilities: { tools: { example: { description: "Get example data!", }, }, }, }, { basePath: "", verboseLogs: false, maxDuration: 60, disableSse: true, onEvent: async (event) => { console.log(event); } },);
export { handler as GET, handler as POST, handler as DELETE };
when i am now doing a second one under /internal-api/mcp with the same file i get a 404 returned. How can I have multiple mcps in one project?
This is my proxy.ts
import createMiddleware from "next-intl/middleware";
export default createMiddleware({ locales: ["en", "de"], localeDetection: true, localePrefix: "never", defaultLocale: "en",});
export const config = { matcher: ["/((?!api|_next|internal-api|mcp|.*\\..*).*)"],};