mcpField
C
Codex As Mcp

Codex As Mcp

本地服务
github.com/kky42开发工具17617 周前更新

关于 Codex As Mcp

codex-as-mcp 是一个 MCP 服务,可让 MCP 客户端将任务委派给 Codex CLI。它支持在服务当前工作目录中运行单个 Agent 或并行 Agent。

主要功能

  1. 01根据提示词运行 Codex 子 Agent
  2. 02并行启动多个 Agent
  3. 03返回各 Agent 的输出或错误
  4. 04通过标准输入传递提示词

适用场景

  1. 01从 MCP 客户端委派编码任务
  2. 02将独立任务分配给多个 Codex Agent
  3. 03收集多个并行任务的结果

MCP 相关

该 MCP 服务向客户端提供 `spawn_agent` 和 `spawn_agents_parallel` 工具。两者都在服务当前工作目录中运行 Codex CLI 任务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"codex-as": {
"command": "uvx",
"args": [
"codex-as-mcp@latest"
]
}
}
}
启动命令uvx codex-as-mcp@latest

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicodex-as-mcp@latest

工具

2

收录的工具列表 · 更新于 2 周前

参数类型必填说明
promptstring是
work_dirstring是

详细介绍

codex-as-mcp

中文版

codex-as-mcp 是一个小型 Model Context Protocol (MCP) 服务,可让 MCP 客户端(Claude Code、Cursor 等)将工作委托给 Codex CLI。

它提供两个工具,可在服务当前工作目录中运行 Codex:

  • spawn_agent(prompt: str)
  • spawn_agents_parallel(agents: list[dict])

在底层,每个 Agent 都会运行类似以下的命令: codex exec --cd <server cwd> --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox -。

提示词通过 stdin 发送,随后关闭 stdin。这样可以避免命令行引号和长度问题,并防止 Codex 意外地从 MCP 服务的 JSON-RPC stdin 管道读取内容。

注意:--dangerously-bypass-approvals-and-sandbox 会禁用沙盒和确认提示。仅在你信任的仓库中使用此服务。

在 Claude Code 中使用

codex-as-mcp 中有两个工具 tools

你可以使用提示词并行生成多个 Codex 子 Agent。 alt text

以下是一个 Codex 会话同时委托两项任务的示例。 Codex use case

快速开始

1. 安装 Codex CLI

需要 Codex CLI >= 0.46.0

npm install -g @openai/codex@latest
codex login

# Verify installation
codex --version

确保 Codex CLI 可以在你的机器上以非交互方式运行(在 ~/.codex/config.toml 中配置提供方和凭据,或通过其中引用的特定提供方环境变量配置)。

示例:第三方提供方 + env_key

如果你使用第三方提供方,请在 Codex config.toml 中进行配置,并将 model_provider 指向该提供方。当提供方使用 env_key 时,Codex CLI 运行时需要能够访问该环境变量。

示例:

model_provider = "custom_provider"

[model_providers.custom_provider]
name = "custom_provider"
base_url = "https://..."
wire_api = "responses"
env_key = "PROVIDER_API_KEY"
show_raw_agent_reasoning = true

使用 codex-as-mcp 时,确保 MCP 服务进程已设置该环境变量,以便将其传递给启动的 codex 进程。环境变量名称必须与上述 env_key 值一致(此处为:PROVIDER_API_KEY)。

选项 A(推荐):在 MCP 客户端配置中设置环境变量(如果支持)

{
  "mcpServers": {
    "codex-subagent": {
      "type": "stdio",
      "command": "uvx",
      "args": ["codex-as-mcp@latest"],
      "env": {
        "PROVIDER_API_KEY": "KEY_VALUE"
      }
    }
  }
}

选项 B:通过服务参数传递环境变量

uvx codex-as-mcp@latest --env PROVIDER_API_KEY=KEY_VALUE

选项 C:通过 Codex CLI 添加(codex mcp add)

codex mcp add codex-subagent --env PROVIDER_API_KEY=KEY_VALUE -- uvx codex-as-mcp@latest

安全提示:通过命令行参数传递密钥可能会在你机器的进程列表中显示;如有可能,请优先选择选项 A。

2. 配置 MCP

添加到你的 .mcp.json:

{
  "mcpServers": {
    "codex-subagent": {
      "type": "stdio",
      "command": "uvx",
      "args": ["codex-as-mcp@latest"]
    }
  }
}

或使用 Claude Desktop 命令:

claude mcp add codex-subagent -- uvx codex-as-mcp@latest

如果要直接配置 Codex CLI(例如 ~/.config/codex/config.toml),请添加:

[mcp_servers.subagents]
transport = "stdio"
command = "uvx"
args = ["codex-as-mcp@latest"]
# Increase if you see ~60s tool-call timeouts when running longer Codex tasks.
# tool_timeout_sec = 600

工具

  • spawn_agent(prompt: str) – 使用服务的工作目录启动一个自主 Codex 子 Agent,并返回该 Agent 的最终消息。
  • spawn_agents_parallel(agents: list[dict]) – 并行启动多个 Codex 子 Agent;每个条目都必须包含 prompt 键,每个 Agent 的结果中包含 output 或 error。

维护者实时冒烟测试

默认 CI 使用单元测试和模拟子进程路径,因此无需凭据即可安全运行。维护者还可以通过设置仓库密钥 CODEX_LIVE_API_KEY,并在工作流输入中提供兼容 Responses 的 base_url/model,手动触发使用真实提供方的 Live Codex smoke GitHub Actions 工作流。

注意:当前 Codex CLI 会拒绝 wire_api = "chat";仅支持 chat-completions 的提供方(例如直接使用 DeepSeek API)需要 Codex 原生支持该 wire API,或使用兼容 Responses 的代理。

故障排除

spawn_agent 在约 60 秒后超时

如果你看到类似以下错误:

tool call failed for `subagents/spawn_agent`
timed out awaiting tools/call after 60s
deadline has elapsed

这通常是客户端侧 MCP 工具调用超时。spawn_agent 会等到启动的 codex exec 进程结束后才返回,而这可能需要超过 60 秒。

解决方法:在 MCP 客户端中增加工具调用超时时间。

Codex CLI

在 Codex 配置文件(~/.codex/config.toml 或 ~/.config/codex/config.toml)中,为 MCP 服务设置更高的 tool_timeout_sec:

[mcp_servers.subagents]
transport = "stdio"
command = "uvx"
args = ["codex-as-mcp@latest"]
tool_timeout_sec = 600
MCP Inspector / mcp dev

如果你使用 MCP Inspector 进行本地测试,请增加请求超时时间(或运行会导出这些设置的 ./test.sh):

export MCP_SERVER_REQUEST_TIMEOUT=300000
export MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS=true
export MCP_REQUEST_MAX_TOTAL_TIMEOUT=28800000

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。