Async MCP client wrapper around `codex mcp-server`
codex-async-mcp defines 6 tools with reasonable names and descriptions, but has significant gaps in schema completeness, parameter validation guidance, and error handling. All tools have descriptions (10-50 words), but most parameter descriptions are minimal (5-15 words) and lack validation constraints. Input schemas are present but sparse, no enums, patterns, or range constraints despite parameters that could benefit from them (e.g., status filter in list_jobs, event_types in get_job_events). Error handling guidance is absent; tools do not document retryability, failure modes, or recovery paths. Output schemas are not documented. Most tools appear well-named and start with action verbs (get_, list_, start_, continue_, cancel_), but descriptions lack WHEN to use each tool and dependencies between them. This is a typical mid-tier community server.
Cancel an active job
Continue an asynchronous Codex job with a follow-up prompt
Get events for a job with optional filtering and pagination
Get the current status and result of a job
List all jobs with optional filtering
Start an asynchronous Codex MCP job with the given prompt and return a job ID for tracking
Output schemas not documented for any tool. LLMs cannot plan downstream tool calls or extract required fields without knowing what get_job_status, get_job_events, list_jobs, etc. return.
No enum or constraint documentation for parameters that accept a known set of values. 'model', 'profile', 'sandbox', 'status', 'event_types' have no guidance on valid options. LLMs will hallucinate invalid values.
No error handling or recovery guidance. Tools do not document failure modes, retryability, or what the LLM should do on error. A bare timeout or 'job not found' response gives the agent nothing actionable.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 39 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Parameter descriptions are too brief and lack validation rules. Examples: 'The prompt to send to Codex' (5 words), 'The job ID to check' (5 words), 'Optional status filter' (3 words). Rubric baseline for param descriptions is 72 chars; these are 30-45 chars and lack constraint info.
No pagination guidance for list tools. 'list_jobs' accepts 'limit' but does not document default, max, or how to get the next page (cursor? offset? next_token?). Rubric requires pagination support for tools returning lists.
Tool descriptions lack WHEN and WHY context. 'Start an asynchronous Codex MCP job with the given prompt and return a job ID for tracking' says WHAT but not WHEN to use it vs continue_codex_job, what prerequisites exist, or why return type is a job_id.
Tool composition unclear. How do start_codex_job, get_job_events, and continue_codex_job relate? If start returns a job_id, does get_job_status accept the same job_id format? Undocumented dependencies force discovery detours.