Brod

Deploy the small web apps your agent builds to a private team address, with sign-in, roles, a database and rollback built in.

Hosted MCP Server

npx add-mcp 'https://brod.sh/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Your agent built it. Brod puts it online for your team.

Brod is a cloud for small software: the tools you build with an AI agent for yourself or your team. One step from code to a private address, with sign-in, roles and storage already there.

Start free See how it works

Or connect your agent now: https://brod.sh/mcp

Where do I paste it? Steps for Claude, Cursor, VS Code and others

Claude Code

  1. In a terminal, run claude mcp add --transport http brod https://brod.sh/mcp
  2. Start claude, type /mcp, choose brod and sign in when the browser opens.

Claude (web and desktop app)

  1. Open Settings, then Connectors, then Add custom connector.
  2. Name it Brod, paste https://brod.sh/mcp as the URL, and add it.
  3. Press Connect and sign in when the browser opens.

Cursor

  1. Open ~/.cursor/mcp.json (or Settings, then MCP, then Add new MCP server) and add:
    { "mcpServers": { "brod": { "url": "https://brod.sh/mcp" } } }
    
  2. Brod shows up in the MCP list; press Connect and sign in when the browser opens.

VS Code

  1. Create .vscode/mcp.json in your project with:
    { "servers": { "brod": { "type": "http", "url": "https://brod.sh/mcp" } } }
    
  2. Press Start above the entry, sign in when the browser opens, and use Brod in Copilot's agent mode.

Any other agent

  1. Add a remote MCP server over HTTP with the address https://brod.sh/mcp.
  2. When the browser opens, sign in with your email and pick the workspace the agent may use.
  3. No browser sign-in in your agent? Make a token on your workspace's Connections page and send it as Authorization: Bearer brod_…

Then ask: “Put this online with Brod.”

Any agent that speaks MCPExample

Put the shift swap tool online for the warehouse team.

get_workspace Reads your groups and roles, so the app fits without being told.

deploy_app Shift swap, version 1. Live in seconds.

https://shift-swap.harborops.brod.sh

Private. Only you can open it. Sharing waits for you

The agent asked to share it with everyone in Harbor Ops.

What every app gets without asking

No regions, instance sizes, access policies or login code. The parts every small tool needs are already attached.

Sign-in

People sign in with an emailed link. Your app never sees a password and keeps no user table.

GET /_brod/me

Roles and groups

Owner, editor and viewer by default. Define groups once in the workspace and every app uses them.

x-brod-role

A database

Each app has its own SQLite database, with transactions.

env.DB.query(sql, params)

Key-value and files

Small values and uploaded files, stored per app.

env.KV env.FILES

Secrets

Write-only. Nobody can read one back after it is set, the agent included.

set_secret

Versions and rollback

Every deploy is kept. Rolling back takes effect on the next request and rebuilds nothing.

rollback

A safe deploy

A version whose server code does not start is refused, and the working version stays live.

deploy_app

Logs

Console output and errors for recent requests, kept seven days, searchable by the agent that is fixing the bug.

get_logs

One workspace, one sign-in, every app

A workspace holds your team's people, groups and apps. Add a colleague to a group and they have the right access everywhere. Remove them and it ends everywhere.

  1. Private

    Only the app's owner and workspace admins.
  2. People

    Only the people and groups you give a role.
  3. Workspace

    Everyone in your workspace.
  4. Signed in

    Anyone who signs in.
  5. Public

    Anyone, with no sign-in.

An agent cannot open an app up by itself. Narrowing access applies at once. Widening it, or inviting someone, waits for a person to confirm.

An app is a folder. Server code is one file.

Static files are served as they are. Add a _worker.js and it answers every other request, with the signed-in person in the headers and the app's storage on env.

Your agent already knows this. Brod tells it when it connects.

// _worker.js
export default {
  async fetch(request, env) {
    const role = request.headers.get('x-brod-role');
    if (role !== 'editor' && role !== 'owner')
      return new Response('Ask an editor', { status: 403 });

    const open = await env.DB.query(
      'SELECT * FROM swaps WHERE status = ?', ['open']);
    return Response.json(open);
  }
};

Free to start. A plan, never a bill per app.

Brod is priced as a plan for a workspace, with room for a number of apps and people. Deploying inside it never adds a charge.

Free

  • 10 running apps. Paused apps do not count.
  • 10 people in the workspace
  • 250 MB of storage
  • Sign-in, roles, database, secrets, rollback and logs Start free

On the way

  • Larger plans for bigger teams, with more apps and people.
  • A marketplace: list an app you built, and other teams install a private copy into their own workspace, with their own data and sign-in.

Neither is available yet.