Runtime agnostic
One app definition for Bun, Node, Cloudflare, and Vercel — host on Railway, Cloud Run, Fly, and more.
Define tools, resources, and prompts once. Run on Bun or Node; adapt to Cloudflare or Vercel. Host on Railway, Cloud Run, Fly, and more.
01import { Redop } from "@redopjs/redop";02import { z } from "zod";03 04const app = new Redop({05 serverInfo: {06 name: "docs-server",07 title: "Docs Server",08 version: "0.1.0",09 description: "Search docs and return answers.",10 },11})12 .tool("search_docs", {13 description: "Search internal docs",14 inputSchema: z.object({15 query: z.string().min(1),16 }),17 handler: ({ input }) => ({18 query: input.query,19 results: [],20 }),21 });22 23app.listen(3000);One app definition for Bun, Node, Cloudflare, and Vercel — host on Railway, Cloud Run, Fly, and more.
Define tools with Zod, Standard Schema, TypeBox, or plain JSON Schema and keep inference.
Compose auth, rate limits, logging, and custom plugins without bolting on a second framework.
Use before, after, and afterResponse hooks for analytics and best-effort work after the reply.
HTTP and stdio from one API, with MCP 2026-07-28 support for scalable deployments.
Start local in seconds with create-redop-app, then pick a deploy preset when you are ready.
Same tools, resources, and prompts. Swap only the last lines for Bun, Node, Cloudflare, or Vercel — then deploy to Railway, Cloud Run, Fly, Workers, or Vercel Functions.