Skip to main content
Glama

Codex Discussion MCP

Claude Code, Antigravity CLI, Kiro CLI 등에서 Codex를 독립적인 토론 상대로 호출하는 로컬 MCP 서버입니다. 호출 에이전트가 토론을 진행하며, 질문마다 모델과 reasoning effort를 선택할 수 있습니다.

  • 모델 목록·설명·지원 effort를 Codex에서 조회

  • 대화 맥락을 유지하며 질문, 반론, 추가 근거 전달

  • 오래 걸리는 응답의 비동기 조회와 정확한 발언 중단

  • Codex가 저장한 대화 ID로 후속 세션에서 재개

  • 읽기 전용 프로젝트 탐색과 공개 발언 전달

패키지 이름은 @mirolab/codex-discussion-mcp입니다. npm에 게시된 버전은 아래 설치 명령으로 사용합니다. 게시 전 버전은 GitHub Actions의 npm-package artifact에 포함된 .tgz를 설치하거나 로컬에서 빌드해 사용할 수 있습니다. 게시 절차

실행 환경

  • Node.js 22.14 이상과 npm

  • 설치되고 로그인된 Codex CLI

  • Codex CLI 0.164.0의 app-server 프로토콜을 기준으로 검증

기존 Codex CLI의 로그인과 모델 provider 설정을 사용합니다. MCP 서버용으로 별도의 OpenAI API 키를 입력할 필요가 없습니다. 사용 중인 provider가 요구하는 계정 권한과 사용량 제한은 그대로 적용됩니다.

Codex 프로젝트 탐색은 읽기 전용이며, 상속된 MCP 연결과 플러그인은 토론용 자식 프로세스에서 비활성화합니다. 외부 에이전트의 대화 내용은 자동 공유되지 않으므로 질문에 필요한 코드, 설명, 가정을 직접 포함하세요.

Related MCP server: Claude Code Bridge

설치

게시 후 전역 설치:

npm install -g @mirolab/codex-discussion-mcp
codex-discussion-mcp --help

전역 설치 없이 실행할 수도 있습니다. MCP 설정에서 다음 명령을 등록하세요.

npx -y @mirolab/codex-discussion-mcp@0.1.0

이 명령은 stdio MCP 서버로 대기합니다. 일반 채팅용 터미널 명령처럼 질문을 입력하는 방식은 아니며, MCP 호스트가 서버에 연결해 도구를 호출합니다.

Claude Code 등록

전역 설치 후 모든 프로젝트에서 사용:

claude mcp add --transport stdio --scope user codex-discussion -- codex-discussion-mcp
claude mcp get codex-discussion

전역 설치 없이 등록:

claude mcp add --transport stdio --scope user codex-discussion -- \
  npx -y @mirolab/codex-discussion-mcp@0.1.0

프로젝트 범위로 공유하려면 --scope user를 --scope project로 바꿉니다. Claude Code의 /mcp에서도 연결 상태를 확인할 수 있습니다.

Kiro CLI · Antigravity CLI 등록

해당 설정 파일의 기존 mcpServers에 아래 서버 항목을 병합하세요.

호스트

사용자 전체 설정

프로젝트별 설정

Kiro CLI

~/.kiro/settings/mcp.json

.kiro/settings/mcp.json

Antigravity CLI

~/.gemini/config/mcp_config.json

.agents/mcp_config.json

{
  "mcpServers": {
    "codex-discussion": {
      "command": "npx",
      "args": ["-y", "@mirolab/codex-discussion-mcp@0.1.0"]
    }
  }
}

전역 설치했다면 서버 항목을 다음처럼 바꿀 수 있습니다.

{ "command": "codex-discussion-mcp", "args": [] }

호스트 설정 형식은 설치 버전에 따라 다를 수 있습니다. Claude Code 공식 문서, Kiro 공식 문서, Antigravity 공식 문서를 참고하세요.

프로젝트 경로와 Codex 실행 파일

discussion_start.cwd에 프로젝트의 절대 경로를 전달하는 것을 권장합니다. 생략하면 --cwd 값, 그마저 없으면 MCP 프로세스의 작업 디렉터리를 사용합니다. 호스트가 MCP 프로세스를 프로젝트 밖에서 시작할 수도 있습니다.

{
  "command": "codex-discussion-mcp",
  "args": ["--cwd", "/absolute/path/to/project", "--codex-command", "/absolute/path/to/codex"]
}

--codex-command는 기본적으로 환경 변수 CODEX_DISCUSSION_CODEX_PATH, 그다음 PATH의 codex를 사용합니다. 고급 실행 환경에서는 --codex-arg를 반복해 기본 app-server 실행 인수를 대체할 수 있습니다. -로 시작하는 값은 --codex-arg=--some-option처럼 =로 연결하세요.

에이전트에게 요청하기

codex-discussion에서 모델 목록과 지원 effort를 먼저 조회해줘. 질문의 복잡도에 맞는 모델과 effort를 고르고, 현재 설계의 장단점에 대해 Codex와 토론해줘. 반론을 주고받은 뒤 합의점과 남은 이견을 정리해줘.

항상 특정 상황에서 토론하게 하려면 각 에이전트의 프로젝트 지침에 다음과 같은 조건을 추가할 수 있습니다.

주요 아키텍처 결정 전에 codex-discussion으로 독립 검토를 받는다. 먼저 models_list를 조회하고, 해당 질문에 맞는 model과 지원 effort를 선택한다. 내 의견과 근거를 전달하고 반론을 검토한 뒤 최종 결정의 이유를 설명한다.

MCP 도구

도구

입력

결과

models_list

includeHidden?

모델·effort 카탈로그, 조회 시각

discussion_start

message, cwd?, model?, effort?

새 discussionId, turnId, 선택 설정, 현재 상태

discussion_reply

discussionId, message, model?, effort?

같은 대화의 새 발언

discussion_read

discussionId, turnId?, cursor?, limit?, waitMs?

상태, 공개 메시지, nextCursor, 오류

discussion_cancel

discussionId, turnId

특정 발언의 중단 요청 상태

모델 ID와 effort는 하드코딩하지 않습니다. models_list의 각 항목에는 model, displayName, description, isDefault, defaultReasoningEffort, supportedReasoningEfforts가 포함됩니다. 선택에는 picker ID인 id가 아닌 model 값을 사용하세요. 카탈로그 조회는 추론 접근 권한을 검증하지 않으며 accessVerified: false로 표시합니다.

선택 규칙:

  1. 첫 질문에서 생략하면 카탈로그의 기본 모델과 그 모델의 기본 effort를 사용합니다.

  2. 후속 질문에서 생략하면 직전 선택을 유지합니다.

  3. 모델을 변경하고 effort를 생략하면 새 모델의 기본 effort를 사용합니다.

  4. 지원하지 않는 조합은 허용값을 포함한 오류로 반환합니다.

discussion_start와 discussion_reply는 생성 완료를 기다리지 않습니다. 다음 순서로 호출합니다.

models_list({})
discussion_start({message: "설계를 검토해줘", cwd: "/absolute/project", model: 조회한_모델, effort: 지원_effort})
discussion_read({discussionId: 반환된_ID, waitMs: 20000})
… 상태가 inProgress이면 다시 조회 …
discussion_reply({discussionId: 같은_ID, message: "이 반례는 어떻게 생각해?"})

waitMs는 020000, limit는 1100입니다. 새 출력이 생기면 완료 전에도 조회가 반환될 수 있습니다. 상태는 inProgress, completed, failed, interrupted, connectionLost입니다. completed만 정상 완료입니다.

nextCursor로 메시지를 페이지 조회할 수 있습니다. 메시지가 길면 동일 ID의 여러 조각으로 나뉘며 textOffset을 포함합니다. 조각당 최대 8000자, 응답당 최대 64000자를 반환합니다. 생성 중의 수정된 텍스트를 받으려면 커서 없이 다시 조회하세요. 커서는 특정 프로세스·대화·발언에 연결되며, MCP 재시작 뒤에는 커서를 생략해 다시 조회해야 합니다.

대화 ID는 Codex thread ID입니다. 같은 Codex 저장소를 사용하는 후속 프로세스에서 재개할 수 있습니다. 저장 이력의 발언별 모델·effort를 확인할 수 없으면 null로 반환하고, 현재 저장된 대화 기본값은 threadDefaults에 별도로 표시합니다. 저장된 effort가 없으면 후속 질문에 명시적인 effort를 요청합니다.

같은 대화는 한 번에 하나의 발언을 처리합니다. 실행 중 추가 질문은 DISCUSSION_BUSY 오류를 반환합니다. 다른 대화는 독립 실행할 수 있으며, 같은 대화를 여러 MCP 프로세스에서 동시에 수정하는 사용은 지원하지 않습니다. 연결 종료나 요청 타임아웃 시 추론을 자동 재실행하지 않습니다.

개발과 검증

npm ci
npm run check
npm run verify:package
npm run smoke -- --models-only

verify:package는 tarball을 별도 임시 폴더에 프로덕션 의존성만 설치한 뒤, 설치된 실행 명령으로 MCP 탐색과 두 번의 토론을 시뮬레이션합니다. 자동 테스트는 실제 모델 사용량을 발생시키지 않습니다.

로그인된 실제 Codex로 짧은 2회 발언을 검증하려면:

npm run smoke -- --inference

이 명령은 실제 추론을 실행하며 계정 사용량을 사용합니다. CI는 실제 추론 없이 Node.js 22와 24에서 타입 검사, 테스트, 빌드, 설치 검증을 실행합니다. 현재 기본 검증 대상 플랫폼은 macOS와 GitHub-hosted Ubuntu입니다.

배포 및 설계

GitHub 빌드와 npm 게시 · 설계 · 개발 계획

라이선스

MIT

Available Tools

5 tools
discussion_cancelInterrupt a Codex turnA
Idempotent

Request interruption of exactly the specified turn. An accepted cancellation request is distinct from the final interrupted status; confirm with discussion_read. Completed older turns are returned without interrupting newer work.

NameRequiredDescriptionDefault
turnIdYes
discussionIdYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses important behavior: an accepted cancellation request is distinct from the final interrupted status, confirmation requires discussion_read, and completed older turns are returned without interrupting newer work. This gives useful async/state context for a mutation-style operation.

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 three tight sentences with the action front-loaded. Each sentence adds distinct value: the action, the async confirmation behavior, and the older-turn edge case.

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 behavioral nuances are well covered, but with 0% schema parameter coverage and no output schema, the description should do more to explain the required identifiers and what an accepted response looks like. It is usable but leaves meaningful gaps for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only refers to 'the specified turn' without explaining discussionId, turnId formats, or how the two parameters relate. It gives partial meaning to turnId but leaves the required discussionId undocumented.

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 states a specific verb and resource: request interruption of exactly the specified turn. It also distinguishes the confirmation path by naming discussion_read, so an agent can tell what this tool does relative to its siblings.

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?

Usage is implied by 'Request interruption of exactly the specified turn,' and the description says to confirm with discussion_read. However, it does not explicitly state when to use this versus alternatives or when cancellation should not be requested.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discussion_readRead Codex output or wait for progressA
Read-onlyIdempotent

Read the latest or specified turn. Poll with waitMs up to 20000 until completed, failed, interrupted or connectionLost; new output can return before completion. Follow nextCursor for more message chunks. During generation, read again without a cursor for updated text. Persisted historical per-turn model/effort may be unavailable; threadDefaults are reported separately.

NameRequiredDescriptionDefault
limitNo
cursorNo
turnIdNo
waitMsNo
discussionIdYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/no open world, so safety is covered; the description adds real value beyond them by listing terminal states (completed, failed, interrupted, connectionLost), warning that partial output can return before completion, and noting persisted per-turn model/effort may be unavailable with threadDefaults reported separately.

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?

Five packed sentences, front-loaded with the core read action and followed by polling, cursor, and streaming guidance. Dense but every sentence carries operational information; the final sentence about persisted model/effort is slightly tangential to invoking the tool.

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?

No output schema, so the description must convey return behavior, and it does: message chunks, cursors, partial versus completed output, terminal states. The main remaining gap is the limit parameter and the shape of returned content, which keeps it from being 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 0%, so the description must carry parameter meaning. It explains waitMs (polling up to 20000), cursor (follow nextCursor for chunks), and turnId (specified turn), but says nothing about limit or what discussionId identifies, leaving part of the 5-parameter surface undocumented.

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?

States a specific verb and resource: 'Read the latest or specified turn' of a discussion. It is clearly a read/retrieval tool, distinguishable from the write-oriented siblings (discussion_start, discussion_reply) and from models_list, though it never names a sibling explicitly.

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?

Gives actionable operating guidance: poll with waitMs up to 20000, follow nextCursor for more chunks, and during generation re-read without a cursor for updated text. It stops short of stating when to prefer this over alternatives or prerequisites (e.g., needing an existing discussionId from discussion_start).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discussion_replyContinue a Codex discussionA

Send a follow-up, objection or additional evidence to an existing discussion. Finish or cancel the active turn first. Model and effort can change on each reply. Omitted choices inherit; changing model without effort uses the new model default. Returns immediately; use discussion_read.

NameRequiredDescriptionDefault
modelNoExact model value returned by models_list. Choose based on the question complexity and model description.
effortNoOne of the selected model supportedReasoningEfforts. Reasoning efforts differ between models.
messageYes
discussionIdYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing async semantics ('Returns immediately'), the required prior state transition (finishing or cancelling the active turn), and inheritance rules for optional arguments. This is real behavioral context an agent cannot infer from readOnlyHint/openWorldHint/idempotentHint.

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?

Five short sentences, front-loaded with the action and the blocking prerequisite, then the argument-inheritance rule, then the return/next-step pointer. Telegraphic but every clause carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers return behavior itself ('Returns immediately; use discussion_read'). Combined with the preconditions and inheritance rules, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (model and effort documented, message and discussionId not), so the description must compensate. It adds genuine semantics the schema lacks: model and effort are re-selectable per reply, omitted choices inherit, and changing model without effort falls back to the new model default.

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?

States a specific verb ('Send a follow-up, objection or additional evidence') against a specific resource ('an existing discussion'), which cleanly separates it from discussion_start and discussion_read. An agent can classify the tool without opening the schema.

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?

Explicit prerequisite ('Finish or cancel the active turn first') and an explicit alternative for the follow-up read ('use discussion_read'). It doesn't spell out the reply-vs-discussion_start boundary, but 'existing discussion' makes that implicit and unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discussion_startStart a discussion with CodexA

Start an independent read-only Codex conversation. Call models_list first, then select model and effort for the question complexity. Supply the question, relevant context and optional absolute project cwd. Returns discussionId and turnId immediately; read output using discussion_read.

NameRequiredDescriptionDefault
cwdNoAbsolute project directory. Defaults to --cwd or the MCP process working directory.
modelNoExact model value returned by models_list. Choose based on the question complexity and model description.
effortNoOne of the selected model supportedReasoningEfforts. Reasoning efforts differ between models.
messageYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavior annotations don't convey: it is asynchronous, returning discussionId and turnId immediately while output must be fetched via discussion_read. The adjective 'read-only' describes the Codex session but could be misread against readOnlyHint=false, since the call itself creates discussion state; that nuance is not spelled out, which keeps it below a 5.

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?

Four short sentences, front-loaded with the core action, followed by the ordering constraint and the return contract. Dense and free of filler; the only slight cost is that the workflow and return details are packed together without visual separation.

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?

With no output schema, the description usefully states the return shape and the read-back path, which is the key gap for an async tool. It omits practical limits (message size, cost/latency of a turn, lifecycle of the discussion) that an agent would benefit from, but the essential calling contract is present.

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 coverage is 75%, with cwd, model and effort already documented in the schema; the description mostly echoes those (absolute cwd, model from models_list). It adds light selection guidance for model/effort but leaves the required 'message' parameter (question plus relevant context) with no schema description and only a brief mention here.

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?

States a specific verb and resource ('Start an independent read-only Codex conversation') and immediately tells the agent how it differs from the reading sibling ('read output using discussion_read'). It is clear this opens a new discussion rather than continuing one (discussion_reply) without needing to open any schema.

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?

Gives an explicit prerequisite sequence ('Call models_list first, then select model and effort for the question complexity') and names the follow-up tool for retrieving results. It does not state when NOT to use it (e.g., when to continue an existing thread with discussion_reply instead), so it falls short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

models_listDiscover Codex models and effort levelsA
Read-onlyIdempotent

Call first to fetch the current Codex model catalog with descriptions, default model, default effort and supported effort descriptions. No inference is run. Catalog entries do not guarantee account/provider inference access.

NameRequiredDescriptionDefault
includeHiddenNoInclude models hidden from the default picker.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the readOnly/idempotent annotations by stating 'No inference is run' (no cost or side effects) and warning that 'catalog entries do not guarantee account/provider inference access' — a real interpretation caveat an agent would otherwise get wrong. It stops short of describing catalog size, staleness, or caching behavior.

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?

Three tight sentences with the action directive front-loaded and zero filler. Every sentence carries a distinct fact: what to do, what is returned, and what the result does not imply.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned catalog fields, and it adds the no-inference and access-caveat facts. For a single-optional-parameter read-only tool, nothing an agent needs to call it correctly is missing.

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% and the single optional parameter includeHidden is fully documented in the schema. The description adds nothing about it, so the baseline 3 applies.

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?

States a specific verb and resource ('fetch the current Codex model catalog') and enumerates the payload (descriptions, default model, default effort, supported effort descriptions). Sibling tools are all discussion_* operations, so no differentiation is needed and none is confused.

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?

'Call first' gives an explicit sequencing directive that tells the agent to invoke this before model selection. It lacks an explicit 'do not use when' clause, but there is no competing sibling that would need an exclusion.

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.

  1. 5 tool updatesv0.1.0
    • First observeddiscussion_cancel
    • First observeddiscussion_read
    • First observeddiscussion_reply
    • First observeddiscussion_start
    • First observedmodels_list

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct lifecycle role: model catalog, starting a new conversation, replying to an existing one, reading/polling output, and cancelling a specific turn. The start-vs-reply boundary is well clarified by 'independent' new conversation versus 'existing discussion', so misselection is unlikely.

Naming Consistency5/5

All names are snake_case and follow a predictable resource_action pattern: models_list, discussion_start, discussion_reply, discussion_read, discussion_cancel. The only minor variation is plural 'models' versus singular 'discussion', which is natural and still consistent.

Tool Count5/5

Five tools map directly to the necessary catalog lookup plus discussion lifecycle operations. There is no obvious bloat, and the surface is neither too thin nor too heavy for this purpose.

Completeness4/5

The core lifecycle is covered: model discovery, start, reply, read/poll, and cancel. Minor gaps exist, such as no tool to list or discover existing discussions and no explicit finish/archive/delete operation, but agents can work around these when they track discussion IDs and read turn status.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    F
    maintenance
    Connects AI assistants like Claude to the Codex CLI for code analysis, editing, and execution. Supports file references with @ syntax, sandboxed code execution with approval workflows, and structured code changes for automated refactoring and documentation.
    8
    42 npm
    176
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lets Codex delegate coding and repository work to an installed Claude Code CLI with permission-aware inspect/write access, model and effort selection, resumable and cloud-attached sessions, and durable synchronous or asynchronous jobs.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables Claude Code to delegate coding tasks—investigation, review, long-running background jobs, and optional file edits—to a locally installed OpenAI Codex CLI, with the model and reasoning effort chosen per task and read-only execution by default. Follow-up requests reuse Codex's existing context, and write-enabled delegations can be confined to a managed git worktree so the user's own checkout stays untouched.
    9
    42 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Two AIs. One answer. ChatGPT and Claude discuss with each other until they agree, through your own signed-in CLIs: no API keys. Both read your project (never change it) and search the web. Plugin for Claude Code, Codex, Claude Desktop and the ChatGPT app.
    2
    8
    1,482 npm
    5
    MIT