Vercel now supports xmcp , a framework for building and shipping MCP servers with TypeScript, with zero-configuration. xmcp uses file-based routing to create tools for your MCP server. my-project/ βββ src/ β βββ middleware.ts β βββ tools/ β βββ greet.ts β βββ search.ts βββ package.json βββ tsconfig.json βββ xmcp.config.ts File-based routing using xmcp Once you've created a file for your tool, you can use a default export in a way that feels familiar to many other file-based routing frameworks. Below, we create a "greeting" tool. // src/tools/greet.ts import { z } from "zod" ; import { type InferSchema } from "xmcp" ; export const schema = { name : z . string ( ) . describe ( "The name of the user to greet" ) , } ; // Tool metadata export const metadata = { name : "greet" , description : "Greet the user" , } ; export default async function greet ( { name } : InferSchema < typeof schema > ) { const result = ` Hello, ${ name } !β¦