Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Spawn multiple specialized Codex agents as MCP servers, each independently configured.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
CODEX_API_KEY, CODEX_TOOL_NAME, CODEX_MODEL, CODEX_SANDBOX_MODE, CODEX_APPROVAL_POLICY, CODEX_APPEND_INSTRUCTIONS, CODEX_FACTORY_ONLYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"codex-octopus": {
"command": "npx",
"args": [
"-y",
"codex-octopus"
],
"env": {
"CODEX_API_KEY": "your-value",
"CODEX_TOOL_NAME": "your-value",
"CODEX_MODEL": "your-value",
"CODEX_SANDBOX_MODE": "your-value",
"CODEX_APPROVAL_POLICY": "your-value",
"CODEX_APPEND_INSTRUCTIONS": "your-value",
"CODEX_FACTORY_ONLY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add codex-octopus --env CODEX_API_KEY=your-value --env CODEX_TOOL_NAME=your-value --env CODEX_MODEL=your-value --env CODEX_SANDBOX_MODE=your-value --env CODEX_APPROVAL_POLICY=your-value --env CODEX_APPEND_INSTRUCTIONS=your-value --env CODEX_FACTORY_ONLY=your-value -- npx -y codex-octopusFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"codex-octopus": {
"command": "npx",
"args": [
"-y",
"codex-octopus"
],
"env": {
"CODEX_API_KEY": "your-value",
"CODEX_TOOL_NAME": "your-value",
"CODEX_MODEL": "your-value",
"CODEX_SANDBOX_MODE": "your-value",
"CODEX_APPROVAL_POLICY": "your-value",
"CODEX_APPEND_INSTRUCTIONS": "your-value",
"CODEX_FACTORY_ONLY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"codex-octopus": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"codex-octopus"
],
"env": {
"CODEX_API_KEY": "your-value",
"CODEX_TOOL_NAME": "your-value",
"CODEX_MODEL": "your-value",
"CODEX_SANDBOX_MODE": "your-value",
"CODEX_APPROVAL_POLICY": "your-value",
"CODEX_APPEND_INSTRUCTIONS": "your-value",
"CODEX_FACTORY_ONLY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
CODEX_TOOL_NAME envCODEX_MODEL envCODEX_SANDBOX_MODE envCODEX_APPROVAL_POLICY envCODEX_APPEND_INSTRUCTIONS envCODEX_FACTORY_ONLY envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account xiaolai, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: CODEX_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.0.1) reached the registry 7 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, HotCodePush
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
One brain, many arms.
An MCP server that wraps the OpenAI Codex SDK, letting you run multiple specialized Codex agents — each with its own model, sandbox, effort, and personality — from any MCP client.
Codex is powerful. But one instance does everything the same way. Sometimes you want a strict code reviewer in read-only sandbox. A test writer with workspace-write access. A cheap quick helper on minimal effort. A deep thinker on xhigh.
Codex Octopus lets you spin up as many of these as you need. Same binary, different configurations. Each one shows up as a separate tool in your MCP client.
@openai/codex)CODEX_API_KEY env var) or inherited from parent processnpm install codex-octopus
Or use npx directly in your .mcp.json (see Quick Start below).
Add to your .mcp.json:
{
"mcpServers": { "codex": { "command": "npx", "args": ["codex-octopus@latest"], "env": { "CODEX_SANDBOX_MODE": "workspace-write", "CODEX_APPROVAL_POLICY": "never" } } } }
This gives you two tools: codex and codex_reply. That's it — you have Codex as a tool.
The real power is running several instances with different configurations:
{
"mcpServers": { "code-reviewer": { "command": "npx", "args": ["codex-octopus@latest"], "env": { "CODEX_TOOL_NAME": "code_reviewer", "CODEX_SERVER_NAME": "code-reviewer", "CODEX_DESCRIPTION": "Strict code reviewer. Read-only sandbox.", "CODEX_MODEL": "o3", "CODEX_SANDBOX_MODE": "read-only", "CODEX_APPEND_INSTRUCTIONS": "You are a strict code reviewer. Report real bugs, not style preferences.", "CODEX_EFFORT": "high" } }, "test-writer": { "command": "npx", "args": ["codex-octopus@latest"], "env": { "CODEX_TOOL_NAME": "test_writer", "CODEX_SERVER_NAME": "test-writer", "CODEX_DESCRIPTION": "Writes thorough tests with edge case coverage.", "CODEX_MODEL": "gpt-5-codex", "CODEX_SANDBOX_MODE": "workspace-write", "CODEX_APPEND_INSTRUCTIONS": "Write tests first. Cover edge cases. TDD." } }, "quick-qa": { "command": "npx", "args": ["codex-octopus@latest"], "env": { "CODEX_TOOL_NAME": "quick_qa", "CODEX_SERVER_NAME": "quick-qa", "CODEX_DESCRIPTION": "Fast answers to quick coding questions.", "CODEX_EFFORT": "minimal" } } } }
Your MCP client now sees three distinct tools — code_reviewer, test_writer, quick_qa — each purpose-built.
Don't want to write configs by hand? Add a factory instance:
{
"mcpServers": { "agent-factory": { "command": "npx", "args": ["codex-octopus@latest"], "env": { "CODEX_FACTORY_ONLY": "true", "CODEX_SERVER_NAME": "agent-factory" } } } }
This exposes a single create_codex_mcp tool — an interactive wizard. Tell it what you want ("a strict code reviewer with read-only sandbox") and it generates the .mcp.json entry for you.
Each non-factory instance exposes:
| Tool | Purpose |
|---|---|
| Send a task to the agent, get a response + thread_id |
_reply | Continue a previous conversation by thread_id |
Per-invocation parameters (override server defaults):
| Parameter | Description |
|---|---|
prompt | The task or question (required) |
cwd | Working directory override |
model | Model override |
additionalDirs | Extra directories the agent can access |
effort | Reasoning effort (minimal to xhigh) |
sandboxMode | Sandbox override (can only tighten, never loosen) |
approvalPolicy | Approval override (can only tighten, never loosen) |
networkAccess | Enable network access from sandbox |
webSearchMode | Web search: disabled, cached, live |
instructions | Additional instructions (prepended to prompt) |
All configuration is via environment variables in .mcp.json. Every env var is optional.
| Env Var | Description | Default |
|---|---|---|
CODEX_TOOL_NAME | Tool name prefix ( and _reply) | codex |
CODEX_DESCRIPTION | Tool description shown to the host AI | generic |
CODEX_SERVER_NAME | MCP server name in protocol handshake | codex-octopus |
CODEX_FACTORY_ONLY | Only expose the factory wizard tool | false |
| Env Var | Description | Default |
|---|---|---|
CODEX_MODEL | Model (gpt-5-codex, o3, codex-1, etc.) | SDK default |
CODEX_CWD | Working directory | process.cwd() |
CODEX_SANDBOX_MODE | read-only, workspace-write, danger-full-access | read-only |
CODEX_APPROVAL_POLICY | never, on-failure, on-request, untrusted | on-failure |
CODEX_EFFORT | minimal, low, medium, high, xhigh | SDK default |
CODEX_ADDITIONAL_DIRS | Extra directories (comma-separated) | none |
CODEX_NETWORK_ACCESS | Allow network from sandbox | false |
CODEX_WEB_SEARCH | disabled, cached, live | disabled |
| Env Var | Description |
|---|---|
CODEX_INSTRUCTIONS | Replaces the default instructions |
CODEX_APPEND_INSTRUCTIONS | Appended to the default (usually what you want) |
| Env Var | Description |
|---|---|
CODEX_PERSIST_SESSION | true/false — enable session resume (default: true) |
| Env Var | Description | Default |
|---|---|---|
CODEX_API_KEY | OpenAI API key for this agent | inherited from parent |
workspace-write or danger-full-access.cwd, the agent's configured base directory is automatically added to additionalDirectories.sandboxMode and approvalPolicy can only tighten (e.g., workspace-write → read-only), never loosen.CODEX_PERSIST_SESSION=false.CODEX_API_KEY in generated configs.┌─────────────────────────────────┐
│ MCP Client │ │ (Claude Desktop, Cursor, etc.) │ │ │ │ Sees: code_reviewer, │ │ test_writer, quick_qa │ └──────────┬──────────────────────┘ │ JSON-RPC / stdio ┌──────────▼──────────────────────┐ │ Codex Octopus (per instance) │ │ │ │ Env: CODEX_MODEL=o3 │ │ CODEX_SANDBOX_MODE=... │ │ CODEX_APPEND_INSTRUCTIONS │ │ │ │ Calls: Codex SDK thread.run() │ └──────────┬──────────────────────┘ │ in-process ┌──────────▼──────────────────────┐ │ Codex SDK → Codex CLI │ │ Runs autonomously: reads files,│ │ writes code, runs commands │ │ Returns result + thread_id │ └─────────────────────────────────┘
web_search tools with minimal reasoning effort. Use low or higher if web search is needed.pnpm install
pnpm build # compile TypeScript pnpm test # run tests (vitest) pnpm test:coverage # coverage report
ISC - Xiaolai Li