A visible, bidirectional MCP and CLI bridge between Claude Code sessions and Codex TUI threads.
Strong foundation with explicit tool registration, comprehensive schemas, and clear descriptions. All 8 tools have descriptions (avg 120 chars) and input schemas with type constraints. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present and correct. However, parameter descriptions are sparse or missing in several tools (e.g., 'mailbox' and 'threadId' marked optional without explaining selection logic), and output schemas are not formally documented. Error handling wraps tools but lacks actionable recovery guidance. Naming is verb-noun compliant and unambiguous.
Read one bounded UTF-8 page from a bridge output artifact using its opaque id and cursor.
Inspect the local bridge role, endpoint, mailbox path, approvals, and output limits without connecting.
Inspect a bounded, non-consuming preview of one Claude mailbox. This never drains messages.
List Claude Code mailboxes that have pending mail or have announced through a Stop hook.
Queue one message for a Claude Code mailbox. Success means queued, not delivered; delivery waits for the target Stop hook.
Send one message to a human-visible Codex TUI thread and wait for that turn. This is non-idempotent; never retry a started turn automatically.
Optional parameters 'mailbox' and 'threadId' lack selection logic documentation. Code shows selectMailbox() and selectThread() helpers, but descriptions do not explain fallback behavior (env var, first item, error). LLMs cannot infer selection semantics.
Output schemas are not formally documented. Tools return structured objects (mailboxes, messages, threads) but the response schema is inferred from code, not declared. LLMs cannot plan downstream tool calls without knowing return field names and types.
Error handling wraps tools with generic error codes ('MAILBOX_READ_FAILED', 'THREAD_READ_FAILED') but does not provide actionable recovery guidance. LLMs receive error classification but no hint on what to try next (retry, call discovery tool, ask user).
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Read bounded metadata for one live Codex thread. Full paginated history is not returned.
List live Codex TUI threads with ids and working directories. Use this before sending when the target is unclear.
Parameter 'maxBytes' in bridge_output_read is optional with no default, and 'cursor' is optional with no guidance on pagination. LLMs cannot determine safe defaults or how to iterate through large outputs.
Tool descriptions do not clarify when to use similar tools. E.g., 'claude_mailbox_peek' vs 'claude_mailboxes_list', when should an LLM call each? Descriptions lack dependency hints and discovery guidance.