# Codex MCP 安装测试指南 ## 测试准备 ### 前置条件 1. 确保 CCW Dashboard 正在运行 2. 打开浏览器访问 Dashboard 界面 3. 导航到 "MCP 管理" 页面 ### 测试环境 - **Codex 配置文件**: `~/.codex/config.toml` - **Claude 配置文件**: `~/.claude.json` - **Dashboard URL**: `http://localhost:3000` --- ## 测试场景 1: Codex MCP 新建安装 ### 测试步骤 1. **切换到 Codex 模式** - 点击页面顶部的 "Codex" 按钮(橙色高亮) - 确认右侧显示配置文件路径:`~/.codex/config.toml` 2. **查看 CCW Tools MCP 卡片** - ✅ 验证卡片有橙色边框 (`border-orange-500`) - ✅ 验证图标背景是橙色 (`bg-orange-500`) - ✅ 验证图标颜色是白色 - ✅ 验证"Available"徽章是橙色 - ✅ 验证"Core only"/"All"按钮是橙色 3. **选择工具并安装** - 勾选需要的工具(例如:所有核心工具) - 点击橙色的"Install"按钮 - **预期结果**: - 屏幕底部中央显示 Toast 消息 - Toast 消息内容:`"CCW Tools installed to Codex (X tools)"` (X 为选择的工具数量) - Toast 消息类型:绿色成功提示 - Toast 显示时间:3.5秒 - 卡片状态更新为"已安装"(绿色对勾徽章) - 安装按钮文字变为"Update" 4. **验证安装结果** - 打开 `~/.codex/config.toml` 文件 - 确认存在 `[mcp_servers.ccw-tools]` 配置块 - 示例配置: ```toml [mcp_servers.ccw-tools] command = "npx" args = ["-y", "ccw-mcp"] env = { CCW_ENABLED_TOOLS = "write_file,edit_file,codex_lens,smart_search" } ``` ### 测试数据记录 | 测试项 | 预期结果 | 实际结果 | 状态 | |--------|----------|----------|------| | 卡片样式(橙色边框) | ✅ | _待填写_ | ⬜ | | 图标样式(橙色背景) | ✅ | _待填写_ | ⬜ | | Toast 消息显示 | ✅ 3.5秒 | _待填写_ | ⬜ | | Toast 消息内容 | "CCW Tools installed to Codex (X tools)" | _待填写_ | ⬜ | | config.toml 文件创建 | ✅ | _待填写_ | ⬜ | | MCP 服务器配置正确 | ✅ | _待填写_ | ⬜ | --- ## 测试场景 2: 从 Claude MCP 复制到 Codex ### 测试步骤 1. **前置准备:在 Claude 模式下创建 MCP 服务器** - 切换到 "Claude" 模式 - 在"全局可用 MCP"区域点击"+ New Global Server" - 创建测试服务器: - **名称**: `test-mcp-server` - **命令**: `npx` - **参数**: `-y @modelcontextprotocol/server-filesystem /tmp` - 点击"Create"按钮 - 确认服务器出现在"全局可用 MCP"列表中 2. **切换到 Codex 模式** - 点击顶部的 "Codex" 按钮 - 向下滚动到"Copy Claude Servers to Codex"区域 3. **找到测试服务器** - 在列表中找到 `test-mcp-server` - 卡片应该显示: - 蓝色"Claude"徽章 - 虚线边框(表示可复制) - 橙色"→ Codex"按钮 4. **执行复制操作** - 点击橙色的"→ Codex"按钮 - **预期结果**: - Toast 消息显示:`"Codex MCP server 'test-mcp-server' added"` (中文:`"Codex MCP 服务器 'test-mcp-server' 已添加"`) - Toast 类型:绿色成功提示 - Toast 显示时间:3.5秒 - 卡片出现绿色"Already added"徽章 - "→ Codex"按钮消失 - 服务器出现在"Codex Global Servers"区域 5. **验证复制结果** - 检查 `~/.codex/config.toml` 文件 - 确认存在 `[mcp_servers.test-mcp-server]` 配置块 - 示例配置: ```toml [mcp_servers.test-mcp-server] command = "npx" args = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] ``` ### 测试数据记录 | 测试项 | 预期结果 | 实际结果 | 状态 | |--------|----------|----------|------| | Claude 服务器创建 | ✅ | _待填写_ | ⬜ | | 复制区域显示服务器 | ✅ | _待填写_ | ⬜ | | Toast 消息显示 | ✅ 3.5秒 | _待填写_ | ⬜ | | Toast 消息内容 | "Codex MCP server 'test-mcp-server' added" | _待填写_ | ⬜ | | config.toml 配置正确 | ✅ | _待填写_ | ⬜ | | 卡片状态更新 | "Already added"徽章 | _待填写_ | ⬜ | | Codex区域显示服务器 | ✅ | _待填写_ | ⬜ | --- ## 测试场景 3: 从其他项目复制到 Codex ### 测试步骤 1. **前置准备:在其他项目中创建 MCP 服务器** - 假设你有另一个项目(例如:`/path/to/other-project`) - 在该项目的 `.claude.json` 或 `.mcp.json` 中添加 MCP 服务器配置 - 或在 Dashboard 中为该项目创建 MCP 服务器 2. **切换回当前项目** - 在 Dashboard 左上角切换到当前测试项目 - 切换到 "Codex" 模式 3. **查看"其他项目可用"区域** - 向下滚动到最底部的"Available from Other Projects"区域 - 应该看到来自其他项目的 MCP 服务器 - 卡片显示: - 服务器名称 - 蓝色"Claude"徽章 - 项目来源标签(例如:`other-project`) - 橙色"Install to Codex"按钮 4. **执行安装操作** - 点击橙色的"Install to Codex"按钮 - **预期结果**: - Toast 消息显示成功信息 - Toast 显示时间:3.5秒 - 服务器出现在"Codex Global Servers"区域 - 原卡片显示"Already added"徽章 5. **验证安装结果** - 检查 `~/.codex/config.toml` 文件 - 确认新服务器配置正确 ### 测试数据记录 | 测试项 | 预期结果 | 实际结果 | 状态 | |--------|----------|----------|------| | 其他项目服务器显示 | ✅ | _待填写_ | ⬜ | | Toast 消息显示 | ✅ 3.5秒 | _待填写_ | ⬜ | | Toast 消息内容 | 成功消息 | _待填写_ | ⬜ | | config.toml 配置正确 | ✅ | _待填写_ | ⬜ | | Codex区域显示服务器 | ✅ | _待填写_ | ⬜ | --- ## 故障排查 ### Toast 消息不显示 **可能原因**: 1. Toast 容器 CSS 被覆盖 2. JavaScript 错误阻止了消息显示 **排查步骤**: 1. 打开浏览器开发者工具(F12) 2. 切换到 Console 标签页 3. 执行安装操作 4. 查看是否有错误信息 5. 检查 Network 标签页,确认 API 请求成功(状态码 200) ### config.toml 未创建 **可能原因**: 1. 文件权限问题 2. 后端 API 错误 **排查步骤**: 1. 检查 `~/.codex` 目录是否存在 2. 检查该目录的读写权限 3. 查看 CCW Dashboard 后端日志 4. 检查 API 响应: ```bash # 在浏览器开发者工具 Network 标签页查看 # POST /api/codex-mcp-add # 响应应该是: {"success": true} ``` ### 服务器配置格式不正确 **可能原因**: 1. Claude 格式到 Codex 格式转换错误 2. 特殊字段未正确处理 **排查步骤**: 1. 对比 Claude 和 Codex 配置格式 2. 检查转换逻辑(`addCodexMcpServer` 函数) 3. 验证 TOML 序列化正确性 --- ## 成功标准 所有测试场景通过以下标准: ✅ **UI 样式正确** - Claude 模式:CCW Tools 卡片使用橙色样式 - Codex 模式:CCW Tools 卡片使用橙色样式 - 按钮颜色和边框符合设计规范 ✅ **Toast 反馈完整** - 安装成功时显示成功 Toast - Toast 消息内容准确(包含服务器名称) - Toast 显示时间为 3.5秒 - Toast 类型正确(success/error) ✅ **配置文件正确** - `~/.codex/config.toml` 创建成功 - MCP 服务器配置格式正确 - 配置内容与源配置匹配 ✅ **UI 状态同步** - 安装后卡片状态更新 - 服务器出现在正确的区域 - 徽章显示正确 --- ## 测试报告模板 ### 测试信息 - **测试日期**: _____ - **测试人员**: _____ - **CCW 版本**: _____ - **浏览器**: _____ ### 测试结果总结 | 测试场景 | 通过 | 失败 | 备注 | |----------|------|------|------| | Codex MCP 新建安装 | ⬜ | ⬜ | | | 从 Claude MCP 复制到 Codex | ⬜ | ⬜ | | | 从其他项目复制到 Codex | ⬜ | ⬜ | | ### 发现的问题 1. **问题描述**: _____ - **严重程度**: Critical / High / Medium / Low - **复现步骤**: _____ - **预期结果**: _____ - **实际结果**: _____ - **截图/日志**: _____ ### 改进建议 _____ --- ## 附录:功能实现细节 ### Toast 消息机制 **实现位置**: - `ccw/src/templates/dashboard-js/components/navigation.js:286-301` - 显示时间:3500ms (3.5秒) - 淡出动画:300ms **Toast 类型**: - `success`: 绿色背景 (`hsl(142 76% 36%)`) - `error`: 红色背景 (`hsl(0 72% 51%)`) - `info`: 主色调背景 - `warning`: 橙色背景 (`hsl(38 92% 50%)`) ### Codex MCP 安装流程 1. **前端调用**: `copyClaudeServerToCodex(serverName, serverConfig)` 2. **API 端点**: `POST /api/codex-mcp-add` 3. **后端处理**: `addCodexMcpServer(serverName, serverConfig)` 4. **配置写入**: 序列化为 TOML 格式并写入 `~/.codex/config.toml` 5. **响应返回**: `{success: true}` 或 `{error: "错误消息"}` 6. **前端更新**: - 重新加载 MCP 配置 - 重新渲染 UI - 显示 Toast 消息 ### 格式转换规则 **Claude 格式** → **Codex 格式**: - `command` → `command` (保持不变) - `args` → `args` (保持不变) - `env` → `env` (保持不变) - `cwd` → `cwd` (可选) - `url` → `url` (HTTP 服务器) - `enabled` → `enabled` (默认 true) --- ## 联系支持 如果遇到问题,请提供以下信息: 1. 测试场景编号 2. 浏览器开发者工具的 Console 输出 3. Network 标签页的 API 请求/响应详情 4. `~/.codex/config.toml` 文件内容(如果存在) 5. CCW Dashboard 后端日志