Skip to main content
Glama

imd-mcp

Hire the IMD swarm from any AI agent, without wasting IMD.

imd-mcp is an MCP server for Claude Desktop, Claude Code, Cursor, Windsurf or any MCP client. With it, your assistant can commission IMD's agent swarm: websites, sourced reports, code audits, images, smart-contract projects and oracle questions.

A built-in saver stands between the agent and your wallet:

The saver…

Why it matters

searches what already exists before anything is bought

over 1,300 shipped results are public, and reusing one is free

requires IMD's free check for the exact body, proven by a signed checkToken

IMD keeps the payment of a body it refuses, so an unchecked order can be money lost

blocks duplicates of something you already bought

asking twice should not mean paying twice

holds hard caps: IMD per order and IMD per day

an agent in a loop cannot drain the wallet

waits for confirm: true after the user has seen the plan and the price

no silent spending

keeps every order and its read token on disk

nothing paid is ever lost

explains IMD errors in plain words

so problems get fixed rather than retried blindly

Install

# 1. Optional, only for ordering: a fresh wallet just for IMD orders
npx -y github:RobertKodes/imd-mcp wallet

# 2. Print the config for your client: claude | claude-code | cursor | windsurf
npx -y github:RobertKodes/imd-mcp setup claude

# 3. Check the network, the wallet and the limits
npx -y github:RobertKodes/imd-mcp doctor

Paste the printed block into your client's MCP config and restart the client. Without a wallet, search, drafts, checks and tracking all still work for free.

To order, fund the wallet with a few IMD (0.5 IMD per order on Ethereum mainnet, 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7) and a little ETH. Then run imd_setup_wallet once for the Permit2 approval.

Related MCP server: meshledger-mcp-server

Tools

Tool

Cost

What it does

imd_status

free

Network health, price, wallet balances and Permit2, today's spend against the caps, the saver's totals

imd_find_existing

free

Search shipped work: sites, research, audits, code, tokens, contracts, media

imd_draft

free

A valid body for a website, tool, report, audit (it resolves the repo commit itself), image or contracts, with IMD's check, plan, cost, similar work and a checkToken

imd_draft_oracle

free

A typed oracle question (panel, quorum, sources, definitions), with IMD's wording screen

imd_check

free

IMD's check on any body you wrote yourself

imd_order

spends IMD

Quote, pay with x402 + Permit2, sign the quote approval, submit. Guarded by the saver

imd_track

free

Order → payment → admission → job steps → delivered site, repo and files

imd_orders

free

History, spend, and what the saver prevented

imd_setup_wallet

ETH gas

The one-time Permit2 approval

imd_explain

free

What an IMD error code means and what to do

There is also a prompt, hire-the-swarm, which walks an agent through find → draft → confirm → order → track.

Settings (environment)

Variable

Default

IMD_KEY_FILE / IMD_PRIVATE_KEY

—

The order wallet. Prefer the key file imd-mcp wallet creates

IMD_DAILY_CAP

2

Most IMD spent per UTC day

IMD_MAX_PER_ORDER

0.5

Most IMD for one order. A schedule costs 0.5 × runs

IMD_REQUIRE_CONFIRM

1

0 lets an agent order without an explicit confirm

IMD_DEDUPE_HOURS

168

How long an identical body counts as a duplicate

IMD_READ_ONLY

0

1 disables ordering entirely

IMD_MCP_HOME

~/.imd-mcp

Orders, request token, saver state, wallet key

IMD_API, ETH_RPC

api.imd.fun, publicnode

Endpoints

Develop

pnpm install
pnpm test            # saver, drafts, and an in-memory MCP client/server round trip
pnpm build
node scripts/smoke.mjs   # live: stdio server against api.imd.fun, free tools only

The paid path follows IMD's documented flow and the @x402/core / @x402/evm 2.28.0 versions the plane pins. The free tools are verified live. The first paid order deserves a small wallet.

MIT. Not affiliated with IMD.

Available Tools

10 tools
imd_checkFree check of any IMD bodyA

Runs IMD's free check on a body you wrote yourself: blockers, suggestions, the plan, the cost and similar existing work. Returns the checkToken imd_order requires. Free; holds nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesThe action's body, as documented at https://imd.fun/docs
actionYes

TDQS

A3.9/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 decently: it discloses the return artifacts (blockers, suggestions, plan, cost, similar work), that it is free, and that it "holds nothing" (no persisted state). It omits auth requirements and rate limits, which would round out a stateless free-check tool, but the core behavioral profile is stated.

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 the core action front-loaded, then the high-value downstream detail (checkToken for imd_order), then a compact "Free; holds nothing." Every clause earns its place.

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?

No output schema or annotations exist, so the description must do more work. It covers the return content and token well, but with seven undocumented action enum values and an input body deferred to an external URL, an agent still lacks enough to confidently pick the right action and shape the body.

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 50%. The description clarifies that input is "a body you wrote yourself" (the action's payload), which adds some meaning beyond the external-doc pointer. However it says nothing about the action enum's seven values, so the caller must infer which action to select from the schema alone.

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: it runs IMD's free check on a body the caller supplies, and lists what it produces (blockers, suggestions, plan, cost, similar existing work). It also ties itself to a sibling by noting it returns the checkToken imd_order requires, which helps disambiguate. It does not explicitly name imd_draft as the upstream step, but the purpose is unmistakable.

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?

"A body you wrote yourself" implies the prerequisite (draft first) and "Returns the checkToken imd_order requires" signals the downstream consumer, giving clear context for when this tool fits between drafting and ordering. There is no explicit when-not guidance, but the positioning in the workflow is inferable.

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

imd_draftDraft a valid IMD orderA

Builds a correct body for a website, tool, report, audit, image or contracts job, runs IMD's free check on it, and returns the body, the plan, the cost, similar existing work and a checkToken for imd_order. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
briefYesWhat to build or answer, who it is for, what done looks like
repoUrlNoPublic GitHub repo, for audits
siteLabelNoHost under <label>.sites.imd.fun
minCitationsNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It helpfully states the return contract (body, plan, cost, similar existing work, checkToken) and that the operation is free, which is real behavioral context. It omits prerequisites (e.g. wallet setup), whether anything is persisted, and what happens when the embedded check fails.

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?

A single dense sentence front-loads the core action ('builds a correct body...') before the return list and the 'Free' qualifier. It is efficient with no filler, though the packing of six job types plus five return values makes it slightly run-on.

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 five-parameter tool with no output schema and no annotations, the description does the important work of enumerating the return payload and pointing to the follow-up order tool. Gaps remain around preconditions and failure behavior, but the essential calling information is present.

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?

Schema coverage is 60%; the required kind parameter has an enum but no schema description, and the description compensates by spelling out the six job kinds ('website, tool, report, audit, image or contracts'). It adds meaning over the raw enum, though it says nothing about siteLabel or minCitations, which the schema partially covers.

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 specific verb and resource: it 'builds a correct body' for six enumerated job kinds and runs a check on it. It also distinguishes the tool from imd_order by noting the returned checkToken is 'for imd_order'. It stops short of explicitly naming the siblings it overlaps with (imd_check, imd_find_existing), which its 'runs IMD's free check' and 'similar existing work' phrases shadow.

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

Usage Guidelines3/5

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

Usage is implied through the workflow: draft here, then use the checkToken with imd_order, and 'free' signals it is the low-commitment precursor step. There is no explicit when-to-use/when-not statement, and the overlapping imd_check and imd_find_existing siblings are never named as alternatives, leaving the agent to infer the routing.

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

imd_draft_oracleDraft an oracle questionC

Builds a typed question for an IMD oracle panel (independent agents, quorum, EIP-712 attestation), runs the free check including the wording screen, and returns the body and a checkToken. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo
quorumNo
chainIdNo
sourcesNoURL prefixes the evidence must come from
evidenceYeschain: reproduced from chain data; panel: off-chain sources, panel consensus
questionYes
panelSizeNo
answerTypeYes
definitionsNoPin the metric, time range and sources

TDQS

C2.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses that a free check (including a wording screen) runs and that a checkToken is returned, which signals a validation gate. It omits whether a wallet/setup is required, rate limits, and what happens on a failed wording screen, so the behavioral picture is incomplete.

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?

A single dense sentence that front-loads the core action and ends with the cost signal ('Free'). No filler or repetition. It is slightly overloaded by the parenthetical jargon (EIP-712 attestation), but nothing is wasted.

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

Completeness2/5

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

For a 9-parameter, nested-object tool with no annotations and no output schema, the description should explain more of the request shape and the lifecycle (what the checkToken is for, how this feeds imd_order). It mentions the return payload but leaves most parameter semantics and the follow-up path to inference.

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?

Nine parameters with only ~33% schema description coverage, so the description must compensate, and it largely does not. It hints at the answer type ('typed question') and panel structure ('dependent agents, quorum') but never explains hours, chainId, sources, panelSize, or definitions semantics; the schema only documents three of them.

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 specific actions (builds a typed question, runs the free check, returns body and checkToken) against a named resource (IMD oracle panel). Clear enough that an agent knows this drafts and pre-validates a question. However, it does not differentiate itself from siblings like imd_draft and imd_check, which appear to overlap with parts of this workflow.

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 explicit when-to-use guidance, no statement of prerequisites or alternatives. The phrase 'runs the free check including the wording screen' implies this is a pre-submission step, but the sibling imd_check presumably does something similar and the description never tells the agent which to pick. 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.

imd_explainExplain an IMD error codeC

Turns an IMD error code into what happened and what to do. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It reveals that the output is explanatory (what happened + what to do) and that the operation is free, which is marginally useful, but omits whether it requires auth, whether it's read-only, and what the return format looks like.

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 short, front-loaded sentences with no waste. The purpose leads and the cost note is brief.

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

Completeness2/5

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

For a simple explanatory tool, the description is minimal. With no annotations or output schema, the agent still lacks clarity on whether the tool is safe to call, what the response contains, and how it differs from siblings like imd_check.

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?

Only one parameter ('code') with 0% schema description coverage. The description implicitly defines the input as an IMD error code but provides no format or syntax details beyond that. Baseline with 0 params would be 4, but here the single parameter is undocumented.

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+resource: turns an IMD error code into an explanation ('what happened and what to do'). Clear and specific, though it does not explicitly differentiate itself from imd_check or imd_status, which also relate to IMD state.

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?

No guidance on when to use this tool versus alternatives like imd_check. The 'Free' note hints at cost, but not usage context or prerequisites.

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

imd_find_existingFind existing IMD work before payingA

Searches everything the swarm already shipped (sites, research, audits, code, tokens, contracts, media). Reusing a public result costs nothing. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoall
limitNo
queryYesWhat you are looking for, in a few words

TDQS

A3.9/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 disclosure burden. It usefully states the cost model ('Reusing a public result costs nothing. Free.') and implies read-only search scope, but says nothing about authentication, rate limits, result size/pagination, or exactly what a hit contains. This is meaningful but incomplete behavioral context for an unannotated 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?

Two short sentences, front-loaded with the core action and scope, followed by the cost benefit. No filler, no repetition beyond the useful 'Free' emphasis, and every clause earns its place.

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 simple three-parameter search tool with no annotations and no output schema, the description covers purpose, scope, and cost, but omits result shape, pagination behavior via 'limit', and any auth/permission context. It is minimally adequate but leaves real gaps for correct invocation.

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 only 33%, so the description must compensate. It does enumerate the categories matching the 'type' enum (sites, research, audits, code, tokens, contracts, media), adding meaning to that parameter, but it says nothing about the 'limit' parameter (default 8, max 25) or the 'query' syntax beyond what the schema already documents. Partial compensation warrants a 3.

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?

States a specific verb ('Searches') and resource ('everything the swarm already shipped'), then enumerates the searchable domains (sites, research, audits, code, tokens, contracts, media). The title's 'before paying' plus the description's 'reusing a public result costs nothing' implicitly contrasts this with the paid order sibling tools, so an agent can distinguish it without opening the schema.

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 gives clear context for when to use this tool: find already-shipped work before paying, and reuse is free. However, it does not name any alternative tool explicitly (e.g., imd_order) or state when not to use it, so it falls short of the explicit alternatives/exclusions required for a 5.

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

imd_orderPay for and open IMD workA

Pays from the configured wallet (x402 + Permit2 + quote approval) and opens the work. The saver refuses it without a passing checkToken for this exact body, for a duplicate of something you already bought, over the per-order or daily caps, or without confirm: true. SPENDS IMD.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
titleNoYour own label for the order history
actionYes
confirmNotrue only after the user agreed to the cost
checkTokenYesFrom imd_check / imd_draft for this exact body
allowDuplicateNo

TDQS

A4/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: it discloses the payment path (x402 + Permit2 + quote approval), that it spends IMD, the required authorization token, and the four refusal conditions. It omits idempotency/single-use token behavior and what happens on partial failure.

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

Conciseness5/5

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

Three tightly packed sentences, front-loaded with the action and ending on a high-signal warning ('SPENDS IMD.'). Every clause carries behavioral weight with no filler.

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 costly, 6-parameter mutation tool with no annotations and no output schema, the description covers the critical safety story (cost, authorization, failure modes) and need not explain return values. The main remaining gap is the unexplained action enum, which an agent must still resolve from the schema.

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?

At 50% schema coverage the description meaningfully annotates three parameters — checkToken must match the exact body, confirm must be true, and duplicate purchases are refused (implying allowDuplicate) — but it says nothing about the central seven-value action enum, title, or input object, leaving significant semantics to the schema.

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 ('Pays from the configured wallet ... and opens the work') and flags the cost with 'SPENDS IMD', which cleanly separates it from read/prep siblings like imd_check and imd_draft. The reference to checkToken 'from imd_check / imd_draft' reinforces the distinction, though it never names an explicit alternative tool.

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?

Provides clear preconditions and refusal conditions (needs a passing checkToken for the exact body, requires confirm: true, refuses duplicates and cap overruns), which effectively tells the agent when the call will and won't succeed. It stops short of explicitly sequencing itself against siblings such as imd_check or imd_find_existing.

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

imd_ordersOrder history and savingsC

Everything bought through this install: orders, states, IMD spent today and in total, and what the saver prevented. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden. It does add one genuinely useful trait, 'Free', and implies the operation is a read of existing history. But it says nothing about pagination, ordering, authentication, or whether the totals are cumulative across installs, so most behavioral context is missing.

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?

A single compact sentence plus a one-word 'Free.' fragment; nothing is padded. It is dense with domain jargon (IMD, saver) but front-loads the scope ('Everything bought through this install') effectively.

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 one-parameter read tool with no output schema and no annotations, the description does at least sketch the return contents, partially compensating for the absent output schema. It still omits limit/pagination behavior and any differentiation from its singular sibling, leaving meaningful gaps.

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 parameter (limit) has 0% schema description coverage and is not mentioned anywhere in the description. The schema's default of 30 and bounds of 1-200 give structural hints, but the description adds no meaning about what limit controls or how results are paged.

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 the resource (orders bought through this install) and enumerates what it returns: orders, states, IMD spent, and saver-prevented amounts. It reads clearly as a history/listing tool. It does not, however, distinguish itself from the singular sibling imd_order or from imd_find_existing, so an agent must infer the difference.

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 explicit when-to-use guidance, no when-not-to-use, and no mention of alternatives. The ambiguity with the closely named sibling imd_order (singular) is left entirely unresolved, which is exactly where routing guidance was needed most.

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

imd_setup_walletApprove Permit2 for IMD (once)A

IMD payments go through Permit2. This sends the one-time ERC-20 approval from the configured wallet (costs ETH gas). Requires confirm: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo

TDQS

A4.4/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 well: it discloses that this is an on-chain, state-changing transaction, that it costs ETH gas, and that it is a one-time operation gated behind confirm: true. It omits failure/revert behavior and what happens on a second invocation, but the cost and irreversibility signals are the key ones for an agent.

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

Conciseness5/5

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

Three short sentences, each earning its place: context (Permit2 routing), the action plus its cost, then the hard invocation requirement. The critical prerequisite is front-loaded in the final, unmissable position.

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 one-parameter mutation tool with no annotations and no output schema, the description covers what the action does, its gas cost, its one-time nature, and the confirm gate. It stops short of describing error/revert outcomes or the prerequisite that a wallet must already be configured, which the phrase "from the configured wallet" only implies.

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?

Schema coverage is 0% – the single confirm parameter has only a boolean type and a default of false. The description compensates directly by stating "Requires confirm: true", which explains both the meaning of the flag and the value needed to actually execute.

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?

States a specific verb and resource: it sends the one-time ERC-20 approval from the configured wallet via Permit2. This is clearly distinguishable from the surrounding draft/order/track/status tools without opening any schema.

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 the condition that selects it (IMD payments route through Permit2, so this approval is needed) and the invocation prerequisite (confirm: true). It also signals "one-time", implying the agent should not repeat it. However, it never states what to do if an approval already exists or names a setup alternative.

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

imd_statusIMD status, wallet and limitsA

Network health, the live price per action, this wallet's IMD/ETH balance and Permit2 approval, today's spend against the caps, and what the saver has saved so far. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/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. It discloses that the call is free and that it surfaces balance, Permit2 approval, and spend-vs-cap state, which strongly implies a read-only informational tool, but it never explicitly says it is read-only, nor does it mention auth requirements, rate limits, or side effects.

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?

A single dense sentence with a trailing "Free." and no wasted words. It is efficient, though it opens with a secondary item (network health) rather than front-loading the core "wallet + limits" purpose from the title.

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 no output schema, the description usefully enumerates what the caller gets back, which is exactly what an agent needs from a zero-parameter status call. It falls short only on sibling routing and an explicit read-only assurance.

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 per the baseline a 4 is appropriate; there is nothing for the description to clarify beyond the (empty) schema.

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 enumerates the concrete resources this status tool reports: network health, price per action, wallet IMD/ETH balance, Permit2 approval, spend vs caps, and savings. That is specific enough to distinguish it from most siblings, though it never states a verb and gives no explicit contrast with the adjacent imd_check.

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?

"Free" is a real usage cue implying the tool is safe/cheap to call at any time, but there is no when-to-use framing and no routing to alternatives such as imd_check or imd_orders. Usage is only implied, not stated.

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

imd_trackTrack an order or jobA

Follows an order through payment and admission, then its job step by step, and returns the delivered site, repo and files once done. Accepts an orderId, a jobId or a prefix from imd_orders. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.7/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 real behavior: the staged progression (payment, admission, job), the artifacts returned, and that the call is free. It stops short of stating whether it blocks or polls, what a pending/incomplete order yields, or any permission requirements.

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 sentences, zero waste: the lifecycle and return value come first, the accepted input forms and cost follow. Every clause earns its place.

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 one-parameter tool with no output schema and no annotations, the description covers the operation, the accepted inputs, the returned artifacts and the cost. The remaining gap is operational behavior for an incomplete order or a failure, which an agent might want before invoking.

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?

Schema coverage is 0% — the single 'id' property is an undocumented string with minLength 6 — so the description is doing the work by naming the three acceptable id forms (orderId, jobId, or imd_orders prefix). It does not explain the 6-character minimum or the prefix format, but it adds substantial meaning over the bare schema.

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 (follows an order then its job) and even the outcome it returns, so the agent knows exactly what the tool does. It does not differentiate itself from close siblings like imd_status or imd_check, which is what keeps it out of 5 territory.

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: calling out that the tool is 'Free' nudges the agent toward it over costlier alternatives, and naming 'a prefix from imd_orders' hints at the input source. There is no explicit when-to-use or when-not guidance relative to imd_status, imd_check or imd_orders.

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. 10 tool updatesv0.1.0
    • First observedimd_check
    • First observedimd_draft
    • First observedimd_draft_oracle
    • First observedimd_explain
    • First observedimd_find_existing
    • First observedimd_order
    • First observedimd_orders
    • First observedimd_setup_wallet
    • First observedimd_status
    • First observedimd_track

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation4/5

Each tool has a fairly distinct role (check, draft, order, track, list), and descriptions clarify boundaries. Minor overlap between imd_check and imd_draft (which also runs a check) and the imd_order/imd_orders singular-plural pair could briefly confuse an agent, but context makes the distinction clear.

Naming Consistency5/5

All tools use a uniform imd_ prefix with snake_case verb-style names (imd_check, imd_draft, imd_order, imd_track). The only near-collision is imd_order vs imd_orders, which is a natural singular/plural distinction rather than a convention break.

Tool Count5/5

Ten tools is well within the ideal 3-15 range and each maps to a distinct step: check, draft, draft_oracle, order, track, orders, status, find_existing, setup_wallet, explain. Nothing feels redundant or padded.

Completeness4/5

The surface covers the full flow well: discovery (find_existing, status), preparation (check, draft, draft_oracle), payment (setup_wallet, order), and follow-through (track, orders, explain). Missing explicit cancel/refund or dispute operations, but core lifecycle is covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers