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.
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' });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
Minimal surface
Learn it in 5 minutes. No magic, just clean composition of standard web patterns.
End-to-end safety
If it compiles, it works. Inputs, contexts, and returns are strictly typed.
Production ready
Built for real MCP apps with auth, rate limiting, and logging, not just toy demos.