Codex DSH MCP
Codex DSH MCP
Eine kostenbewusste MCP-Brücke, die es Codex ermöglicht, routinemäßige, kontextintensive Arbeiten an DeepSeek Harness zu delegieren – während Codex Architektur, Review und finale Verifikation unter Kontrolle behält.
Codex DSH MCP führt jeden DeepSeek-Worker in einem isolierten Git-Worktree aus, der aus dem committeten HEAD erstellt wird. Es übernimmt niemals automatisch Änderungen am Haupt-Workspace: Codex und der menschliche Reviewer erhalten zuerst ein kompaktes Ergebnis, einen Markdown-Bericht und einen Patch zur Prüfung.
Warum verwenden?
Repository-Erkundung, Routineimplementierungen, Refactorings, Tests und gewöhnliche Fixes an DeepSeek auslagern.
Hochriskante Architektur, Sicherheit, finales Review und Abnahme bei Codex behalten.
Eine fehlgeschlagene Delegation höchstens einmal wiederholen, dann
ESCALATED_TO_CODEXzurückgeben, statt Aufrufe zu verschwenden.Aufrufe, Dauer, Erfolgsquote und klar gekennzeichnete geschätzte/gemeldete Token-Nutzung pro Projekt verfolgen.
Den Haupt-Checkout geschützt halten: Worker arbeiten nur in isolierten Worktrees.
Related MCP server: dsh_agentlink
Schnellstart
Klonen Sie dieses Repository und öffnen Sie den Ordner im Windows Explorer.
Doppelklicken Sie auf
install-windows.bat(oder führen Sieinstall-windows.ps1in PowerShell aus).Führen Sie
config.toml.examplein%USERPROFILE%\.codex\config.tomlzusammen und aktualisieren Sie den Brückenpfad.Führen Sie
AGENTS.mdin Ihre globalen oder projektspezifischen Codex-Anweisungen zusammen.Starten Sie Codex neu und bestätigen Sie, dass der
deepseek-MCP-Server fünf Tools bereitstellt.
Was es bereitstellt
deepseek_explore– schreibgeschützte Repository-Erkundung/-Suche.deepseek_task– normale Implementierungs-/Refactoring-/Testarbeit in einem isolierten Worktree.deepseek_fix– Diagnose-Edit-Test-Schleife für Bugs/fehlgeschlagene Tests in einem isolierten Worktree.deepseek_review– schreibgeschütztes fokussiertes Review.deepseek_stats– schreibgeschützte Brückenstatistiken (Summen, Tool-Zähler, Erfolgsquote, durchschnittliche Dauer, Metadaten der letzten 10 Aufgaben).
Wie das Routing funktioniert
AGENTS.md weist Codex an, für kleine, kritische, architektonische, sicherheitsrelevante, destruktive oder bereits eskalierte Arbeiten DIRECT_CODEX zu wählen. Für breite Erkundung und Routinearbeit wählt es DELEGATE_DEEPSEEK – insbesondere wenn mehr als etwa drei Dateien gelesen, mehr als etwa zwei Dateien geändert werden müssen oder eine Edit-/Test-/Fix-Schleife wahrscheinlich ist. Codex scannt das Repository nicht zuerst, nur um diese Entscheidung zu treffen.
User
↓
Codex Router
├── Small / Critical ──→ Codex
│
└── Delegatable
↓
DeepSeek
↓
┌─────┴─────┐
Success Failure
↓ ↓
Review Retry once
↓
Failure again
↓
CodexDer Wiederholungsversuch ist ein fokussierter Bugfix-Versuch mit derselben Aufgaben-ID. Ein zweiter Fehlschlag gibt ESCALATED_TO_CODEX zurück; Codex übernimmt und darf dasselbe Problem nicht ein drittes Mal delegieren.
Anforderungen
Windows 10/11 (die Brücke hat auch einen POSIX-Pfad).
Node.js 20+.
Codex mit MCP-Unterstützung.
DeepSeek Harness als
dshverfügbar und bereits für das DeepSeek-Modell/den Dienst konfiguriert/authentifiziert, den Sie verwenden möchten.
Installation unter Windows
Öffnen Sie PowerShell in diesem Ordner:
Set-ExecutionPolicy -Scope Process Bypass
.\install-windows.ps1Oder doppelklicken Sie auf install-windows.bat; es ist ein dünner Windows-Wrapper um denselben Installer.
Verifizieren Sie dann DeepSeek Harness unabhängig, bevor Sie Codex einbeziehen:
dsh --profile headless "Reply with exactly READY"Wenn das nicht funktioniert, beheben Sie zuerst dsh. Die MCP-Brücke verwaltet DeepSeek-Anmeldedaten bewusst nicht selbst.
Codex konfigurieren
Führen Sie config.toml.example in %USERPROFILE%\.codex\config.toml zusammen und ersetzen Sie den Beispielpfad:
[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"Starten Sie Codex neu. In der Codex-TUI sollte /mcp den deepseek-MCP-Server und fünf Tools anzeigen.
Den Delegations-Prompt installieren
Für ein einzelnes Repository legen Sie AGENTS.md im Repository-Stamm ab (oder führen Sie den DeepSeek-Delegationsabschnitt in eine vorhandene AGENTS.md zusammen).
Für eine globale persönliche Richtlinie führen Sie den Inhalt in %USERPROFILE%\.codex\AGENTS.md zusammen. Projektspezifische Anweisungen können diese weiterhin überschreiben.
Vorgeschlagener erster Test
In einem Wegwerf-Git-Repository fragen Sie Codex:
Finden Sie heraus, wo die CLI-Argumente geparst werden. Verwenden Sie DeepSeek für die Repository-Erkundung und melden Sie die relevanten Dateien. Ändern Sie nichts.
Versuchen Sie dann eine harmlose Schreibaufgabe:
Fügen Sie einen kleinen Unit-Test für einen vorhandenen reinen Helfer hinzu. Delegieren Sie die Implementierung an DeepSeek, prüfen Sie dann den Diff und führen Sie den fokussierten Test selbst aus, bevor Sie den Erfolg melden.
Verifizieren Sie dann die Statistiken:
Führen Sie deepseek_stats aus, um die Brückennutzung und Token-Ersparnisse zu prüfen.
Umgebungsvariablen
Kern
Variable | Beschreibung | Standard |
| Absoluter Pfad zum Controller für isolierte Worktrees | (erforderlich) |
|
|
|
| Standard-Timeout für delegierte Aufgaben; begrenzt auf 10 s – 2 h |
|
| Maximale Zeichen, die an den Codex-Kontext zurückgegeben werden |
|
| Optionales Wurzelverzeichnis; schränkt ein, auf welche Verzeichnisse DeepSeek zugreifen kann | (keines) |
Automatische Wiederholung
Variable | Beschreibung | Standard |
| Ob bei vorübergehenden Fehlern automatisch wiederholt werden soll |
|
| Maximale Wiederholungen (über den ersten Versuch hinaus, also 1 = 2 Versuche insgesamt) |
|
Statistiken
Variable | Beschreibung | Standard |
| Statistik-Persistenz aktivieren |
|
| Pfad zur Statistikdatei; absolut oder relativ zum Workspace |
|
| Token-Nutzungsverfolgung aktivieren |
|
Ergebnisformat
Jedes Delegations-Tool gibt ein kompaktes strukturiertes JSON-Objekt zurück mit:
Feld | Beschreibung |
|
|
| Der Tool-Name (z. B. |
| Eindeutige ID: |
| Aktuelle Versuchsnummer |
| Tatsächliche Anzahl abgeschlossener Versuche |
| Konfiguriertes Maximum (erster Versuch + Wiederholungen) |
| Wanduhr-Dauer dieses Versuchs |
| Exit-Code des Batch-Controllers |
| Array der geänderten Dateipfade |
|
|
| Token-Nutzung mit |
| Kurzbeschreibung dessen, was getan wurde |
|
|
|
|
| Ob dieser Fehlertyp für eine Wiederholung geeignet ist |
| Ob tatsächlich ein weiterer Versuch unter dem konfigurierten Limit läuft |
| Boolescher Wert; |
|
|
Eskalationsablauf
Tool call → attempt 1 (fails) → retry → attempt 2 (fails) → return escalated_to_codexWenn eine Delegation status: "escalated_to_codex" zurückgibt, sollte Codex die Ursache untersuchen und über die nächsten Schritte entscheiden. Die Brücke ruft niemals die Codex-API auf.
Token-Statistiken
Die Token-Nutzung wird aus der DeepSeek/Harness-Ausgabe geparst, wenn ein Nutzungs-JSON-Block verfügbar ist (source: "reported", estimated: false). Andernfalls wird sie aus den Zeichenzahlen von Prompt/Ergebnis mit etwa einem Token pro vier Zeichen approximiert (source: "estimated", estimated: true). Gemeldete Nutzung sind Anbieterdaten; geschätzte Nutzung ist nur eine Fallback-Annäherung.
Die projektbezogene Datei .codex-deepseek/stats.json speichert begrenzte Metadaten für höchstens 100 Versuche und wird über eine temporäre Datei mit anschließender Umbenennung geschrieben. Sie speichert niemals den vollständigen Aufgaben-Prompt, die Ergebniszusammenfassung, den Diff, die geänderten Dateipfade oder Artefaktpfade. deepseek_stats gibt Summen, Erfolgsquote, durchschnittliche Dauer, Zähler pro Tool und die letzten 10 Metadateneinträge zurück.
estimated_codex_tokens_avoided verwendet die Menge des von DeepSeek verarbeiteten Kontexts als groben Näherungswert für Kontext, den Codex nicht verarbeiten musste. Es ist immer mit estimate_only: true gekennzeichnet. Es ist keine OpenAI- oder Codex-Kontingentmessung und sollte nur verwendet werden, um zu beurteilen, ob Delegation in die richtige Richtung sinnvoll ist.
Sicherheitsmodell
deepseek_task und deepseek_fix erlauben DeepSeek Harness, nur einen isolierten Git-Worktree zu bearbeiten. Berichte und Patches werden außerhalb des Repositorys für Codex und menschliche Prüfung aufbewahrt. Nichts wird automatisch zusammengeführt oder angewendet.
deepseek_explore und deepseek_review laufen ebenfalls in isolierten Worktrees. Ihr schreibgeschütztes Verhalten bleibt eine Richtlinie auf Prompt-Ebene, aber versehentliche Schreibvorgänge können den Haupt-Workspace nicht berühren.
deepseek_stats ist schreibgeschützt und greift nur auf die Statistikdatei zu.
Warum dies Codex-Nutzung spart
Die teure Schleife ist normalerweise Repository-Suche → viele Dateilesevorgänge → Implementierung → Tests → Fehleranalyse → Wiederholung. Die Brücke verschiebt diese Schleife in eine separate DeepSeek-Harness-Sitzung. Nur DeepSeeks kompaktes strukturiertes Ergebnis kehrt zu Codex zurück; Codex kann dann den resultierenden Diff prüfen und gezielte Verifikation durchführen.
Autor
Erstellt und gepflegt von @sakurameishi.
Lizenz
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