代码模型协议服务器

将Codex CLI转换为长期运行的模型上下文协议(MCP)服务器,可在macOS上本地运行,供任何支持MCP的客户端使用。

  • by qiuscut
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 qiuscut/codex-mcp-server

使用说明

Codex MCP服务器(macOS守护进程)

此仓库将Codex CLI转换为在macOS上本地运行的长期模型上下文协议(MCP)服务器,可以由任何支持MCP的客户端(Cline、Claude Code、Claude Desktop/Code、VS Code MCP扩展、代理SDK等)使用。

目录

bin/                    # Launchers for Codex MCP server + client shim
clients/                # Ready-to-copy client config snippets
  ├── cline/
  ├── claude-code/
  └── vscode/
docs/                   # Operational notes, troubleshooting
logs/                   # Runtime + daemon logs
scripts/                # Service management + daemon

先决条件

  • 安装了Codex CLI的macOS(brew install openai/codex/codex).
  • 计算机上已存在访问令牌/config(codex login).
  • Python 3.11+(macOS附带)用于FIFO守护进程+客户端垫片。
  • bash, nohup, mkfifo (macOS上的标准配置)。

快速开始

# Create logs/tmp dirs the first time
mkdir -p logs tmp/queue tmp/sessions

# Start the background daemon
scripts/codex-mcp-serverctl.sh start

# Check status / stop / view logs
scripts/codex-mcp-serverctl.sh status
scripts/codex-mcp-serverctl.sh logs
scripts/codex-mcp-serverctl.sh stop

在幕后 codex-mcp-serverctl.sh 自举 scripts/codex_mcp_fifo_daemon.py,其中:

  1. 手表 tmp/queue 对于新的会话请求。
  2. 在中创建FIFO管道 tmp/sessions/<session-id>.
  3. 生成物 bin/codex_mcp_server (codex mcp-server)对于每个连接。
  4. 在FIFO和Codex之间传输stdin/stdout。

轻量级客户端垫片(bin/codex_mcp_server_client)创建队列条目和FIFO,然后将其STDIO桥接到守护进程。MCP客户端可以通过以下方式指向垫片 command/args.

环境覆盖

变量 效果
CODEX_BIN 通往 codex 二进制(默认值: codex).
CODEX_HOME / CODEX_CONFIG_FILE 使用备用Codex配置目录/文件。
CODEX_MCP_QUEUE_DIR, CODEX_MCP_SESSIONS_DIR 覆盖队列/会话文件夹(repo下的默认值 tmp/).
CODEX_MCP_LOG_DIR 重新定位守护进程+服务器日志。
CODEX_MCP_STARTUP_DELAY, CODEX_MCP_STATUS_TTL 调整控制器启动/健康阈值。

在调用控制脚本之前设置它们,例如。 CODEX_BIN=/opt/homebrew/bin/codex scripts/codex-mcp-serverctl.sh start.

健康检查

  • scripts/codex-mcp-serverctl.sh status → 打印PID+心跳年龄。
  • bin/codex_mcp_server_client < /dev/null → 打开+立即关闭Codex MCP会话(验证队列、FIFO、生成路径)。退出代码 0 意味着成功。
  • tail -f logs/codex_mcp_daemon.log → 显示每个会话的生命周期事件。

客户端集成

看 clients/ 对于复制/粘贴配置文件:

  • clients/cline/README.md –VS代码临床扩展(cline_mcp_settings.json).
  • clients/claude-code/README.md –克劳德代码CLI(claude mcp add 或 --mcp-config).
  • clients/vscode/README.md –官方MCP VS代码扩展。

每个代码段已经使用了绝对路径,这些路径假设仓库位于 /Users/qm-mac/mcpserver/codex-mcp-server。如果移动仓库,请调整路径。

测试结果(最新运行)

  • Daemon通过启动 scripts/codex-mcp-serverctl.sh start (PID记录在 logs/codex_mcp_server.log).
  • 握手测试: bin/codex_mcp_server_client < /dev/null 退出0,守护进程日志显示会话(ID 3a5dc768643248719486bc59b5bbfee0).
  • 状态命令显示 Running (PID … heartbeat <1s).

如果任何步骤失败,请咨询 docs/troubleshooting.md (或创建它)和日志文件。