> ## Documentation Index
> Fetch the complete documentation index at: https://redop.useagents.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Welcome to Redop

> The runtime-agnostic TypeScript framework for production MCP servers — tools, resources, prompts, plugins, hooks, and HTTP or stdio transports on Bun, Node, Cloudflare, or Vercel.

> The runtime-agnostic framework for production MCP servers.

<Frame>
  <img src="https://mintcdn.com/redop/xnbSAmZnafgHZVzH/images/hero.png?fit=max&auto=format&n=xnbSAmZnafgHZVzH&q=85&s=cb3a9fbb8b1de8e723c1def56c8abcda" alt="Hero" width="1200" height="630" data-path="images/hero.png" />
</Frame>

<CardGroup cols={2}>
  <Card icon="rocket" title="Getting Started" href="/docs/getting-started/installation" cta="Start with installation">
    Install Redop, scaffold a server, and run your first MCP endpoint over HTTP or stdio.
  </Card>

  <Card icon="blocks" title="Core" href="/docs/documentation/tools" cta="Learn the core primitives">
    Understand tools, resources, prompts, plugins, error handling, and lifecycle
    hooks.
  </Card>

  <Card icon="map" title="Guides" href="/docs/guides/choose-transport" cta="Solve specific tasks">
    Follow focused guides for transport choice, auth, plugins, resources, prompts,
    and debugging.
  </Card>

  <Card icon="square-terminal" title="Reference" href="/docs/reference/redop" cta="Look up the API">
    Find exact details for the Redop constructor, tool definitions, transports, context, and CLI.
  </Card>
</CardGroup>

***

## What Is Redop?

Redop is a framework for building production MCP servers without hand-writing the transport, session, schema, and lifecycle plumbing yourself.

Use it when you want to:

* define MCP tools with typed handler input
* validate input with Zod, Standard Schema libraries, TypeBox, or JSON Schema
* expose resources and prompts from the same server
* add middleware, lifecycle hooks, and reusable plugins
* run the same server over HTTP or stdio on Bun, Node, Cloudflare, or Vercel

## What Is an MCP Server?

An MCP server is a program that exposes capabilities to MCP clients.

In practice, that usually means:

* tools for actions and workflows
* resources for readable data addressed by URI
* prompts for reusable prompt material
* protocol-level metadata, session handling, and capability discovery

Redop gives you those primitives through one framework API instead of making you implement the protocol plumbing by hand.

## Runtimes

Define the app once. Host it where you need:

| Runtime                | How you start it                            |
| ---------------------- | ------------------------------------------- |
| Bun (default local DX) | `app.listen(3000)`                          |
| Cloudflare Workers     | `export default cloudflare(app)`            |
| Vercel / Edge          | `export default vercel(app, { waitUntil })` |
| Node.js                | `listenNode(app, { port: 3000 })`           |

```sh theme={null}
bun add @redopjs/redop zod
bun run --watch src/index.ts
```

See [Runtime adapters](/docs/reference/runtime-adapters) and [Deploy to Production](/docs/guides/deploy/index).

***

## What You Build With Redop

<CardGroup cols={2}>
  <Card icon="wrench" title="Tools" href="/docs/documentation/tools">
    Define actions with names, descriptions, schemas, annotations, hooks, middleware, and handlers.
  </Card>

  <Card icon="database" title="Resources" href="/docs/documentation/resources">
    Expose readable data through static or template URIs, with optional
    subscriptions.
  </Card>

  <Card icon="message-square" title="Prompts" href="/docs/documentation/prompts">
    Package reusable prompt material with names, descriptions, arguments, and
    messages.
  </Card>

  <Card icon="plug" title="Plugins" href="/docs/documentation/plugins">
    Reuse hooks, middleware, tools, resources, and prompts as one composable unit.
  </Card>
</CardGroup>

Redop scales cleanly when you split a larger server into feature modules and compose them with `.use(...)`.

***

## Quick Example

```ts theme={null}
import { Redop } from "@redopjs/redop";
import { z } from "zod";

new Redop({
  serverInfo: {
    name: "docs-server",
    title: "Docs Server",
    version: "0.1.0",
    description: "Search docs and return answers.",
  },
})
  .tool("search_docs", {
    description: "Search internal docs",
    inputSchema: z.object({
      query: z.string().min(1),
    }),
    handler: ({ input }) => {
      return {
        query: input.query,
        results: [],
      };
    },
  })
  .listen(3000);
```

For a hosted server, the MCP endpoint will be available at `http://localhost:3000/mcp`.

***

## Start Here

* [Installation](/docs/getting-started/installation)
* [Create a project with `create-redop-app`](/docs/getting-started/create-redop-app)
* [Your first server](/docs/getting-started/first-server)
* [Tools](/docs/documentation/tools)
* [Resources](/docs/documentation/resources)
* [Prompts](/docs/documentation/prompts)
* [Compose feature modules with `use`](/docs/guides/compose-features-with-use)
