会话ID追踪服务

一个基于Codex CLI的MCP服务器实现,提供可靠的多轮对话会话ID追踪功能。

  • by LanceVCS
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 LanceVCS/codex-mcp

使用说明

基于Codex CLI的MCP服务器

一种MCP服务器实现,内部使用Codex CLI为多回合对话提供可靠的会话ID跟踪。

问题解决了

本机Codex MCP服务器(mcp__codex__codex)不返回会话ID,因此很难使用 mcp__codex__codex_reply此服务器使用带有JSON输出的CLI来可靠地获取会话ID。

运作原理

  1. 充当MCP服务器(使用JSON-RPC协议)
  2. 翻译MCP codex 工具调用 codex exec --json CLI命令
  3. 解析JSON输出以从中提取会话ID thread.started 事件
  4. 返回响应文本AND [SESSION_ID: xxx] 给客户
  5. 翻译MCP codex-reply 呼吁 codex exec resume CLI命令

先决条件

  • Node.js 14.0或更高版本
  • Codex CLI 已安装并配置
  • 已安装克劳德代码

安装

  1. 将存储库克隆到标准MCP服务器位置:

    git clone <repo-url> ~/.claude/mcp-servers/codex-wrapper
    cd ~/.claude/mcp-servers/codex-wrapper
    
  2. 将MCP服务器添加到Claude代码中:

# Add the wrapper to Claude Code
claude mcp add --transport stdio codex-wrapper -- node ~/.claude/mcp-servers/codex-wrapper/server.js

# Verify it's installed
claude mcp list

你应该看看 codex-wrapper 在带有a的列表中✓ 连接状态。

注: 包装器将在您的下一个Claude Code会话中可用。如果您处于活动会话中,请重新启动它以加载新的MCP工具。

用法

配置后,正常使用MCP工具。响应将包括会话ID:

Response: "Here's the answer..."
[SESSION_ID: 019a7661-3643-7ac3-aeb9-098a910935fb]

提取ID并将其用于后续操作:

mcp__codex__codex_reply({
  conversationId: "019a7661-3643-7ac3-aeb9-098a910935fb",
  prompt: "follow-up question"
})

优于原生MCP的优势

  • 可靠的会话ID:直接从CLI JSON输出中提取,未猜测
  • 无比赛条件:没有文件系统扫描或计时问题
  • 完全兼容性:使用完全相同的CLI命令
  • 确定性的:会话ID保证正确

这有什么不同

  • 本地MCP:不返回会话ID,无法继续对话
  • 这个包装:通过在内部使用CLI可靠地返回会话ID

局限性

  • 比原生MCP稍慢(生成CLI进程)
  • 需要Node.js来运行包装器