Codex DSH MCP
Codex DSH MCP
コストを意識した MCP ブリッジ。Codex がアーキテクチャ、レビュー、最終検証を管理しつつ、定型業務やコンテキストの重い作業を DeepSeek Harness に委任できます。
Codex DSH MCP は、コミット済みの HEAD から作成した分離された Git ワークツリー上で各 DeepSeek ワーカーを実行します。メインワークスペースへの変更を自動的に適用することはありません。Codex と人間のレビュー担当者は、最初に確認できるよう、コンパクトな結果、Markdown レポート、パッチを受け取ります。
なぜ使うのか
リポジトリ探索、定型的な実装、リファクタリング、テスト、通常の修正を DeepSeek に任せられます。
高リスクなアーキテクチャ、セキュリティ、最終レビュー、承認は Codex に任せられます。
失敗した委任は最大 1 回だけ再試行し、リトライを無駄にする代わりに
ESCALATED_TO_CODEXを返します。プロジェクトごとに、コール数、所要時間、成功率、トークン使用量を追跡できます。
メインのチェックアウトは保護されます。ワーカーは分離された worktree でのみ稼働します。
Related MCP server: dsh_agentlink
クイックスタート
このリポジトリをクローンし、Windows エクスプローラーでフォルダを開きます。
install-windows.batをダブルクリックするか、PowerShell でinstall-windows.ps1を実行します。config.toml.exampleを%USERPROFILE%\.codex\config.tomlにマージし、ブリッジのパスを更新します。AGENTS.mdをグローバルまたはプロジェクトレベルの Codex 指示にマージします。Codex を再起動し、
deepseekMCP サーバーが 5 つのツールを公開していることを確認します。
公開されるもの
deepseek_explore— 読み取り専用のリポジトリ探索 / 検索。deepseek_task— 分離されたワークツリー内での通常の実装 / リファクタリング / テスト作業。deepseek_fix— 分離されたワークツリー内でのバグ / 失敗テストの診断 → 編集 → テストのループ。deepseek_review— 読み取り専用のフォーカスしたレビュー。deepseek_stats— 読み取り専用のブリッジ統計(合計、ツール別コール数、成功率、平均所要時間、直近 10 件のタスクメタデータ)。
ルーティングの仕組み
AGENTS.md は、小規模、重大、アーキテクチャ関連、セキュリティ上重要、破壊的、またはすでにエスカレーション済みの作業に対して DIRECT_CODEX を選択するよう Codex に指示します。広範囲の探索や定型的な作業には DELEGATE_DEEPSEEK を選択します。特に、約 3 ファイル以上の読み取りが必要な場合、約 2 ファイル以上の変更が必要な場合、または編集 / テスト / 修正のループが発生しそうな場合に有効です。Codex はこの判断のためだけにリポジトリを先にスキャンしません。
User
↓
Codex Router
├── Small / Critical ──→ Codex
│
└── Delegatable
↓
DeepSeek
↓
┌─────┴─────┐
Success Failure
↓ ↓
Review Retry once
↓
Failure again
↓
Codex再試行は、同じ タスクID を使ったフォーカスしたバグ修正の試みです。2 回目の失敗で ESCALATED_TO_CODEX が返ります。Codex が引き継ぎ、同じ問題を 3 回目に委任してはなりません。
必要条件
Windows 10/11(ブリッジには POSIX 用のパスもあります)。
Node.js 20 以上。
MCP 対応の Codex。
dshとして利用でき、使用予定の DeepSeek モデル / サービス向けに設定・認証済みの DeepSeek Harness。
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 サーバーと 5 つのツールが表示されるはずです。
委任プロンプトのインストール
単一リポジトリの場合は、AGENTS.md をリポジトリのルートに置きます(既存の AGENTS.md に DeepSeek 委任セクションをマージしてもかまいません)。
グローバルな個人設定にする場合は、内容 を %USERPROFILE%\.codex\AGENTS.md にマージします。プロジェクト固有の指示は引き続きそれを上書きできます。
推奨する最初のテスト
使い捨ての Git リポジトリで Codex に次のように依頼します。
どこで CLI 引数が解析されているか調べてください。リポジトリの探索は DeepSeek を使って、関連ファイルを報告してください。何も変更しないでください。
次に、無害な書き込みタスクを試します。
既存の純粋なヘルパーに小さなユニットテストを追加してください。実装は DeepSeek に委任し、報告する前に自分で差分を確認して対象のテストを実行してください。
最後に統計を確認します。
deepseek_statsを実行して、ブリッジの使用量とトークン節約量を確認してください。
環境変数
コア
変数 | 説明 | デフォルト |
| 分離ワークツリーのコントローラへの絶対パス | (必須) |
|
|
|
| 委任タスクのデフォルト タイムアウト。10 秒〜2 時間にクランプ |
|
| Codex コンテキストに返される最大文字数 |
|
| 任意のルートし。DeepSeek がアクセスできるディレクトリをそのルート下に制限する | (なし) |
自動リトライ
変数 | 説明 | デフォルト |
| 一時的な失敗時に自動再試行するかどうか |
|
| 最大再試行回数(初回試行の 上に 追加されるので、1=合計 2 回試行) |
|
統計
変数 | 説明 | デフォルト |
| 統計の永続化を有効にする |
|
| 統計ファイルのパス(絶対パスまたはワークスペースからの相対パ) |
|
| トークン使用量の追跡を有効にする |
|
結果形式
すべての委任ツールは、以下のフィールドを持つコンパクトな構造化 JSON オブジェクトを返します。
フィールド | 説明 |
|
|
| ツール名(例: |
| 一意な ID: |
| 現在の試行番号 |
| 実際に完了した試行回数 |
| 設定された最大試行回数(初回+再試行) |
| この試のウォールクロック時間 |
| バッチコントローラの終了コード |
| 変更されたファイルパスのリスト |
|
|
|
|
| 何を実行したかの短い説明 |
|
|
|
|
| その失敗タイプが再試行対象かどうか |
| 設定された制限内で実際に別の試行が実行されるかどうか |
| すべての試行が尽きたときに |
| 尽きたときの |
エスカレーションフロー
Tool call → attempt 1 (fails) → retry → attempt 2 (fails) → return escalated_to_codex委任から status: "escalated_to_codex" が返った場合、Codex は根本原因を調査して次のステップを判断する必要があります。ブリッジが Codex API を呼び出すことは決してありません。
トークンの統計
トークン使用量は、利用状況 JSON ブロックが利用可能な場合(source: "reported"、estimated: false)、DeepSeek/Harness の出力から解析されます。それ以外の場合、プロンプトと結果の文字数からおおよそ 1 トークン=4 文字で近似されます(source: "estimated"、estimate: 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 ワークツリーのみを編集できるようにします。レポートとパッチは、Codex と人のレビューのために、リポジトリの外に保持されます。マージや自動適用は一切行われません。
deepseek_explore と deepseek_review も分離された worktree で実行されます。これらの読み取り専用の動作はあくまでプロンプトレベルのポリシーですが、誤って書き込んだとしてもメインタスクディレクトリに触れることはありません。
deepseek_stats は読み取り専用で、統計ファイルにのみアクセスします。
うこの節約になるのか
高コストのループは通常、リポジトリ検索 → 多数のファイル読み取り → 実装 → テスト → 失敗分析 → 再テイです。このブリッジはそのループを別の DeepSeek Harness セッションに移します。Codex に返るのはコンパクトで構造化された結果だけなので、後は差分を検査して追加の検証を行えます。
作者
@sakurameishi が作成・保守しています。
ライセンス
MIT © 2026 sakurameishi
Available Tools
5 toolsdeepseek_exploreARead-onlyIdempotent
Delegate repository exploration, code search, dependency tracing, or implementation-location discovery to DeepSeek Harness. Read-only: DeepSeek is instructed not to modify files. Returns compact structured JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Workspace directory. Defaults to the MCP server process working directory. | |
| task | Yes | The concrete coding task to delegate to DeepSeek Harness. | |
| timeout_minutes | No | Optional timeout override in minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that DeepSeek is 'instructed not to modify files' and returns 'compact structured JSON,' which reinforces the read-only nature and provides output format context. This adds value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a read-only note and output format. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (delegation to an external harness), the description covers the purpose, read-only behavior, and output format. It lacks details on how the task is executed or what 'compact structured JSON' contains, but with no output schema and good annotations, the description is reasonably complete for an agent to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (cwd, task, timeout_minutes). The description does not add additional parameter semantics beyond what the schema provides. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Delegate repository exploration, code search, dependency tracing, or implementation-location discovery to DeepSeek Harness.' It uses specific verbs (explore, search, trace, discover) and a clear resource (repository). It distinguishes from siblings by focusing on exploration/discovery rather than task execution, fixing, reviewing, or stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: for exploration, code search, dependency tracing, and implementation-location discovery. It does not explicitly state when not to use it or name alternatives, but the sibling tools (deepseek_task, deepseek_fix, deepseek_review, deepseek_stats) provide context. The description could be more explicit about exclusions, but the purpose is clear enough for an agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepseek_fixA
Delegate a bug-fix or failing-test loop to DeepSeek Harness in an isolated Git worktree. The main workspace is never modified automatically. Returns compact structured JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Workspace directory. Defaults to the MCP server process working directory. | |
| task | Yes | The concrete coding task to delegate to DeepSeek Harness. | |
| evidence | No | Optional error message, failing test output, stack trace, or symptoms already observed by Codex. | |
| timeout_minutes | No | Optional timeout override in minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false, but the description adds important context: the tool operates in an isolated Git worktree and never modifies the main workspace automatically. This goes beyond the annotations and clarifies the safety profile. It also mentions the return format (compact structured JSON), which is useful. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a key safety guarantee and return format. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 params, no output schema, no nested objects), the description is fairly complete. It explains the isolation mechanism, the safety guarantee, and the return format. It could mention what happens on failure or how the worktree is cleaned up, but the annotations and schema cover the basics. A 4 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds minimal extra meaning beyond what the schema provides, but it does mention the 'evidence' parameter implicitly by saying 'failing-test loop' and 'symptoms already observed'. Since the schema covers everything, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: delegating a bug-fix or failing-test loop to DeepSeek Harness in an isolated Git worktree. It specifies the action (delegate), the resource (bug-fix/failing-test loop), and the isolation mechanism (worktree), which distinguishes it from siblings like deepseek_task or deepseek_explore.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when there is a bug-fix or failing-test loop to delegate. It also notes that the main workspace is never modified automatically, which is a key usage consideration. However, it does not explicitly state when not to use it or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepseek_reviewARead-onlyIdempotent
Delegate a focused code review to DeepSeek Harness. Read-only: DeepSeek is instructed not to modify files. Returns only material findings. Returns compact structured JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Workspace directory. Defaults to the MCP server process working directory. | |
| task | Yes | The concrete coding task to delegate to DeepSeek Harness. | |
| focus | No | Optional review focus such as correctness, concurrency, security, performance, or API compatibility. | |
| timeout_minutes | No | Optional timeout override in minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only: DeepSeek is instructed not to modify files.' It adds value by explaining the agent will not make changes and by stating the output behavior: 'Returns only material findings. Returns compact structured JSON.' Though it doesn't mention advanced details like auth or rate limits, it enriches beyond the annotations with output expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceedingly concise—two sentences—yet packs in all key information: action, read-only guarantee, output filtering, and output format. It front-loads the primary purpose and delivers maximum information density without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delegation tool with 4 parameters (1 required) and no output schema, the description adequately contextualizes the tool's role and output expectations. It covers the core aspects: what it does, its safety profile, and partial output details. While it could elaborate on 'material findings' or the exact JSON structure, the description is sufficient for an agent to use the tool effectively without confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with parameters like task and focus clearly documented. However, the description adds no additional semantic meaning beyond what's in the schema. It simply outlines the tool's high-level behavior without elaborating on parameter usage or providing examples. Thus, it meets the baseline but doesn't exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Delegate a focused code review to DeepSeek Harness.' It distinctly identifies the operation (delegating a code review) and differentiates it from sibling tools like deepseek_task or deepseek_fix, which likely handle task execution or bug fixes. The 'focused' modifier adds precision, and the description leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('Delegate a focused code review') but does not explicitly state when to prefer this tool over siblings or provide exclusions. There's no mention of alternatives or when not to use it. A 3 reflects that the usage context is implied but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepseek_statsARead-onlyIdempotent
Read-only bridge statistics. Returns concise totals, tool counts, success rate, average duration, and last 10 task metadata. Results are drawn from the project-level stats file (.codex-deepseek/stats.json).
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Workspace directory used to locate the stats file. Defaults to the MCP server process working directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds that results are drawn from a project-level stats file (.codex-deepseek/stats.json), providing extra context about data provenance. 'Read-only' aligns with annotations, and no contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: two sentences, front-loaded with purpose ('Read-only bridge statistics'), and each clause provides useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 optional param, no output schema), the description explains the return categories (totals, counts, success rate, duration, last 10 task metadata) sufficiently. It might be slightly more complete with mention of failure modes (e.g., missing stats file), but that is not essential for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% (the single 'cwd' parameter is fully described in the input schema). The tool description does not add any parameter details beyond the schema, so it meets the baseline but offers no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: returns bridge statistics including totals, tool counts, success rate, average duration, and last 10 task metadata. It distinguishes from sibling tools (task/fix/explore/review) by being a stats aggregator, and the verb 'Returns' is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining overall statistics but does not explicitly say when to use it over alternatives or when not to use it. Context from sibling names helps, but there is no direct guidance on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepseek_taskA
Delegate a normal implementation/refactor/debug task to DeepSeek Harness in an isolated Git worktree. The main workspace is never modified automatically; Codex must review the report and patch before applying anything. Returns compact structured JSON with status, task_id, retry information, usage, and artifact paths.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Workspace directory. Defaults to the MCP server process working directory. | |
| task | Yes | The concrete coding task to delegate to DeepSeek Harness. | |
| timeout_minutes | No | Optional timeout override in minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the raw annotations (readOnly:false, destructive:false), the description adds valuable behavioral context: the isolation guarantee ('main workspace is never modified automatically') and the mandatory review gate ('Codex must review the report and patch before applying anything'). This paints a coherent safety model — the operation produces work but is gated — that the annotations alone don't fully convey. It stops short of addressing failure paths, but for this complexity level it's strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: (1) what and where, (2) safety/review gate, (3) return format. Front-loaded with the purpose statement, zero fluff, and optimally scannable for an agent parsing the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param tool with no output schema, the description covers the key facets: delegation target, isolation model, safety gate, and return contract (status, task_id, retry info, usage, artifact paths). Remaining minor gaps: no guidance on error/failure behavior or how task_id might chain with sibling tools, but neither is critical given the explicit safety workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — cwd, task, and timeout_minutes already have meaningful descriptions with defaults, constraints, and types. The description adds no additional parameter semantics on top of the schema, so the baseline of 3 is appropriate. The 'Returns compact structured JSON...' sentence describes the output, not the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Delegate') with a resource ('DeepSeek Harness in an isolated Git worktree') and a clear scope ('normal implementation/refactor/debug task'). The word 'normal' implicitly contrasts with the specialized sibling tools (fix/explore/review/stats), though it stops short of explicitly naming them as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'normal implementation/refactor/debug task' signals this is the general-purpose sibling, while deepseek_explore/review/fix/stats handle specialization. However, there are no explicit when-to-use, when-not-to-use, or named-alternative statements, and the safety workflow note ('Codex must review the report and patch before applying anything') is about execution behavior rather than selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.2.0- First observed
deepseek_explore - First observed
deepseek_fix - First observed
deepseek_review - First observed
deepseek_stats - First observed
deepseek_task
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: task delegation, bug fixing, exploration, review, and statistics. The descriptions explicitly differentiate read-only operations and the action types, leaving no ambiguity.
All tools follow the identical `deepseek_` prefix with a verb indicating the action (task, fix, explore, review, stats). This consistent pattern makes the API predictable and easy to navigate.
With only 5 tools, the set is tightly scoped to the core operations of the DeepSeek Harness bridge. Each tool serves a distinct necessary function without redundancy or bloat.
The tools cover the primary workflows (delegation, fixing, exploration, review, and stats). A minor gap is the lack of explicit task status or cancellation tools, though the stats tool implicitly provides an overview. The surface is otherwise well-rounded.
Maintenance
Related MCP Connectors
No-data MCP handoff for local Claude Code to Codex harness moves. $49 lifetime.
Code-map tools for AI agents: see a repo's structure first, then edit only what matters.
Hand tasks, bugs and finished work to AI coding agents, and get back a write-up with evidence.
Search indexed code, trace dependencies, assess change impact, and recall repository memory.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables Claude Code to delegate bounded repository tasks to DeepSeek as a local sub-agent, handling exploration, routine changes, and test runs within a controlled workspace and budget.31MIT
- AlicenseAqualityBmaintenanceEnables Codex and Claude Code to delegate implementation, research, debugging, and long-log work to DeepSeek Harness, then observe, continue, or cancel those sessions without leaving the primary workflow.153MIT
- AlicenseNot gradedqualityBmaintenanceEnables Codex to delegate coding tasks to a persistent DeepSeek Harness agent that can read repositories, edit files, and run tests, while letting users follow up, monitor progress, and interrupt the work.119 npm4MIT
- AlicenseNot gradedqualityBmaintenanceEnables Codex to plan and get approval, execute tasks with DSH in isolated Git worktrees, independently review results, and optionally deliver draft PRs/MRs.25 npmMIT