Skip to main content
Glama

Deputy

Deputize cheap models. Claude stays the sheriff.

Deputy is a Claude Code plugin and MCP server that has a cheap model, DeepSeek V4.1 Flash, review Claude's code for bugs and give second opinions, for under a cent each. Claude keeps writing the code.

GitHub stars CI PyPI License: MIT MCP

A replay of one benchmark case. Deputy's findings, time and cost, the repro and the test run are real.

claude plugin marketplace add alimohammadiamirhossein/deputy
claude plugin install deputy@deputy

Inside Claude Code the same thing is /plugin marketplace add alimohammadiamirhossein/deputy. You need uv and a DeepInfra API key.

What it costs (measured)

Run

Time

Cost

review: two reviewers check a change with a planted off-by-one bug (both caught it)

27 s

$0.0011

consult: second opinions from 2 angles

68 s

$0.0018

investigate: list a project's functions and their tests

18 s

$0.0004

delegate: fix a bug, add 3 tests, run pytest until green

46 s

$0.0006

Measured on a small demo project with thinking high. Reviews and second opinions now think at low by default, which makes them faster and cheaper (see the review benchmark below). On real projects, expect consult and review to stay under $0.01. Every result shows its real tokens and cost.

Related MCP server: codex-fusion-mcp

Benchmark: Opus with and without Deputy

Four small Python tasks with hidden tests Claude never sees (bench/), one run each on Claude Opus 5.5, October 2026. These runs predate the faster reviews: reviewers then thought at high with no time limit, and the prompt asked Claude to review every task.

Config

Hidden tests passed

Mean cost (Claude + Deputy)

Median time

Opus alone

4/4

$0.18

30 s

Opus + /deputy:review

4/4

$0.31 ($0.30 + $0.013)

3.7 min

Opus + /deputy:delegate

4/4

$0.19 ($0.19 + $0.0015)

76 s

What this shows, and what it doesn't:

  • No accuracy gain to measure here. The tasks are too easy: Opus passed every hidden test on its own.

  • Reviews cost Claude more than they cost Deputy. Deputy's share is about a cent, but Claude spends more checking the findings, so a reviewed task cost 68% more and took longer. One review took 24 minutes because a reviewer thought for 73k tokens. Reviewers now think at low and stop after 180 s, and Claude reviews only risky or large changes.

  • The findings still changed the code. In 3 of 4 tasks Claude hardened the code beyond the spec: it fixed a rate limiter that a NaN timestamp would block forever, and added missing tests. It rejected one finding that contradicted the spec.

  • Delegating saved nothing on tasks this small. Claude's own reading and checking cost about as much as writing the code itself.

  • Small sample. One run per config. Full table: bench/results/2026-10-24-opus.

Does review catch bugs, and how often does it cry wolf?

Deputy's review on its own, without Claude, on 6 changes with a planted bug and 8 clean changes. Each planted bug has a clean twin, the same change done right. Five runs each with the default settings (bench/review_cases):

Diffs

Reviews

Flagged

Flagged major or critical

Mean cost

Median time

Slowest

Planted bug

30

30/30 caught

30/30

$0.0016

28 s

59 s

Clean

40

22/40

10/40

$0.0039

80 s

230 s

  • Every planted bug was caught, at major or critical severity, by both reviewers every time.

  • Reviews are quick. Reviewers think at low and stop after 180 s. With high thinking and no cap they caught the same bugs, but the median clean review took 160 s and the slowest 23 minutes.

  • Clean code still draws findings, so Claude has to check each one. Most are minor (36 of 50), but a quarter of clean reviews included a major claim.

  • Many of those findings are fair, such as a test that can't fail, an entry point no test covers, or a cache key wider than the change assumed.

  • The benchmark already fixed one cause of false alarms. In the first run, reviewers read new files labelled "(untracked)" as left out of the change. Deputy now shows them as git diff does, and those findings went from 6 to 0.

  • Agreement is weak evidence on clean code. Both reviewers flagged the same spot on 20% of clean diffs, so a finding isn't real just because two reviewers report it.

  • Every finding on a clean diff is listed in the results: default settings, high thinking, no cap, first run.

What it does

Claude (for example Opus 5.5) stays in charge and writes the code. Deputy adds four tools that run a much cheaper model as a helper inside your project:

Tool

What it does

review

Independent reviewers hunt for bugs in a risky or large change before Claude calls it done

consult

Second opinions from 2–4 angles at once, before Claude commits to a plan

investigate

Reads lots of code and returns file:line leads

delegate

Hands a coding task to the cheap model (off by default; on request, or in savings mode)

stats

Shows roughly how many tokens and dollars Deputy saved: this session, today, this week, all time

Claude treats everything Deputy says as an unverified hint: it checks each finding against the code and keeps only what holds up.

See what you saved

Every result ends with a one-line estimate, for example from a real investigate run:

Savings (rough): this work would cost about $0.0082 on Claude Opus 5.5; Deputy did it for $0.0001. Saved about $0.0074 and 2.0k Claude Opus 5.5 tokens.

Ask Claude for stats, or run deputy stats, for totals. Reviews and second opinions are listed separately as extra checks, so they never inflate the savings. The estimate assumes your lead model would use about as many tokens, so treat it as an order of magnitude. Only numbers are stored, never code or prompts. Set your lead model with DEPUTY_LEAD_MODEL (opus, sonnet, haiku, fable or custom).

When to use Deputy, and when not to

Use it for:

  • Risky or large changes, where a missed bug costs more than a minute of waiting: tricky logic, security, data handling, concurrency, refactors that touch several files.

  • A second opinion before Claude commits to a design, without spending Claude tokens on it.

  • Wide reading in a big codebase, such as "where is this setting read?".

  • Well-specified mechanical work (boilerplate, renames, test scaffolding) in lean, balanced, partner or savings mode, when you want to save Claude tokens on larger jobs. On small tasks it saved nothing in the benchmark.

Skip it for:

  • Routine changes whose tests pass, and trivial edits like typos and one-liners. A review makes you wait and adds little there.

  • Code you may not share with a third party. Deputy sends code to DeepInfra, or to whatever endpoint you set in DEPUTY_BASE_URL (a local model works too).

  • Final answers. Findings come from a weaker model and include false positives, which is why Claude verifies every one.

  • Architecture and security-sensitive decisions in savings mode. Keep those with Claude.

Quick start

1. Get a DeepInfra API key (DeepInfra hosts DeepSeek's models in the US)

  1. Sign up at deepinfra.com with GitHub, Google or email.

  2. In Dashboard → Billing, add a card and $5–10 of credit, then set a spending limit equal to that amount.

  3. In API Keys, create a key (it starts with sk-di-) and copy it. Keep it private.

You don't need a plan, a model purchase or a dedicated GPU. Pay-as-you-go credit is enough.

2. Install uv and the plugin

claude plugin marketplace add alimohammadiamirhossein/deputy
claude plugin install deputy@deputy

Claude Code asks for your DeepInfra key and stores it in your system's secure storage.

3. Restart Claude Code and try it

/deputy:review
/deputy:consult I plan to cache sessions in Redis. What am I missing?
/deputy:investigate how does a request reach the database?
/deputy:ds add input validation to the signup form, with tests

Or just work normally: Claude calls Deputy on its own when it pays off, and skips reviews on routine changes whose tests pass.

Cursor and Codex

One command adds Deputy to the editor's MCP config (with a backup of the old file) and installs the playbook as a Cursor rule or Codex skill:

uvx --from git+https://github.com/alimohammadiamirhossein/deputy deputy setup cursor --project .
uvx --from git+https://github.com/alimohammadiamirhossein/deputy deputy setup codex

Set DEEPINFRA_API_KEY in your environment first, then restart the editor. Add --dry-run to see the changes without writing them. Ready-made files are in integrations/.

Grok instead of DeepSeek (experimental, not tested yet): Grok support follows xAI's documentation but has not been run with a real xAI key. If you try it, please tell us what worked and what didn't, even if it was just a one-word "works". Add --provider xai and set XAI_API_KEY (from console.x.ai) instead. Deputy then uses grok-4.3; set DEPUTY_MODEL to grok-build-0.1 (xAI's coding model) or grok-4.7 (its strongest). Grok costs about 10 times more per token than DeepSeek V4.1 Flash.

uvx --from git+https://github.com/alimohammadiamirhossein/deputy deputy setup cursor --project . --provider xai

Other MCP clients (Cline, Windsurf, Claude Desktop)

Deputy is on PyPI as deputy-cc. Add a stdio MCP server that runs:

uvx deputy-cc serve

with DEEPINFRA_API_KEY set in its environment. Check your setup with uvx deputy-cc doctor.

The default is deepseek-ai/DeepSeek-V4.1-Flash-1017 on DeepInfra with thinking set to high. It's the best price-to-quality option we found for this job:

  • Cheap: $0.098 per 1M input tokens and $0.294 per 1M output tokens (October 2026), cheaper than DeepSeek's own API.

  • Capable: about 1M tokens of context and reliable tool calling.

  • Thinking actually on: DeepInfra leaves its thinking off unless asked. Deputy always asks (high), which we confirmed by measuring the reasoning tokens.

  • Quick reviews: review and consult think at low by default. In the review benchmark it caught the same planted bugs as high in less than half the time. Set DEPUTY_LENS_THINKING=high for deeper, slower reviews.

  • Private: DeepInfra says it doesn't train on your data. Your code isn't sent to DeepSeek's own servers.

Modes

Mode

Who writes the code

Pick it when

accuracy (default)

Claude, always

You want the best result

lean

Claude for small and tricky changes; Deputy reads code and takes larger well-specified work

You want to spend as few Claude tokens as possible with little loss of accuracy

balanced

Claude; Deputy takes boilerplate

You want some savings without risk

partner

Deputy does all low-level work; Claude checks every diff

You want Deputy doing the legwork and pitching ideas, with Claude verifying

savings

Deputy, Claude verifies

You want to save the most tokens

Change it in the plugin settings (/plugin) or with DEPUTY_MODE.

Learn more

  • SKILL.md: the playbook Claude follows (consult → decide → implement → review → check each finding). Also works without the plugin.

  • docs/REFERENCE.md: all settings, costs, safety, terms of service, the research behind the design, troubleshooting and the roadmap.

  • CHANGELOG.md: what changed in each release.

Deputy stays within Anthropic's rules: Claude Code runs unmodified, and Deputy never touches your Claude login. It's an ordinary MCP tool using your own DeepInfra key.

Support the project

If Deputy caught a bug for you, give it a ⭐ and share it with someone who uses Claude Code. Issues and pull requests are welcome; the good first issues are a good place to start.

Star History Chart


MIT © 2026 Amirhossein Alimohammadi · Not affiliated with Anthropic, DeepSeek or DeepInfra.

Keywords: Claude Code plugin, MCP server, Model Context Protocol, AI code review, second opinion, DeepSeek V4.1 Flash, DeepInfra, subagent, Opus, agentic coding, reduce Claude Code cost.

Available Tools

6 tools
consultA
Read-only

Brainstorm with a cheaper model: ideas, risks and alternatives you may have missed. Use it when you are unsure between approaches or stuck, not on every task.

question: what you are deciding, including your current plan if you have one. context: relevant facts, constraints and what you already ruled out. lenses: up to 4 angles, each answered independently in parallel, for example ["simplest approach", "edge cases and failure modes", "performance"]. my_view: your own conclusion, written BEFORE you see Deputy's ideas. It is not sent to Deputy, so its ideas stay independent; it is echoed back so you can compare honestly. project_dir: absolute path of the project, only if Deputy picked the wrong folder.

The answers are UNVERIFIED suggestions from a weaker model. Weigh them below your own analysis, check them against the code, and adopt only what holds up.

NameRequiredDescriptionDefault
lensesNo
contextNo
my_viewNo
questionYes
thinkingNo
project_dirNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Goes well past the annotations: it explains that my_view is deliberately withheld from the remote model so answers stay independent and is echoed back for comparison, that lenses are answered independently in parallel, and that results are UNVERIFIED output from a weaker model to be weighed below your own analysis. This is exactly the behavioral context the readOnly/openWorld hints cannot convey.

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?

Front-loads the purpose and trigger in two short lines, then uses a compact per-parameter list where every line adds distinct information. The closing warning about unverified suggestions is a third short sentence that earns its place by changing how the agent should weigh results.

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?

With an output schema present, the description correctly omits return-value details and instead covers cost model, independence semantics, and result trust level. The one omission is the 'thinking' parameter (high/max), which an agent could not infer from the description alone.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does it: question, context (including what to include and what was already ruled out), lenses with a concrete example and a hard cap of 4, my_view with its unusual non-transmission semantics, and project_dir with a precise conditional ('only if Deputy picked the wrong folder'). Only the 'thinking' enum parameter is undocumented, which is a minor gap against five well-specified 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?

States a specific verb and resource — brainstorm with a cheaper model to surface ideas, risks and alternatives — and adds a scope note ('not on every task') that separates it from exhaustive siblings like review or investigate. It stops short of naming a sibling tool to contrast against, so the differentiation is inferred rather than explicit.

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?

Gives a clear trigger ('when you are unsure between approaches or stuck') and an explicit exclusion ('not on every task'), which most definitions omit. It never points at the sibling tools (review, investigate, delegate) as the alternative for cases outside this trigger, leaving the routing decision partly to inference.

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

delegateA
Destructive

Hand a well-specified coding task to Deputy. It reads and edits files and runs commands in the workspace on its own, then returns a short report with the files it changed. In accuracy mode, use this only when the user explicitly asks for delegation.

task: the goal, scope (files or folders), constraints and acceptance criteria. context: facts Deputy cannot discover itself (decisions made, conventions, error messages). thinking: "high" (default) or "max" for hard tasks. workdir: subfolder of the workspace to treat as the root (default: whole workspace). project_dir: absolute path of the project, only if Deputy picked the wrong folder.

Verify the result yourself before relying on it: review the changed files and run tests.

NameRequiredDescriptionDefault
taskYes
contextNo
workdirNo.
thinkingNo
project_dirNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that Deputy operates autonomously in the workspace, edits files, runs commands, and returns a short report listing changed files. It also adds an important operational warning to verify results and run tests, which is exactly the kind of behavioral context needed for a destructive, open-world delegation tool.

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 front-loaded with the core action and then uses compact parameter notes. Every sentence contributes either selection guidance, parameter semantics, or necessary verification advice.

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

Completeness5/5

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

The tool is a complex, destructive delegation operation, and the description covers autonomy, scope, reporting, verification, and all five parameters. Because an output schema exists, it does not need to explain return structure further.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates fully: it explains task, context, thinking modes, workdir semantics, and the narrow use case for project_dir. This adds meaning well beyond the bare schema titles and defaults.

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 ('Hand a well-specified coding task to Deputy') and explains that Deputy autonomously reads/edits files and runs commands. It implicitly distinguishes this from siblings such as review or consult by emphasizing autonomous coding work, but does not explicitly name or differentiate those alternatives.

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?

It gives a clear usage rule: in accuracy mode, delegate only when the user explicitly asks for delegation. It still leaves the exact boundary versus consult, review, and investigate implicit, so it is strong but not fully explicit about alternatives.

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

investigateA
Read-onlyIdempotent

Ask Deputy a question that needs a lot of reading: where something is handled, how a flow works, what a large log says. Deputy can only list, read and search files. Returns a compact answer with file:line evidence. Treat it as leads: read the cited lines before acting. project_dir: absolute path of the project, only if Deputy picked the wrong folder.

NameRequiredDescriptionDefault
contextNo
workdirNo.
questionYes
thinkingNo
project_dirNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, non-destructive, idempotent, and open-world behavior. The description adds useful operational context beyond that: Deputy can only list, read, and search files, returns compact answers with file:line evidence, and its output should be treated as leads. It does not cover latency, cost, or depth of investigation, but it meaningfully extends the annotation coverage.

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?

The description is compact and front-loaded with the primary use case before adding the evidence caution and project_dir note. Every sentence contributes, though the final project_dir sentence is somewhat awkwardly appended rather than integrated. It is appropriately sized for an invocation guide.

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?

An output schema exists, so return-value detail is not required, and the description does explain the answer format as compact with file:line evidence. However, with five parameters and 0% schema description coverage, the description leaves too much unexplained for reliable invocation. It is adequate for understanding the tool's purpose but incomplete for tuning parameters like context, workdir, and thinking.

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 0% across five parameters, so the description must carry the burden of explaining them. It only explains project_dir as an absolute path to use if Deputy picked the wrong folder; context, workdir, question, and thinking are left undocumented. The most important parameter, question, is implied by the overall purpose but not given semantic guidance.

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 use case: asking Deputy a question that requires extensive reading across files, with examples like locating handling logic, understanding a flow, or interpreting a large log. It clearly states what the tool returns, compact answers with file:line evidence. It does not explicitly differentiate itself from siblings such as consult or review, so it falls 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 Guidelines4/5

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

The description provides clear when-to-use guidance: questions that need a lot of reading, where something is handled, how a flow works, or what a large log says. It also warns that the answer should be treated as leads and cited lines should be read before acting. It does not name alternatives or when not to use it, so it is strong but not complete.

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

reviewA
Read-only

Have independent cheap reviewers hunt for defects in a change, one per lens, in parallel. Use it for risky or large changes, not routine ones whose tests pass. By default it reviews your uncommitted changes (git diff against HEAD, plus new files).

focus: what the change is supposed to do, so reviewers can spot mismatches. diff: the change to review, if you do not want the automatic git diff. base: compare against this revision instead of HEAD (for example "main"). paths: limit the review to these files or folders. lenses: up to 4 review angles; default ["correctness and logic bugs", "edge cases, error handling and missing tests"]. thinking: leave it out for a fast review (low thinking by default); "high" or "max" think longer, for an especially risky change. project_dir: absolute path of the project, only if Deputy picked the wrong folder.

Findings are UNVERIFIED and may be false positives. Verify each against the code; fix only what you confirm, and tell the user which findings you rejected and why.

NameRequiredDescriptionDefault
baseNo
diffNo
focusNo
pathsNo
lensesNo
thinkingNo
project_dirNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond readOnlyHint the description discloses the default input source (git diff against HEAD plus new files), the default lens set, the default low thinking budget, and that findings are UNVERIFIED and may be false positives with instructions to confirm and report rejections. This is exactly the operational context annotations cannot carry.

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?

Purpose, applicability, defaults, parameters and the verification caveat arrive in that order with no filler. The per-parameter lines are terse and each conveys a default or a decision the caller must make.

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

Completeness5/5

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

With an output schema present, the description need not explain return values, and everything else an agent needs is covered: when to call, what gets reviewed by default, how to override inputs, how to bound cost via lenses/thinking, and how to treat the output. Nothing material is missing for a 7-parameter tool.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: focus, diff, base (with a 'main' example), paths, lenses (with the actual default list), thinking (with default and 'high'/'max' meaning), and project_dir with a narrowing condition. Each of the 7 parameters is explained in terms of intent, not just type.

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 first sentence names the operation ('review'), the mechanism ('independent cheap reviewers... one per lens, in parallel') and the object ('a change'). That mechanism is distinct from siblings like investigate, consult and delegate, so the agent can tell them apart without further reading.

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?

It gives an explicit when ('risky or large changes') and when-not ('not routine ones whose tests pass'), which is stronger than most definitions. It stops short of naming alternative tools, so the agent must infer that routine work should skip this and use nothing or a lighter sibling.

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

statsA
Read-onlyIdempotent

Show roughly how many tokens and how much money Deputy saved: this session, today, the last 7 days and all time. Makes no network calls.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so 'Makes no network calls' largely restates the closed-world hint. The one genuinely additive signal is 'roughly', which tells the agent the figures are approximate and not billing-grade. No further behavioral context (e.g. what 'saved' is measured against) is given.

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 short sentences, with the substantive content (what is reported and over which time windows) front-loaded. The trailing 'Makes no network calls' is the weakest clause since annotations already convey a closed-world read operation, but the overall size is appropriate.

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?

With an output schema present, rich annotations, and no parameters, the description only needs to state what the report covers — which it does, including the time buckets and the approximation caveat. The remaining gap is the lack of differentiation from the 'status' sibling.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics burden; the schema is empty and nothing needs compensating. Baseline 4 applies.

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 names a concrete verb ('Show') and a concrete resource (token and money savings attributed to Deputy), plus the scopes reported (session, today, 7 days, all time). It does not, however, distinguish itself from the sibling 'status', which an agent could reasonably assume overlaps with a stats/savings report.

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 only implied: an agent infers it should call this when it wants a savings summary. There is no explicit when-to-use/when-not statement and no reference to the alternatives (status, review, investigate), so the routing decision is left to the reader.

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

statusA
Read-onlyIdempotent

Show Deputy's mode, model, thinking level, workspace, whether a key is set, and what this session has spent and saved. Makes no network calls to the model provider.

NameRequiredDescriptionDefault
project_dirNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorldHint=false; the description reinforces the last one with the concrete promise of no model-provider network calls, which is meaningful cost/latency context rather than repetition. It also characterizes the payload (session spend and savings), which is behavioral detail not present in the annotations.

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 sentences, no filler, with the capability enumeration front-loaded and the network-call caveat placed correctly as a secondary qualification. The comma-separated list is dense but each item is load-bearing, so nothing could be cut without losing information.

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?

Return values need not be spelled out since an output schema exists, and the safety profile is fully covered by annotations. The description covers what is inspected and the no-network guarantee. The one real hole is the unexplained `project_dir` argument, which leaves a caller guessing on an otherwise complete definition.

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?

The single `project_dir` parameter has 0% schema description coverage and a bare empty-string default, so the description is the only place its meaning could be conveyed — yet it is never mentioned. The agent cannot tell whether project_dir scopes the workspace reading, affects spend accounting, or is optional in practice.

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?

A specific verb ('Show') tied to an enumerated resource set: mode, model, thinking level, workspace, key presence, and session spend/savings. An agent can tell exactly what comes back. It stops short of 5 because it never distinguishes itself from the sibling `stats`, which plausibly overlaps on the spend/savings portion.

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 only implied — an agent infers this is the cheap diagnostic/configuration check, aided by 'Makes no network calls to the model provider' which signals it is safe and low-cost to call. There is no explicit 'use this when X, use stats/consult when Y', and no stated prerequisite or trigger condition.

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. 6 tool updatesv0.2.0
    • First observedconsult
    • First observeddelegate
    • First observedinvestigate
    • First observedreview
    • First observedstats
    • First observedstatus

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

The core tools have clearly distinct intents: review hunts defects, investigate answers read-heavy questions, consult brainstorms, and delegate edits files and runs commands. stats and status are also distinct info tools. Any potential overlap between investigate and consult is resolved by the descriptions.

Naming Consistency4/5

All tool names are lowercase single words, which is predictable and readable. The only minor inconsistency is that review/investigate/consult/delegate are action verbs while stats/status are noun-like information commands.

Tool Count5/5

Six tools is well-scoped for a coding-assistant server. Each tool covers a meaningful workflow: review, research, brainstorming, delegation, usage stats, and status.

Completeness4/5

The surface covers the main lifecycle of review, investigation, consultation, delegation, and observability. Minor gaps exist around session control or configuration, such as canceling a delegation or changing Deputy settings, but these are not severe.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that lets Claude Code consult stronger AI models (o3, Gemini 2.5 Pro, DeepSeek Reasoner) when you need deeper analysis on complex problems.
    1
    102 npm
    142
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server enabling Claude to consult Codex (GPT-5.x) mid-task for second opinions, plan/diff review, brainstorming, and codebase exploration via structured debates and permission-controlled interactions.
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that lets Claude Code offload simple tasks like code explanation, writing tests, and adding comments to a local Ollama model, saving Claude API tokens.
    -