ModelFetch is a delightful TypeScript/JavaScript SDK for building and deploying MCP servers anywhere TypeScript/JavaScript runs.
Get started in seconds using our create-modelfetch
CLI:
npx -y create-modelfetch@latest
ModelFetch works with any McpServer
instance from the official MCP TypeScript SDK. Here's all it takes:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; const server = new McpServer({ title: "My MCP Server", name: "my-mcp-server", version: "1.0.0", }); server.registerTool( "roll_dice", { title: "Roll Dice", description: "Rolls an N-sided dice", inputSchema: { sides: z.number().int().min(2) }, }, ({ sides }) => ({ content: [ { type: "text", text: `🎲 You rolled a ${1 + Math.floor(Math.random() * sides)}!`, }, ], }), ); export default server;Run it anywhere with ModelFetch's
handle()
function
import handle from "@modelfetch/node"; // Choose your runtime import server from "./server"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/next"; // Choose your runtime import server from "./server"; // Import your server const handler = handle(server); // That's it — ModelFetch handles all runtime-specific details export const GET = handler; export const POST = handler; export const DELETE = handler;
import handle from "@modelfetch/bun"; // Choose your runtime import server from "./server.ts"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/deno"; // Choose your runtime import server from "./server.ts"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/vercel"; // Choose your runtime import server from "./server"; // Import your server const handler = handle(server); // That's it — ModelFetch handles all runtime-specific details export const GET = handler; export const POST = handler; export const DELETE = handler;
import handle from "@modelfetch/cloudflare"; // Choose your runtime import server from "./server"; // Import your server export default { fetch: handle(server), // That's it — ModelFetch handles all runtime-specific details } satisfies ExportedHandler<Env>;
import handle from "@modelfetch/netlify"; // Choose your runtime import server from "../server.ts"; // Import your server export default handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/fastly"; // Choose your runtime import server from "./server"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/supabase"; // Choose your runtime import server from "./server.ts"; // Import your server handle("mcp-server", server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/gcore"; // Choose your runtime import server from "./server"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/aws-lambda"; // Choose your runtime import server from "./server"; // Import your server export const handler: AWSLambda.LambdaFunctionURLHandler = handle(server); // That's it — ModelFetch handles all runtime-specific details
import handle from "@modelfetch/azure-functions"; // Choose your runtime import server from "./server.js"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
That's just a few lines of code to make your McpServer
work across all supported platforms.
Every runtime package exports a default handle()
function that takes an McpServer
instance as its first parameter and handles all runtime-specific details:
import handle from "@modelfetch/node"; // Choose your runtime import server from "./server"; // Import your server handle(server); // That's it — ModelFetch handles all runtime-specific details
ModelFetch provides runtime-specific packages that handle tedious platform differences while you focus on building your MCP server capabilities. Each package maintains a consistent API across different runtimes.
Clone the repository:
git clone https://github.com/phuctm97/modelfetch.git cd modelfetch
Install dependencies:
Type check, lint, and build all projects
pnpm exec nx run-many -t typecheck lint build
# Run development server for a project pnpm exec nx dev @modelfetch/website # Type check all projects pnpm exec nx run-many -t typecheck # Lint and auto-fix all projects pnpm exec nx run-many -t lint --args=--fix # Build all projects pnpm exec nx run-many -t build # Format code pnpm -w format
ModelFetch is MIT licensed.
Built with ❤️ by Minh-Phuc Tran
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4