Codex DSH MCP
Codex DSH MCP
一个成本感知的 MCP 桥接层,让 Codex 将常规的、上下文密集的工作委托给 DeepSeek Harness——同时由 Codex 掌控架构、审查和最终验证。
Codex DSH MCP 在从已提交的 HEAD 创建的隔离 Git worktree 中运行每个 DeepSeek 工作进程。它绝不会自动将更改应用到主工作区:Codex 和人工审查者会先收到一个紧凑的结果、一份 Markdown 报告和一个补丁以供检查。
为什么使用它?
将仓库探索、常规实现、重构、测试和普通修复工作卸载给 DeepSeek。
将高风险架构、安全、最终审查和验收保留给 Codex。
失败的委托最多重试一次,然后返回
ESCALATED_TO_CODEX,而不是浪费调用。按项目跟踪调用次数、时长、成功率和明确标注的估算/报告 token 用量。
保护主检出目录:工作进程仅在隔离的 worktree 中运行。
快速开始
克隆此仓库并在 Windows 资源管理器中打开其文件夹。
双击
install-windows.bat(或在 PowerShell 中运行install-windows.ps1)。将
config.toml.example合并到%USERPROFILE%\.codex\config.toml并更新桥接层路径。将
AGENTS.md合并到你的全局或项目级 Codex 指令中。重启 Codex 并确认
deepseekMCP 服务器暴露了五个工具。
它暴露了什么
deepseek_explore— 只读的仓库探索/搜索。deepseek_task— 在隔离的 worktree 中执行常规实现/重构/测试工作。deepseek_fix— 在隔离的 worktree 中执行 bug/失败测试的诊断-编辑-测试循环。deepseek_review— 只读的聚焦审查。deepseek_stats— 只读的桥接层统计(总计、工具计数、成功率、平均时长、最近 10 条任务元数据)。
路由如何工作
AGENTS.md 告诉 Codex 对小型、关键、架构性、安全敏感、破坏性或已升级的工作选择 DIRECT_CODEX。对于广泛的探索和常规工作,它选择 DELEGATE_DEEPSEEK——尤其是当需要读取超过大约三个文件、更改超过大约两个文件,或可能需要进行编辑/测试/修复循环时。Codex 不会为了做出这个选择而先扫描仓库。
User
↓
Codex Router
├── Small / Critical ──→ Codex
│
└── Delegatable
↓
DeepSeek
↓
┌─────┴─────┐
Success Failure
↓ ↓
Review Retry once
↓
Failure again
↓
Codex重试是一次使用相同任务 ID 的聚焦 bug 修复尝试。第二次失败返回 ESCALATED_TO_CODEX;Codex 接管并且不得第三次委托同一个问题。
要求
Windows 10/11(桥接层也有 POSIX 路径)。
Node.js 20+。
支持 MCP 的 Codex。
DeepSeek Harness 以
dsh形式可用,并且已为你打算使用的 DeepSeek 模型/服务完成配置/认证。
在 Windows 上安装
在此文件夹中打开 PowerShell:
Set-ExecutionPolicy -Scope Process Bypass
.\install-windows.ps1或者双击 install-windows.bat;它是同一安装程序的精简 Windows 包装器。
然后在涉及 Codex 之前独立验证 DeepSeek Harness:
dsh --profile headless "Reply with exactly READY"如果这不起作用,请先修复 dsh。MCP 桥接层有意不管理 DeepSeek 凭据。
配置 Codex
将 config.toml.example 合并到 %USERPROFILE%\.codex\config.toml,并替换示例路径:
[mcp_servers.deepseek]
command = "node"
args = ["C:/tools/codex-deepseek-bridge/src/index.mjs"]
startup_timeout_sec = 20
tool_timeout_sec = 7200
[mcp_servers.deepseek.env]
DSH_BATCH_CONTROLLER = "C:/Users/Administrator/.codex/skills/dsh-batch-subagents/scripts/dsh-batch-agents.mjs"
DSH_COMMAND = "dsh"
DSH_TIMEOUT_MS = "1800000"
DSH_MAX_OUTPUT_CHARS = "6000"
DSH_AUTO_RETRY = "true"
DSH_MAX_RETRIES = "1"
DSH_STATS_ENABLED = "true"
DSH_TOKEN_STATS = "true"
DEEPSEEK_ALLOWED_ROOT = "D:/Projects"重启 Codex。在 Codex TUI 中,/mcp 应显示 deepseek MCP 服务器和五个工具。
安装委托提示
对于单个仓库,将 AGENTS.md 放在仓库根目录(或将 DeepSeek 委托部分合并到现有的 AGENTS.md 中)。
对于全局个人策略,将内容合并到 %USERPROFILE%\.codex\AGENTS.md。项目特定的指令仍然可以覆盖它。
建议的首次测试
在一个可丢弃的 Git 仓库中,询问 Codex:
找到 CLI 参数在哪里解析。使用 DeepSeek 进行仓库探索并报告相关文件。不要修改任何内容。
然后尝试一个无害的写入任务:
为现有的纯辅助函数添加一个小型单元测试。将实现委托给 DeepSeek,然后在报告成功之前自行检查 diff 并运行聚焦的测试。
然后验证统计:
运行 deepseek_stats 以检查桥接层使用情况和 token 节省。
环境变量
核心
变量 | 描述 | 默认值 |
| 隔离 worktree 控制器的绝对路径 | (必填) |
|
|
|
| 委托任务的默认超时时间;限制在 10 秒 – 2 小时之间 |
|
| 返回给 Codex 上下文的最大字符数 |
|
| 可选根目录;限制 DeepSeek 可以访问的目录 | (无) |
自动重试
变量 | 描述 | 默认值 |
| 是否在瞬时故障时自动重试 |
|
| 最大重试次数(超出初始尝试,因此 1 = 总共 2 次尝试) |
|
统计
变量 | 描述 | 默认值 |
| 启用统计持久化 |
|
| 统计文件路径;绝对路径或相对于工作区 |
|
| 启用 token 用量跟踪 |
|
结果格式
每个委托工具返回一个紧凑的结构化 JSON 对象,包含:
字段 | 描述 |
|
|
| 工具名称(例如 |
| 唯一 ID: |
| 当前尝试次数 |
| 实际完成的尝试次数 |
| 配置的最大值(初始 + 重试) |
| 本次尝试的墙钟时长 |
| 批处理控制器的退出码 |
| 被更改的文件路径数组 |
|
|
| token 用量,包含 |
| 所完成工作的简短描述 |
|
|
|
|
| 此失败类型是否符合重试条件 |
| 在配置的限制下是否真的会运行另一次尝试 |
| 布尔值;当所有尝试都已用尽时为 |
| 用尽时为 |
升级流程
Tool call → attempt 1 (fails) → retry → attempt 2 (fails) → return escalated_to_codex当委托返回 status: "escalated_to_codex" 时,Codex 应调查根本原因并决定后续步骤。桥接层绝不调用 Codex API。
Token 统计
当存在可用的 usage JSON 块时,token 用量从 DeepSeek/Harness 输出中解析(source: "reported",estimated: false)。否则,根据提示/结果字符数按大约每四个字符一个 token 进行估算(source: "estimated",estimated: true)。报告的用量是提供商数据;估算的用量只是后备近似值。
项目级的 .codex-deepseek/stats.json 记录最多 100 次尝试的有界元数据,并通过临时文件后重命名的方式写入。它从不存储完整的任务提示、结果摘要、diff、更改的文件路径或工件路径。deepseek_stats 返回总计、成功率、平均时长、按工具统计的计数以及最近 10 条元数据条目。
estimated_codex_tokens_avoided 使用 DeepSeek 处理的上下文量作为 Codex 无需处理的上下文的粗略代理。它始终标记为 estimate_only: true。它不是 OpenAI 或 Codex 的配额度量,只应用于判断委托在方向上是否值得。
安全模型
deepseek_task 和 deepseek_fix 只允许 DeepSeek Harness 编辑隔离的 Git worktree。报告和补丁保存在仓库之外,供 Codex 和人工审查。没有任何内容会被自动合并或应用。
deepseek_explore 和 deepseek_review 也在隔离的 worktree 中运行。它们的只读行为仍然是提示级别的策略,但意外的写入无法触及主工作区。
deepseek_stats 是只读的,仅访问统计文件。
为什么这能节省 Codex 用量
昂贵的循环通常是仓库搜索 → 大量文件读取 → 实现 → 测试 → 失败分析 → 重试。桥接层将该循环移入一个单独的 DeepSeek Harness 会话。只有 DeepSeek 的紧凑结构化结果返回给 Codex;Codex 随后可以检查生成的 diff 并执行有针对性的验证。
作者
由 @sakurameishi 创建和维护。
许可证
MIT © 2026 sakurameishi。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agentic code review, no signup to try: reality gates + frontier-model review, with veto.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Adaptive plan/build/review cycles for AI coding assistants, persisted across sessions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sakurameishi/codex-dsh-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server