Brod

Deploy from Claude Code

Deploy an app built with Claude Code

You built something in Claude Code and it works on your laptop. To get it to your team, add Brod as an MCP server and ask Claude to deploy it. Claude gets back an HTTPS address that only the people you choose can open.

Deploy this to Brod as expense-approvals. Only the finance group should be able to open it.

deploy_app · set_access

Deployed: https://expense-approvals.acme.brod.sh (version 1). It is private to you for now. Sharing it with the finance group needs your confirmation: open this link to confirm.

1. Connect Brod to Claude Code

Run the first command once in a terminal.

Then run /mcp inside Claude Code, pick brod, and sign in in the browser. You choose the workspace there, and Claude Code stores the OAuth token.

To use a token instead (for example on a server), make one on your workspace's connections page and add it as a header, as in the second command.

claude mcp add --transport http brod https://brod.sh/mcp
claude mcp add --transport http brod https://brod.sh/mcp \
  --header "Authorization: Bearer brod_..."

2. Ask Claude to deploy

Claude sends the files with deploy_app.

  • Static files

    Static files are served as they are.

  • Server code

    If the app needs a server, Claude writes a _worker.js that handles requests and uses the app's database, files and secrets (see how Brod runs an app).

  • Frameworks

    If you built with a framework (React, Vue, Svelte, Astro), Claude runs the build locally and deploys the output folder.

3. Share it

A new app is private to you and the workspace admins.

  • You choose who else can open it. Named people, a group, everyone in an email domain, the whole workspace, or a password.
  • A person confirms. Claude can ask for this, and you confirm the link it gives you. Nothing becomes more open without a person agreeing.
  • Sign-in is built in. The people you share with sign in once with an emailed link or Google. The app gets their identity and role on every request, so it never has to build a login.

4. Keep changing it

When you ask Claude for a change, the new version goes to a staging address first, and the live app stays as it is.

  1. Try staging

    Open the staging version and check the change.

  2. Publish

    Tell Claude to publish it.

  3. Fix or roll back

    If something breaks after publishing, Claude can read the app's logs with get_logs, fix it, and redeploy, or rollback to the previous version straight away.

Tip: tell Claude about Brod in CLAUDE.md

Add a few lines to your project's CLAUDE.md so every session knows where the app runs.

## Deployment
This app runs on Brod as "expense-approvals".
- Deploy with the brod MCP tools. New versions go to staging; publish only when I say so.
- Secrets (API keys) go in with set_secret, never in the code.
- The signed-in user is in the x-brod-user-email and x-brod-role headers.

Questions

Does this work with Claude Desktop too?

Yes. Add Brod under Settings → Connectors → Add custom connector and sign in with OAuth, or use mcp-remote from the config file. The MCP docs have both.

What kind of app can Claude Code deploy to Brod?

Static sites and front-end builds, plus optional server code in JavaScript or WebAssembly. Not Python, containers or long-running processes.

Where does the app's data live?

Each app with server code has its own SQLite database, key-value store and file storage, reached as env.DB, env.KV and env.FILES.

Can Claude make the app public by itself?

No. Widening access and inviting people return a confirmation link for a person to open. There is no MCP tool for deleting an app.

Your AI already built the app. Put it in your team's hands.