tx_preflight
$0.20 per successful call, prepaid. Unsigned EVM eth_call and gas estimate at a measured block; flags approvals and delegated target code. Never signs or broadcasts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
$0.20 per successful call, prepaid. Unsigned EVM eth_call and gas estimate at a measured block; flags approvals and delegated target code. Never signs or broadcasts.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (destructiveHint=false, openWorldHint=true, idempotentHint=false), yet the description adds genuinely new behavior: prepaid pricing at $0.20 per successful call, simulation 'at a measured block' (pinned-block semantics), and an explicit no-signing/no-broadcasting guarantee. The billing model and the block-pinning detail are exactly the kind of context annotations 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?
Three short clauses, no filler: price/cost model first, then what the call does, then the safety boundary. Every sentence carries distinct information and the most decision-relevant fact (cost) is front-loaded.
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 no output schema, the description must describe what comes back; it only partially does ('flags approvals and delegated target code', implies a gas estimate). A caller cannot tell the response shape, whether flags are structured or textual, or how block staleness is reported. Combined with zero parameter coverage, this leaves real gaps for a paid 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% and the single 'request' parameter is a nested object with five fields (data, chain, sender, target, value_wei). The description adds no meaning for any of them — no note on chain enum values, default data '0x', value_wei units, or sender/target semantics. 'At a measured block' is behavioral context, not parameter semantics, and notably there is no block parameter at all.
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+resource: an unsigned EVM eth_call and gas estimate performed as a preflight, plus approval and delegated-code flagging. That is far more specific than the name 'tx_preflight' alone. It does not, however, position itself against any of the sibling tools (budget guard, allowance risk check, dependency report), which an agent must disambiguate on its own.
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?
'Preflight' plus 'Never signs or broadcasts' implies the use case (inspect a transaction before signing/broadcasting), and 'flags approvals and delegated target code' hints at what it is useful for. But there is no explicit when-to-use, no when-not-to-use, and no pointer to a sibling such as allowance_risk_check for related checks. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.