Deputy
Deputy is an MCP server/Claude Code plugin that uses a cheap model to review code, give second opinions, investigate a codebase, delegate coding work, and report savings/status.
review— Runs independent cheap reviewers in parallel on uncommitted changes, a supplied diff, or against a base revision; supports focus, paths, and lenses.consult— Gets diverse second opinions from up to 4 independent angles on a decision, plan, or design question.investigate— Answers codebase-reading questions read-only and returns compact leads withfile:lineevidence.delegate— Hands a well-specified coding task to Deputy, which can read/edit files and run commands, then reports changed files.stats— Shows estimated tokens and money saved for the session, today, last 7 days, and all time, with no network calls.status— Shows Deputy’s mode, model, thinking level, workspace, API-key status, and session spend/savings, with no model-provider network calls.
All findings and opinions are unverified hints from a weaker model and should be checked against the code.
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.
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@deputyInside 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 |
| 27 s | $0.0011 |
| 68 s | $0.0018 |
| 18 s | $0.0004 |
| 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 + | 4/4 | $0.31 ($0.30 + $0.013) | 3.7 min |
Opus + | 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
lowand 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
lowand stop after 180 s. Withhighthinking 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 diffdoes, 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,
highthinking, 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 |
| Independent reviewers hunt for bugs in a risky or large change before Claude calls it done |
| Second opinions from 2–4 angles at once, before Claude commits to a plan |
| Reads lots of code and returns |
| Hands a coding task to the cheap model (off by default; on request, or in savings mode) |
| 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,partnerorsavingsmode, 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
savingsmode. Keep those with Claude.
Quick start
1. Get a DeepInfra API key (DeepInfra hosts DeepSeek's models in the US)
Sign up at deepinfra.com with GitHub, Google or email.
In Dashboard → Billing, add a card and $5–10 of credit, then set a spending limit equal to that amount.
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@deputyClaude 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 testsOr 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 codexSet 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 xaiOther MCP clients (Cline, Windsurf, Claude Desktop)
Deputy is on PyPI as deputy-cc. Add a stdio MCP server
that runs:
uvx deputy-cc servewith DEEPINFRA_API_KEY set in its environment. Check your setup with uvx deputy-cc doctor.
Recommended model: DeepSeek V4.1 Flash, thinking high
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:
reviewandconsultthink atlowby default. In the review benchmark it caught the same planted bugs ashighin less than half the time. SetDEPUTY_LENS_THINKING=highfor 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.
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 toolsconsultARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| lenses | No | ||
| context | No | ||
| my_view | No | ||
| question | Yes | ||
| thinking | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
delegateADestructive
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| context | No | ||
| workdir | No | . | |
| thinking | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
investigateARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| workdir | No | . | |
| question | Yes | ||
| thinking | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
reviewARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | ||
| diff | No | ||
| focus | No | ||
| paths | No | ||
| lenses | No | ||
| thinking | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
statsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
statusARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.2.0- First observed
consult - First observed
delegate - First observed
investigate - First observed
review - First observed
stats - First observed
status
TDQS
Scored across 6 tools
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.
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.
Six tools is well-scoped for a coding-assistant server. Each tool covers a meaningful workflow: review, research, brainstorming, delegation, usage stats, and status.
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
Related MCP Connectors
No-data MCP handoff for local Claude Code to Codex harness moves. $49 lifetime.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Hosted MySQL MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn 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.1102 npm142MIT
- AlicenseNot gradedqualityBmaintenanceMCP 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.2MIT
- FlicenseBqualityDmaintenanceMCP server that gives AI coding agents (Claude Code, Cursor, Cline, etc.) access to multiple AI models through Antigravity CLI and OpenAI Codex CLI, enabling mid-conversation model consultation and code review.8-
- FlicenseNot gradedqualityDmaintenanceMCP 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.-