Skip to main content
Codex reads MCP servers from ~/.codex/config.toml, or from .codex/config.toml in a project you have marked as trusted. It starts each server itself, outside its sandbox, so the browser works whatever sandbox_mode is.

Add the server

1

Download the browser

2

Add the server

This writes the global ~/.codex/config.toml. Put --env KEY=VALUE options before --.
3

Set timeouts and approval

Open ~/.codex/config.toml and complete the entry:
~/.codex/config.toml
The same block is in examples/agents/mcp/codex.config.toml. To approve only some tools, leave default_tools_approval_mode at its default and set approval_mode = "approve" per tool under [mcp_servers.apostate.tools.<tool>].

Run a task

To try the server without editing the config, pass it with -c overrides:

Scripts and skills

Codex loads skills from .agents/skills/<name>/SKILL.md in the project (from the working directory up to the repository root) and from ~/.agents/skills/. The Apostate skill works there unchanged:
Codex’s sandbox matters for scripts. In the default workspace-write mode the network is off, and a browser started from a sandboxed command crashes: on macOS with MachPortRendezvousServer ... Permission denied, on Linux with SIGTRAP. For script work, run Codex with --sandbox danger-full-access in a disposable environment, or use the MCP server, which Codex starts outside the sandbox.

AGENTS.md

Codex reads AGENTS.md from ~/.codex/ and from each directory between the repository root and the working directory. A short section keeps browsing consistent:
AGENTS.md