代码工具与运行时工具的分工
Codex / Cursor · 代码工具
使用 Coding Agent 自己的工具检查仓库、理解和修改代码,并运行仓库测试。
Unfour MCP · 运行时工具
通过受策略控制的操作复现 API 行为、检查 SSH/服务器证据、查询数据库状态、检查工作区/环境上下文,并重新执行运行时检查。
仓库测试通过,本身不能确认目标环境中的行为。Agent 可以通过 Unfour 工具收集这部分证据并检查经过复核的修改,而资源范围和高风险动作由你控制。Unfour 不编辑仓库,不充当 IDE,也不运行完整 Coding Agent 或 CI/CD 验证流水线。
示例:验证 POST /orders 的代码修改
- 1. 修改代码
- 2. API 返回 500
- 3. SSH 证据
- 4. 数据库状态
- 5. 复核后修改
- 6. 重跑请求
- 7. 验证
-
Codex 用自己的工具修改 POST /orders
Codex 通过自己的代码工具编辑仓库并运行相关仓库测试。按正常开发流程启动或部署修改后的服务,再确认测试 API、SSH 连接和数据库都指向该环境。Unfour 不管理这一步的代码与部署。
-
Unfour MCP 发送已保存请求,API 返回 500
让 Agent 通过已授权的 Unfour MCP 工具发送保存的 POST /orders 请求。示例中 API 返回 500;记录响应、耗时、解析后的环境和相关标识符,作为后续检查的参照。
-
检查服务器或运行时证据
让 Agent 使用已授权的 Unfour SSH 工具,检查请求时间窗口内的聚焦日志片段、进程状态或配置证据,并比较相关标识符;Unfour 不会自动把请求匹配到日志行。
-
检查相关数据库状态
通过 Unfour MCP 执行聚焦的只读查询,检查相关订单记录、关系或约束,并与 API 和服务器证据比对。不要仅为隐藏症状而修改数据行。
-
复核方案,再由 Codex 用自己的工具修改代码
Agent 比较选定证据并提出范围明确的修复,由开发者复核。Codex 使用自己的工具完成经过复核的代码修改并运行相关测试,再将修改后的服务置于同一测试环境中,准备验证运行时行为。
-
重新运行最初的检查
让 Agent 通过 Unfour MCP 在同一环境中重新发送保存的请求,使用等价测试输入,并事先复核副作用与幂等性处理方案。继续以最初的预期行为作为比较目标。
-
验证响应与相关数据库状态
对照预期结果检查响应状态与响应体,再重复聚焦的只读数据库查询,确认目标状态。记录仍存在的失败或不确定性;一次请求成功不等于完整 CI/CD 验证。
Unfour 在这条链路中的位置
Unfour 将排查过程保留在一个桌面工作区中。各工具仍可独立使用;MCP 则让兼容 Agent 能够以受控方式查询已授权能力,并比较跨工具证据。
API Client
提供可复现的请求、解析后的环境、响应详情、耗时和已脱敏历史,明确可见症状。
SSH
提供直接终端和已授权诊断,用于检查应用日志、进程状态、配置证据、远程文件和保存的任务。
Database
通过保存的 SQLite、PostgreSQL 和 MySQL 连接提供结构与记录证据,并优先从聚焦的只读查询开始。
本地 stdio MCP 与工作区上下文
让兼容客户端通过当前本地工作区、环境策略、保存的资源和 Unfour 命令边界开展工作。
必须保持可见的安全边界
- MCP 工具操作所选 Unfour 工作区中保存的资源,而不是不受限制的全局资源。
- 默认 auto 策略将生产环境映射为只读访问并允许安全 SSH 诊断;使用前应复核任何显式策略覆盖。
- 策略或后端安全检查要求确认时,请复核准确的 SQL、URL、命令、路径或补丁内容。完全访问不保证每个高风险动作都弹出确认。
- SSH/数据库凭据在操作需要时通过本地秘密存储解析。MCP 阻止 secret-reveal 操作,但任意日志与结果文本在分享前仍需检查。
- 受支持的请求、响应、结果和活动字段会按需掩码或脱敏。
MCP 适合什么时候使用
API 500 或超时
请求可以复现,但解释原因还需要服务器日志、运行时状态或下游数据库检查。
数据库状态异常
API 响应与保存记录不一致,需要跨层追踪标识符或时间戳。
服务端配置问题
进程状态、环境变量、部署配置或远程文件与预期不一致,导致行为发生变化。
复现环境特有问题
同一流程在 dev、test 或 prod 表现不同,排查全程必须明确目标上下文。
什么时候手动工具更合适
只有在需要收集、比较并重复检查证据时,MCP 才最有价值。如果不需要跨层推理,直接使用工具通常更快。
- 直接在 API Client 中发送一次性的简单请求。
- 在终端中运行一条明确、熟悉的 SSH 命令。
- 自行查看小型数据表或执行基础只读 SQL。
- 答案已经明确时优先手动控制,避免让 AI 推理增加不必要的流程。