Skip to main content
Glama

DeltaRoute (Δ)

DeltaRoute connects the AI subscriptions you already pay for, from Claude Code, any Claude chat (phone included) or ChatGPT, running on your own computer. Claude does most of the work; DeltaRoute hands off only what another model is clearly better at, judged by a registry that a weekly check of live benchmarks keeps current: live research to Perplexity, Grok and Muse, images and video to Nano Banana Pro, ChatGPT, Grok Imagine, Seedance or Veo, and code when a worker leads on benchmarks. Workers share a team board, ask each other for help, render their own stills, and are watched by disposable Grok monitors. Long jobs run as an Operation Plan the user approves first: routes with token budgets, agents and cheap sub-agents, a 0-100 Review (80 passes), a simulated review of the whole product and the user's final approval, all streamed to a live local dashboard. A capability registry gives each role to the best available model. See docs/ARCHITECTURE.md.

DeltaRoute routing workflow

Windows is the supported installation target. The Node core also has portable tests; macOS/Linux native integrations require manual configuration and are not claimed as fully validated. Bring your own eligible subscriptions and official clients. The project supplies no accounts, provider binaries or API credits.

Install

Install Node.js 22+, Git, Python 3.11+, and the official Claude Code and/or Codex CLI. Install any additional provider clients you intend to use, then sign in through each client's normal account flow. Subscription eligibility and available models depend on the provider and account. Never copy someone else's credentials.

git clone https://github.com/olivergoldberg15-bit/DeltaRoute.git
cd DeltaRoute
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup.ps1
npm test

Setup creates a private local config.json, discovers compatible installed executables and leaves missing providers disabled. Review that file before enabling additional workers. config.example.json explains the configurable transports. There are no npm runtime dependencies to install.

Register the clients you use:

# Claude Code: global routing policy, prompt hook, MCP and repetitive subagent
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -AllowRouterTools

# Codex: global routing policy, native skill and MCP
powershell -NoProfile -ExecutionPolicy Bypass -File .\install-codex.ps1 -ManagedHeads

powershell -NoProfile -ExecutionPolicy Bypass -File .\doctor.ps1

The switches opt into approval for the seven local router tools. They do not grant blanket shell/browser permissions or override explicit Codex denials. Without the switches, worker submission/cancellation use normal approvals; the Codex installer may approve its read-only router tools. Installers back up changed global files and refuse to overwrite an unrelated existing MCP registration. Keep this checkout at its installed path and restart the host to load changes.

See setup and providers for prerequisites, sign-in, research, video tools, optional skills, manual MCP setup and troubleshooting.

On Linux or macOS, node install-claude.mjs --allow-router-tools does what install.ps1 -AllowRouterTools does. DeltaRoute runs on your own computer by default. The optional always-on cloud server setup is in DeltaRoute in the cloud; nothing uses it unless you start it.

Related MCP server: Agent Harness Kit

Use it from chat

  • Claude Code runs DeltaRoute locally (installed below).

  • Claude chat on your phone or desktop, and ChatGPT: run powershell -ExecutionPolicy Bypass -File .\connect.ps1 -AtLogon. It starts DeltaRoute's endpoint on this computer, opens a Tailscale Funnel and prints a secret connector link once. Add that link in Claude (Settings > Connectors > Add custom connector) or ChatGPT (Settings > Connectors, developer mode). Then ask "make me an image of a neon octopus with Nano Banana Pro" in any chat. It works while this computer is on.

  • node signins.mjs shows which subscriptions are signed in (no model request); --smoke then runs one tiny real job per worker.

What routes where

Work

Default role

Planning, creative direction, animation, review, integration, and any work Claude scores within 5 points of the best worker

Current Claude Code/Codex host

Code a worker leads on (registry, from live benchmarks)

Codex, Gemini or Cursor

Cited live web research

Perplexity, Grok and Muse through gstack (experimental: consumer sites), or original public sources

Images and video

generate_media: Nano Banana Pro and other Higgsfield models (credits, capped), ChatGPT via Codex (no credits), Grok Imagine (experimental)

Watching running workers

Disposable Grok monitors, Gemini Flash backup

First look at rendered stills

Gemini Flash (advice only)

Repetitive read-only work

Claude's native Haiku subagent, when available

Animation, 3D, realism, context and verification

Relevant specialist instructions, loaded on demand

These are editable starting specialties. Availability and capabilities filter the choices. Explicit checkpoint reviews build memory by exact model and task category; three reviews are required before bounded ranking adjustments apply. Pin explicit model IDs for version-specific comparisons; an account-default alias can change underneath its stored feedback. This is local feedback, not an independently proven model leaderboard.

recommend_route explains each choice, and submit_task with provider auto refuses work Claude keeps (naming a provider still sends it). The weekly benchmark check applies cited score changes on its own, at most 10 points per score, only from pages the research visited, and each change can be undone. Routing is a host policy and tool workflow, not an interceptor that guarantees every chat launches a worker.

Local CLI worker processes automatically receive a bounded context snapshot: applicable project/user instructions, up to two relevant installed skill entry points with excerpts (never skills the project's rules ban, like "No Higgsfield", nor deploy/publish skills), BRIEF.md, STORYBOARD.md, optional .deltaroute/context.md, recent jobs from the same project, known active worker PIDs, and existing output paths. Discovery checks project and user .agents/skills, .claude/skills, .codex/skills, and the local Codex plugin cache. Skill files do not prove a tool is available. Skills must exist on the machine running DeltaRoute; laptop-only files are not available to a cloud worker.

Each attempt saves worker-context.json (source paths, modification times, included-content hashes, truncation flags) and worker-context.md (the exact prompt addition). get_task reports these paths and a compact retrievedContext summary. Prompt context is capped at 12,000 characters; large sources and partial discovery are marked. Manual context and workflow contracts remain in force. Chat history is not automatically inherited. For durable project-specific handoffs, save the relevant decisions and artifact paths in .deltaroute/context.md.

Retrieval does not read credentials, raw prior prompts/answers, or other projects' jobs, follow skill-directory symlinks outside their roots, run skill scripts, or send this context to browser research/image services. Set contextRetrieval.enabled to false in local config.json to disable it.

Long work and recovery

Save the original prompt as a workflow with constraints, non-goals, dependencies, allowed paths and acceptance checks. Workers use pinned Git worktrees with the project's node_modules linked in, and every code attempt comes back as a patch that apply_patch applies without a commit; the scope audit reads only that patch. Time limits follow the wall clock (a sleeping laptop no longer stretches them) and warn the worker at 80% so it saves its progress. Creative phases use light plans approved in one call and revised with a one-line approval; big builds use full Operation Plans. Four external workers may run at once; heavy profiles allow bounded 30-minute attempts.

An external supervisor can replace a stopped Claude head with Codex, or vice versa, for a managed workflow. If both heads reach hard quotas, new work waits for verified recovery. Native app chats keep their own host.

.\DeltaRoute.ps1 -WorkflowId "<saved-workflow-UUID>" -Background

Worker outages, expired logins and quotas use finite fallbacks and cooldowns. Exhausted workers hand back to the current coordinator. Login challenges, unconfirmed process shutdown and unresolved approval needs preserve state and require attention. No system can guarantee availability when all accounts or services are unavailable. There is no paid API fallback or quota bypass.

Details: heavy workflows, MCP examples, architecture, editable chart.

Video, social evidence and quality

Video URL analysis extracts actual sampled frames with local yt-dlp/FFmpeg and attaches them to a configured vision-capable Codex worker. Default coverage is eight frames from the first 60 seconds. Longer videos use explicit bounded windows. Native captions are retained; missing audio remains unverified.

Social research retains original URLs, publication/retrieval times and available metrics. Missing dates/counts remain unknown. A few posts do not establish a platform-wide trend. Grok through Cursor does not establish privileged live X access. Browser pages and public extraction can change or require login.

Specialist guidance covers Three.js, Blender, Remotion, creative work, context efficiency and verification. Licensing, pinned sources and installation are documented in third-party notices and the skill manifest. Some upstream collections have no redistribution license and are not bundled; the notices explain the optional explicit download path. Skills do not install a renderer, prove photorealism or automatically authorize cloud uploads and purchases.

Tests, speed and cost

npm test
npm run test:process
npm run test:install
npm run usage
npm run savings
npm run skills:verify

The default tests use local fixtures without provider calls or account resets. Process fault tests require Windows and Git; see test and benchmark instructions.

One historical matched log experiment reduced Claude logical input from 89,908 to 9,489 tokens. Tiny forced delegation used substantially more context than direct work. A separate managed head/worker fixture took 40.252 seconds. These are observations from individual trials, not universal speed or savings claims. Cached reads are a subset of input; browser counters may be unavailable. Fixed monthly subscription bills remain unchanged. npm run savings writes state/savings.html: the share of fresh tokens that ran off your Claude plan, counting Claude's own tokens from Claude Code's transcripts, per project. See verification and measurement limits.

Project files

  • server.mjs: seven MCP tools and bounded worker adapters.

  • media.mjs, image-jobs.mjs: generate_media and Higgsfield/Codex/Grok image and video jobs.

  • board.mjs, monitor.mjs, pre-review.mjs, render-stills.mjs: the team board, Grok monitors, the Flash still check and stills for workers.

  • deadline.mjs, patches.mjs: wall-clock limits and commit-free integration.

  • benchmark-news.mjs, registry.mjs: the weekly benchmark check and Claude-first routing.

  • remote-mcp.mjs, connect.ps1: the endpoint for Claude and ChatGPT chats, with secret connector links.

  • coordinator-usage.mjs, signins.mjs, templates/: Claude's own token count, sign-in checks and job templates.

  • workflows.mjs: original contract, dependency gates and scope audits.

  • coordinator-supervisor.mjs: external managed-head lifecycle.

  • coordinator-state.mjs, account-limits.mjs: observed quota state and native readiness.

  • routing-memory.mjs: explicit reviewed task-fit feedback.

  • media-evidence.mjs, browser.mjs: sampled video and sourced research.

  • telemetry.mjs, usage-report.mjs: native counters, compact results and retained attempts.

  • deltaroute-skill/: host instructions and on-demand references.

Original DeltaRoute code is MIT licensed. Third-party materials retain their own licenses. Local account data, prompts, caches and session logs are excluded from the release; see SECURITY.md.

Available Tools

5 tools
cancel_taskA

Cancel a queued or running delegated task and its child process. Keep job files and worktree for inspection.

NameRequiredDescriptionDefault
task_idYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does add real behavioral detail: the child process is also terminated and job files/worktree are intentionally preserved for inspection. However, it omits permissions/auth needs, whether cancellation is graceful or immediate, and what happens when the task has already completed or failed.

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?

Two tight sentences with zero filler. The action and its scope are front-loaded, and the second sentence delivers the non-obvious side effect about retained files.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-mutating tool with no annotations and no output schema, the description covers the core action and cleanup semantics but leaves open the return value, idempotency, and behavior against already-finished tasks. These are gaps an agent may hit in practice.

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 0%, so the description would need to compensate, but it says nothing about task_id's format or where to obtain it. The single required parameter is close to self-evident from its name, so this is adequate rather than harmful.

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 gives a specific verb (cancel) and resource (delegated task, plus its child process), and the phrase 'queued or running' scopes which tasks are affected. It is distinguishable from submit_task/get_task by the verb alone, though it never names a sibling explicitly, which keeps it just short of a 5.

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?

'Queued or running' implicitly tells the agent the applicable task states, but there is no explicit guidance on when to prefer this over siblings, no mention of what to do if the task is already terminal, and no prerequisites. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_taskB

Collect compact results and real token counters when exposed. wait_seconds up to 45 avoids repeated polling. Full prompts/research packet stay in artifacts; detail=full retrieves them only when needed. Truncated answers are labeled.

NameRequiredDescriptionDefault
detailNo
task_idNo
workflow_idNo
wait_secondsNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden and does disclose real traits: long-polling semantics via wait_seconds, that full prompts/research packets are retained in artifacts, and that truncated answers are explicitly labeled. It still omits error behavior, auth needs, and what happens when a task is absent or still running.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with the return content front-loaded and no filler; each sentence carries information. The phrasing is slightly telegraphic ('when exposed'), but nothing is wasted.

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 4-param, no-output-schema, no-annotation tool, the description does a fair job covering return shape (compact vs full, token counters, truncation labeling) and the polling model. The remaining gap is the identifier parameters and the one-of task_id/workflow_id requirement, which the description never addresses.

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 coverage is 0%, so the description must compensate. It adds genuine meaning for two params (wait_seconds as an anti-polling delay, detail=full as an opt-in to artifacts), but says nothing about task_id vs workflow_id or the anyOf constraint requiring one of them, leaving the most important identifier semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description conveys what the tool returns (compact results, token counters, artifact-retained prompts) and the name get_task signals retrieval, so an agent can roughly infer the purpose. However, it never states the core operation plainly (fetch a task's results/status by id) and offers no differentiation from siblings like cancel_task or list_workers.

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?

It gives two concrete usage cues: use wait_seconds up to 45 instead of repeated polling, and request detail=full only when artifacts are actually needed. What is missing is any guidance on when to call this versus siblings (e.g., after submit_task, instead of cancel_task), so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workersC

Compact worker/model availability. include_usage adds measured worker counters (not coordinator/browser totals); optional since ISO timestamp scopes them. Historical success does not guarantee current login/quota. Full paths/config only when detail=full.

NameRequiredDescriptionDefault
sinceNo
detailNo
include_usageNo

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose some non-obvious traits: that usage counters are measured worker counters and exclude coordinator/browser totals, and that historical success does not guarantee current login/quota. However, it omits permissions, cost, and any hint about the response shape beyond the compact/full split.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and front-loads the purpose, but it is written as disconnected fragments and semicolon-joined clauses rather than complete sentences, which costs clarity for no real gain in brevity. Every clause carries information, so nothing is padding, but the structure is cryptic.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, no-annotation, no-output-schema tool, the description covers the output mode split, the usage counter scope, and a freshness caveat, which is more than nothing. It still leaves the meaning of 'since', the definition of a worker, and the full return structure for the agent to guess.

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 0%, so the description must compensate, and it partially does: include_usage is explained (measured worker counters, excludes coordinator/browser totals), detail=full is linked to full paths/config, and 'since ISO timestamp scopes them' gestures at the since parameter. Still, the since semantics are only obliquely implied and the compact enum value is never defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The fragment 'Compact worker/model availability' identifies the resource (workers/models and their availability) but supplies no explicit verb and never says it lists them, so the agent must infer 'list'. It is distinguishable from siblings like submit_task or recommend_route by resource, but the phrasing is telegraphic rather than a clear statement of purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this tool versus alternatives such as recommend_route, nor any prerequisite or exclusion. The only conditional language ('Full paths/config only when detail=full') governs a parameter, not the decision to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_routeB

Suggest a provider using editable task-fit heuristics. The coordinator chooses based on actual capabilities, context, previous outcomes and explicit user requests.

NameRequiredDescriptionDefault
taskNoOptional task text for relevant installed specialist skill hints and video routing
categoryYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It usefully discloses that the output is a suggestion, that the heuristics are editable, and that the coordinator makes the final call based on capabilities and prior outcomes — important advisory semantics. It says nothing about cost, latency, determinism, or whether the recommendation is binding, so coverage is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler, and the core purpose is front-loaded in the first. The second sentence is slightly abstract but does add the decision rationale.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter advisory tool with no annotations and no output schema, the description should clarify what comes back (a single provider? a ranked list?) and whether the result is consumed automatically. It leaves the return contract unstated, which is a meaningful gap even for a low-risk recommendation call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% — 'task' is documented but 'category' is only an enum with no field description. The description adds no parameter-level meaning, no hints on how category interacts with task, and no explanation of the enum values beyond what the schema shows. It does not compensate for the coverage gap.

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 states a specific verb and resource: 'Suggest a provider using editable task-fit heuristics.' An agent can tell this is an advisory routing tool, distinct from the sibling actions (submit_task, get_task, cancel_task). It stops short of explicitly naming how it differs from those siblings, so it is clear rather than sharply differentiated.

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?

It explains the basis of the selection ('actual capabilities, context, previous outcomes and explicit user requests') but never states when to call this instead of submit_task or list_workers. Usage is only implied — presumably before submitting work — leaving the agent to infer the workflow position.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_taskB

Delegate a task or manage a heavy workflow: create_workflow, run_step, checkpoint. See the DeltaRoute heavy-workflows reference. Heavy profiles allow bounded 30-minute attempts. Workflow code requires scoped paths and reviewed dependencies. Optional wait_seconds (up to 45) collects short jobs in one call. Default read-only; code jobs use isolated clean Git worktrees. Returns compact status/result and full artifact path, never echoes the prompt. Automatic bounded provider fallback; no paid API fallback.

NameRequiredDescriptionDefault
cwdNoAbsolute project directory
modeNo
taskNo
actionNo
detailNo
contextNo
profileNo
step_idNo
categoryNo
fallbackNoDefault true: automatically try eligible subscription providers, then hand back to the current coordinator. False retries only the preferred provider.
providerNo
workflowNoPersistent contract: objective, constraints[], non_goals[], steps[{id,task,category,mode,depends_on[],allowed_paths[],acceptance[],inputs[],profile,media_options}], max_jobs, max_runs_per_step
checkpointNoCoordinator review: accepted boolean, note, checks[{criterion,passed,evidence}], integrated_head for accepted code
limit_errorNoObserved native hard quota event; never guessed
workflow_idNo
wait_secondsNo
media_optionsNo
research_scopeNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: default read-only, isolated clean Git worktrees for code jobs, bounded 30-minute attempts for heavy profiles, automatic bounded provider fallback with no paid API fallback, and it explicitly says the prompt is never echoed. Missing only permission/auth and mutation side-effects for create_workflow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is a dense semicolon-joined run-on mixing purpose, safety, fallback, and return behavior. It is terse yet unstructured, and the external doc reference ('See the DeltaRoute heavy-workflows reference') adds noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-param tool with nested objects, an anyOf of three call shapes, and no output schema, the description is only partially complete. It helpfully states the return shape ('compact status/result and full artifact path'), but does not explain the anyOf call patterns, the limit_error reporting flow, or permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 28% across 18 params, so the description must compensate but largely does not. It mostly repeats enum values already in the schema (action names, mode) and the wait_seconds bound, adding only 'default read-only' for mode; key params like category, provider, detail, context, research_scope, and media_options get no elaboration.

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 states specific verbs and resources ('Delegate a task or manage a heavy workflow') and enumerates the workflow actions (create_workflow, run_step, checkpoint). It is clearly distinguishable from siblings like get_task and cancel_task, though it never names them explicitly to route the agent.

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?

It implies usage contexts (heavy workflows, short jobs via wait_seconds, code jobs) and points to a 'DeltaRoute heavy-workflows reference,' but gives no explicit when-to-use vs when-not guidance relative to recommend_route or get_task. Usage must be inferred.

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 updatesv1.5.0
    • First observedcancel_task
    • First observedget_task
    • First observedlist_workers
    • First observedrecommend_route
    • First observedsubmit_task

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation4/5

list_workers and recommend_route are related but distinguishable (availability vs routing advice). submit_task, get_task, and cancel_task form a clear task lifecycle, though submit_task also bundles heavy-workflow subcommands, slightly blurring its scope.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: list_workers, recommend_route, submit_task, get_task, cancel_task. The convention is predictable and easy to scan.

Tool Count5/5

Five tools cleanly cover worker listing, route recommendation, and task submit/get/cancel. The count is well-scoped with no obvious bloat or missing essential standalone operations.

Completeness4/5

The core delegation lifecycle is covered: discover workers, get a route recommendation, submit, retrieve, and cancel tasks. Minor gaps include no list_tasks/status browsing and heavy workflow operations folded into submit_task rather than exposed separately.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers