Bun-native framework for building MCP servers.

Define tools, validate input, compose middleware, and add plugins. Get strong TypeScript inference from Zod and run natively on Bun.

bun create redop-app
Used byUseAgents
server.ts
import { Redop } from 'redop';
import { z } from 'zod';

const app = new Redop({ name: 'my-mcp' })
  .middleware(authMiddleware)
  .tool('get_weather', {
    description: 'Get current weather',
    input: z.object({
      location: z.string(),
    },
    async handler({ input }) {
      // input.location is fully typed
      return await fetchWeather(input.location);
    },
  },
  .listen({ transport: 'stdio' });
Typed tools
Zod inference
Middleware + plugins
HTTP + stdio
Bun-native

Everything you need.

Built-in primitives for the real world. Stop writing the same validation and transport layers.

Typed Tools

Define tools with full TS inference using Zod v4, Standard Schema, or JSON Schema.

Middleware

Add middleware for auth, rate limiting, and caching to control request flow.

Lifecycle Hooks

Global and tool-local before/after hooks for analytics and observability.

Plugin System

Build and share reusable framework extensions across your MCP servers.

Philosophy

01. Small API

Minimal surface

Learn it in 5 minutes. No magic, just clean composition of standard web patterns.

02. Typed by default

End-to-end safety

If it compiles, it works. Inputs, contexts, and returns are strictly typed.

03. For real apps

Production ready

Built for real MCP apps with auth, rate limiting, and logging, not just toy demos.