- Implement tests for migration 005 to verify removal of deprecated fields in the database schema. - Ensure that new databases are created with a clean schema. - Validate that keywords are correctly extracted from the normalized file_keywords table. - Test symbol insertion without deprecated fields and subdir operations without direct_files. - Create a detailed search comparison test to evaluate vector search vs hybrid search performance. - Add a script for reindexing projects to extract code relationships and verify GraphAnalyzer functionality. - Include a test script to check TreeSitter parser availability and relationship extraction from sample files.
9.2 KiB
Codex MCP 功能实现总结
📝 已完成的修复
1. CCW Tools MCP 卡片样式修复
文件: ccw/src/templates/dashboard-js/views/mcp-manager.js
修改内容:
- ✅ 卡片边框:
border-primary→border-orange-500(第345行) - ✅ 图标背景:
bg-primary→bg-orange-500(第348行) - ✅ 图标颜色:
text-primary-foreground→text-white(第349行) - ✅ "Available"徽章:
bg-primary/20 text-primary→bg-orange-500/20 text-orange-600(第360行) - ✅ 选择按钮颜色:
text-primary→text-orange-500(第378-379行) - ✅ 安装按钮:
bg-primary→bg-orange-500(第386行、第399行)
影响范围: Claude 模式下的 CCW Tools MCP 卡片
2. Toast 消息显示时间增强
文件: ccw/src/templates/dashboard-js/components/navigation.js
修改内容:
- ✅ 显示时间: 2000ms → 3500ms (第300行)
影响范围: 所有 Toast 消息(MCP 安装、删除、切换等操作反馈)
🔧 功能实现细节
Codex MCP 安装流程
用户操作
↓
前端函数: copyClaudeServerToCodex(serverName, serverConfig)
↓
调用: addCodexMcpServer(serverName, serverConfig)
↓
API 请求: POST /api/codex-mcp-add
↓
后端处理: addCodexMcpServer(serverName, serverConfig)
↓
文件操作:
1. 读取 ~/.codex/config.toml (如存在)
2. 解析 TOML 配置
3. 添加/更新 mcp_servers[serverName]
4. 序列化为 TOML
5. 写入文件
↓
返回响应: {success: true} 或 {error: "..."}
↓
前端更新:
1. loadMcpConfig() - 重新加载配置
2. renderMcpManager() - 重新渲染 UI
3. showRefreshToast(...) - 显示成功/失败消息 (3.5秒)
📍 关键代码位置
前端
| 功能 | 文件 | 行号 | 说明 |
|---|---|---|---|
| 复制到 Codex | components/mcp-manager.js |
175-177 | copyClaudeServerToCodex() 函数 |
| 添加到 Codex | components/mcp-manager.js |
87-114 | addCodexMcpServer() 函数 |
| Toast 消息 | components/navigation.js |
286-301 | showRefreshToast() 函数 |
| CCW Tools 样式 | views/mcp-manager.js |
342-415 | Claude 模式卡片渲染 |
| 其他项目按钮 | views/mcp-manager.js |
1015-1020 | "Install to Codex" 按钮 |
后端
| 功能 | 文件 | 行号 | 说明 |
|---|---|---|---|
| API 端点 | core/routes/mcp-routes.ts |
1001-1010 | /api/codex-mcp-add 路由 |
| 添加服务器 | core/routes/mcp-routes.ts |
251-330 | addCodexMcpServer() 函数 |
| TOML 序列化 | core/routes/mcp-routes.ts |
166-188 | serializeToml() 函数 |
CSS
| 功能 | 文件 | 行号 | 说明 |
|---|---|---|---|
| Toast 样式 | dashboard-css/06-cards.css |
1501-1538 | Toast 容器和类型样式 |
| Toast 动画 | dashboard-css/06-cards.css |
1540-1551 | 滑入/淡出动画 |
🧪 测试用例
测试用例 1: CCW Tools 样式验证
前置条件: Dashboard 运行,进入 MCP 管理页面
测试步骤:
- 确保在 Claude 模式
- 查看 CCW Tools MCP 卡片
预期结果:
- 卡片有橙色边框(
border-orange-500/30) - 图标背景是橙色(
bg-orange-500) - 图标是白色(
text-white) - "Available"徽章是橙色
- 按钮是橙色
优先级: High
测试用例 2: Codex MCP 新建安装
前置条件: Dashboard 运行,进入 MCP 管理页面
测试步骤:
- 切换到 Codex 模式
- 勾选 CCW Tools 的 4 个核心工具
- 点击"Install"按钮
- 观察 Toast 消息
预期结果:
- Toast 消息显示
- 消息内容: "CCW Tools installed to Codex (4 tools)"
- Toast 停留时间: 3.5秒
- 卡片状态更新(显示"4 tools"绿色徽章)
~/.codex/config.toml文件创建成功- config.toml 包含正确的
[mcp_servers.ccw-tools]配置
优先级: Critical
测试用例 3: Claude MCP 复制到 Codex
前置条件:
- Dashboard 运行
- Claude 模式下已创建全局 MCP 服务器
test-server
测试步骤:
- 切换到 Codex 模式
- 滚动到"Copy Claude Servers to Codex"区域
- 找到
test-server卡片 - 点击"→ Codex"按钮
- 观察 Toast 消息
预期结果:
- Toast 消息显示
- 消息内容: "Codex MCP server 'test-server' added"
- Toast 停留时间: 3.5秒
- 卡片出现"Already added"绿色徽章
- "→ Codex"按钮消失
- 服务器出现在"Codex Global Servers"区域
~/.codex/config.toml包含test-server配置
优先级: Critical
测试用例 4: 其他项目 MCP 复制到 Codex
前置条件:
- Dashboard 运行
- 其他项目中存在 MCP 服务器
测试步骤:
- 切换到 Codex 模式
- 滚动到"Available from Other Projects"区域
- 找到来自其他项目的服务器卡片
- 点击"Install to Codex"按钮
- 观察 Toast 消息
预期结果:
- Toast 消息显示
- 消息内容包含服务器名称
- Toast 停留时间: 3.5秒
- 服务器出现在"Codex Global Servers"区域
~/.codex/config.toml包含新服务器配置
优先级: High
🔍 验证清单
代码审查
- ✅ 前端函数正确调用后端 API
- ✅ 后端正确处理请求并写入配置文件
- ✅ Toast 消息在成功和失败时都正确显示
- ✅ Toast 显示时间更新为 3.5秒
- ✅ CCW Tools 卡片使用橙色样式
- ✅ 复制按钮调用正确的函数
- ✅ 配置文件路径正确 (
~/.codex/config.toml) - ✅ TOML 序列化正确处理所有字段
功能测试
- ⬜ CCW Tools 样式在 Claude 模式下正确显示
- ⬜ Codex MCP 新建安装成功
- ⬜ Toast 消息正确显示并停留 3.5秒
- ⬜ config.toml 文件正确创建
- ⬜ 从 Claude 复制到 Codex 成功
- ⬜ 从其他项目复制到 Codex 成功
- ⬜ 卡片状态正确更新
- ⬜ UI 刷新正确
边界情况
- ⬜ Codex 目录不存在时自动创建
- ⬜ config.toml 不存在时正确创建
- ⬜ config.toml 已存在时正确追加
- ⬜ 重复安装同一服务器正确更新配置
- ⬜ API 失败时显示错误 Toast
- ⬜ 网络错误时显示错误信息
📦 相关文件清单
已修改文件
-
ccw/src/templates/dashboard-js/views/mcp-manager.js- 修改: CCW Tools 卡片样式(第342-415行)
-
ccw/src/templates/dashboard-js/components/navigation.js- 修改: Toast 显示时间(第300行)
核心功能文件(未修改但相关)
-
ccw/src/templates/dashboard-js/components/mcp-manager.js- 包含:
addCodexMcpServer(),copyClaudeServerToCodex()函数
- 包含:
-
ccw/src/core/routes/mcp-routes.ts- 包含: Codex MCP API 端点和后端逻辑
-
ccw/src/templates/dashboard-css/06-cards.css- 包含: Toast 样式定义
新增文档
-
ccw/docs/CODEX_MCP_TESTING_GUIDE.md- 详细测试指南
-
ccw/docs/QUICK_TEST_CODEX_MCP.md- 快速测试步骤
-
ccw/docs/CODEX_MCP_IMPLEMENTATION_SUMMARY.md- 本文档
🎯 下一步行动
立即执行
-
重启 Dashboard:
# 停止当前 Dashboard # 重新启动 npm run dev # 或你的启动命令 -
执行快速测试:
- 按照
QUICK_TEST_CODEX_MCP.md执行测试 - 重点验证:
- CCW Tools 样式
- Toast 消息显示和时长
- config.toml 文件创建
- 按照
-
记录测试结果:
- 填写
QUICK_TEST_CODEX_MCP.md中的检查清单 - 截图保存关键步骤
- 填写
如果测试失败
-
检查浏览器控制台:
- F12 打开开发者工具
- Console 标签查看错误
- Network 标签查看 API 请求
-
检查后端日志:
- 查看 CCW Dashboard 的控制台输出
- 查找
Error adding Codex MCP server等错误信息
-
验证文件权限:
ls -la ~/.codex/ # 确保有读写权限
📊 测试报告模板
# Codex MCP 功能测试报告
**测试日期**: ___________
**测试人员**: ___________
**CCW 版本**: ___________
**浏览器**: ___________
## 测试结果
### CCW Tools 样式 (Claude 模式)
- [ ] ✅ 通过 / [ ] ❌ 失败
- 备注: ___________
### Codex MCP 新建安装
- [ ] ✅ 通过 / [ ] ❌ 失败
- Toast 显示: [ ] ✅ 是 / [ ] ❌ 否
- Toast 时长: _____ 秒
- config.toml 创建: [ ] ✅ 是 / [ ] ❌ 否
- 备注: ___________
### Claude → Codex 复制
- [ ] ✅ 通过 / [ ] ❌ 失败
- Toast 显示: [ ] ✅ 是 / [ ] ❌ 否
- Toast 内容正确: [ ] ✅ 是 / [ ] ❌ 否
- 备注: ___________
### 其他项目 → Codex 安装
- [ ] ✅ 通过 / [ ] ❌ 失败
- 备注: ___________
## 发现的问题
1. ___________
2. ___________
3. ___________
## 建议改进
1. ___________
2. ___________
3. ___________
🎉 总结
所有功能已经实现并准备好测试:
✅ 已完成:
- CCW Tools MCP 卡片样式修复(橙色)
- Toast 消息显示时间增强(3.5秒)
- Codex MCP 安装功能(已存在,无需修改)
- Claude → Codex 复制功能(已存在,无需修改)
- 详细测试文档和指南
⚠️ 待验证:
- 实际运行环境中的功能测试
- 用户体验反馈
- 边界情况处理
请按照 QUICK_TEST_CODEX_MCP.md 开始测试!