mcp-codex-worker 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,29 +1,26 @@
1
1
  # mcp-codex-worker
2
2
 
3
- A stdio MCP server that bridges MCP clients to the Codex app-server runtime. Provides **5 task tools** for provider-agnostic task orchestration — spawn, wait, respond, message, cancel. Does not call OpenAI APIs directly all work is delegated to `codex app-server`.
3
+ A stdio MCP server that bridges MCP clients to the Codex app-server runtime. Provides **5 task tools** for fully autonomous agent orchestration — spawn, wait, respond, message, cancel. All commands and file edits are auto-approved. Full observability via file-backed reporting and MCP resource subscriptions.
4
4
 
5
- ## Install
6
-
7
- ### MCP server
8
-
9
- ```bash
10
- npx -y mcp-codex-worker
11
- ```
5
+ Does not call OpenAI APIs directly — all work is delegated to `codex app-server` (see [codex-app-server protocol reference](https://github.com/openai/codex/blob/main/codex-rs/app-server/README.md)).
12
6
 
13
- Add to Claude Code globally:
7
+ ## Install
14
8
 
15
9
  ```bash
16
- claude mcp add codex-worker --scope user -- npx -y mcp-codex-worker
10
+ npx -y mcp-codex-worker@latest
17
11
  ```
18
12
 
19
- Add to any MCP client config (Claude Desktop, VS Code, Cursor, etc.):
13
+ Add to Claude Code:
20
14
 
21
15
  ```json
22
16
  {
23
17
  "mcpServers": {
24
18
  "codex-worker": {
25
19
  "command": "npx",
26
- "args": ["-y", "mcp-codex-worker"]
20
+ "args": ["-y", "mcp-codex-worker@latest"],
21
+ "env": {
22
+ "CODEX_LB_API_KEY": "${CODEX_LB_API_KEY}"
23
+ }
27
24
  }
28
25
  }
29
26
  }
@@ -31,172 +28,166 @@ Add to any MCP client config (Claude Desktop, VS Code, Cursor, etc.):
31
28
 
32
29
  ### Companion skill (optional)
33
30
 
34
- The `run-codex-subagents` skill teaches AI agents how to orchestrate tasks through this server — wave execution, approval handling, parallel dispatch, and more.
35
-
36
31
  ```bash
37
32
  npx -y skills add -y -g yigitkonur/skills-by-yigitkonur/skills/run-codex-subagents
38
33
  ```
39
34
 
40
- Or install the full skills pack:
41
-
42
- ```bash
43
- npx -y skills add -y -g yigitkonur/skills-by-yigitkonur
44
- ```
45
-
46
- The skill is also bundled at `skills/run-codex-subagents/` in this repo for reference.
47
-
48
35
  ## Requirements
49
36
 
50
37
  - Node 22+
51
- - `codex` CLI installed and authenticated
38
+ - `codex` CLI installed
39
+ - `CODEX_LB_API_KEY` or `OPENAI_API_KEY` in environment
52
40
 
53
- ## Unified task tools
54
-
55
- The primary interface. Provider-agnostic — tasks route to Codex today, Copilot and Claude CLI in Phase 2.
41
+ ## Tools
56
42
 
57
43
  | Tool | Purpose |
58
44
  |---|---|
59
- | `spawn-task` | Create and start a coding task. Returns immediately with a task_id. |
60
- | `wait-task` | Block until a task completes, fails, or needs input. |
61
- | `respond-task` | Answer an agent's question or approve a pending action. |
62
- | `message-task` | Send a follow-up message to an active task. |
45
+ | `spawn-task` | Create and start a task. Returns `task_id`, `disk_paths`, and "what to do next" guidance. |
46
+ | `wait-task` | Block until completion/failure/input. Returns output, liveness signals, and next actions. |
47
+ | `respond-task` | Answer agent questions (`user_input` only approvals are auto-handled). |
48
+ | `message-task` | Send follow-up instructions to a running task. |
63
49
  | `cancel-task` | Cancel one or more tasks (single or batch). |
64
50
 
51
+ ### Model selection
52
+
53
+ Only `gpt-5.4` — pass the `reasoning` parameter:
54
+
55
+ | Value | Use case |
56
+ |---|---|
57
+ | `gpt-5.4(medium)` | Default. Most coding, refactors, debugging. |
58
+ | `gpt-5.4(high)` | Multi-file reasoning, subtle bugs, design decisions. |
59
+ | `gpt-5.4(xhigh)` | Deep research, novel architecture. |
60
+ | `gpt-5.4(low)` | Trivial mechanical edits. |
61
+
65
62
  ### Typical workflow
66
63
 
67
64
  ```
68
- spawn-task(prompt, cwd) → task_id, status
69
- wait-task(task_id) completed | input_required | failed
70
- respond-task(task_id, type, ...) → task resumes (if paused)
71
- wait-task(task_id) → completed
65
+ spawn-task { prompt: "..." }
66
+ { task_id: "bold-eagle-456", status: "working", disk_paths: {...} }
67
+ ---
68
+ **What to do next:**
69
+ - Call `wait-task` with task_id to block until done.
70
+ - If you have more tasks, launch them now — all run in parallel.
71
+
72
+ wait-task { task_id: "bold-eagle-456" }
73
+ → { status: "completed", output: [...] }
74
+ ---
75
+ **What to do next:**
76
+ - Read `task:///bold-eagle-456` for the full result.
72
77
  ```
73
78
 
74
- ### spawn-task
79
+ No `respond-task` needed for command/file approvals — they're auto-approved instantly.
75
80
 
76
- Create and start a task. The agent begins working immediately.
81
+ ## Auto-Approval
77
82
 
78
- | Parameter | Type | Required | Description |
79
- |---|---|---|---|
80
- | `prompt` | string | yes | What the task should do. Be specific — include file paths, function names. |
81
- | `cwd` | string | no | Working directory. Agent sees files here. |
82
- | `task_type` | enum | no | `coder` (default), `planner`, `tester`, `researcher`, `general` |
83
- | `model` | string | no | Override provider default model. |
84
- | `timeout_ms` | integer | no | Max execution time (1,000–3,600,000 ms). |
85
- | `developer_instructions` | string | no | System-level constraints injected before the prompt. |
86
- | `labels` | string[] | no | Arbitrary labels for filtering. |
87
- | `depends_on` | string[] | no | Task IDs that must complete first. |
88
- | `context_files` | array | no | Files to include: `[{ path, description? }]` |
83
+ The server auto-approves ALL Codex approval requests without waiting:
89
84
 
90
- Returns: `{ task_id, status, poll_frequency, provider_session_id, resources }`
85
+ | Request | Response | Log |
86
+ |---|---|---|
87
+ | Command approval | `accept` | `[auto-approve] cmd: npm test` |
88
+ | File change | `accept` | `[auto-approve] file change` |
89
+ | MCP elicitation | `accept` | `[auto-approve] elicitation` |
90
+ | Permission request | `grant all for session` | `[auto-approve] permissions` |
91
91
 
92
- ### wait-task
92
+ Only `user_input` (agent asks a question) and `dynamic_tool` (external tool needs data) still pause the task.
93
93
 
94
- Block until a task reaches a terminal state or `input_required`.
94
+ Combined with `approval_policy = "never"` and `sandbox_mode = "danger-full-access"` from your `config.toml`, agents run fully autonomously.
95
95
 
96
- | Parameter | Type | Required | Default |
97
- |---|---|---|---|
98
- | `task_id` | string | yes | — |
99
- | `timeout_ms` | integer | no | 30,000 |
100
- | `poll_interval_ms` | integer | no | 1,000 |
96
+ ## Reporting & Observability
101
97
 
102
- Returns: `{ task_id, status, provider_session_id, pending_question?, output? }`
98
+ Every task persists to `~/.mcp-codex-worker/tasks/<task-id>/`:
103
99
 
104
- ### respond-task
100
+ | File | Content |
101
+ |---|---|
102
+ | `meta.json` | Task state snapshot (refreshes every 10s during activity) |
103
+ | `summary.log` | Formatted one-liners: `[HH:MM:SS] cmd: npm test (exit 0, 1.2s)` |
104
+ | `verbose.log` | Full execution trace, streaming command output |
105
+ | `events.jsonl` | Raw Codex notification stream — every event with timestamp |
105
106
 
106
- Respond to a paused task. The `type` field must match the `pending_question.type` from wait-task.
107
+ ### MCP Resources
107
108
 
108
- | Type | When | Key fields |
109
- |---|---|---|
110
- | `user_input` | Agent has questions | `answers: { "key": "value" }` |
111
- | `command_approval` | Agent wants to run a command | `decision: "accept" \| "reject"` |
112
- | `file_approval` | Agent wants to modify files | `decision: "accept" \| "reject"` |
113
- | `elicitation` | MCP server needs confirmation | `action: "accept" \| "decline"` |
114
- | `dynamic_tool` | Agent invoked an external tool | `result: "..."` or `error: "..."` |
109
+ | URI | Content |
110
+ |---|---|
111
+ | `task:///all` | Scoreboard (auto-subscribed, push on change) |
112
+ | `task:///{id}` | Task detail with metadata |
113
+ | `task:///{id}/log` | Summary log |
114
+ | `task:///{id}/log.verbose` | Verbose log (reads from disk) |
115
+ | `task:///{id}/events` | Raw event trace (JSONL from disk) |
115
116
 
116
- ### message-task
117
+ ### Resource Subscriptions
117
118
 
118
- Send a follow-up to an active task. Only works on non-terminal tasks.
119
+ ```json
120
+ { "resources": { "subscribe": true, "listChanged": true } }
121
+ ```
119
122
 
120
- | Parameter | Type | Required |
121
- |---|---|---|
122
- | `task_id` | string | yes |
123
- | `message` | string | yes |
124
- | `model` | string | no |
123
+ - `task:///all` auto-subscribed at startup
124
+ - `notifications/resources/updated` on status changes (immediate) and output (throttled 1s)
125
+ - `notifications/resources/list_changed` on task creation
125
126
 
126
- ### cancel-task
127
+ ## Codex App-Server Integration
127
128
 
128
- Cancel one or many tasks.
129
+ This server acts as a client to the [Codex app-server](https://github.com/openai/codex/blob/main/codex-rs/app-server/README.md) protocol. Key integration points:
129
130
 
130
- | Parameter | Type | Required |
131
- |---|---|---|
132
- | `task_id` | string or string[] | yes |
131
+ | Feature | How we use it |
132
+ |---|---|
133
+ | `initialize` | `experimentalApi: true`, then `account/login/start` with API key |
134
+ | `thread/start` | Omit `approvalPolicy`/`sandbox` — config.toml takes effect |
135
+ | `turn/start` | Pass `effort` for reasoning level |
136
+ | Approval requests | Auto-respond via `respondToServerRequest()` |
137
+ | `turn/completed` | Captures turn status in summary log |
138
+ | `item/*` notifications | Event capture module processes 6 types into logs |
139
+ | `error` notification | Captures `codexErrorInfo` classification |
140
+ | stderr | Piped to verbose.log and events.jsonl for diagnostics |
141
+ | Process exit | Detects exit code/signal, classifies auth errors |
133
142
 
134
- Returns: `{ cancelled: [...], already_terminal: [...], not_found: [...] }`
143
+ ### Auth
135
144
 
136
- ## Task resources
145
+ On startup, sends `account/login/start` with `CODEX_LB_API_KEY` (or `OPENAI_API_KEY`) to switch from stale OAuth tokens to API key auth. This prevents the "refresh token already used" crash.
137
146
 
138
- | URI | Description |
139
- |---|---|
140
- | `task:///all` | Scoreboard — all tasks with status badges and elapsed time |
141
- | `task:///{id}` | Detail — metadata, provider session, timestamps, error |
142
- | `task:///{id}/log` | Summary log — last 20 output lines |
143
- | `task:///{id}/log.verbose` | Verbose log — full output history |
147
+ ### Crash Recovery
144
148
 
145
- ### Wire states (SEP-1686)
149
+ On restart, loads all `meta.json` files from disk. Terminal tasks restore as-is. Non-terminal tasks (RUNNING, WAITING_ANSWER) are marked UNKNOWN since Codex sessions don't survive restarts.
146
150
 
147
- All statuses returned by tools use these 7 values:
151
+ ## Wire States (SEP-1686)
148
152
 
149
153
  | State | Meaning |
150
154
  |---|---|
151
155
  | `submitted` | Queued, not started |
152
- | `working` | Agent is executing |
153
- | `input_required` | Paused, needs response |
156
+ | `working` | Agent executing |
157
+ | `input_required` | Paused needs `user_input` or `dynamic_tool` response |
154
158
  | `completed` | Done |
155
- | `failed` | Error |
156
- | `cancelled` | Interrupted |
159
+ | `failed` | Error (includes AUTH_TOKEN_EXPIRED, RATE_LIMITED classifications) |
160
+ | `cancelled` | Interrupted by user |
157
161
  | `unknown` | Crash recovery fallback |
158
162
 
159
- ## Parallel execution
160
-
161
- Spawn multiple tasks simultaneously. Each runs in an independent agent workspace.
162
-
163
- ```
164
- spawn-task(prompt: "implement auth module", cwd: "/project") → task_a
165
- spawn-task(prompt: "implement billing module", cwd: "/project") → task_b
166
- spawn-task(prompt: "write e2e tests", cwd: "/project") → task_c
167
-
168
- # Monitor via scoreboard
169
- read resource: task:///all
170
- → tasks -- 3 total (1 done, 2 busy)
171
-
172
- # Wait for each
173
- wait-task(task_a) → completed
174
- wait-task(task_b) → completed
175
- wait-task(task_c) → completed
176
- ```
177
-
178
- ## Environment variables
163
+ ## Environment Variables
179
164
 
180
165
  | Variable | Description | Default |
181
166
  |---|---|---|
167
+ | `CODEX_LB_API_KEY` | API key for codex-lb provider | — |
168
+ | `OPENAI_API_KEY` | Fallback API key | — |
182
169
  | `CODEX_APP_SERVER_COMMAND` | Codex binary path | `codex` |
183
170
  | `CODEX_APP_SERVER_ARGS` | App-server arguments | `app-server --listen stdio://` |
184
171
  | `CODEX_HOME_DIRS` | Colon-separated profile roots for failover | `~/.codex` |
185
172
  | `CODEX_ENABLE_FLEET` | Enable fleet mode (sub-agent instructions) | off |
186
173
 
187
- ## Local development
174
+ ## Development
188
175
 
189
176
  ```bash
190
177
  npm install
191
- npm run build
192
- npm run test:unit # 158 tests
193
- npm run smoke # requires codex CLI
178
+ npm run build # TypeScript compile
179
+ npm test # 158 unit tests
180
+ npm run smoke # live Codex test (needs CODEX_LB_API_KEY)
181
+ npm run serve # start locally
194
182
  ```
195
183
 
196
- ### Contract tests (mcpc)
184
+ ### Testing with mcpc
197
185
 
198
186
  ```bash
199
- ./test/mcpc/gherkin-tests.sh # 45 scenarios, 84 assertions
187
+ mcpc --config config.json cw connect @test
188
+ mcpc @test tools-list
189
+ mcpc @test resources-read "task:///all"
190
+ mcpc @test tools-call spawn-task '{"prompt":"echo hello","reasoning":"gpt-5.4(low)"}'
200
191
  ```
201
192
 
202
- Requires [mcpc](https://github.com/nicobailey/mcpc) v0.1.11+.
193
+ Use the local build (`node --import tsx src/index.ts`) for mcpc — `npx` has bridge startup timing issues.
@@ -107,31 +107,6 @@ export function translateCodexRequestToPendingQuestion(req) {
107
107
  }
108
108
  }
109
109
  // ---------------------------------------------------------------------------
110
- // Elicitation auto-decline (Issue #11816 workaround)
111
- // ---------------------------------------------------------------------------
112
- const ELICITATION_AUTO_DECLINE_MS = 30_000;
113
- function scheduleElicitationAutoDecline(client, handle, question, timeoutMs = ELICITATION_AUTO_DECLINE_MS) {
114
- const timer = setTimeout(() => {
115
- const still = handle
116
- .getPendingQuestions()
117
- .find((q) => q.requestId === question.requestId);
118
- if (!still)
119
- return;
120
- client
121
- .respondToServerRequest(question.requestId, {
122
- action: 'decline',
123
- content: {},
124
- })
125
- .catch(() => { });
126
- const head = handle.getPendingQuestions()[0];
127
- if (head?.requestId === question.requestId) {
128
- handle.dequeuePendingQuestion();
129
- }
130
- handle.writeOutput(`[elicitation] auto-declined after ${timeoutMs}ms (issue #11816 workaround)`);
131
- }, timeoutMs);
132
- timer.unref();
133
- }
134
- // ---------------------------------------------------------------------------
135
110
  // Attachment: wire pause-flow onto an AppServerClient + TaskHandle
136
111
  // ---------------------------------------------------------------------------
137
112
  function extractThreadIdFromParams(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pause-flow.js","sourceRoot":"","sources":["../../../src/execution/codex-pause-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-pause-flow.js","sourceRoot":"","sources":["../../../src/execution/codex-pause-flow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-codex-worker",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "MCP server bridge for Codex app-server",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -127,43 +127,6 @@ export function translateCodexRequestToPendingQuestion(
127
127
  }
128
128
  }
129
129
 
130
- // ---------------------------------------------------------------------------
131
- // Elicitation auto-decline (Issue #11816 workaround)
132
- // ---------------------------------------------------------------------------
133
-
134
- const ELICITATION_AUTO_DECLINE_MS = 30_000;
135
-
136
- function scheduleElicitationAutoDecline(
137
- client: AppServerClient,
138
- handle: TaskHandle,
139
- question: Extract<PendingQuestion, { type: 'elicitation' }>,
140
- timeoutMs: number = ELICITATION_AUTO_DECLINE_MS,
141
- ): void {
142
- const timer = setTimeout(() => {
143
- const still = handle
144
- .getPendingQuestions()
145
- .find((q) => q.requestId === question.requestId);
146
- if (!still) return;
147
-
148
- client
149
- .respondToServerRequest(question.requestId, {
150
- action: 'decline',
151
- content: {},
152
- })
153
- .catch(() => {});
154
-
155
- const head = handle.getPendingQuestions()[0];
156
- if (head?.requestId === question.requestId) {
157
- handle.dequeuePendingQuestion();
158
- }
159
-
160
- handle.writeOutput(
161
- `[elicitation] auto-declined after ${timeoutMs}ms (issue #11816 workaround)`,
162
- );
163
- }, timeoutMs);
164
- timer.unref();
165
- }
166
-
167
130
  // ---------------------------------------------------------------------------
168
131
  // Attachment: wire pause-flow onto an AppServerClient + TaskHandle
169
132
  // ---------------------------------------------------------------------------