harness-bridge
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., "@harness-bridgeask Codex to review the latest commit"
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.
Harness Bridge
Harness Bridge connects coding-agent harnesses through MCP so one harness can query, review, explain, and delegate implementation work to another.
It currently ships two adapters:
Calling harness | Connected harness | MCP tools |
Claude Code | OpenAI Codex |
|
OpenAI Codex | Claude Code |
|
The adapter boundary keeps harness-specific execution, sessions, models, and capabilities separate while preserving a consistent set of task-oriented MCP tools.
Execution contract
Every Claude-to-Codex call runs Codex without approvals or sandboxing. The exec backend always uses--dangerously-bypass-approvals-and-sandbox; the app-server backend always uses dangerFullAccess. The codex_* MCP tools expose no sandbox argument, so callers cannot change this policy.
Only connect Harness Bridge to projects and harnesses you trust with the permissions of your user account.
Related MCP server: Codex MCP Server
Prerequisites
Claude Code CLI, installed and authenticated
OpenAI Codex CLI, installed and authenticated — version 0.147.0 or newer for the default app-server backend (older versions still work with
HARNESS_BRIDGE_CODEX_BACKEND=exec)Node.js 18 or newer
Quick start
Configure both routes and install the bundled skills and Codex teammate agent:
npx @rbutera/harness-bridge setupConfigure one route without installing extras:
npx @rbutera/harness-bridge connect claude --to codex
npx @rbutera/harness-bridge connect codex --to claudeThe compatibility forms remain available:
npx @rbutera/harness-bridge setup claude
npx @rbutera/harness-bridge setup codex
npx @rbutera/harness-bridge setup --skip-extrassetup claude means “configure Claude Code as the calling harness”; setup codex configures Codex as the caller.
Manual configuration
Claude Code calls Codex
claude mcp add codex -s user -- npx @rbutera/harness-bridge serve codexProject-local .mcp.json:
{
"mcpServers": {
"codex": {
"type": "stdio",
"command": "npx",
"args": ["harness-bridge", "serve", "codex"]
}
}
}Codex calls Claude Code
Add this to ~/.codex/config.toml:
[mcp_servers.claude]
command = "npx"
args = ["harness-bridge", "serve", "claude"]
tool_timeout_sec = 600Tools
Each adapter exposes the same task categories with a harness-specific prefix:
Task | Codex tool | Claude tool |
General query |
|
|
Code review |
|
|
Plan review |
|
|
Code explanation |
|
|
Performance planning |
|
|
Implementation |
|
|
All tools accept workingDirectory. Both adapters support deliberate multi-turn continuity, but through different parameters:
Codex tools accept an optional
threadId. Omit it to start a fresh thread; pass back thethreadIda prior call returned to continue that conversation.Claude tools accept an optional
threadKey. Omit it for independent calls; reuse a stable key to continue one conversation.
Either way, keyless (or threadId-less) calls are independent and run fully parallel; calls that continue the same conversation are serialized so two turns never race one thread.
For Codex, omit model unless a specific override is required so the current default from ~/.codex/config.toml applies.
Continuing a Codex conversation
Every Codex response that carries a thread ends with a trailing line:
threadId: 0199a1b2-c3d4-...Echo that id back on the next call to continue the same thread:
// first call — omit threadId to start fresh
{ "prompt": "Summarize the auth module." }
// response ends with: threadId: 0199a1b2-c3d4-...
// follow-up — pass the id back to continue
{ "prompt": "Now suggest a refactor.", "threadId": "0199a1b2-c3d4-..." }Thread state lives in Codex's own storage, so resume works across bridge restarts, Claude sessions, and reboots.
Bundled skills and agent
setup can install:
a
/codexskill for Claude Codea
codex-teammateagent for Claude Codea
/claudeskill for Codex-compatible agent directories
Install them individually with:
npx @rbutera/harness-bridge install skill claude --global
npx @rbutera/harness-bridge install skill codex --global
npx @rbutera/harness-bridge install agent --globalUse --local instead to install into the current project.
Configuration
Variable | Purpose | Default |
| Per-call process timeout |
|
| Retries for transient CLI failures |
|
| Enable debug logging on stderr | unset |
| Recursion depth propagated to child harnesses |
|
| Maximum simultaneous |
|
|
|
|
The previous BRIDGE_* and CODEX_BRIDGE_* names remain accepted for compatibility. New configuration should use HARNESS_BRIDGE_*.
Codex backends
The app-server backend is the default. It keeps one persistent Codex process, supports first-class threads, and can interrupt active turns. After every turn the bridge unsubscribes the thread so the app-server unloads its per-thread MCP stack while the thread stays resumable. It requires codex >= 0.147.0; a missing or too-old codex produces an actionable error naming the fix.
To opt back into the legacy codex exec backend (one subprocess per call):
HARNESS_BRIDGE_CODEX_BACKEND=exec npx @rbutera/harness-bridge serve codexThe legacy CODEX_BRIDGE_BACKEND name is also accepted, and the value app-server remains valid as an explicit no-op. Both backends use the same unrestricted execution policy. Threads created under one backend are not guaranteed to resume under the other.
Migrating from claude-codex-bridge
See MIGRATION.md for the package, command, configuration, and environment-variable changes. MCP server names and tool names are unchanged.
Development
git clone https://github.com/rbutera/harness-bridge.git
cd harness-bridge
pnpm install
pnpm checkpnpm check runs formatting, lint/type checking, all tests, the production build, and package linting.
Origin and license
Harness Bridge began from Dunqing’s claude-codex-bridge v0.3.1. The original Git history and authorship are preserved; ORIGIN.md records the lineage and subsequent divergence.
Licensed under the MIT License.
Available Tools
6 toolscodex_explain_codeCodex Explain CodeB
Ask Codex to deeply explain code, logic, or architecture. Useful for understanding unfamiliar code, onboarding, or documenting complex systems.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Depth of explanation: overview, detailed, or full execution trace | detailed |
| target | Yes | What to explain: file path, function name, module, or code snippet | |
| context | No | Additional context about the codebase | |
| threadId | No | Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread. | |
| workingDirectory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, whether it can make changes, how it interacts with the working directory, or what kind of output to expect. For a Codex-powered tool, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the core purpose front-loaded and supporting use cases in a second sentence. There is no redundant or filler content, though it is not maximally information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-oriented explanation tool: it states purpose and typical use cases, while the schema covers parameter meaning and defaults. However, with no annotations and no output schema, the agent is left to infer return behavior and safety characteristics, and the sibling tools are not differentiated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so most parameters are already documented in the schema. The description itself adds no parameter-level detail and does not clarify the undocumented workingDirectory parameter, but it does not need to repeat what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('deeply explain') and the resource ('code, logic, or architecture'), making the tool's purpose immediately understandable. It does not explicitly contrast it with siblings like codex_review_code, but the wording implies explanation rather than review, critique, or implementation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases: 'understanding unfamiliar code, onboarding, or documenting complex systems.' This gives the agent clear context for when to select this tool, though it does not explicitly say when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codex_implementCodex ImplementA
Ask Codex to implement a feature, fix a bug, or make code changes. WARNING: This modifies your codebase. Returns a summary of what was changed.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What to implement or fix | |
| model | No | Override the Codex model. OMIT this unless explicitly told otherwise: when omitted, the Codex CLI uses the default from ~/.codex/config.toml, which is kept current. This enum may lag behind newly released models. | |
| threadId | No | Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread. | |
| workingDirectory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly warns that the tool modifies the codebase and states that it returns a summary of changes, which are the most important behavioral characteristics for an agent to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences that cover purpose, a safety warning, and the return type. The WARNING is front-loaded and the most critical information is easy to notice. A little more detail about alternatives or parameters could be added, but the current length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no annotations and no output schema, the description covers the essential context: what the tool does, that it mutates the codebase, and what it returns. It falls slightly short by not mentioning when to choose this tool over siblings or clarifying workingDirectory, but it is largely complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level detail beyond the input schema, but the schema already covers 75% of parameters with meaningful descriptions for task, model, and threadId. The workingDirectory parameter lacks a schema description and is not compensated for in the tool description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: ask Codex to implement a feature, fix a bug, or make code changes. It doesn't explicitly distinguish itself from the sibling review/query/plan tools, but the verb 'implement' and focus on code modification make the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the goal is to modify code, which is helpful context. However, it provides no explicit guidance on when not to use it or how it compares to sibling tools like codex_review_code or codex_query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codex_plan_perfCodex Performance PlanA
Ask Codex to analyze performance and create an improvement plan. Identifies bottlenecks, proposes ranked optimizations with expected impact.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | What to optimize: function, module, or pipeline path | |
| context | No | Additional context about usage patterns | |
| metrics | No | Performance metrics to focus on | |
| threadId | No | Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread. | |
| constraints | No | Constraints: must not increase binary size, etc. | |
| workingDirectory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It discloses the output behavior—identifying bottlenecks and proposing ranked optimizations with expected impact—which suggests a non-mutating planning task, but it never explicitly rules out writing files, invoking side effects, or requiring special permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two focused sentences with no wasted words. It front-loads the purpose and then adds the key output details, making it easy for an agent to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the purpose and output adequately, while the schema covers most parameters. However, with no annotations, no output schema, and sibling tools present, the description leaves usage-selection and operational/side-effect context implicit, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds little parameter-level meaning beyond the high-quality schema, which already documents target, context, metrics, threadId, and constraints. Since schema description coverage is 83%, the baseline of 3 is appropriate; only workingDirectory lacks a schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: analyze performance and create an improvement plan. It further distinguishes itself by naming outputs like bottlenecks and ranked optimizations, making it distinguishable from the code-review, query, explain, and implement siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a performance-analysis use case but provides no explicit guidance on when to choose this tool over alternatives such as codex_review_plan or codex_query. There are no exclusions, prerequisites, or criteria for picking this tool versus the other Codex siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codex_queryAsk CodexA
Ask OpenAI Codex a question or give it a task. Use for getting a second opinion, exploring unfamiliar code, or tasks that benefit from a different model's perspective.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Override the Codex model. OMIT this unless explicitly told otherwise: when omitted, the Codex CLI uses the default from ~/.codex/config.toml, which is kept current. This enum may lag behind newly released models. | |
| prompt | Yes | The question or task for Codex | |
| threadId | No | Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread. | |
| workingDirectory | No | Working directory (defaults to server cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'ask a question or give it a task,' which is ambiguous about whether Codex may execute code, modify files, or have side effects. It also does not mention thread continuation behavior or what the response contains, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core purpose is front-loaded, and the usage guidance is placed efficiently after the action. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the high-level purpose and typical use cases, but because there is no output schema and no annotations, it misses important context: what a call returns, whether threadId allows continuing conversations, and whether 'give it a task' can lead to file mutations. It is adequate for a general query tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters, including the model override caveat and threadId semantics. The description adds little beyond saying the prompt is 'the question or task,' which is consistent with the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Ask OpenAI Codex a question or give it a task') and identifies the resource. It suggests general use cases like 'second opinion' and 'exploring unfamiliar code,' but does not explicitly distinguish itself from siblings such as codex_explain_code or codex_review_code, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear contexts for use: 'second opinion,' 'unfamiliar code,' and 'different model's perspective.' It does not, however, state when not to use it or explicitly name alternatives, so the guidance is present but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codex_review_codeCodex Code ReviewA
Ask Codex to review code. Provide a git diff range, file paths, or a code snippet. Returns specific, actionable feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | What to review: git diff range (e.g., "HEAD~3..HEAD"), file paths, or code snippet | |
| context | No | Additional context about the codebase or changes | |
| threadId | No | Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread. | |
| focusAreas | No | Focus on: bugs, performance, style, security, etc. | |
| workingDirectory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states that the tool invokes Codex and 'Returns specific, actionable feedback', which covers the primary behavior and output. However, it does not mention side effects, whether the tool modifies files, prerequisites like a git repository, or external-service considerations, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with the core purpose front-loaded and input options compressed efficiently. Every phrase earns its place and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description plus schema covers the target formats, optional context, focus areas, thread continuation, and the return type at a high level. The main gap is the undocumented workingDirectory parameter, though its meaning is reasonably inferable from its name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 80%, so the schema already documents most parameters. The description mostly restates the target options already present in the schema and adds no meaningful detail about workingDirectory or other optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Ask Codex to review code', and clarifies what can be reviewed (git diff range, file paths, snippet) and what is returned (specific, actionable feedback). It is clear from 'review' how this differs from siblings like codex_explain_code, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates the context clearly: use this tool when you want Codex to review code, and it tells the agent what to supply ('Provide a git diff range, file paths, or a code snippet.'). It does not explicitly mention alternatives or when-not-to-use, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codex_review_planCodex Plan ReviewA
Ask Codex to critique an implementation plan. Identifies gaps, risks, missing edge cases, and suggests improvements.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | The implementation plan or design to review | |
| threadId | No | Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread. | |
| constraints | No | Known constraints: timeline, tech stack, compatibility | |
| codebasePath | No | Path to relevant codebase for context | |
| workingDirectory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It does state what the tool produces—critique of gaps, risks, edge cases, improvements—but it does not mention whether the operation is read-only, whether it only returns text, or any side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, and every clause adds useful information. No filler or repetition of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is enough to understand the core purpose, but with no annotations and no output schema, it leaves out useful context such as return format/behavior and how this tool relates to sibling codex_plan_perf. The schema handles parameter documentation, so the remaining gap is guidance on alternatives and output expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3. The description's mention of 'implementation plan' aligns with the required plan parameter but adds little semantic detail beyond the schema's own descriptions for threadId, constraints, and codebasePath.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('critique') and identifies the resource ('implementation plan'), and lists concrete outcomes: gaps, risks, missing edge cases, and improvements. It clearly distinguishes from code review and explanation tools, though it does not explicitly differentiate from the sibling codex_plan_perf, which also targets plans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: bring an implementation plan to get a critical review. However, it provides no explicit when-to-use guidance, no exclusions, and no alternative routing such as 'use codex_plan_perf for performance-specific plan review.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v1.0.0- Changed
codex_explain_code2 fields changed- added
Input schema / properties / threadIdAdded value: +{ + "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.", + "type": "string" +} - removed
Input schema / properties / threadKeyRemoved value: -{ - "description": "Optional key enabling multi-turn continuity. Calls sharing a key use the same harness conversation and are serialized. Omit it for independent one-shot calls, including parallel reviews.", - "type": "string" -}
- Changed
codex_implement2 fields changed- added
Input schema / properties / threadIdAdded value: +{ + "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.", + "type": "string" +} - removed
Input schema / properties / threadKeyRemoved value: -{ - "description": "Optional key enabling multi-turn continuity. Calls sharing a key use the same harness conversation and are serialized. Omit it for independent one-shot calls, including parallel reviews.", - "type": "string" -}
- Changed
codex_plan_perf2 fields changed- added
Input schema / properties / threadIdAdded value: +{ + "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.", + "type": "string" +} - removed
Input schema / properties / threadKeyRemoved value: -{ - "description": "Optional key enabling multi-turn continuity. Calls sharing a key use the same harness conversation and are serialized. Omit it for independent one-shot calls, including parallel reviews.", - "type": "string" -}
- Changed
codex_query2 fields changed- added
Input schema / properties / threadIdAdded value: +{ + "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.", + "type": "string" +} - removed
Input schema / properties / threadKeyRemoved value: -{ - "description": "Optional key enabling multi-turn continuity. Calls sharing a key use the same harness conversation and are serialized. Omit it for independent one-shot calls, including parallel reviews.", - "type": "string" -}
- Changed
codex_review_code2 fields changed- added
Input schema / properties / threadIdAdded value: +{ + "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.", + "type": "string" +} - removed
Input schema / properties / threadKeyRemoved value: -{ - "description": "Optional key enabling multi-turn continuity. Calls sharing a key use the same harness conversation and are serialized. Omit it for independent one-shot calls, including parallel reviews.", - "type": "string" -}
- Changed
codex_review_plan2 fields changed- added
Input schema / properties / threadIdAdded value: +{ + "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.", + "type": "string" +} - removed
Input schema / properties / threadKeyRemoved value: -{ - "description": "Optional key enabling multi-turn continuity. Calls sharing a key use the same harness conversation and are serialized. Omit it for independent one-shot calls, including parallel reviews.", - "type": "string" -}
6 tool updates
v0.4.0- First observed
codex_explain_code - First observed
codex_implement - First observed
codex_plan_perf - First observed
codex_query - First observed
codex_review_code - First observed
codex_review_plan
TDQS
Each tool has a distinct specialized purpose—reviewing code, explaining code, critiquing plans, planning performance work, and implementing changes. However, codex_query is a catch-all that overlaps with all the other tools, which could create some selection ambiguity.
All tools share the codex_ prefix and use verb-oriented names, making the pattern easy to follow. The deviations are codex_query, which lacks an object, and codex_plan_perf, which uses an awkward abbreviation instead of a clear noun like performance.
Six tools is a well-scoped count for a Codex bridge. Each tool covers a meaningful developer workflow without unnecessary redundancy, and the set feels neither thin nor bloated.
The tool set covers the major interaction modes with Codex: reviewing, explaining, planning, performance analysis, implementation, and general Q&A. The generic codex_query prevents dead ends, though a security-specific review or similar niche tool could be added without much effort.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
No-data MCP handoff for local Claude Code to Codex harness moves. $49 lifetime.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceThe self-hosted MCP bridge between Claude Chat and Claude Code.46AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceIntegrates OpenAI Codex CLI with Claude Code via MCP, enabling code execution, analysis, fixing, and web search within Claude Code.6741ISC
- AlicenseBqualityDmaintenanceMCP server that enables Claude Code to delegate code generation and debugging to OpenAI Codex, with stall detection and auto-recovery.218MIT
- AlicenseNot gradedqualityBmaintenanceMCP bridge for using local Claude CLI as a bounded reviewer and analysis delegate for Codex.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rbutera/harness-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server