Skip to main content
Glama

Codex DSH MCP

Экономичный MCP-мост, который позволяет Codex делегировать рутинную работу с большим контекстом в DeepSeek Harness, сохраняя за Codex архитектуру, ревью и финальную проверку.

Codex DSH MCP запускает каждого рабочего DeepSeek в изолированном Git-worktree, созданном из закоммиченного HEAD. Он никогда не применяет изменения к основному рабочему пространству автоматически: Codex и человек-ревьюер получают компактный результат, Markdown-отчёт и патч для проверки в первую очередь.

Зачем это нужно?

  • Выгрузите исследование репозитория, рутинную реализацию, рефакторинг, тесты и обычные исправления в DeepSeek.

  • Оставьте за Codex высокорискованную архитектуру, безопасность, финальное ревью и приёмку.

  • Повторите неудачную делегацию максимум один раз, затем верните ESCALATED_TO_CODEX, не тратя вызовы впустую.

  • Отслеживайте вызовы, длительность, процент успеха и чётко помеченные оценочные/фактические затраты токенов по проектам.

  • Держите основной checkout защищённым: рабочие процессы действуют только в изолированных worktree.

Related MCP server: dsh_agentlink

Быстрый старт

  1. Склонируйте этот репозиторий и откройте его папку в Проводнике Windows.

  2. Дважды щёлкните install-windows.bat (или запустите install-windows.ps1 в PowerShell).

  3. Внесите config.toml.example в %USERPROFILE%\.codex\config.toml и обновите путь к мосту.

  4. Внесите AGENTS.md в ваши глобальные или проектные инструкции Codex.

  5. Перезапустите Codex и убедитесь, что MCP-сервер deepseek предоставляет пять инструментов.

Что он предоставляет

  • deepseek_explore — read-only исследование/поиск по репозиторию.

  • deepseek_task — обычная реализация/рефакторинг/тестирование в изолированном worktree.

  • deepseek_fix — цикл диагностика-исправление-тест для багов/падающих тестов в изолированном worktree.

  • deepseek_review — read-only целенаправленное ревью.

  • deepseek_stats — read-only статистика моста (итоги, количество вызовов инструментов, процент успеха, средняя длительность, метаданные последних 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+.

  • Codex с поддержкой MCP.

  • DeepSeek Harness, доступный как dsh и уже настроенный/авторизованный для модели/сервиса DeepSeek, который вы собираетесь использовать.

Установка на Windows

Откройте PowerShell в этой папке:

Set-ExecutionPolicy -Scope Process Bypass
.\install-windows.ps1

Или дважды щёлкните install-windows.bat; это тонкая обёртка Windows вокруг того же установщика.

Затем проверьте DeepSeek Harness отдельно, прежде чем подключать Codex:

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. В TUI Codex команда /mcp должна показать MCP-сервер deepseek и пять инструментов.

Установка промпта делегирования

Для одного репозитория поместите AGENTS.md в корень репозитория (или встройте раздел о делегировании DeepSeek в существующий AGENTS.md).

Для глобальной личной политики внесите содержимое в %USERPROFILE%\.codex\AGENTS.md. Проектные инструкции по-прежнему могут его переопределять.

Рекомендуемый первый тест

В одноразовом Git-репозитории спросите Codex:

Найди, где разбираются аргументы CLI. Используй DeepSeek для исследования репозитория и сообщи о соответствующих файлах. Ничего не изменяй.

Затем попробуйте безвредную задачу на запись:

Добавь небольшой модульный тест для существующей чистой функции-помощника. Поручи реализацию DeepSeek, затем сам проверь diff и запусти целевой тест, прежде чем сообщать об успехе.

Затем проверьте статистику:

Запусти deepseek_stats, чтобы проверить использование моста и экономию токенов.

Переменные окружения

Основные

Переменная

Описание

Значение по умолчанию

DSH_BATCH_CONTROLLER

Абсолютный путь к контроллеру изолированного worktree

(обязательно)

DSH_COMMAND

dsh или абсолютный путь к JS-модулю запуска DSH, передаваемый контроллеру безопасно

dsh

DSH_TIMEOUT_MS

Таймаут по умолчанию для делегированных задач; ограничен 10 с – 2 ч

1800000 (30 мин)

DSH_MAX_OUTPUT_CHARS

Максимум символов, возвращаемых в контекст Codex

6000

DEEPSEEK_ALLOWED_ROOT

Необязательный корень; ограничивает, к каким каталогам DeepSeek имеет доступ

(нет)

Автоповтор

Переменная

Описание

Значение по умолчанию

DSH_AUTO_RETRY

Повторять ли автоматически при временных сбоях

true

DSH_MAX_RETRIES

Максимум повторов (сверх первой попытки, т.е. 1 = всего 2 попытки)

1

Статистика

Переменная

Описание

Значение по умолчанию

DSH_STATS_ENABLED

Включить ли сохранение статистики

true

DSH_STATS_FILE

Путь к файлу статистики; абсолютный или относительно рабочего пространства

.codex-deepseek/stats.json

DSH_TOKEN_STATS

Включить ли учёт расхода токенов

true

Формат результата

Каждый инструмент делегирования возвращает компактный структурированный JSON-объект:

Поле

Описание

status

success, failed или escalated_to_codex

tool

Имя инструмента (например, deepseek_task)

task_id

Уникальный ID: ds_YYYYMMDD_shortid

attempt

Номер текущей попытки

attempts

Фактическое число выполненных попыток

max_attempts

Настроенный максимум (первая попытка + повторы)

duration_ms

Длительность этой попытки в миллисекундах

exit_code

Код возврата от контроллера пакетного запуска

changed_files

Массив путей изменённых файлов

tests

{ ran, passed, summary }

usage

Расход токенов с полем source (reported/estimated) и флагом estimated

summary

Краткое описание выполненной работы

artifact_paths

{ run_dir, report, patch }

failure_type

timeout, controller_error, malformed_output, unable_to_complete, test_failure, no_changes или null

retry_recommended

Рекомендован ли повтор для данного типа сбоя

will_retry

Будет ли фактически выполнен повтор в рамках настроенного лимита

escalated

Логическое значение; true, когда все попытки исчерпаны

escalation_marker

"ESCALATED_TO_CODEX" при исчерпании попыток

Процесс эскалации

Tool call → attempt 1 (fails) → retry → attempt 2 (fails) → return escalated_to_codex

Когда делегирование возвращает status: "escalated_to_codex", Codex должен разобраться в первопричине и решить, что делать дальше. Мост никогда не вызывает API Codex.

Статистика токенов

Расход токенов извлекается из вывода DeepSeek/Harness, когда доступен JSON-блок использования (source: "reported", estimated: false). В противном случае он приблизительно оценивается по количеству символов в промпте/результате из расчёта примерно один токен на четыре символа (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. Их read-only поведение остаётся политикой уровня промпта, но случайные записи не могут затронуть основное рабочее пространство.

deepseek_stats доступен только для чтения и обращается лишь к файлу статистики.

Почему это экономит использование Codex

Дорогой цикл обычно таков: поиск по репозиторию → чтение множества файлов → реализация → тесты → анализ сбоев → повтор. Мост переносит этот цикл в отдельную сессию DeepSeek Harness. В Codex возвращается только компактный структурированный результат DeepSeek; затем Codex может изучить полученный diff и выполнить точечную проверку.

Автор

Создано и поддерживается @sakurameishi.

Лицензия

MIT © 2026 sakurameishi.

Available Tools

5 tools
deepseek_exploreA
Read-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.

NameRequiredDescriptionDefault
cwdNoWorkspace directory. Defaults to the MCP server process working directory.
taskYesThe concrete coding task to delegate to DeepSeek Harness.
timeout_minutesNoOptional timeout override in minutes.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
cwdNoWorkspace directory. Defaults to the MCP server process working directory.
taskYesThe concrete coding task to delegate to DeepSeek Harness.
evidenceNoOptional error message, failing test output, stack trace, or symptoms already observed by Codex.
timeout_minutesNoOptional timeout override in minutes.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_reviewA
Read-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.

NameRequiredDescriptionDefault
cwdNoWorkspace directory. Defaults to the MCP server process working directory.
taskYesThe concrete coding task to delegate to DeepSeek Harness.
focusNoOptional review focus such as correctness, concurrency, security, performance, or API compatibility.
timeout_minutesNoOptional timeout override in minutes.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_statsA
Read-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).

NameRequiredDescriptionDefault
cwdNoWorkspace directory used to locate the stats file. Defaults to the MCP server process working directory.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
cwdNoWorkspace directory. Defaults to the MCP server process working directory.
taskYesThe concrete coding task to delegate to DeepSeek Harness.
timeout_minutesNoOptional timeout override in minutes.

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 5 tool updatesv0.2.0
    • First observeddeepseek_explore
    • First observeddeepseek_fix
    • First observeddeepseek_review
    • First observeddeepseek_stats
    • First observeddeepseek_task

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers