codex-mcp-swarm
Wraps OpenAI's Codex CLI for parallel execution, live monitoring, and worktree isolation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@codex-mcp-swarmrun three parallel code reviews with worktree isolation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
codex-mcp-swarm
An MCP server that wraps OpenAI's Codex CLI with true parallel execution and live task monitoring. Zero dependencies -- single Python file, stdlib only.
Why?
The official codex mcp-server processes requests sequentially. If your MCP client (Claude Code, etc.) needs to run 5 Codex tasks, they queue up one after another. This server spawns each task as an independent subprocess, so they run in parallel.
Unique features no other Codex MCP wrapper has:
Worktree isolation --
worktree: truecreates an isolated git worktree per task so parallel Codex instances never edit past each otherBatch wait -- launch N tasks, call
codex_waitonce, get all results when they finishLive status -- see what each Codex task is doing right now (last tool call, current reasoning, progress)
Full flag parity -- same parameters as the official Codex MCP tool (
sandbox,approval-policy,cwd,model,config, etc.)Drop-in config -- accepts the same
-c key=valueserver args ascodex mcp-server
Related MCP server: Codex MCP Server
Tools
Tool | Description |
| Synchronous execution (drop-in replacement for official) |
| Fire-and-forget -- returns a |
| Continue a previous session via |
| Live view: tools called, last command, current thinking |
| Block until multiple tasks complete, return all results |
| Kill a running async task (preserves worktree for inspection) |
Installation
Claude Code
claude mcp add codex-swarm -- uvx --upgrade codex-mcp-swarm \
-c model=gpt-5.4 \
-c approval_policy=never \
-c sandbox_mode=danger-full-access \
--skip-git-repo-checkThat's it. No clone, no setup. uvx downloads and runs it directly from PyPI. The --upgrade flag ensures you always get the latest version on restart.
Note: Requires uv (
curl -LsSf https://astral.sh/uv/install.sh | sh). Alternatively, usepipx run codex-mcp-swarminstead ofuvx codex-mcp-swarm.
Manual (~/.claude.json)
{
"mcpServers": {
"codex-swarm": {
"type": "stdio",
"command": "uvx",
"args": [
"--upgrade",
"codex-mcp-swarm",
"-c", "model=gpt-5.4",
"-c", "approval_policy=never",
"-c", "sandbox_mode=danger-full-access",
"--skip-git-repo-check"
]
}
}
}The -c flags are identical to codex mcp-server -- copy-paste your existing config.
Usage
Parallel execution
1. Call codex_async with prompt A --> task_id: "abc123"
2. Call codex_async with prompt B --> task_id: "def456"
3. Call codex_async with prompt C --> task_id: "ghi789"
4. Call codex_wait(task_ids=["abc123", "def456", "ghi789"])
--> blocks until all finish, returns all resultsWorktree isolation
Prevent parallel tasks from editing the same files:
1. Call codex_async(prompt="Refactor auth", worktree=true)
--> task_id: "abc123"
--> Worktree Branch: codex-swarm/abc123
2. Call codex_async(prompt="Add logging", worktree=true)
--> task_id: "def456"
--> Worktree Branch: codex-swarm/def456
3. codex_wait(task_ids=["abc123", "def456"])
4. git merge codex-swarm/abc123
5. git merge codex-swarm/def456Each task gets its own git worktree and branch based on HEAD. After completion, merge the branches back. Worktrees are automatically cleaned up after 24 hours (configurable via CODEX_SWARM_TASK_MAX_AGE).
Live monitoring
Call codex_status(task_ids=["abc123"])
-->
=== Task abc123 (45s elapsed) ===
Phase: running
Tools called: 23
Last tool: exec_command(grep -rn "handleError" src/)
Output: Analyzing error handling patterns across the codebase...Session continuity
1. Call codex(prompt="Review this file") --> result + session persisted
2. Call codex_reply(threadId="<session-uuid>", prompt="Now fix the bug you found")Server flags
Flag | Description |
| Config default (repeatable). Same format as |
| Allow running outside git repos. |
| Don't persist session files. Disables |
Per-call parameters
All parameters from the official Codex MCP tool are supported:
prompt(required)model-- override server defaultsandbox--read-only,workspace-write,danger-full-accessapproval-policy--untrusted,on-failure,on-request,nevercwd-- working directoryprofile-- config profile fromconfig.tomlconfig-- object of key=value overridesworktree-- run in an isolated git worktree (prevents parallel tasks from conflicting)base-instructions,developer-instructions,compact-prompt
MCP Resources
The server exposes read-only resources for discoverability:
URI | Description |
| Version, capabilities, directories, config |
| Current server-level defaults and flags |
| All known tasks and their current state |
Environment variables
Variable | Default | Description |
|
| Log file path |
|
| Log level ( |
|
| Task output storage directory |
|
| Worktree storage directory |
|
| Seconds before completed task artifacts (and worktrees) are cleaned up |
Requirements
Python 3.8+
Codex CLI installed and authenticated
No pip dependencies (stdlib only)
Works on Linux and macOS (Linux gets extra PID reuse protection and zombie detection via
/proc)
Credits
Originally inspired by jeanchristophe13v/codex-mcp-async. Rewritten with full flag parity, JSONL status parsing, batch wait, and session reply support.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TKasperczyk/codex-mcp-swarm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server