3. Fit the app to Brod
Codex will often produce a Node or Python backend by default.
On Brod, server code is a single _worker.js with a fetch handler, in JavaScript or WebAssembly. Tell Codex this up front.
Deploy from Codex
Codex can generate a full internal tool from a description. Brod gives it somewhere to run: Codex deploys over MCP, and your team opens a private address and signs in. The data, secrets and older versions are handled for you.
Brod is a remote MCP server using the Streamable HTTP transport at https://brod.sh/mcp.
Make a token on your workspace's connections page (it starts with brod_ and is shown once), and put it in an environment variable rather than a config file:
export BROD_TOKEN=brod_...Recent versions of the Codex CLI can connect to remote MCP servers from ~/.codex/config.toml:
[mcp_servers.brod]
url = "https://brod.sh/mcp"
bearer_token_env_var = "BROD_TOKEN"If your version only starts local servers, connect through mcp-remote, which needs Node.js:
[mcp_servers.brod]
command = "npx"
args = ["-y", "mcp-remote@0.14.3", "https://brod.sh/mcp", "--header", "Authorization:Bearer ${BROD_TOKEN}"]
env = { BROD_TOKEN = "brod_..." }Codex's MCP configuration has changed between releases, so check its documentation for your version.
Ask Codex to deploy the app to Brod and give it a name.
It calls deploy_app with the files, or with a one-time upload address for a larger build, and gets back the app's address.
The app starts private to you.
For anything Codex scripts outside MCP, such as a CI job, the same actions are available through Brod's REST API with the same token.
Codex will often produce a Node or Python backend by default.
On Brod, server code is a single _worker.js with a fetch handler, in JavaScript or WebAssembly. Tell Codex this up front.
This app will run on Brod.
- Front end: static files (a build output folder is fine).
- Back end: one _worker.js exporting fetch(request, env). No Express, no Node APIs like fs.
- Data: env.DB (SQLite: query/run), env.KV, env.FILES. Secrets: env.NAME.
- The signed-in user arrives in x-brod-user-email and x-brod-role headers. Do not build a login.
Brod works with any client that can reach a remote MCP server over HTTPS, or the REST API. Whether a particular Codex surface can do that depends on its settings; the CLI is the simplest place to start.
No. Server code on Brod is JavaScript or WebAssembly. Ask Codex to port the backend to a _worker.js; for small internal tools this is usually a short change.