Skip to main content
Glama
rbutera

harness-bridge

by rbutera

Harness Bridge

npm version CI License: MIT Node.js

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

codex_*

OpenAI Codex

Claude Code

claude_*

The adapter boundary keeps harness-specific execution, sessions, models, and capabilities separate while preserving a consistent set of task-oriented MCP tools.

Execution contract

WARNING

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 setup

Configure one route without installing extras:

npx @rbutera/harness-bridge connect claude --to codex
npx @rbutera/harness-bridge connect codex --to claude

The compatibility forms remain available:

npx @rbutera/harness-bridge setup claude
npx @rbutera/harness-bridge setup codex
npx @rbutera/harness-bridge setup --skip-extras

setup 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 codex

Project-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 = 600

Tools

Each adapter exposes the same task categories with a harness-specific prefix:

Task

Codex tool

Claude tool

General query

codex_query

claude_query

Code review

codex_review_code

claude_review_code

Plan review

codex_review_plan

claude_review_plan

Code explanation

codex_explain_code

claude_explain_code

Performance planning

codex_plan_perf

claude_plan_perf

Implementation

codex_implement

claude_implement

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 the threadId a 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 /codex skill for Claude Code

  • a codex-teammate agent for Claude Code

  • a /claude skill 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 --global

Use --local instead to install into the current project.

Configuration

Variable

Purpose

Default

HARNESS_BRIDGE_TIMEOUT_MS

Per-call process timeout

1800000

HARNESS_BRIDGE_MAX_RETRIES

Retries for transient CLI failures

2

HARNESS_BRIDGE_DEBUG

Enable debug logging on stderr

unset

HARNESS_BRIDGE_DEPTH

Recursion depth propagated to child harnesses

0

HARNESS_BRIDGE_CODEX_MAX_CONCURRENT

Maximum simultaneous codex exec processes

4

HARNESS_BRIDGE_CODEX_BACKEND

app-server (default) or opt-out exec

app-server

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 codex

The 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 check

pnpm 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 tools
codex_explain_codeCodex Explain CodeB

Ask Codex to deeply explain code, logic, or architecture. Useful for understanding unfamiliar code, onboarding, or documenting complex systems.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoDepth of explanation: overview, detailed, or full execution tracedetailed
targetYesWhat to explain: file path, function name, module, or code snippet
contextNoAdditional context about the codebase
threadIdNoContinue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.
workingDirectoryNo

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWhat to implement or fix
modelNoOverride 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.
threadIdNoContinue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.
workingDirectoryNo

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesWhat to optimize: function, module, or pipeline path
contextNoAdditional context about usage patterns
metricsNoPerformance metrics to focus on
threadIdNoContinue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.
constraintsNoConstraints: must not increase binary size, etc.
workingDirectoryNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOverride 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.
promptYesThe question or task for Codex
threadIdNoContinue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.
workingDirectoryNoWorking directory (defaults to server cwd)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesWhat to review: git diff range (e.g., "HEAD~3..HEAD"), file paths, or code snippet
contextNoAdditional context about the codebase or changes
threadIdNoContinue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.
focusAreasNoFocus on: bugs, performance, style, security, etc.
workingDirectoryNo

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesThe implementation plan or design to review
threadIdNoContinue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.
constraintsNoKnown constraints: timeline, tech stack, compatibility
codebasePathNoPath to relevant codebase for context
workingDirectoryNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 6 tool updatesv1.0.0
    • Changedcodex_explain_code2 fields changed
      • addedInput schema / properties / threadId
        Added value: +{
        +  "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.",
        +  "type": "string"
        +}
      • removedInput schema / properties / threadKey
        Removed 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"
        -}
    • Changedcodex_implement2 fields changed
      • addedInput schema / properties / threadId
        Added value: +{
        +  "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.",
        +  "type": "string"
        +}
      • removedInput schema / properties / threadKey
        Removed 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"
        -}
    • Changedcodex_plan_perf2 fields changed
      • addedInput schema / properties / threadId
        Added value: +{
        +  "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.",
        +  "type": "string"
        +}
      • removedInput schema / properties / threadKey
        Removed 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"
        -}
    • Changedcodex_query2 fields changed
      • addedInput schema / properties / threadId
        Added value: +{
        +  "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.",
        +  "type": "string"
        +}
      • removedInput schema / properties / threadKey
        Removed 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"
        -}
    • Changedcodex_review_code2 fields changed
      • addedInput schema / properties / threadId
        Added value: +{
        +  "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.",
        +  "type": "string"
        +}
      • removedInput schema / properties / threadKey
        Removed 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"
        -}
    • Changedcodex_review_plan2 fields changed
      • addedInput schema / properties / threadId
        Added value: +{
        +  "description": "Continue a previous Codex conversation: pass the threadId returned by an earlier call. Omit to start a fresh thread.",
        +  "type": "string"
        +}
      • removedInput schema / properties / threadKey
        Removed 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"
        -}
  2. 6 tool updatesv0.4.0
    • First observedcodex_explain_code
    • First observedcodex_implement
    • First observedcodex_plan_perf
    • First observedcodex_query
    • First observedcodex_review_code
    • First observedcodex_review_plan

TDQS

A3.7/5.0
Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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