Codex DSH MCP
Codex DSH MCP
비용 인식형 MCP 브리지로, Codex가 반복적이고 컨텍스트가 많이 필요한 작업을 DeepSeek Harness에 위임하는 동안 Codex는 아키텍처, 리뷰, 최종 검증을 계속 제어합니다.
Codex DSH MCP는 각 DeepSeek 워커를 커밋된 HEAD에서 생성된 격리된 Git 워크트리에서 실행합니다. 메인 워크스페이스에 변경 사항을 자동으로 적용하지 않습니다. Codex와 인간 리뷰어는 먼저 검토할 수 있도록 간결한 결과, Markdown 보고서, 패치를 받습니다.
왜 사용하나요?
저장소 탐색, 일상적인 구현, 리팩터링, 테스트, 일반적인 수정을 DeepSeek에 오프로드합니다.
위험도가 높은 아키텍처, 보안, 최종 리뷰, 승인은 Codex가 유지합니다.
실패한 위임은 최대 한 번만 재시도한 후 호출 낭비 대신
ESCALATED_TO_CODEX를 반환합니다.프로젝트별 호출, 기간, 성공률, 명확하게 라벨링된 추정/보고 토큰 사용량을 추적합니다.
메인 체크아웃을 보호합니다. 워커는 격리된 워크트리에서만 작동합니다.
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 서버가 다섯 개의 도구를 노출하는지 확인합니다.
노출되는 기능
deepseek_explore— 읽기 전용 저장소 탐색/검색.deepseek_task— 격리된 워크트리에서 일반 구현/리팩터링/테스트 작업.deepseek_fix— 격리된 워크트리에서 버그/실패 테스트 진단-수정-테스트 루프.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를 사용하는 집중 버그 수정 시도입니다. 두 번째 실패는 ESCALATED_TO_CODEX를 반환합니다. Codex가 인계받으며 동일한 문제를 세 번째로 위임해서는 안 됩니다.
요구 사항
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 서버와 다섯 개의 도구를 표시해야 합니다.
위임 프롬프트 설치
단일 저장소의 경우 AGENTS.md를 저장소 루트에 둡니다(또는 DeepSeek 위임 섹션을 기존 AGENTS.md에 병합).
전역 개인 정책의 경우 내용을 %USERPROFILE%\.codex\AGENTS.md에 병합합니다. 프로젝트별 지침이 여전히 이를 재정의할 수 있습니다.
권장 첫 테스트
임시 Git 저장소에서 Codex에게 요청합니다:
CLI 인수가 어디에서 파싱되는지 찾아보세요. 저장소 탐색에는 DeepSeek을 사용하고 관련 파일을 보고하세요. 아무것도 수정하지 마세요.
그런 다음 무해한 쓰기 작업을 시도합니다:
기존 순수 헬퍼에 대한 작은 단위 테스트를 추가하세요. 구현을 DeepSeek에 위임한 다음, 성공을 보고하기 전에 직접 diff를 검토하고 해당 테스트를 실행하세요.
그런 다음 통계를 확인합니다:
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 블록을 사용할 수 있을 때 DeepSeek/Harness 출력에서 파싱됩니다(source: "reported", estimated: false). 그렇지 않으면 프롬프트/결과 문자 수에서 약 4자당 1토큰으로 근사됩니다(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 워크트리만 편집하도록 허용합니다. 보고서와 패치는 Codex와 인간 리뷰를 위해 저장소 외부에 보관됩니다. 자동으로 병합되거나 적용되는 것은 없습니다.
deepseek_explore와 deepseek_review도 격리된 워크트리에서 실행됩니다. 읽기 전용 동작은 프롬프트 수준 정책으로 유지되지만, 실수로 인한 쓰기는 메인 워크스페이스에 닿을 수 없습니다.
deepseek_stats는 읽기 전용이며 통계 파일에만 접근합니다.
Codex 사용량을 절약하는 이유
비용이 많이 드는 루프는 일반적으로 저장소 검색 → 많은 파일 읽기 → 구현 → 테스트 → 실패 분석 → 재시도입니다. 브리지는 이 루프를 별도의 DeepSeek Harness 세션으로 이동합니다. DeepSeek의 간결한 구조화된 결과만 Codex로 반환되며, Codex는 결과 diff를 검사하고 목표 검증을 수행할 수 있습니다.
작성자
@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