1gateway
Server Details
Pay-per-call tools for agents via x402 (USDC on Base): Korean data, doc-to-Markdown, web utilities.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 83 tools
Most tools are domain-prefixed and clearly scoped (base_*, sol_*, kr_*, web_*, x402_*), and descriptions do heavy lifting with concrete 'use when' triggers. However multiple clusters genuinely overlap: fx_rates vs fx_convert both convert amounts, web_read vs web_read_brief vs web_search_read vs convert_to_markdown all turn pages into text, and kr_company_profile/report/resolve/supplier_check/kyb_check blur company vetting. The near-duplicate faucet pairs (sepolia_eth / sepolia_eth_1) add further selection friction.
Names are uniformly snake_case with predictable domain prefixes (base_, sol_, kr_, hl_, web_, fx_, time_, satellite_, sanctions_, x402_) and clear verb/resource shapes like list-style (web_read_batch, onchain_prices_batch). Minor deviations exist — the '_1' amount suffix on faucet tools and a few prefix-less names (token_report, tx_explain, docs_extract) — but the pattern remains readable and predictable.
83 tools is far beyond a usable single-agent surface and forces the model to choose among dozens of near-adjacent endpoints (seven web-reading tools, three FX tools, five Korean company tools). The gateway's multi-service nature explains the breadth, but the count still harms selection accuracy and discoverability even though each endpoint maps to a real API route.
Coverage is unusually broad and each domain has a coherent read-path: onchain tx/bal/token/risk, sanctions, company KYB, web read/search/render, time, FX, satellite, and x402 payment verification. Gaps are minor and workaroundable — no Base/Solana swap execution or transfers beyond testnet faucets, and no Solana gas oracle — but nothing creates obvious dead ends for a data/verification-oriented agent.
Available Tools
83 toolsbase_gasBase gas and fee estimate: base fee, priority tiers, cost per action in ETH and USDAInspect
Use when an agent must price or time a Base transaction. Input: none. Output: JSON current and next base fee, priority fee tiers (slow/standard/fast from the last 20 blocks), suggested maxFeePerGas, block fullness, and typical cost of an ETH transfer, ERC-20 transfer/approve, DEX swap, NFT mint and contract deploy (L2 fee + L1 data fee) in ETH and USD. Example: /v1/onchain/base/gas Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses rich output details (current/next base fee, priority tiers, cost per action in ETH and USD), the data source for tiers ('last 20 blocks'), and the access cost ('$0.002 USDC via x402'). It does not explicitly state read-only safety or rate limits, though these are strongly implied by 'Input: none' and the estimation nature.
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 usage condition, then input, output, and a concrete example. Every sentence adds necessary information; the output list is dense but justified because no output schema is provided.
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?
Given the absence of an output schema and annotations, the description fully explains return values, input expectations, data freshness, and pricing. An agent has everything needed to call and interpret the 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?
The tool takes zero parameters, so the baseline is 4. The description confirms 'Input: none', which is sufficient given the empty input schema.
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: 'price or time a Base transaction', and then enumerates the exact output fields (base fee, priority tiers, cost per action). It is clearly distinct from all sibling tools, none of which perform gas/fee estimation.
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 usage condition: 'Use when an agent must price or time a Base transaction.' No alternatives are needed because no sibling tool covers this purpose, but the description lacks explicit when-not guidance (e.g., for non-Base chains).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_sepolia_ethTop up Base Sepolia test ETH from an agent or CI job: 0.1 ETH per callAInspect
Use when an agent, x402 test or CI job needs Base Sepolia gas now: one x402 call, no faucet login or mainnet history. Input: to (recipient address); sends 0.1 ETH (1 ETH: /v1/testnet/base-sepolia-eth/1). Output: JSON txHash (confirmed before settling), explorerUrl, amountEth, from, to. Daily limits (UTC): 5 ETH per address (both sizes), 20 overall; checked before payment. Test ETH has no monetary value. Example: ?to=0x000000000000000000000000000000000000dEaD Price: $0.05 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient address (EIP-55 checksum if mixed case). Bad input, caps reached or out of stock → 4xx/503 before payment (not charged) |
TDQS
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: it discloses that the call is paid ($0.05 USDC on Base or Solana via x402), that limits are checked before payment, that failures (4xx/503) are not charged, that the tx is confirmed before settling, and that daily caps are 5 ETH/address and 20 overall. That is unusually complete disclosure of cost, failure, and rate-limit behavior.
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-loaded with "Use when..." and compact at roughly four sentences. It is dense — price, limits, output fields, and example are all packed in — but nearly every clause carries decision-relevant information, so it escapes being verbose.
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?
Despite having no output schema, it enumerates the return fields (txHash, explorerUrl, amountEth, from, to) and notes confirmation-before-settlement. Combined with the disclosed pricing, caps, and failure semantics, an agent has everything needed to invoke and interpret the result.
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 coverage is 100%, so the baseline is 3; the description adds value by restating the recipient semantics and giving a concrete query example (?to=0x...dEaD), which conveys the checksum-style formatting and the call shape beyond the schema text.
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 (sends 0.1 ETH of Base Sepolia test ETH) plus the primary use case (agent, x402 test, CI job needing gas). It also distinguishes itself from the 1 ETH sibling by naming the alternate path /v1/testnet/base-sepolia-eth/1, so an agent can pick the right one without opening a schema.
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?
"Use when an agent, x402 test or CI job needs Base Sepolia gas now" gives a clear triggering condition, and "no faucet login or mainnet history" positions it against the obvious alternative. It doesn't explicitly say when NOT to use it (e.g., versus sepolia_eth on a different chain), which keeps it just under a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_sepolia_eth_1Top up 1 Base Sepolia test ETH from an agent or CI job (bulk)AInspect
Use when contract deploys, x402 tests or CI jobs need more Base Sepolia gas than a faucet gives: one x402 call, no faucet login or mainnet history. Input: to (recipient address); sends 1 Base Sepolia ETH. Output: JSON txHash (confirmed before settling), explorerUrl, amountEth, from, to. Daily limits (UTC): 5 ETH per address (both sizes), 20 overall; checked before payment. Test ETH has no monetary value. Example: ?to=0x000000000000000000000000000000000000dEaD Price: $0.50 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient address (EIP-55 checksum if mixed case). Bad input, caps reached or out of stock → 4xx/503 before payment (not charged) |
TDQS
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: it discloses the x402 payment model and price ($0.50 USDC on Base or Solana), that the tx is confirmed before settling, the daily limits (5 ETH per address, 20 overall, UTC) checked before payment, and that test ETH has no monetary value. The schema adds that failed preconditions return 4xx/503 without charging. That is unusually complete for a payment-bearing mutation 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?
Dense and front-loaded — the usage trigger leads, followed by input, output, limits, and price in a logical order with zero filler sentences. It is a run-on chain of clauses rather than cleanly structured prose, and the parenthetical '(bulk)' in the title is never explained in the body.
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 correctly enumerates the return payload (txHash, explorerUrl, amountEth, from, to) and covers cost, limits, and settlement behavior. What remains unaddressed is what happens if payment succeeds but delivery later fails, and whether repeated calls are idempotent — a meaningful gap for a paid tool, but not one that blocks correct invocation.
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 coverage is 100%, so the baseline is 3; the description adds value by framing the single parameter as 'Input: to (recipient address)' and supplying a concrete example (?to=0x...dEaD). It does not restate the EIP-55 checksum requirement or the uncharged-failure behavior, but those are already in the schema.
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 action (sends 1 Base Sepolia test ETH to a recipient) and the exact denomination, which distinguishes it from the generic sibling names base_sepolia_eth / sepolia_eth. It hints at sizing ('both sizes', 'bulk') but never explicitly names the sibling that covers a different amount, so differentiation is inferential rather than stated.
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?
Opens with a concrete trigger list (contract deploys, x402 tests, CI jobs needing more gas than a faucet gives) and contrasts with the faucet alternative ('no faucet login or mainnet history'). It gives clear when-to-use context but stops short of naming which sibling tool to pick when 1 ETH is too little or too much.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_token_flowsBase token flows: top net buyers and sellers, whale transfers, last 60 minAInspect
Use when an agent must see who is accumulating or dumping a Base ERC-20 right now. Input: token address, minutes (1-60, default 60), limit (1-25). Output: JSON top net buyers and sellers (net, received, sent, contract or EOA), largest transfers with tx hash, volume, mints/burns, active wallets, covered window. Busy tokens get a shorter window. Example: ?address=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed Price: $0.004 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per list (default 10) | |
| address | Yes | ERC-20 token contract on Base mainnet. EOA → 400, non-ERC-20 → 422 (not charged) | |
| minutes | No | Look-back window in minutes (default 60). Very busy tokens are cut short; see window.complete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still discloses the pricing/payment requirement ($0.004 USDC via x402), the truncation behavior ('busy tokens get a shorter window'), and the output contents. Error semantics (400/422) live in the schema rather than the description, which is a minor gap for a paid call.
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-loaded with the use case, then input/output contract, then an example — every block earns its place. The trailing price/example line is slightly noisy but not wasteful.
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?
No output schema exists, yet the description enumerates the return fields well enough to set expectations. The only soft spots are the payment mechanics and truncation details, which are stated but thinly explained.
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 coverage is 100%, so baseline is 3, but the description adds range constraints absent from the schema (minutes 1-60, limit 1-25) and repeats the default window. It omits the limit default of 10 that the schema states, a small inconsistency.
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?
Names a concrete verb and resource: seeing who is accumulating or dumping a Base ERC-20, with the outputs (net buyers/sellers, whale transfers) spelled out. It is clearly distinct from base_token_info/risk in spirit, but never names a sibling to route the agent explicitly.
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 opening 'Use when an agent must see who is accumulating or dumping ... right now' gives a clear trigger condition. It stops short of saying when not to use it or which sibling (base_token_risk, base_token_info) handles adjacent questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_token_infoBase ERC-20 token info: name, symbol, decimals, total supply, optional holder balance and allowanceAInspect
Use when an agent needs an ERC-20's basics on Base before quoting, transferring or approving it. Input: address (token contract); optional holder (adds balance and share of supply) and spender (adds allowance, flags unlimited approvals). Output: JSON block+time, name, symbol, decimals, totalSupply raw and decimal, known issuer if curated. Name/symbol are self-reported. EOA or non-ERC-20: 4xx, not charged. Example: ?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| holder | No | Optional address whose token balance and share of total supply to include | |
| address | Yes | ERC-20 token contract on Base mainnet (0x + 40 hex; mixed case must be a valid EIP-55 checksum). EOA → 400, non-ERC-20 contract → 422 (not charged) | |
| spender | No | Optional spender; with holder, adds allowance(holder, spender). Needs holder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It discloses error behavior (4xx for EOA/non-ERC-20, not charged), that name/symbol are self-reported, and includes pricing/payment method. Missing rate limits or caching details, but strong for a read-only 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?
Well-structured and front-loaded: use case, inputs, outputs, errors, example, price. Dense but no wasted sentences; the example and price are useful for invocation.
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?
For a tool with no output schema, the description enumerates output fields and error codes, and specifies pricing. An agent has everything needed to call and interpret it.
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 100%, so baseline 3. The description restates the same parameter roles (holder adds balance/share, spender adds allowance) and adds 'flags unlimited approvals' which is output behavior rather than parameter semantics. Limited added value beyond schema.
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 (get) and resource (ERC-20 basics on Base) and scopes it to before quoting/transferring/approving. It implicitly distinguishes from siblings like base_token_risk and base_token_flows by focusing on static metadata rather than risk or flows.
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?
Provides a clear when-to-use ('before quoting, transferring or approving'), but does not name alternatives or when-not-to-use. Clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_token_riskBase Token Risk: Honeypot & Rug-Pull Check (buy/sell simulation, contract risk signals)AInspect
Base ERC-20 token risk scan: honeypot check, rug pull check, token safety / scam check. Use when vetting a token. Input: address. Output: JSON risk signals w/ block+evidence: honeypot test (buy/sell simulation, taxes), rug-pull signals (owner, mint/pause/blacklist/fee fns, proxy+admin, owner-held supply, Uniswap/Aerodrome pool depth), notChecked. Signals, not a safe verdict. Bad input/EOA: 400, not charged. Example: ?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Token contract on Base mainnet (0x + 40 hex; mixed case must be a valid EIP-55 checksum). EOAs, bad checksums → 400 before payment (not charged) |
TDQS
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 output shape (JSON signals with block+evidence), the specific signals tested, the crucial caveat 'signals, not a safe verdict,' the failure mode (400 on bad input/EOA, not charged), and the payment model (x402, $0.009). This is unusually rich behavioral context for a read-only 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?
Front-loaded with purpose, then usage, input, output, caveat, errors, and example in a logical order with no filler sentences. It is densely packed and the price/payment clause sits a bit awkwardly at the end, keeping it from a 5.
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?
There is no output schema, so the description must explain returns, and it does: the block+evidence JSON structure, the signals covered, the notChecked field, and the caveat that results are signals rather than a verdict. Error and cost handling are also covered, leaving nothing essential for correct invocation missing.
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?
Only one parameter with 100% schema coverage, so the schema already documents address format, checksum, and the 400/not-charged behavior. The description's 'Input: address' and example add a usage example but little semantic detail beyond the schema, so baseline 3 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?
States a specific verb and resource ('Base ERC-20 token risk scan') and enumerates the concrete checks (honeypot, rug pull, scam check). This clearly distinguishes it from siblings like base_token_info (metadata) or base_token_flows (transfers), so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when vetting a token' gives a clear use context, and the description implies this is the risk-assessment step of token analysis. However, it never names alternatives or states when NOT to use it (e.g., vs base_token_info), so it stops short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_txBase transaction status with decoded ERC-20 transfers, fee and confirmationsAInspect
Use when an agent must confirm a Base transaction or payment landed: did it succeed, who paid whom, how much of which token. Input: hash. Output: JSON status (success/reverted), block+time, confirmations, from, to, ETH value, fee (L2 gas + L1 data fee), decoded ERC-20 transfers with symbol and decimal amount (first 25). Unknown or unmined hash: 404, not charged. Example: ?hash=0x284f8abed91b5631ee28bdb1ccfe78374e18c480cb2ab25f28e3bfac5210fe0b Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Transaction hash on Base mainnet (0x + 64 hex). Unknown or not yet mined → 404 (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: success/reverted semantics, block time, confirmations, fee split into L2 gas and L1 data fee, decoding capped at the first 25 transfers, and 404-without-charge for unknown or unmined hashes. It also discloses cost and payment rail (x402, USDC on Base/Solana), which an agent needs before calling.
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-loaded with the trigger, then Input/Output/Edge/Example/Price in telegraphic form; nearly every clause carries information. It is slightly dense and the pricing sentence is a separate concern, but nothing is redundant filler.
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?
No output schema exists, so the description must describe return values and it does so in detail, including the decoded ERC-20 transfer cap and error behavior. Combined with the pricing note, an agent has everything needed to call and interpret this single-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 coverage is 100% with a single required parameter, so the baseline is 3 and the schema does the heavy lifting. The description adds value beyond it by restating the input shape, supplying a concrete example hash and query-string usage, and reinforcing the 404/not-charged behavior on unmined or unknown hashes.
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 (confirm a Base transaction/payment) plus the exact facts returned: success/reverted, payer/payee, token and amount. This cleanly separates it from siblings like base_token_flows or base_wallet_balances, which cover aggregate flows or balances rather than a single transaction's status.
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?
Opens with an explicit trigger condition ('Use when an agent must confirm a Base transaction or payment landed'), which is clear usage context. It does not name a sibling alternative or state when-not to use it (e.g. versus base_token_flows for multi-transfer history), so it stops short of a full routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_wallet_balancesBase wallet balances: ETH + many ERC-20s in one call, with nonce and contract flagAInspect
Use when an agent needs what a Base address holds in one call instead of one RPC call per token. Input: address; optional tokens (up to 20 ERC-20 addresses, comma-separated; default USDC, EURC, USDbC, WETH, cbBTC, cbETH, wstETH). Output: JSON block+time, ETH balance, per-token symbol, decimals, raw and decimal balance, nonce, isContract. Chain state only, no prices. Bad input: 400, not charged. Example: ?address=0x6246eee0355Dd7A93C888fE59e1151388A0cC5a1 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tokens | No | Up to 20 comma-separated ERC-20 contract addresses on Base. Omit for the default set. A contract that is not an ERC-20 is listed with status not_an_erc20. | |
| address | Yes | Wallet or contract on Base mainnet (0x + 40 hex; mixed case must be a valid EIP-55 checksum). Bad input → 400 (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does well: it discloses the paid x402 model ($0.002 USDC), the error contract (bad input → 400, not charged), the scope limit (chain state only, no prices), and the exact output shape. Auth requirements and rate limits are not mentioned, which keeps it from a 5.
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 trigger with a labeled Input/Output/Bad input/Example structure that scans quickly. It is dense with genuinely useful facts, though the pricing sentence and worked example are the closest thing to padding.
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 and no annotations, the description fully compensates: it specifies the return payload (block+time, ETH balance, per-token symbol/decimals/raw+decimal balance, nonce, isContract), the input constraints, error handling, and cost. An agent has everything needed to call it correctly.
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 coverage is 100%, so the baseline is 3, but the description adds value the schema lacks by enumerating the actual default token set (USDC, EURC, USDbC, WETH, cbBTC, cbETH, wstETH) and repeating the 20-token cap alongside a concrete example call.
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+resource: what a Base address holds (ETH + ERC-20 balances) in one call, and the title adds nonce and contract flag. It is unmistakably distinct from siblings like base_token_flows or base_token_info, though it never explicitly names an alternative to steer the agent.
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?
"Use when an agent needs what a Base address holds in one call instead of one RPC call per token" is an explicit when-to-use with the efficiency motivation. No when-not guidance and no sibling alternatives are named, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_ocrOCR: scanned PDF or image (Korean and English) to MarkdownAInspect
Use when an agent must read text from a scan, photo or screenshot: scanned PDFs (embedded page images) or PNG/JPEG/WebP up to 5 MB, Korean and English, tables kept as Markdown. Up to 3 pages per call. Input: url via GET, or POST a file (multipart 'file', raw body, or JSON contentBase64). Output: JSON markdown, pages with confidence, warnings. PDFs with selectable text: use /v1/convert/markdown. Example: ?url=https://example.com/scan.png Price: $0.015 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) URL of a PNG/JPEG/WebP image or a scanned PDF (≤ 5 MB). For uploads use POST. | |
| contentBase64 | No | File bytes as base64 (MCP argument or POST JSON; alternative to url; max 5 MB decoded) |
TDQS
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 the 5 MB size cap, a 3-page-per-call limit, supported input transports (GET url vs POST multipart/raw/base64), the output shape, and a paid x402 requirement at $0.015 USDC on Base or Solana. Gaps are minor: nothing about failure modes, low-confidence pages, or what happens when a page limit is exceeded.
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-loaded with the use case, followed by limits, input forms, output shape, alternative, example and price — a sensible priority order. The prose is dense and slightly run-on (input/output/pricing compressed into one block), keeping it just short of 5.
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?
No output schema exists, yet the description enumerates the return fields (JSON markdown, per-page confidence, warnings), plus constraints, transports, cost and the sibling alternative. An agent has everything needed to construct a correct call and to interpret the result.
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 coverage is 100%, so baseline is 3, but the description adds real value beyond the schema: it explains that files can be supplied via POST multipart 'file' or raw body, transports the two named parameters cannot express. It also restates the 5 MB limit consistently with the schema rather than contradicting it.
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: OCR of scanned PDFs and PNG/JPEG/WebP images into Markdown, with language scope (Korean/English) and table handling. It also explicitly separates itself from the sibling convert_to_markdown / /v1/convert/markdown for PDFs with selectable text, so an agent can route without opening a schema.
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?
Opens with an explicit trigger ('Use when an agent must read text from a scan, photo or screenshot') and names the exclusion case ('PDFs with selectable text: use /v1/convert/markdown'), pointing to the alternative tool by path. When-to-use, when-not, and the alternative are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_markdownDocument to Markdown: Korean HWP/HWPX to Markdown, plus web pages, PDF and DOCXAInspect
Use when an agent must read a document as clean Markdown: web page, PDF, DOCX or Korean HWP/HWPX, tables kept. Input: url (http/https) via GET, or POST a file (multipart 'file', raw body, or JSON contentBase64+filename). Free-plan size cap → 413 before payment: HWP 48 KB, HWPX 100 KB XML. Output: JSON markdown, title, pages, sourceType, warnings. Price by detected type: HTML $0.0027, PDF/DOCX $0.0045, HWP/HWPX $0.009. Example: ?url=https://example.com/ Price: $0.0027–$0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) URL of a web page, PDF, DOCX, HWP or HWPX (max 10 MB) | |
| type | No | Optional expected type: html, text, pdf, docx, hwp, hwpx | |
| filename | No | Original file name, e.g. report.hwp (helps detection) | |
| contentBase64 | No | Document bytes as base64 (alternative to url; max 10 MB decoded) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does so well: it discloses free-plan size caps with the resulting 413 status, per-type pricing tiers, the USDC/Base-or-Solana x402 payment path, and the shape of the returned JSON. It omits failure modes beyond the size cap and gives no hint about what 'warnings' contains, which keeps it below a 5.
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 use condition, then input, output, and price in a tight telegraphic block with no filler prose. The pricing information is stated twice (per-type table plus a $0.0027–$0.009 range) and the payment/x402 note is split across two sentences, which is minor waste.
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?
No output schema and no annotations, yet the description names the return fields (markdown, title, pages, sourceType, warnings), all input modalities, limits, and cost. For a conversion tool with 4 params this is close to sufficient; the missing sibling differentiation and the sparse handling of HWP vs HWPX size limits are the remaining gaps.
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 coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: url is fetched via GET, while files arrive by POST as multipart 'file', raw body, or JSON contentBase64 plus filename. That transport mapping is not derivable from the parameter docs alone.
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 concrete verb and resource set: convert web page, PDF, DOCX, or Korean HWP/HWPX into clean Markdown with tables preserved. The agent knows exactly what transformation happens. It does not, however, distinguish itself from sibling extractors like docs_extract or web_read, so selection still requires inference.
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?
"Use when an agent must read a document as clean Markdown" gives a clear triggering condition, and the listed input types narrow the scope. No when-not or named alternatives appear, so an agent facing web_read or docs_extract has no stated tiebreaker.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defi_yieldsDeFi lending yields and market TVL on Base: Aave v3, Compound v3, Morpho, MoonwellAInspect
Use when an agent must compare lending yields on Base. Input: optional protocol (aave-v3,compound-v3,morpho,moonwell) and asset (USDC,WETH,cbBTC,wstETH,cbETH,EURC). Output: JSON per market supply/borrow APY, utilization, supplied/borrowed amount and TVL in USD, sorted by supply APY, with block. Computed from contract state; base rates, rewards excluded; not advice. Example: ?asset=USDC Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Comma list of USDC, WETH (or ETH), cbBTC, wstETH, cbETH, EURC (default all). Bad value → 400 before payment (not charged) | |
| protocol | No | Comma list of aave-v3, compound-v3, morpho, moonwell (default all). Bad value → 400 before payment (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it discloses the data source (computed from contract state), the reward exclusion caveat, the block pinning, and the payment model ("$0.0045 USDC (Base or Solana) via x402"). It stops short of stating rate limits, caching, or failure behavior beyond the schema's 400 note.
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 trigger ('Use when...') then Input/Output/caveats, which is the right order. It is dense but mostly earns its space; the trailing price sentence is awkwardly fused with the example and reads as an afterthought.
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?
No output schema exists, and the description compensates by enumerating every returned field (supply/borrow APY, utilization, supplied/borrowed, TVL, block) plus the sort key. Input space, cost, and caveats are all covered; only freshness/refresh cadence and aggregation semantics (e.g., is TVL per market or summed) are unstated.
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 coverage is 100% and both parameters carry their own descriptions including the 400-before-payment behavior, so the description adds little beyond restating the allowed protocol and asset values. The '?asset=USDC' example is illustrative but redundant with the schema's 'default all' note. Baseline 3 is appropriate.
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 — 'compare lending yields on Base' — and enumerates the exact protocols (Aave v3, Compound v3, Morpho, Moonwell) and assets covered. No sibling tool in the list touches DeFi lending yields, so the boundary is unambiguous.
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?
'Use when an agent must compare lending yields on Base' gives a clear triggering condition, and 'base rates, rewards excluded; not advice' frames the scope. There is no explicit when-not clause or named alternative, but no plausible sibling overlaps, so the gap is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_extractDocument extract: PDF, DOCX, HWP/HWPX or web page to structured JSON with English overviewAInspect
Use when an agent needs the key facts of a document, not just its text: Korean HWP/HWPX, PDF, DOCX or web page. Input: url via GET, or POST a file (multipart 'file', raw body, or JSON contentBase64+filename). Output: fixed-schema JSON title, title_en, document_type, date, org, amounts, tables (parsed rows), english_overview. Bad input or model outage refused before payment. Example: ?url=https://example.com/ Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) URL of a PDF, DOCX, HWP, HWPX or web page. For uploads use POST. | |
| type | No | Optional expected type; a mismatch is rejected before payment (415, not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: it lists input methods (GET URL, POST multipart/raw/JSON base64), output fields, refusal before payment on bad input or model outage, and pricing ($0.009 USDC via x402). This gives the agent a clear picture of cost, error handling, and return format.
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 a single dense paragraph that front-loads the usage scenario, then covers input/output/errors/pricing. Every sentence is informative, though slightly more structure (e.g., bullets) could improve readability. No redundant filler.
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?
For a complex document-extraction tool with no annotations and no output schema, the description covers the essential context: supported formats, input encodings, output fields, payment model, and failure behavior. It omits file size limits or timeout behavior, but those are minor for selection and invocation.
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 coverage is 100%, so the two parameters are documented, but the description adds critical detail not captured by the schema: how to POST a file using multipart 'file', raw body, or JSON contentBase64+filename. It also gives an example URL query. This compensates for the schema's inability to represent POST body encodings.
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 ('extract') and resource (Korean HWP/HWPX, PDF, DOCX or web page) and distinguishes itself from plain text tools by requiring 'key facts, not just its text'. It also names the structured JSON output, making the purpose unambiguous against siblings like convert_to_markdown or web_read.
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?
Provides a clear usage condition: 'Use when an agent needs the key facts of a document, not just its text.' It does not name alternative tools or explicitly state when not to use it, but the context is sufficient to select it over text-only readers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_lookupDomain lookup: DNS records, mail provider, SPF/DMARC, RDAP registrar, creation/expiry datesAInspect
Use when an agent must check a domain: does it resolve, who hosts its DNS and mail, is email authenticated, how old is it, when does it expire. Input: domain (e.g. example.com; URLs accepted). Output: JSON DNS records (A, AAAA, CNAME, MX, NS, TXT, CAA, SOA), mail provider, parsed SPF and DMARC, DNS provider, and RDAP registration (registrar, created, expires, age in days, status, DNSSEC). No contact data. Example: ?domain=google.com Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Public domain or hostname (punycode for IDNs, e.g. xn--...); a URL is reduced to its hostname. Internal/reserved names → 400 (not charged) |
TDQS
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 the 'No contact data' limitation, the payment model ($0.0045 USDC via x402 on Base or Solana), and that URLs are normalized. It leaves out rate limits and error behavior beyond what the schema already states for reserved names.
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 use case, then segments Input, Output, and Price so an agent can scan the relevant part. Every sentence (including the contact-data exclusion and cost) contributes 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?
For a single-parameter lookup with no output schema, the description fully specifies the input, the return payload field-by-field, the cost and payment rails, and the 400/not-charged edge case. Nothing an agent needs to invoke it correctly is missing.
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 coverage is 100%, so the schema already documents the single parameter in detail; baseline would be 3. The description adds a concrete example ('e.g. example.com; URLs accepted') and a sample query string, giving marginal extra value.
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 ('check a domain') and enumerates the questions it answers: resolution, DNS/mail hosting, email authentication, age, expiry. No sibling tool overlaps, so an agent can select it unambiguously.
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 opening 'Use when an agent must check a domain' plus the enumerated questions gives clear context for invocation. It doesn't state exclusions or point to an alternative, but the sibling list contains nothing comparable, so no exclusions are strictly needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_checkEmail check: syntax, MX, SPF/DMARC, disposable and role address, deliverability verdictAInspect
Use when an agent is about to email or sign up a contact. Input: email. Output: JSON verdict (deliverable, risky, undeliverable) with reasons, MX hosts, null MX, SPF and DMARC policy, disposable domain, role account, free provider. No SMTP probe, so the mailbox itself is not verified. Malformed address refused before payment. Example: ?email=info@example.com Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the SMTP limitation (mailbox itself is not verified), the refusal-before-payment behavior for malformed addresses, and the pricing/rails. It omits rate limits, latency, and what an unverified mailbox means for the verdict's reliability in edge cases.
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-loaded with the usage condition, then input, output, limits, error behavior, example, and price in compact order. Every clause is load-bearing for an agent deciding whether and how to call it.
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?
No output schema exists, yet the description enumerates the verdict values and the fields returned (reasons, MX hosts, null MX, SPF/DMARC, disposable, role, free provider). For a single-parameter tool this is complete enough to call without further discovery.
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?
Single parameter with 100% schema description coverage, so the baseline is already high. The description adds an inline example ("?email=info@example.com") showing the exact query-string form and reinforces that only a well-formed address is accepted, which the schema does not state.
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?
Names the specific resource and the exact checks performed (syntax, MX, null MX, SPF/DMARC, disposable domain, role account, free provider) plus the final verdict type (deliverable/risky/undeliverable). Nothing about the operation is left ambiguous, and the scope boundary (no SMTP mailbox probe) is stated outright.
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?
"Use when an agent is about to email or sign up a contact" gives a clear triggering condition and is well matched to the tool's purpose. There is no explicit when-not guidance or named alternative, but among the sibling list no other tool overlaps on email validation, so the omission is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_convertCurrency conversion (ECB): amount from one currency into up to 10, any date since 1999AInspect
Use when you need to convert an amount between currencies (USD↔KRW, EUR→JPY, ...) at the official ECB reference rate, today or on a past date. Input: from, to (1–10 comma-separated), amount (default 1), optional date (YYYY-MM-DD since 1999-01-04; weekends use the prior fixing). Output: JSON per target rate, inverse rate and converted result, the fixing date used. Source: ECB statistics; reference only. Example: ?from=USD&to=KRW,JPY&amount=250 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 1–10 comma-separated target currencies. Supported: EUR,USD,JPY,KRW,CNY,GBP,AUD,BRL,CAD,CHF,CZK,DKK,HKD,HUF,IDR,ILS,INR,ISK,MXN,MYR,NOK,NZD,PHP,PLN,RON,SEK,SGD,THB,TRY,ZAR | |
| date | No | Fixing date YYYY-MM-DD from 1999-01-04 (default latest) | |
| from | Yes | Source currency, ISO 4217 (one of the 30 ECB reference currencies) | |
| amount | No | Amount in the source currency (default 1) |
TDQS
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 the ECB source and 'reference only' caveat, weekend/holiday fallback to the prior fixing, the output shape (per-target inverse and converted result plus fixing date used), and the paid x402 access with a concrete price. Remaining gaps are minor: no batch-limit or error behavior, and no statement on how failures for unsupported currencies are reported.
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 trigger condition is front-loaded, followed by input/output/source/price in a compact, well-ordered sequence. It is dense and packs a lot into a few sentences, but nearly every clause carries information an agent needs.
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?
There is no output schema and no annotations, yet the description defines the return shape, the fixing date semantics, and the payment requirement, which are exactly the parts an agent cannot infer from the schema. Nothing material is missing for correct invocation.
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 coverage is 100%, so the baseline is 3; the description adds marginal value by restating the 1–10 target limit, the amount default of 1, the date format constraint, the 'since 1999-01-04' floor, and an illustrative query string. It does not add much beyond the schema field descriptions, so not a 5.
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 ('convert an amount between currencies') and pins the rate source to ECB reference rates, with date scope 'today or on a past date'. This clearly separates it from the sibling fx_rates (raw rates) and fx_history (time series), and gives an example call.
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 opening 'Use when you need to convert an amount between currencies' gives a clear trigger condition plus concrete examples (USD↔KRW, EUR→JPY). It does not explicitly name alternatives such as fx_rates or fx_history or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_historyFX history (ECB): daily rate series for up to 10 currencies, any base, up to 366 days, with statsAInspect
Use when you need a historical exchange-rate series or a period summary (e.g. USD/KRW over the last quarter). Input: symbols (1–10), base (default EUR), start and end (YYYY-MM-DD since 1999-01-04; default last 30 days; max 366 days). Output: JSON daily series of ECB fixings, and per currency first/last, % change, min/max with dates, average and daily volatility. Source: ECB statistics; reference only. Example: ?base=USD&symbols=KRW,JPY&start=2026-07-01&end=2026-09-30 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date YYYY-MM-DD (default today; range ≤ 366 days) | |
| base | No | Base currency (default EUR) | |
| start | No | Start date YYYY-MM-DD (default end minus 30 days; earliest 1999-01-04) | |
| symbols | Yes | 1–10 comma-separated currencies. Supported: EUR,USD,JPY,KRW,CNY,GBP,AUD,BRL,CAD,CHF,CZK,DKK,HKD,HUF,IDR,ILS,INR,ISK,MXN,MYR,NOK,NZD,PHP,PLN,RON,SEK,SGD,THB,TRY,ZAR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses data provenance (ECB statistics), a 'reference only' reliability caveat, hard limits (1999-01-04 floor, 366-day max, 1-10 symbols), defaults, output contents, and even the payment model ($0.002 USDC via x402). It does not mention rate limits, error behavior, or whether non-business days are absent from the series.
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-loaded with the when-to-use clause, then input, output, source, example, and price — a sensible order with no wasted framing sentences. It is dense to the point of being a run-on, and the example's 2026 dates are an odd artifact, but every block carries 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?
No output schema exists, yet the description enumerates the return payload (daily series plus per-currency first/last, % change, min/max with dates, average, daily volatility), and with no annotations it still covers limits, defaults, source, and cost. An agent has everything needed to construct a valid call.
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 100%, so the baseline is 3; the description adds a little by restating defaults and limits in prose and by giving a worked query example (?base=USD&symbols=KRW,JPY&start=...&end=...) that shows how the parameters combine. It does not add format or semantic detail beyond what the schema already documents.
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 — 'historical exchange-rate series or a period summary' — and the title/description pin the source to ECB daily fixings, which separates it from generic rate tools. It never names its closest siblings (fx_rates, fx_convert), so the agent must infer that this is the historical/series variant rather than the spot-conversion one.
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?
'Use when you need a historical exchange-rate series or a period summary' plus a concrete scenario ('USD/KRW over the last quarter') gives a clear selection signal. There are no explicit exclusions or named alternatives (e.g. 'for a single current rate use fx_rates'), so the boundary with siblings is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_ratesFX reference rates (ECB): 30 currencies incl. KRW, any base, conversion, last 90 daysAInspect
Use when you need an official daily FX rate or currency conversion (USD, EUR, KRW, JPY, CNY, GBP + 24 more). Input: base (default EUR), optional symbols (comma list), date (YYYY-MM-DD, last ~90 days; weekends use the prior fixing), amount. Output: JSON rates for the fixing date, % change vs prior fixing, converted amounts, raw ECB EUR rates. Source: ECB statistics, updated each TARGET day ~16:00 CET; reference only. Example: ?base=USD&symbols=KRW,JPY&amount=100 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency, ISO 4217 (one of the 30 ECB reference currencies; default EUR) | |
| date | No | Fixing date YYYY-MM-DD within the last ~90 days (default latest) | |
| amount | No | Amount in base currency to convert | |
| symbols | No | Comma-separated target currencies (default: all). Supported: EUR,USD,JPY,KRW,CNY,GBP,AUD,BRL,CAD,CHF,CZK,DKK,HKD,HUF,IDR,ILS,INR,ISK,MXN,MYR,NOK,NZD,PHP,PLN,RON,SEK,SGD,THB,TRY,ZAR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so: it discloses provenance (ECB statistics), update cadence (~16:00 CET each TARGET day), staleness bound (~90 days), weekend behavior (prior fixing), a reference-only disclaimer, and even the $0.002 USDC x402 cost. These are exactly the traits an agent cannot infer from structured fields.
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-loaded with the "Use when" trigger, then organized into Input / Output / Source / Example / Price blocks with zero filler sentences. It is slightly dense and mixes operational metadata (pricing, update time) into the same paragraph, but nothing is wasted.
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?
No output schema exists, yet the description fully characterizes the return value (JSON rates for the fixing date, % change vs prior fixing, converted amounts, raw ECB EUR rates). Combined with source, freshness, and cost, an agent has everything needed to call and interpret it.
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 coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: the default base (EUR), the YYYY-MM-DD date format, the weekend prior-fixing rule for date, and a concrete query example (?base=USD&symbols=KRW,JPY&amount=100). That extra semantic context lifts it above the baseline.
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+resource (fetch official daily FX rate / currency conversion), names the currency universe (30 ECB currencies incl. KRW, JPY, CNY), and is unmistakably distinct from every sibling (gas, token flows, weather, sanctions, etc.). An agent knows exactly what this returns 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when you need an official daily FX rate or currency conversion" gives clear positive triggering context, and the description scopes the data to the last ~90 days. It does not name an alternative or an explicit when-not, but there is no competing FX sibling to route against, so the guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_extremesHyperliquid funding extremes and open-interest movers (z-score vs each coin's own 7 days)AInspect
Use when hunting crowded perps: which markets have funding far from their own normal and where open interest is jumping. Input: optional limit (1-50, default 10), min_oi_usd (default 1,000,000). Output: as_of, fundingExtremes ranked by |z| (current 1h funding vs the coin's last 7 days), oiMovers24h and oiMovers1h (open-interest % change), each with funding APR and OI USD. Example: ?limit=10 Price: $0.006 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per list (1-50, default 10) | |
| min_oi_usd | No | Skip markets with open interest below this many USD (default 1,000,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it defines the ranking statistic (current 1h funding vs the coin's last 7 days), names the mover windows (24h and 1h), and discloses cost/access ('$0.006 USDC (Base or Solana) via x402'). It omits rate limits, caching/refresh cadence, and explicitly stating this is a read-only operation.
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 use case, then inputs, then outputs, then an example and price — a sensible order with no filler sentences. The density is high and the example/price run together slightly awkwardly, but every clause carries 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?
There is no output schema, and the description compensates by enumerating the returned structure (as_of, fundingExtremes ranked by |z|, oiMovers24h, oiMovers1h, funding APR, OI USD). For a two-parameter read tool that is nearly everything an agent needs; only the sibling boundary and response size/pagination are unaddressed.
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 100%, so both parameters are already fully documented in the schema, including the default 10 and the 1-50 range. The description restates the range and default and clarifies that min_oi_usd filters markets out rather than ranking them, but adds no format or type guidance beyond the schema. Baseline 3 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?
States a specific verb and resource: which Hyperliquid markets have funding far from their own 7-day norm (ranked by |z|) and where open interest is jumping. The framing 'Use when hunting crowded perps' makes the intent unmistakable. It loses the top mark only because it never names or distinguishes itself from overlapping siblings such as hl_funding_screener, hl_funding_history, and hl_perp_metrics.
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?
Opens with an explicit use condition ('Use when hunting crowded perps'), which is clear context for invocation. It does not state when NOT to use it or point to the alternative funding tools, so an agent must infer the boundary with hl_funding_screener itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_funding_historyHyperliquid funding rate history: percentiles, z-score, averages and open-interest changeAInspect
Use when an agent judges whether a perp's funding is unusually high or low, or tracks open-interest build-up. Input: coin (e.g. BTC), hours (24-720, default 168). Output: current 1h funding and APR, 24h/7d/30d average APR, current percentile and z-score vs 7d and 30d, share of positive hours, downsampled series, open interest now and change 1h/24h/7d (from our 5-minute snapshots). Example: ?coin=BTC&hours=168 Price: $0.004 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Hyperliquid perp symbol (BTC, ETH, SOL, HYPE, kPEPE). Not listed → 400 before payment | |
| hours | No | Window of the returned series in hours (24-720, default 168); statistics always cover 7 and 30 days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses data provenance (5-minute snapshots), the 400-before-payment behavior for unlisted coins, and the x402 pricing ($0.004 USDC on Base or Solana). Missing only explicit read-only/no-side-effect confirmation, but the payment and error preconditions are genuinely useful behavioral context.
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-loaded trigger followed by compact Input/Output/Example/Price blocks; every section carries signal. Slightly dense with pricing and example packed into one paragraph, but no wasted sentences.
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?
No output schema exists, and the description fully enumerates the return shape: current 1h funding and APR, 24h/7d/30d averages, percentile and z-score, positive-hour share, downsampled series, and OI changes. An agent knows exactly what it gets and what it costs before calling.
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 coverage is 100%, so both params are already documented with symbol examples and the 24-720 default range. The description largely restates those ('hours (24-720, default 168)') and adds one useful nuance—statistics always cover 7/30 days regardless of window—so baseline 3 is appropriate.
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?
Specific verb+resource with explicit scope: judging whether a perp's funding is unusually high/low and tracking open-interest build-up. The name and title align, and the funding/OI framing separates it from siblings like hl_funding_screener and hl_perp_metrics.
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?
Opens with a clear 'Use when...' trigger covering the two main analysis cases (funding extremes, OI build-up). It doesn't name alternative siblings or state when NOT to use it, so routing between hl_funding_history and hl_funding_screener is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_funding_screenerPerp funding rate screener: all Hyperliquid perps ranked by funding, OI, volume, basis and venue spreadAInspect
Perpetual futures funding rate screener over all Hyperliquid perps, ranked by funding, open interest, volume, basis or Binance/Bybit spread. Use when hunting funding extremes or carry trades. Input: optional sort, order, limit (1-50), min_oi_usd, min_volume_usd, funding (positive/negative), min_abs_apr. Output: JSON as_of, cache_age_s, rows (1h + annualized funding, OI USD, 24h volume, basis, premium, venue spread), top/bottom 5. Example: ?sort=funding&limit=20 Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Ranking field (default funding = 1h funding rate) | |
| limit | No | Rows returned (1-50, default 20) | |
| order | No | desc (highest first, default) or asc | |
| funding | No | Funding sign filter (positive = longs pay shorts) | |
| min_oi_usd | No | Only markets with open interest >= this many USD | |
| min_abs_apr | No | Only markets whose |annualized Hyperliquid funding| >= this percent | |
| min_volume_usd | No | Only markets with 24h notional volume >= this many USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses the return shape (as_of, cache_age_s, rows, top/bottom 5), signals that results are cached (cache_age_s), and states the access cost/mechanism ('$0.009 USDC via x402'), which is critical auth/payment context an agent cannot infer from the schema. It does not cover rate limits or refresh semantics, so it stops at 4 rather than 5.
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-loaded with purpose, then usage, then input/output contracts, then a concrete example — a sensible order with no wasted sentences. The appended pricing sentence is useful but sits awkwardly at the tail after the example, which slightly muddies the structure.
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?
There is no output schema, and the description compensates by enumerating the returned fields and envelope keys. Combined with the disclosed payment mechanism, an agent has enough to call it correctly, though cache/refresh semantics and failure behavior remain undescribed.
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 coverage is 100%, so the schema already documents all seven parameters, and the description's parameter recap ('sort, order, limit (1-50), min_oi_usd, min_volume_usd, funding, min_abs_apr') largely repeats it. The one added detail is the example query string (?sort=funding&limit=20), which is marginal, so baseline 3 is correct.
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 opening sentence names a specific verb+resource+scope: a funding-rate screener over ALL Hyperliquid perps, ranked by funding, open interest, volume, basis or Binance/Bybit spread. That scope ('all perps', 'ranked by') distinguishes it from a single-market sibling like hl_perp_metrics without the agent needing to open either schema.
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 use case ('Use when hunting funding extremes or carry trades'), which is exactly the intent that would select this tool over a generic perp-metrics call. It stops short of naming alternatives or stating when not to use it, so it falls just below the explicit when/when-not/alternative bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hl_perp_metricsHyperliquid perp funding rate, open interest and basis, with Binance/Bybit predicted funding comparisonAInspect
Hyperliquid vs Binance vs Bybit predicted funding comparison for one perpetual futures market, plus current funding rate, open interest and basis. Use when an agent monitors a perp position or funding carry. Input: coin (e.g. BTC, ETH, kPEPE). Output: JSON as_of, cache_age_s, 1h + annualized funding, OI coin/USD, mark/oracle/mid, basis %, premium, 24h volume and change, per-venue predicted funding, annualized spread. Unknown coin: 400, not charged. Example: ?coin=BTC Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Hyperliquid perp symbol, case-insensitive (BTC, ETH, SOL, HYPE, kPEPE). Not listed or delisted → 400 before payment (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the full output shape, cache staleness (cache_age_s), error behavior (unknown coin → 400, not charged), and payment mechanism/price ($0.002 USDC via x402). It omits rate limits and latency expectations, which keeps it short of a 5.
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-loaded with purpose, then use case, then input/output contract, then error and pricing notes. Dense but every clause carries information; the output field list is long but necessary given no output schema.
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?
For a single-parameter tool with no output schema and no annotations, the description covers input examples, return fields, staleness, error handling and cost. The only real omission is guidance on when to prefer hl_funding_screener over this single-market endpoint.
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 coverage is already 100%, so the bar is baseline 3. The description adds value by giving concrete example tickers (BTC, ETH, kPEPE) and restating the failure semantics for unlisted/delisted symbols, reinforcing what the schema says.
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 exact resource and scope: predicted funding comparison across Hyperliquid/Binance/Bybit for one perp market, plus funding rate, OI and basis. It is a specific compound verb+resource statement that an agent can match to a task immediately.
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?
"Use when an agent monitors a perp position or funding carry" gives a clear triggering context. It lacks an explicit exclusion or pointer to the sibling hl_funding_screener for multi-market screening, so the agent must infer single-market vs screener division.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_addressKorean address lookup: official road-name address, English address and postal codeAInspect
Use when an agent must normalize or translate a South Korean address (shipping, checkout, KYC forms). Input: q (Korean address or part of one, e.g. road name + number or neighborhood + lot number), optional limit (1-5). Output: JSON matches with official road-name and lot-number addresses in Korean and English, postal code, building name, admin and road codes. Data: Ministry of the Interior road-name address API. Example: ?q=테헤란로 152 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Korean address or part of it (2+ chars; at most 40 Korean characters; no SQL words or % = > < [ ]); bad input → 400, not charged | |
| limit | No | Matches returned (default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations the description carries the full burden, and it discloses the upstream data source (Ministry of the Interior road-name API), the exact shape of returned fields, the payment model ($0.002 USDC via x402 on Base or Solana), and the not-charged-on-400 behavior. Missing only things like rate limits or caching, which keeps it below a 5.
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-loaded with the trigger, then Input/Output/Data/Example/Price in tight labeled segments; no filler. Slightly list-like and dense, but every sentence carries information an agent needs.
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?
No output schema and no annotations, so the description must explain returns and cost on its own — it does both, plus the error/charging behavior. Only minor omissions (rate limits, Korean-only input expectation) keep it from a 5.
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 coverage is 100%, so the baseline is 3, but the description adds value beyond it: a concrete example query ('?q=테헤란로 152') and the 1-5 bound on limit, which the schema does not state (it only gives default 3).
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+resource ('normalize or translate a South Korean address') with concrete scenarios (shipping, checkout, KYC). No sibling tool overlaps, so the purpose is unambiguous.
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?
'Use when an agent must normalize or translate a South Korean address' gives a clear trigger context, reinforced with example workloads. It gives no explicit exclusion or alternative, but no sibling performs address normalization, so there is little to route against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_apartment_tradesKorea apartment sale transactions (MOLIT) — English JSON with KRW & USDAInspect
Use when you need actual apartment sale prices in a South Korean district for a month (property research, valuation, comps). Data: MOLIT (Korea land ministry) reported deals since 2006, updated daily. Input: region (5-digit LAWD_CD, e.g. 11680 Gangnam-gu), month (YYYYMM). Output: JSON trades with contract date, complex (Korean + romanized), area m2, floor, build year, price in KRW and USD, price per m2, deal type, cancelled flag. Example: ?region=11680&month=202609 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| month | Yes | Contract month YYYYMM, 200601 to the current month (KST) | |
| region | Yes | 5-digit 시군구 code (LAWD_CD), e.g. 11680 = Seoul Gangnam-gu, 11110 = Jongno-gu, 41135 = Seongnam Bundang-gu. Unknown codes → 400 (not charged). |
TDQS
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 the data source (MOLIT), coverage since 2006, daily updates, request cost ($0.0045 USDC via x402 on Base or Solana), and the output field set. It omits rate limits and pagination, but covers the major behavioral traits an agent needs before paying for a call.
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 usage condition, then follows with compact Data/Input/Output/Example/Price blocks. Every sentence carries information an agent needs, with no filler.
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?
Given two required parameters and no output schema, the description fully specifies output fields (contract date, complex names, area, floor, build year, KRW/USD price, price per m2, deal type, cancelled flag). It also covers data provenance, freshness, error behavior, and payment cost.
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 coverage is 100%, so both parameters (region, month) are already fully documented in the schema, including formats and examples. The description reinforces this with an example query and a Gangnam-gu code, but adds no semantics beyond the schema — baseline 3.
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 — actual apartment sale prices in a South Korean district for a given month — and names the data source. Its sibling kr_apartment_trades_summary is a summary tool, and this description's emphasis on actual per-deal trades distinguishes it.
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?
Opens with a clear 'Use when you need...' statement and lists concrete scenarios (property research, valuation, comps). It does not explicitly name the sibling summary tool or state when not to use this tool, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_apartment_trades_summaryKorea apartment price summary for a district-month (count, median/avg price and price per m²)AInspect
Use when you need a quick housing-market snapshot for a South Korean district-month instead of raw trades. Data: MOLIT reported apartment sales, cancelled deals excluded. Input: region (5-digit LAWD_CD, e.g. 11680), month (YYYYMM). Output: JSON count, median/average/min/max price and price per m2 and per pyeong in KRW and USD, breakdown by size class, top complexes by volume. Example: ?region=11680&month=202609 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| month | Yes | Contract month YYYYMM, 200601 to the current month (KST) | |
| region | Yes | 5-digit 시군구 code (LAWD_CD), e.g. 11680 = Seoul Gangnam-gu. Unknown codes → 400 (not charged). |
TDQS
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 names the data source (MOLIT reported apartment sales), discloses that cancelled deals are excluded, states the price ($0.0045 USDC via x402 on Base or Solana), and notes that the call is paid. Missing operational traits such as rate limits, caching/freshness lag, and failure modes beyond the 400-invalid-region case keep it short of a 5.
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 usage directive, then layers Data / Input / Output / Example / Price in a scannable structure with no filler sentences. The Input line duplicates the schema verbatim and the example is somewhat redundant, costing it the top mark.
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?
For a paid endpoint with no output schema, the description usefully enumerates the return shape (count, median/avg/min/max, KRW and USD, size-class breakdown, top complexes) and the data provenance. It is close to complete; only error behavior other than the 400 case and the billing/retry semantics are unaddressed.
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 100%, so the baseline is 3; the description mostly restates the schema (5-digit LAWD_CD, YYYYMM) but adds a concrete invocation example '?region=11680&month=202609' that shows both required params combined. That is marginal added value over the schema's own examples, not new semantics.
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 resource (Korea apartment price summary for a district-month) with the concrete aggregates produced (count, median/avg/min/max, price per m²/pyeong). It explicitly contrasts with the raw-trades sibling ('a quick housing-market snapshot ... instead of raw trades'), so an agent can distinguish it from kr_apartment_trades without opening either schema.
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?
Opens with a clear routing rule: 'Use when you need a quick housing-market snapshot ... instead of raw trades,' which effectively names the alternative. It lacks explicit preconditions or exclusions (e.g. what to do for non-apartment housing types or regions outside the MOLIT feed), so it is clear context rather than a full when/when-not matrix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_bok_ecos_seriesBank of Korea ECOS statistics (BOK-authored series only) with attributionAInspect
Use when you need official Bank of Korea statistics (base rate, money supply, key indicators) as a time series. Input: stat (ECOS table code, e.g. 722Y001), cycle (A/S/Q/M/SM/D), start, end (period format of cycle), optional item (e.g. 0101000). Output: JSON series with English labels, units, observations [{period,value}] (max 1,000 rows) and source attribution. Only BOK-authored tables are served. Example: ?stat=722Y001&cycle=M&start=202401&end=202412&item=0101000 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End period, same format as start | |
| item | No | Item code 1 (e.g. 0101000). Optional item2..item4 also accepted. | |
| stat | Yes | ECOS statistic table code, e.g. 722Y001 (base rate). Non-BOK tables → 403 (not charged). | |
| cycle | Yes | A annual, S semi-annual, Q quarterly, M monthly, SM semi-monthly, D daily | |
| start | Yes | Start period in ECOS format (A: YYYY, Q: YYYYQn, M: YYYYMM, D: YYYYMMDD) |
TDQS
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 a 1,000-row cap, English labels/units/attribution in the payload, the failure mode for non-BOK tables (403, not charged), and the x402 payment requirement with price. It omits things like rate limits, pagination, or auth setup for the x402 flow, which keeps it short of a 5.
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?
A single dense block with a clear Input/Output/Example skeleton, front-loaded with the activation condition. Every clause carries information the agent needs — no filler, no restatement of the title.
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?
There is no output schema, so the description must describe returns — and it does: JSON series with English labels, units, observations [{period,value}], row cap, and source attribution. Combined with the 403 behavior and pricing note, an agent has everything needed to call this correctly.
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 100%, so the schema already documents every parameter including cycle codes, period formats, and item examples. The description's worked example (?stat=722Y001&cycle=M&start=202401&end=202412&item=0101000) is a useful invocation pattern but adds no semantic detail beyond the schema, so baseline 3 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?
States a specific verb and resource: retrieve official Bank of Korea statistics (base rate, money supply, key indicators) as a time series. The scope constraint 'Only BOK-authored tables are served' further narrows it and distinguishes it from sibling tools like kr_trade_exports_10day or kr_apartment_trades, which cover different data sources.
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 opening 'Use when you need official Bank of Korea statistics... as a time series' gives clear activation context, and the 'Only BOK-authored tables are served' line tells the agent when the tool will refuse. However, it never names an alternative tool or explicitly says when-not to use it, so routing against siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_business_statusKorean business registration status (NTS): active, suspended or closed, VAT type, closure dateAInspect
Use when an agent must check that a South Korean business is still operating before paying, contracting or onboarding it (KYB, invoice checks). Input: b_no (1-20 business registration numbers, comma-separated, hyphens ok). Output: JSON per number: status (active, suspended, closed, unregistered), VAT taxpayer type, closure date, tax-type change and e-invoice dates, companyId. Data: National Tax Service, synced every 30 min. Example: ?b_no=1248100998 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| b_no | Yes | Business registration numbers (사업자등록번호), 10 digits each, comma-separated (max 20); invalid check digit → 400, not charged |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses the upstream source (National Tax Service), a 30-minute sync cadence, the cost and payment rail ($0.002 USDC via x402 on Base or Solana), and the 400-without-charge behavior on bad check digits. Missing rate limits or failure modes beyond the check-digit case keep it from a 5.
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?
Information-dense and front-loaded: use case first, then input, output, data provenance, example, and price. The terse 'Input:/Output:/Data:/Price:' shorthand is slightly compressed but every sentence carries actionable content.
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?
There is no output schema, so the description enumerates the returned fields (status enum, VAT type, closure date, tax-type change, e-invoice dates, companyId), which is exactly what's needed. Input, output, source, freshness, and cost are all covered for a one-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 coverage is 100%, so the baseline is 3, but the description adds genuinely new detail: the 1-20 count range, hyphen tolerance, and a working example URL. That extra guidance about what the string may look like is useful beyond the schema's '10 digits, comma-separated'.
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 ('check that a South Korean business is still operating') plus the data source (NTS), which is far more than a restatement of the name. It does not, however, distinguish itself from the sibling kyb_check, which an agent plausibly could confuse with this tool.
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 concrete situations for use: before paying, contracting, or onboarding, and names the KYB/invoice-check use cases. It stops short of stating when NOT to use it or pointing to kyb_check as the alternative, so this is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_company_procurementKorean company public-procurement awards: every KONEPS contract it won, with totals and top agenciesAInspect
Use when an agent needs a South Korean company's government contract wins for sales, credit or competitor research. Input: id (companyId) or business_number; optional from/to (YYYY-MM-DD, max 366 days, default last 12 months), category (goods,works,services,foreign), min_amount, limit, offset. Output: JSON summary (award count, total and largest KRW, top agencies) and awards with title, agency, amount, date. Data: KONEPS. Example: ?id=kr-dart-00126380 Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | companyId from /v1/kr/company/resolve; give id or business_number | |
| to | No | Bid opening date to (default: today) | |
| from | No | Bid opening date from (default: 365 days before to) | |
| limit | No | Awards per page (default 50) | |
| offset | No | Paging offset (from page.nextOffset) | |
| category | No | Comma list of goods, works, services, foreign (default all) | |
| min_amount | No | Only awards of at least this many KRW | |
| business_number | No | Business registration number; give id or business_number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses the data source, the 366-day cap and 12-month default window, the output shape, and notably the cost ($0.009 USDC via x402 on Base/Solana), which is real behavioral context. It stops short of stating rate limits, whether the id is auto-resolved, or null-case behavior.
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?
It is front-loaded with a 'Use when...' clause and packs inputs, outputs, source, example and pricing into a compact block. It is slightly dense with semicolon-delimited lists and the pricing/example tail is mildly incidental, but nothing is wasted.
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?
For a paid read tool with no output schema and eight parameters, the description covers inputs, return shape (summary totals plus per-award fields), data provenance, and cost. The only gap is the zero-required-parameter ambiguity (id vs business_number) and any error/null behavior.
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 100%, so baseline is 3, but the description adds value the schema lacks: the YYYY-MM-DD format, the max 366-day span, the default 12-month window, and enumerated category values. It still doesn't clarify the fallback when both id and business_number are omitted.
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: retrieving a South Korean company's KONEPS government contract wins. It is immediately distinguishable from siblings like kr_company_profile, kr_company_resolve, and the kr_trade_* tools, and it names the exact data source (KONEPS).
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 context ('sales, credit or competitor research') and implies the entity must already be resolved via the id/business_number fields. However, it never names the companion tool (kr_company_resolve) or states when NOT to use it, so routing guidance is contextual rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_company_profileKorean company profile: DART registry data joined with its public-procurement vendor recordAInspect
Use when an agent needs a normalized profile of a South Korean company for KYB, research or sales. Input: id (companyId from /v1/kr/company/resolve). Output: JSON profile: names, business/corporate/DART/stock ids, market, KSIC code, founding date, fiscal year end, address, homepage, KONEPS supplier registration. No CEO names. DART data is a weekly snapshot of KRX-listed companies (asOf in response). Data: OpenDART, KONEPS. Example: ?id=kr-dart-00126380 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | companyId from /v1/kr/company/resolve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does well: it discloses the data staleness ('weekly snapshot of KRX-listed companies, asOf in response'), a scope limitation ('No CEO names'), the upstream sources (OpenDART, KONEPS), and the metered cost/payment rail. It omits auth/rate-limit behavior, keeping it out of the 5 range.
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-loaded with the usage trigger, then Input/Output, then sources, example, and price in a dense but scannable label-value structure. Every sentence carries information, though the run-on packing is slightly list-like rather than prose-clean.
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?
No output schema exists, so the description must describe return values, and it enumerates the profile fields (names, business/corporate/DART/stock ids, market, KSIC, founding date, fiscal year end, address, homepage, KONEPS registration) plus the asOf freshness field. Nothing needed to call or interpret this single-purpose tool is missing.
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 coverage is 100%, so the baseline is 3, but the description adds real value: it names the parameter, ties it to the producing endpoint (companyId from /v1/kr/company/resolve), and supplies a concrete example value (?id=kr-dart-00126380) that clarifies the expected format.
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 + resource ('normalized profile of a South Korean company') and distinguishes itself from the adjacent siblings kr_company_resolve (supplies the id) and kr_company_procurement (different data slice). An agent can route to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the trigger context ('for KYB, research or sales') and points to /v1/kr/company/resolve as the prerequisite for the id. It stops short of naming when-not-to-use or the alternative sibling tools (resolve, procurement), so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_company_reportKorean company due-diligence report in English: profile, registration, procurement, sanctions, recent DART filings and risk in one briefAInspect
Use when an agent needs a finished English due-diligence brief on a South Korean company. Input: one of business_number, dart_corp_code, stock_code or q (exact name); format=json|markdown; news=true|false. Output: JSON with executiveSummary, businessOverview, financialHighlights (each figure source-checked), procurementActivity, recentEvents (DART, 90 days), riskAssessment, sanctionsResult, dataGaps, sources. AI-written; not advice. Example: ?stock_code=005930 Price: $0.50 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Company name (Korean or English), matched exactly after removing legal-form words | |
| news | No | Include up to 5 recent third-party news headlines (default true) | |
| format | No | markdown adds a readable English Markdown rendering of the same report | |
| stock_code | No | KRX stock code | |
| dart_corp_code | No | OpenDART corp_code (8 digits) | |
| business_number | No | Business registration number (사업자등록번호), 10 digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses that output is AI-written, not advice, that each figure is source-checked, that dataGaps are returned, that recentEvents is DART-scoped to 90 days, and that the call is metered at $0.50 USDC via x402 on Base or Solana. It omits failure behavior (what happens when no company matches any identifier) and latency/rate-limit expectations for a multi-source aggregation.
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 when-to-use sentence, then input, output, caveat, example, price – a sensible ordering with almost no waste. The final line compresses the example and the payment terms together, which slightly blurs two unrelated facts, but nothing is padded.
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?
No output schema exists, so the description must enumerate return values, and it does so for every top-level key including the negative-signal fields (sanctionsResult, dataGaps, sources). With all six parameters schema-documented and the payment/caveat context supplied, an agent has everything needed to call this correctly.
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 coverage is 100%, so baseline is 3; the description earns above that by imposing an exclusivity rule ("one of business_number, dart_corp_code, stock_code or q") that the all-optional schema with no oneOf does not express, and by supplying the accepted values for format (json|markdown) and news (true|false) in a schema that declares them as unconstrained strings.
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 deliverable: a finished English due-diligence brief on a South Korean company, with an enumerated section list in the title and description. An agent can tell this is an aggregate report rather than a single-datapoint lookup. It never names the narrower siblings (kr_company_profile, kr_filings, kr_supplier_check), so the differentiation is inferable 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?
"Use when an agent needs a finished English due-diligence brief" gives a clear triggering condition, and the input enumeration implies the resolver alternatives for narrower lookups. No explicit when-not guidance or named alternative tool is provided, so the agent must guess whether a cheaper single-field sibling would suffice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_company_resolveKorean company resolver: name, business number or stock code to one stable company_idAInspect
Use when an agent must identify a South Korean company before looking up its profile or public-procurement record. Input: one of business_number (10 digits), dart_corp_code, stock_code (KRX, e.g. 005930) or q (company name, exact match ignoring 주식회사/(주)/spacing); first wins. Output: JSON companies with stable companyId, Korean and English names, stock code, DART code, match type, ambiguous flag. Data: OpenDART, KONEPS. Example: ?stock_code=005930 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Company name (Korean or English), matched exactly after removing legal-form words | |
| stock_code | No | KRX stock code | |
| dart_corp_code | No | OpenDART corp_code (8 digits) | |
| business_number | No | Business registration number (사업자등록번호), 10 digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden and does well: it discloses input priority ('first wins'), output structure (JSON with stable companyId, names, flags), data sources (OpenDART, KONEPS), and even pricing via x402. It omits rate limits or error behavior, but for a read-only resolver that is relatively minor.
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 purpose, inputs, and outputs, and includes a useful example and pricing. It is efficiently structured but slightly dense; the pricing sentence could be separated, though it doesn't detract significantly.
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?
Given no output schema and no annotations, the description provides a complete picture for calling: purpose, supported inputs, output fields, data sources, example, and cost. It lacks details on error handling or rate limits, but these are not critical for a simple resolver.
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 coverage is 100%, so the baseline is 3. The description adds meaningful context: it specifies that only one input is used, with a precedence order ('first wins'), and clarifies the exact-match behavior for q (ignoring 주식회사/(주)/spacing). This goes beyond the schema's individual parameter descriptions.
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 explicitly states the tool's role: identify a South Korean company before looking up its profile or public-procurement record. It names the supported inputs and output, and distinguishes itself from downstream siblings like kr_company_profile and kr_company_procurement.
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 clearly indicates when to use the tool ('Use when an agent must identify a South Korean company before looking up its profile...'), implying it should be called first in a sequence. However, it does not explicitly name when not to use it or list alternative tools for other purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_filingsKorean DART filings: recent major disclosures for a company or a day, with English type labelsAInspect
Use when an agent needs recent material disclosures of a South Korean listed company (rights offerings, CBs, buybacks, M&A, litigation, earnings, periodic reports). Input: corp (DART corp_code, KRX stock code or kr-dart- id) or q (exact name), optional days (1-365, default 30); or date (YYYY-MM-DD, KST). Output: JSON list with rceptNo, date, Korean title, English type label, DART link. Summaries: /v1/kr/filings/summary. Example: ?corp=005930&days=90 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Company name (Korean or English), matched exactly after removing legal-form words | |
| corp | No | DART corp_code (8 digits), KRX stock code (6 characters) or kr-dart-<corp_code> | |
| date | No | Receipt date (KST); with corp, only that day | |
| days | No | Look-back window for corp/q (default 30) | |
| limit | No | Max filings returned (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful traits: it is a paid call ($0.0045 USDC via x402 on Base or Solana) and it names the exact output fields (rceptNo, date, Korean title, English type label, DART link). It omits error/empty-result behavior, pagination semantics around limit, and whether both corp and q may be supplied together.
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-loaded with the usage trigger, then input, then output, then cost — a sensible priority order with almost no filler. It is dense to the point of being slightly crammed (sibling-path and pricing squeezed onto the same lines), but every sentence carries 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?
No output schema exists, so the description's field list for the returned JSON is genuinely load-bearing, and the pricing/auth model is disclosed. Given five optional params and no annotations, it would be stronger if it clarified precedence between corp, q, and date and what limit does to results.
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 coverage is 100%, so the baseline is 3. The description does add a small amount beyond the schema: the days range bound (1-365) and the default (30), plus a concrete example query. It says nothing about limit, and redundant corp-format detail duplicates the schema rather than extending it.
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 (recent material disclosures) and resource (South Korean listed company DART filings), and enumerates the disclosure categories covered (rights offerings, CBs, buybacks, M&A, litigation, earnings, periodic reports). It also explicitly routes summary needs to a different endpoint, so an agent can distinguish it from kr_filing_summary without opening either schema.
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?
"Use when an agent needs recent material disclosures..." gives an explicit trigger, and the input enumeration (corp/q with days, or date) tells the agent the two access patterns. The pointer to /v1/kr/filings/summary names the natural alternative. It stops short of stating exclusions (e.g. no historical-range mode, no full-text search) or prerequisites such as resolving a company name via kr_company_resolve first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_filing_summaryEnglish summary of a Korean DART filing: what happened, key figures, parties, datesAInspect
Use when an agent needs a Korean corporate disclosure in English. Input: rcept_no (14-digit DART receipt number from /v1/kr/filings). Output: JSON with headline, what_happened, key_figures (amounts, ratios, share counts with units), parties, key_dates, why_it_matters, confidence, original Korean title and DART link. Machine-generated paraphrase, not the official text. Unknown rcept_no or model outage is refused before payment. Example: ?rcept_no=20261023000123 Price: $0.02 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| rcept_no | Yes | DART receipt number (14 digits) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does so: it discloses that output is a machine-generated paraphrase rather than official text, that unknown rcept_no or model outage is refused before payment, and the exact price and payment rails ($0.02 USDC on Base or Solana via x402). That is precisely the pre-call context a paying agent needs.
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-loaded with the use case, then labeled Input/Output/Example/Price segments, so an agent can scan quickly. It is slightly over-packed, cramming the full output field list, the payment rail, and the price into dense lines, but no sentence is truly wasted.
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?
There is no output schema, so the description enumerates the return fields (headline, what_happened, key_figures, parties, key_dates, why_it_matters, confidence, original title, DART link), plus cost, refusal behavior, and the paraphrase caveat. Nothing an agent needs to decide or call correctly is missing.
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 coverage is 100% for the single parameter, so baseline would be 3; the description adds provenance the schema lacks — where to obtain the 14-digit rcept_no (/v1/kr/filings) and a concrete format example. It does not explain failure modes for malformed input beyond the generic refusal, keeping it just short of 5.
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+resource — an English summary of a Korean DART corporate disclosure — and the title reinforces it with what happened, key figures, parties, dates. It is clearly distinct from the sibling kr_filings, which supplies the rcept_no this tool consumes, so an agent can tell the two apart without opening schemas.
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?
"Use when an agent needs a Korean corporate disclosure in English" gives a clear selection context, and the input note pointing to /v1/kr/filings implicitly routes the agent to the listing tool first. It stops short of explicit when-not guidance (e.g. when the original Korean text or a raw filing fetch is preferable), so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_policy_latestKorea policy feed in English: latest government policy and legislative notices with English briefsAInspect
Use when an agent tracks South Korean government policy, regulation or draft legislation in English. Input: optional q (keyword, Korean or English), date (YYYY-MM-DD KST), limit (1-20, default 5). Output: JSON items with Korean title, official link, published time and English brief {title_en, summary_en, agency_en, category, key_points}. Machine translation; check the official page. Example: ?q=AI&limit=5 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keyword filter (title/summary, Korean or English) | |
| date | No | Only items published that KST day | |
| limit | No | Max items (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full load and does reasonably well: it discloses the machine-translation caveat ('check the official page'), the per-call price and payment rails (x402, USDC on Base or Solana), and the KST time basis. It omits rate limits, error/empty-result behavior, and whether payment is required per request or per session.
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-loaded with the use condition, then input, output, caveat, example, and price in that order, with no filler sentences. The example query is compressed to ?q=AI&limit=5 rather than a prose walkthrough.
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 responsibly enumerates returned fields (Korean title, official link, published time, English brief with title_en/summary_en/agency_en/category/key_points) and the translation caveat. What remains thin is failure behavior and freshness/latency of the 'latest' feed.
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 coverage is 100%, so the baseline is 3, but the description adds real meaning: q accepts Korean or English, date must be YYYY-MM-DD in KST, and limit is bounded 1-20 with default 5 (the schema only says 'default 5' with no range). That extra constraint is the kind of detail an agent cannot get from the structured fields.
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: tracking South Korean government policy, regulation, and draft legislation, in English with briefs. That scope is separable from siblings like kr_filings, kr_filing_summary, and kr_bok_ecos_series 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit 'Use when...' condition naming the tracking use case, and the example query shows a concrete invocation. It stops short of naming when-not conditions or the sibling tools an agent should prefer for corporate filings or economic series.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_public_holidaysKorean public holidays for a year (KASI): South Korea holiday calendar with English namesAInspect
Use when you need South Korea's official public holidays for a year (business-day calculation, scheduling, settlement and payroll calendars). Data: KASI (Korea Astronomy and Space Science Institute) special-day register, incl. substitute and temporary holidays once promulgated. Input: year (YYYY, 2004-2100). Output: JSON list with date, weekday, Korean and English name, isPublicHoliday, kind. Example: ?year=2026 Price: $0.0027 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year YYYY (2004–2100) |
TDQS
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 the upstream data source, that substitute/temporary holidays are included only once promulgated (a real freshness caveat), the exact response shape, and notably the monetization model — $0.0027 USDC via x402 on Base or Solana. It does not mention rate limits, error behavior for out-of-range years, or caching, which keeps it from a 5.
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?
Dense but front-loaded: the "Use when" clause leads, followed by labeled fragments for data source, input, output, example, and price. Every segment carries information, though the telegraphic labeling style ("Data:", "Input:", "Price:") reads more like a spec sheet than prose.
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?
There is no output schema, and the description compensates by enumerating the returned fields (date, weekday, Korean and English name, isPublicHoliday, kind). Combined with the input range, source, and payment requirement, an agent has everything needed to call it correctly.
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 coverage is 100% and the single parameter's description already states the YYYY format and the 2004–2100 bounds. The description repeats that range and adds only a usage example (?year=2026), so it adds little meaning beyond the schema — baseline 3.
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+resource (South Korea's official public holidays for a year) and pins down the data source (KASI special-day register) plus the scope that matters for correctness (substitute and temporary holidays once promulgated). No sibling covers holidays, so it is unambiguously the right tool for this need.
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?
"Use when you need ... (business-day calculation, scheduling, settlement and payroll calendars)" gives concrete triggering contexts, which is more than most definitions offer. It stops short of naming exclusions or pointing to any alternative (e.g. a generic calendar/time tool such as time_convert), so it is clear but not fully routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_supplier_checkKorea company KYB / Korean supplier check: identity, NTS business status, DART profile, public-procurement record and sanctions in one callAInspect
Use when an agent must vet a South Korean supplier or counterparty before paying, contracting or onboarding it. Input: one of business_number, dart_corp_code, stock_code or q (exact company name). Output: JSON summary (riskLevel, riskFlags such as closed/suspended or sanctions match, per-section status) plus NTS status, DART profile, 12-month KONEPS award summary and OFAC/EU/UK screening of the English name. Not a legal determination. Example: ?stock_code=005930 Price: $0.015 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Company name (Korean or English), matched exactly after removing legal-form words | |
| stock_code | No | KRX stock code | |
| dart_corp_code | No | OpenDART corp_code (8 digits) | |
| business_number | No | Business registration number (사업자등록번호), 10 digits |
TDQS
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 the composite data sources (NTS, DART, 12-month KONEPS, OFAC/EU/UK screening), the shape of the result (riskLevel, riskFlags, per-section status), the scope limit that sanctions screening runs on the English name only, and the pricing/payment rail (x402, USDC on Base or Solana). It omits failure behavior, e.g., what happens when no company matches or when multiple candidates match the supplied name.
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-loaded with the 'Use when' trigger, then Input, Output, caveat, example and price, each sentence carrying distinct information. The example (?stock_code=005930) and price line are compact and actionable rather than filler.
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 and no annotations, the description does the necessary work: it enumerates the returned sections and the risk summary, states the screening scope, and gives cost. Remaining gaps are edge behavior such as ambiguous or unmatched company names and any rate limits, which matter for an agent deciding whether to retry.
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 coverage is 100%, so the per-field meanings are already documented. The description nonetheless adds cross-parameter semantics the schema lacks: it states that exactly one of business_number, dart_corp_code, stock_code or q should be supplied, which is not encoded anywhere in the schema (no oneOf, required is empty). The note that q is an exact name match is echoed from the schema rather than added.
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 specific verb ('vet') and a specific resource ('South Korean supplier or counterparty') and clarifies it bundles NTS status, DART profile, procurement awards and sanctions in one call, which separates it from single-purpose siblings like kr_business_status or sanctions_screen. It does not, however, distinguish itself from the closely named sibling kyb_check, leaving an ambiguity an agent must resolve by guessing.
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?
'Use when an agent must vet a South Korean supplier or counterparty before paying, contracting or onboarding it' gives a clear triggering context, and 'Not a legal determination' sets a usage boundary. It stops short of naming alternatives or exclusion cases (e.g., use kr_company_profile when only a profile is needed, or sanctions_screen for address-level screening).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_trade_exports_10dayKorea 10-day export flash (Korea Customs): totals, YoY, top items and marketsAInspect
Use when you need South Korea's earliest export read: the Korea Customs 10-day provisional release (days 1-10, 1-20, full month; out on the 11th, 21st and 1st). Input: optional month (YYYYMM) and period (10, 20, full); default latest. Output: JSON exports in USD with YoY %, latest 10-day increment, 10 key items (semiconductors, cars, ships...) and 10 markets (China, US, EU, Vietnam...) with YoY and share, next release date. Example: ?month=202609 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Release month YYYYMM (default: latest release; data from 2024-09) | |
| period | No | 10 (days 1-10), 20 (days 1-20) or full; requires month. Default: latest available for the month |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and it does real work: it discloses the release schedule (11th, 21st, 1st), the paid x402 access model with price and chains, and the data start date. It does not cover failure modes or rate/limit behavior.
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-loaded with the use condition, followed by input/output/example/price in a compact sequence with no filler. The single long sentence is dense but each clause carries distinct 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?
With no output schema, the description must describe returns, and it lists USD exports, YoY, the 10-day increment, key items, markets, shares, and next release date. Missing only edge-case behavior (e.g. unavailable month) to be fully complete.
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 coverage is 100%, so baseline is 3; the description goes further by giving a concrete example query (?month=202609) and restating the default-latest behavior and the period/month dependency in plain language.
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?
Names a specific verb and resource ('Korea Customs 10-day provisional release') and pins the scope (days 1-10, 1-20, full month). It clearly separates itself from the other Korea trade siblings by framing this as the earliest/flash read.
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?
'Use when you need South Korea's earliest export read' gives a clear use condition, and the release cadence tells the agent when data exists. It does not explicitly say when to prefer kr_trade_hs or kr_trade_pulse instead, so it falls short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_trade_hsKorea monthly exports/imports by HS code (Korea Customs), English HS descriptions, YoYAInspect
Use when you need South Korea's monthly trade for a product by HS code (e.g. 8542 chips, 870323 cars, 2710 petroleum). Data: Korea Customs Service, finalized monthly. Input: hs (2-10 digit prefix), optional month (YYYYMM, default latest), limit (1-100), sort (exports, imports, balance, total). Output: JSON totals (exports FOB, imports CIF, balance in USD, kg) with YoY % and 10-digit HSK lines with English HS descriptions and YoY. Example: ?hs=8542&month=202608 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| hs | Yes | HS code prefix, 2-10 digits (e.g. 8542 integrated circuits, 870323 passenger cars) | |
| sort | No | Line order (default exports) | |
| limit | No | Max 10-digit lines returned (1-100, default 20) | |
| month | No | Month YYYYMM (default: latest finalized month) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the data source and that figures are finalized monthly, plus the x402 payment requirement and price, which is genuinely useful. However, it never states permissions, whether results are cached, error behavior for invalid prefixes, or latency/rate characteristics of a paid endpoint — a significant gap for a metered 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?
One dense, front-loaded block covering trigger, data, inputs, outputs, example, and price — every clause carries information. The final price/example sentence is slightly crowded and breaks the input/output rhythm, keeping it just short of ideal.
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?
There is no output schema, so the description must explain return values, and it does: JSON totals in USD (exports FOB, imports CIF, balance, kg) plus 10-digit HSK lines with English descriptions and YoY percentages. Combined with the worked example, an agent has everything needed to call and interpret it.
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 coverage is 100%, so the baseline is already 3, and the description adds real value on top: it enumerates the sort values (exports, imports, balance, total) and the default latest month, neither of which the schema spells out. It still doesn't clarify the number-or-string union on limit, but that is a minor omission.
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 — monthly Korean trade by HS code — with concrete HS prefixes as examples (8542, 870323, 2710). The agent can immediately tell this apart from the sibling flash estimators kr_trade_exports_10day and kr_trade_pulse because the title and description anchor on finalized monthly Customs data.
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?
Opens with an explicit trigger: 'Use when you need South Korea's monthly trade for a product by HS code.' That is a clear usage context, but it never states when NOT to use it or names an alternative for flash/10-day estimates, so routing against siblings is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_trade_pulseKorea Trade Pulse: latest export flash, 12-month trend and semiconductor detail in one callAInspect
Use when you need a one-call read on South Korea's export cycle for macro, FX or chip-sector analysis. Data: Korea Customs 10-day and monthly releases. Input: none. Output: JSON headline (latest exports and YoY, semiconductor share, strongest/weakest item and market, 3-month average YoY, momentum), latest release by item and market, 12 monthly export totals with YoY, and HS 8542 integrated-circuit trade for the latest month. Example: /v1/trade/pulse Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden and does well: it names the data source (Korea Customs 10-day and monthly releases), states there are no inputs, enumerates the return contents, and discloses pricing/payment via x402. It does not mention update cadence beyond 'latest release', rate limits, or latency, leaving minor behavioral gaps.
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 usage condition, then efficiently covers data source, input, output shape, example endpoint, and price. Every element earns its place because there is no output schema to document the return payload elsewhere.
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?
Given zero parameters, no annotations, and no output schema, the description supplies the necessary context: data source, input absence, detailed return fields, example endpoint, and payment cost. An agent can understand what it gets and how to invoke it without needing additional structured fields.
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 parameter semantics are inherently simple. The description explicitly says 'Input: none', which matches the schema. Baseline for zero parameters is 4.
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 clearly states a specific capability: a one-call read on South Korea's export cycle for macro, FX, or chip-sector analysis. It covers the data sources and output dimensions, so the purpose is concrete. It does not explicitly differentiate itself from nearby siblings such as kr_trade_exports_10day or kr_trade_hs, which keeps it from 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 opening sentence gives clear usage context: use when you need a consolidated read on Korea's export cycle for macro, FX, or chip-sector analysis. It does not state when to avoid this tool or name alternatives like the more granular trade siblings, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kr_weather_forecastKorea short-term weather forecast (KMA) by latitude/longitudeAInspect
Use when you need the official weather forecast for a point in South Korea for the next ~3-5 days. Data: KMA (Korea Meteorological Administration) village forecast on a 5 km grid, issued 8 times a day. Input: lat, lon (WGS84 decimal; Korea only). Output: JSON hourly then 3-hourly temperature C, sky, precipitation type and probability %, rain and snow amounts, humidity %, wind; plus daily min/max. Example: ?lat=37.5665&lon=126.978 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, WGS84 decimal degrees (KMA domain ≈ 32–44; outside → 400, not charged) | |
| lon | Yes | Longitude, WGS84 decimal degrees (KMA domain ≈ 123–133) |
TDQS
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 the data provider, update cadence (issued 8 times a day), grid resolution, the x402 payment requirement and price ($0.0045 USDC on Base or Solana), and that out-of-domain requests return 400 without charge. Missing only rate limits/response latency.
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 when-to-use clause is front-loaded, followed by tight Data/Input/Output/Example/Price segments that are easy to scan. It is dense but nearly every clause carries information an agent needs; the example URL is the only borderline-redundant element.
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 enumerates the return payload (hourly then 3-hourly temperature, sky, precipitation type/probability, rain/snow amounts, humidity, wind, daily min/max) and covers pricing and error behavior. It is nearly complete for a two-parameter point forecast; only units for wind and response size are unstated.
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 coverage is 100% and both parameters are already documented with WGS84 format and KMA domain bounds, so the baseline is 3. The description reinforces 'WGS84 decimal; Korea only' and adds a concrete example query string, but contributes no semantics beyond the schema.
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+resource (official weather forecast), the exact geographic scope (a point in South Korea), the horizon (~3-5 days), and the source (KMA village forecast on a 5 km grid). This clearly separates it from the sibling weather_global without needing to open either schema.
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?
Opens with an explicit 'Use when you need...' trigger plus the 'Korea only' constraint, which is clear usage context. It stops short of naming weather_global as the alternative for non-Korean points, so the exclusion is implied by geography rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyb_checkKYB check: sanctions (OFAC, EU, UK) + LEI identity + EU VAT validation in one callAInspect
Use when an agent must vet a company or counterparty before paying, onboarding or invoicing. Input: name, optional country (ISO2), lei, vat (EU, with prefix). Output: JSON summary (sanctions hits, LEI found/status, VAT valid), sanctions matches across OFAC SDN, EU and UK lists, GLEIF entity record with parents, VIES VAT result; a down VIES/GLEIF marks only that part. Not a legal determination. Example: ?name=Siemens+AG&lei=W38RGI023J3WT1HWRP32&vat=DE129273398 Price: $0.02 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Legal Entity Identifier, if known (exact LEI lookup instead of name search) | |
| vat | No | EU VAT number with country prefix (Greece = EL), validated in VIES | |
| name | Yes | Company or person name in Latin script | |
| country | No | ISO 3166-1 alpha-2 country of the legal address (narrows the LEI search) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the return summary, the specific sanctions lists, GLEIF parent data, VIES results, partial-failure behavior ('a down VIES/GLEIF marks only that part'), the legal disclaimer, and the x402 payment cost/rails. It stops short of rate limits, caching, or idempotency details.
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-loaded with the use case and structured into input/output/example/price. Dense but largely purposeful; the long output enumeration could be tightened slightly.
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?
For a four-parameter tool with no output schema, the description explains what comes back (sanctions hits, LEI status, VAT validity, GLEIF parents), partial failure behavior, and payment requirements. An agent has enough to invoke and interpret it correctly.
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 coverage is 100%, so the schema already documents name, country, lei, and vat with useful descriptions. The description restates inputs and adds a worked example, but does not add semantics beyond the schema (e.g., matching behavior for names or format nuances for lei/vat).
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 specific verbs and resources: vet a company/counterparty with sanctions (OFAC/EU/UK), LEI, and EU VAT checks. The combined scope clearly distinguishes it from single-purpose siblings like sanctions_address or sanctions_screen.
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?
Explicitly says when to use it: before paying, onboarding, or invoicing. It does not name alternative tools or when-not-to-use cases, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
llm_model_pricesLLM model price lookup, token cost calculator and cheapest-model finderAInspect
Use when an agent must price an LLM call or pick the cheapest model. Input: model (up to 5, comma list) plus optional input_tokens, output_tokens, requests; or no model plus mode, provider, min_context, capabilities (vision, function_calling...). Output: JSON USD per 1M input/output tokens, cached/batch prices, context window, provider, capabilities, cost estimate or cheapest ranking, as_of + source commit. Example: ?model=gpt-4o&input_tokens=12000&output_tokens=800 Price: $0.004 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Model type for the cheapest search (default chat; chat includes responses-API models). Ignored when model is given | |
| limit | No | Max rows per model or in the ranking (default 10) | |
| model | No | Model name(s), up to 5 comma-separated (gpt-4o, claude-sonnet-4-5, gemini/gemini-2.5-flash). Also lists the same model at other providers. Omit to rank the cheapest models. Unknown → 400 with suggestions (not charged) | |
| provider | No | LiteLLM provider id filter: openai, anthropic, gemini, vertex_ai, bedrock, azure, groq, deepseek, mistral... | |
| requests | No | Number of requests to multiply the estimate by (default 1) | |
| min_context | No | Minimum context window (max input tokens) | |
| capabilities | No | Comma-separated required capabilities: vision, function_calling, reasoning, prompt_caching, response_schema, pdf_input, audio_input, audio_output, web_search, computer_use, video_input | |
| input_tokens | No | Input (prompt) tokens per request, for the cost estimate and ranking | |
| output_tokens | No | Output (completion) tokens per request | |
| include_deprecated | No | Include models past their deprecation date in the cheapest search (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: output shape (per-1M input/output, cached/batch, context window, as_of + source commit) and the payment mechanism (x402, $0.004 USDC on Base or Solana). It omits auth/rate-limit details and whether failed calls are billed beyond the 'not charged' note that lives in the schema.
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-loaded with the usage trigger, then inputs, outputs, example, and price in a compact sequence. It is dense and slightly run-on in the output enumeration, but every clause carries 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?
For a 10-parameter tool with no output schema and no annotations, the description covers both input modes and enumerates return fields plus the billing model. Remaining gaps (auth requirements, pagination/limit behavior nuances) are minor.
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 coverage is 100%, so baseline is 3, but the description adds real meaning: the mutual exclusivity of the two parameter groups (model vs. mode/provider/min_context/capabilities) and a concrete example query string. That interplay is not spelled out in the schema descriptions.
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 specific verbs and resources: pricing an LLM call, calculating token cost, and ranking the cheapest model. The scope (USD per 1M tokens, provider, capabilities) is precise, and no sibling tool in the list overlaps with model pricing, so disambiguation is trivially clear.
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?
Opens with an explicit trigger: 'Use when an agent must price an LLM call or pick the cheapest model,' then splits the two invocation modes (model given vs. no model + filters). No explicit when-not guidance or named alternative, but the context is unambiguous for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_briefNews brief: topic news clustered and deduplicated, English summaries with source links (strong on Korea / Asia)AInspect
Use when an agent needs what is happening on a topic right now, in English, including Korean and Asian news. Input: topic, optional time_range (day, week default, month, year), max (1-10 headlines, default 10). Output: JSON overview, clusters [{headline, summary, sources}] with duplicates merged, and sources (title, url, outlet, publishedAt). Headlines and links only. Failures not charged. Example: ?topic=korea+semiconductor+exports Price: $0.007 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Headlines considered (default 10) | |
| topic | Yes | News topic (any language) | |
| time_range | No | Window (default week) |
TDQS
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: it discloses the return shape (overview, clusters, sources), the content limit ('Headlines and links only' — signaling no full article text), the billing model ($0.007 USDC via x402 on Base or Solana), and 'Failures not charged.' These are exactly the behavioral facts an agent needs before committing a paid call.
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-loaded with the use case, then a compact Input/Output/limits/pricing block — every sentence carries information. The inline example query and price line make it slightly denser than ideal, but nothing is truly wasted.
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 and no annotations, the description supplies the return shape, content limits, cost, and failure policy, which is close to sufficient for a 3-param tool. Minor gaps remain: empty-result behavior and how payment/authentication is actually performed are implied rather than stated.
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 coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: it enumerates time_range values (day, week default, month, year) where the schema only says 'Window (default week)', and bounds max to 1-10 where the schema only says 'Headlines considered (default 10).' That is genuine added value beyond the structure.
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 capability: clustered, deduplicated English-language news on a topic, with Korean/Asian coverage emphasized. The verb+resource ('what is happening on a topic right now') is concrete and the clustering/dedup behavior distinguishes it from a generic web_search. It stops short of naming a sibling to avoid, so it lands just below the top mark.
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?
'Use when an agent needs what is happening on a topic right now, in English' gives a clear triggering condition, reinforced by the example query. There is no explicit when-not or routing to alternatives such as web_search or web_read for full text, so it is clear-but-bounded rather than exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_pricesToken prices from onchain DEX pools (Base and Solana), with pool, depth and confidenceAInspect
Use when an agent needs a token's USD price without a third-party price feed. Input: tokens (up to 10, base:0x… or sol:). Output: per token priceUsd, confidence, the pool used (Uniswap v3 / Aerodrome on Base, Orca Whirlpool on Solana; fee tier, depth in USD), path (direct USDC or via WETH/SOL), warnings; no price below $1,000 depth. Spot, not TWAP. Example: ?tokens=base:0x940181a94A35A4569E4529A3CDfB74e38FD98631 Price: $0.003 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tokens | Yes | Comma-separated chain:address list, max 10 (base:0x… ERC-20, sol:<mint> base58). Bad input → 400 before payment (not charged) |
TDQS
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 supported chains, the pool venues and routing used, a depth threshold, that results are spot and not TWAP, and that bad input returns 400 before payment. Cost and payment mechanics via x402 are also stated. It omits rate limits, freshness/latency, and caching, which keeps it off a 5.
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 trigger, then uses labeled Input/Output blocks followed by qualification (depth floor, spot-not-TWAP) and price. Dense but every line earns its place; the trailing example and pricing sentence are slightly tacked on rather than integrated.
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?
There is no output schema, and the description fully compensates by enumerating return fields: per-token priceUsd, confidence, pool with fee tier and USD depth, path (direct USDC or via WETH/SOL), and warnings. For a single-parameter read tool this is complete enough to call correctly on the first attempt.
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 coverage is 100% and the single parameter is already documented (comma-separated chain:address, max 10, base:0x…/sol:<mint> base58, 400 on bad input). The description restates that format and adds only a concrete example query, so it adds marginal value over the schema — baseline 3.
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: a token's USD price sourced directly from onchain DEX pools on Base and Solana, naming the exact venues (Uniswap v3 / Aerodrome / Orca Whirlpool). This cleanly separates it from feed-based siblings like fx_rates, llm_model_prices, and the token_info/risk tools.
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?
Explicit trigger: "Use when an agent needs a token's USD price without a third-party price feed," plus a hard usability boundary ("no price below $1,000 depth") that tells the agent when the tool will not answer. It does not name alternative siblings (e.g. base_token_info, fx_rates) or say when to prefer them, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_prices_batchBatch token prices + trade price impact (Base and Solana DEX pools)AInspect
Use when a trading agent needs many token prices at once plus what a buy would really cost. Input: tokens (≤25, base:0x… or sol:, ≤10 Solana), amount_usd (default 1000). Output: per token priceUsd, confidence, pool, depth and a buy estimate: tokensOut, effectivePriceUsd, priceImpactPct (Uniswap v3 QuoterV2 / Aerodrome on Base, CLMM estimate on Orca). Cached 20 s. Example: ?tokens=base:0x4200000000000000000000000000000000000006&amount_usd=5000 Price: $0.008 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tokens | Yes | Comma-separated chain:address list, max 25 (≤10 Solana). Bad input → 400 before payment (not charged) | |
| amount_usd | No | Size of the buy to estimate, in USD (default 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the 20 s cache, the quoting sources (Uniswap v3 QuoterV2 / Aerodrome, Orca CLMM estimate), and the x402 payment price. It omits failure/rate-limit behavior and what happens when a pool lacks depth, so not a 5.
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?
Dense and front-loaded: trigger, input shape, output shape, cache, all in a few clauses. The trailing example is written as a URL query string ('?tokens=...&amount_usd=5000') rather than tool arguments, which is minor noise for a tool whose params are object properties.
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?
For a 2-param tool with no output schema, the description enumerates the returned fields (priceUsd, confidence, pool, depth, tokensOut, effectivePriceUsd, priceImpactPct) and the caching and payment model. An agent has enough to decide and call correctly.
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 coverage is 100%, so both parameters are already documented, including the 25-token cap, Solana sub-limit, and default 1000. The description restates those same constraints and adds no syntax or format meaning beyond the schema, so baseline 3 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?
States a specific verb+resource: batch token prices plus simulated buy cost/price impact across Base and Solana DEX pools. This clearly separates it from the single-token sibling onchain_prices without opening either schema.
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?
'Use when a trading agent needs many token prices at once plus what a buy would really cost' gives an explicit triggering context. It implies batch-vs-single usage but never names onchain_prices as the alternative or states an exclusion for single-token lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
package_vulnerabilitiesOpen-source package vulnerabilities: package@version to CVEs, severity, fixed versionsAInspect
Use when an agent must check a dependency before installing or upgrading: is this exact package version vulnerable? Input: package, ecosystem (npm, PyPI, Go, Maven, crates.io, NuGet, RubyGems, Packagist...), version. Output: JSON vulnerable yes/no, counts by severity, advisories (GHSA/CVE id, summary, severity, CVSS, CWE, fixed versions, links). Data: OSV.dev. Example: ?package=lodash&ecosystem=npm&version=4.17.15 Price: $0.003 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| package | Yes | Package name as in its registry (Go: module path; Maven: group:artifact) | |
| version | Yes | Exact released version | |
| ecosystem | Yes | Package ecosystem (case-insensitive; pip/python, cargo/rust, composer, gem also accepted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses important traits: data comes from OSV.dev, output shape is JSON with severity/advisory details, and usage costs $0.003 USDC via x402. It does not describe rate limits or error behavior, but the key operational facts are present.
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: use case, inputs, outputs, data source, example, and price are each handled in one clause. Every sentence contributes to correct invocation.
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?
For a three-parameter read query with no output schema and no annotations, the description supplies the missing return-value overview, data provenance, cost, ecosystem coverage, and a concrete example. Nothing essential for calling the tool correctly appears absent.
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 100%, so the schema already documents package, version, and ecosystem semantics. The description repeats the input names and adds ecosystem examples plus a sample query, but adds only limited meaning beyond the structured schema.
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: check whether an exact package version is vulnerable before installing or upgrading. It names the focused query and immediately clarifies the intended dependency-checking scenario, making the tool distinguishable from unrelated sibling tools.
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 clear context for when to use the tool: 'before installing or upgrading' to check a dependency. It does not name when-not-to-use cases or alternatives, but no obvious sibling tool covers vulnerability checking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_pdfRender to PDF: HTML, Markdown or a web page to a print-ready PDF (Korean fonts included)AInspect
Use when an agent must hand over a document as a PDF (report, invoice, summary, receipt). Input: GET ?url= for a public page, or POST JSON {html | markdown | url, format A4|Letter, landscape, margin_mm}. Markdown gets a clean stylesheet with Korean fonts. Output: JSON fileBase64 (decode to the PDF), bytes, page settings. Headless Chrome on Cloudflare. Bad input or daily cap refused before payment. Example: ?url=https://example.com/ Price: $0.01 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) page to render (GET). For html/markdown use POST JSON. | |
| html | No | HTML to render (MCP argument or POST JSON; alternative to url/markdown) | |
| format | No | Page size (default A4) | |
| markdown | No | Markdown to render (MCP argument or POST JSON; alternative to url/html) | |
| landscape | No | 1 = landscape | |
| margin_mm | No | Page margin in mm (default 12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so: it discloses the payment model ($0.01 USDC via x402 on Base or Solana), that bad input or the daily cap is refused before payment, the execution engine (headless Chrome on Cloudflare), and the exact output shape (JSON fileBase64 to decode, bytes, page settings). That is precisely the behavioral context an agent needs before committing a paid call.
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-loaded with the when-to-use clause, then input, output, engine, error and price in six tight sentences — no filler. The telegraphic shorthand ('Input: GET ?url=', 'Price: $0.01 USDC') trades some readability for density.
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?
For a 6-param tool with no annotations and no output schema, the description covers the return payload (fileBase64, bytes, page settings), the payment and refusal behavior, and the rendering backend. Gaps are minor: no mention of render timeouts, JS/pagination handling, or max input size.
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 coverage is 100%, so baseline is 3, but the description adds real value beyond it: it supplies the format values A4|Letter that the schema's enum-less 'Page size' field lacks, explains the GET-vs-POST split for url/html/markdown, and shows a concrete usage example. Margin units and landscape semantics are left to the schema.
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 concrete verb and resource (render HTML, Markdown, or a public page to a print-ready PDF) and enumerates the artifact types it serves (report, invoice, summary, receipt). It reads clearly distinct from sibling render_png and from the conversion siblings like convert_to_markdown.
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 opening 'Use when an agent must hand over a document as a PDF' gives an explicit trigger, and the input section clarifies which mode to choose (GET ?url= for public pages, POST JSON for html/markdown). It stops short of naming alternatives such as render_png or convert_to_markdown or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_pngRender to image: HTML, Markdown or a web page to a PNG (cards, charts, previews)AInspect
Use when an agent must turn its own HTML or Markdown into an image (social card, chart, table snapshot, preview) or capture a page as PNG. Input: GET ?url=, or POST JSON {html | markdown | url, width 320-1920, full_page}. Korean fonts included. Output: JSON fileBase64 (decode to the PNG), bytes, viewport. Bad input or daily cap refused before payment. Example: ?url=https://example.com/ Price: $0.01 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) page to render (GET). For html/markdown use POST JSON. | |
| html | No | HTML to render (MCP argument or POST JSON; alternative to url/markdown) | |
| width | No | Viewport width in px (default 1024) | |
| markdown | No | Markdown to render (MCP argument or POST JSON; alternative to url/html) | |
| full_page | No | 1 = whole page (default), 0 = first screen only |
TDQS
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: it discloses that Korean fonts are included, that bad input or the daily cap is refused before payment, and that the call costs $0.01 USDC via x402 on Base or Solana. It also states the exact output shape (JSON fileBase64 to decode, bytes, viewport), which is essential for a paid tool with no output schema.
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?
Dense and front-loaded: purpose first, then input contract, output shape, failure behavior, example, and price. Every clause earns its place, though the telegraphic 'Input: GET ?url=, or POST JSON {...}' phrasing is terse to the point of being slightly cryptic.
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?
For a paid, multi-mode rendering tool with no output schema and no annotations, the description covers invocation modes, output decoding, pricing, and pre-payment validation — everything an agent needs to call it correctly and anticipate cost or refusal.
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 coverage is 100%, so the baseline is 3, but the description adds real value beyond it: the width range 320-1920 (schema only gives the default), the GET-vs-POST usage split, and the meaning of full_page. Minor gap: 'full_page' is typed as a string in schema while the description writes it as a boolean-ish flag.
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 precise verb+resource: converting the agent's own HTML/Markdown or a URL into a PNG, with named use cases (social card, chart, table snapshot, preview). It does not explicitly contrast with close siblings like render_pdf or web_screenshot, so differentiation is left to inference.
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 opening 'Use when an agent must turn its own HTML or Markdown into an image... or capture a page as PNG' gives a clear triggering context. There are no explicit exclusions or named alternatives (e.g., when to prefer render_pdf or web_screenshot), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_addressOFAC sanctions wallet check: crypto address against the U.S. SDN listAInspect
Use when an agent must check a crypto wallet against the digital currency addresses on the U.S. Treasury OFAC SDN list before paying or accepting funds. Input: address (EVM matched on every EVM chain; BTC, TRX, SOL...), optional chain. Output: JSON listed yes/no, SDN entry, programs, listed currency and network, OFAC link, list as-of date, data age. Not a legal determination. Example: ?address=0x098B716B8Aaf21512996dC57EB0615e2383E2f96 Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Optional chain (ethereum, base, bitcoin, tron, solana, …): checks the address format and marks listings on that network | |
| address | Yes | Crypto address to check (0x… EVM, BTC, TRX, SOL, …) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load well: it discloses the output fields (listed yes/no, SDN entry, programs, network, list as-of date, data age), a legal caveat ('Not a legal determination'), and the payment/auth model ($0.0045 USDC via x402). It omits error behavior and any rate limits, so it falls short of exhaustive.
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 usage trigger, then labels Input/Output and closes with pricing — a clear structure. Most sentences earn their place, though the example URL is terse and the price sentence borders on promotional.
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?
There is no output schema, so the description must describe returns, and it does so thoroughly (listed flag, SDN entry, programs, currency/network, link, as-of date, data age), plus input formats, caveat, and cost. An agent has everything needed to call it correctly.
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 100%, and the schema already explains both address and chain, including the EVM/BTC/TRX/SOL formats and the optional-chain behavior. The description largely restates this, adding only the 'EVM matched on every EVM chain' nuance, so baseline 3 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?
States a specific verb and resource: checking a crypto wallet address against OFAC's digital-currency SDN list. The scope ('digital currency addresses') implicitly distinguishes it from the sibling sanctions_screen, which covers name/entity screening, so an agent can tell the two apart.
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 condition: 'use when an agent must check a crypto wallet ... before paying or accepting funds.' It does not explicitly name sanctions_screen as the alternative for non-address screening, so the when-not case is only implied by the input type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_address_batchOFAC wallet screening in bulk: up to 50 crypto addresses (EVM, BTC, TRX, SOL, …) in one callAInspect
Use when an agent must screen many wallets at once (payouts, counterparty lists) against OFAC SDN wallet addresses. Input: addresses (1-50, comma-separated, mixed chains) or POST JSON {addresses:[...]}. Output: per address listed yes/no, detected chains, SDN entity, programs; summary counts; list date. Unknown formats refused before payment. Not a legal determination. Example: ?addresses=0x098B716B8Aaf21512996dC57EB0615e2383E2f96,TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81 Price: $0.01 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | 1-50 crypto addresses, comma-separated (0x… EVM, BTC, TRX, SOL, LTC, XMR, …) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses cost and payment rail ($0.01 USDC on Base or Solana via x402), validation behavior ('unknown formats refused before payment'), output contents, and a legal disclaimer ('Not a legal determination'). It does not cover latency, rate limits, or failure semantics for partially-valid batches.
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-loaded with the usage trigger, then input, output, caveat, example, and price in a tight sequence — every clause carries information. It is dense to the point of being crowded (formats, example addresses, pricing all in one paragraph), costing a bit of readability.
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?
There is no output schema, and the description compensates fully by enumerating return fields (per-address yes/no, detected chains, SDN entity, programs, summary counts, list date). Combined with the payment and validation details, an agent has everything needed to call it correctly.
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 coverage is 100%, so the single parameter is already documented. The description still adds value by presenting the alternative POST JSON {addresses:[...]} body form and reinforcing the 1-50 mixed-chain constraint, which is more than restating the schema.
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+resource+scope: screening many wallets at once (up to 50, mixed chains) against OFAC SDN wallet addresses. The 'many at once / bulk' framing cleanly separates it from the single-address sibling sanctions_address without needing to name it.
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?
Explicitly says 'Use when an agent must screen many wallets at once (payouts, counterparty lists)', giving concrete triggering scenarios. It lacks an explicit when-not or a named pointer to sanctions_address for single-address screening, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screenOFAC sanctions name search: people, companies, vessels on the U.S. SDN listAInspect
Use when an agent must check a person, company, vessel or aircraft against the U.S. Treasury OFAC SDN list before paying, onboarding or shipping. Input: name (fuzzy, aliases included), optional type, min_score, limit. Output: JSON potential matches with score, SDN entry, programs, countries, aliases, OFAC link, list as-of date, data age. Not a legal determination. Example: ?name=Lazarus+Group Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Person, company, vessel or aircraft name in Latin script; fuzzy match over SDN names and aliases | |
| type | No | Only match this SDN entry type | |
| limit | No | Max matches (default 10) | |
| lists | No | Lists to search: ofac (default), eu, uk, comma-separated, or all | |
| min_score | No | Name match threshold 0.6-1 (default 0.85) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses the return payload fields (score, programs, countries, aliases, OFAC link), freshness metadata (list as-of date, data age), a legal disclaimer ('not a legal determination'), and the pricing/payment mechanism. It omits auth/rate-limit details, keeping it just short of a 5.
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-loaded with the trigger and input/output shape in tight, information-dense form; the example and price are useful for x402 callers. The single block is slightly crammed, but every sentence contributes.
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?
Substitutes for a missing output schema by naming the return fields and adding freshness and legal caveats, which is exactly what an agent needs before acting on a hit. The main hole is the undisclosed multi-list capability, which affects how results should be interpreted.
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 100%, so the schema already documents all five parameters, making 3 the baseline. The description corroborates fuzzy matching with aliases and gives a worked example, but it mentions only the OFAC list and never surfaces the `lists` parameter (eu, uk, all) that the schema exposes, so it undersells an agent-relevant capability.
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 (check/screen) and resource (name against the U.S. Treasury OFAC SDN list), covering persons, companies, vessels and aircraft. The 'OFAC sanctions name search' framing makes it clearly distinct from sibling sanctions_address, which screens addresses rather than names.
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 an explicit when-to-use trigger: 'before paying, onboarding or shipping'. This is clear operational context. It does not explicitly route between sanctions_screen and sanctions_address, though the name-vs-address subject matter makes the split fairly self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_txOFAC transaction screening: every party of a Base (or Solana) transaction against the SDN wallet listAInspect
Use when an agent must check a transaction before accepting or relaying funds: screens its direct parties (sender, recipient, contracts, token Transfer parties on Base; accounts and token owners on Solana) against OFAC SDN wallet addresses. Input: tx, network (eip155:8453 default, or solana). Output: verdict, parties, roles, listed yes/no, SDN entity, programs, tx status, list date. Bad formats refused before payment. Not a legal determination. Example: ?tx=0x… Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | Transaction hash (0x…, Base) or signature (base58, Solana) | |
| network | No | Network (default eip155:8453 = Base) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that bad formats are refused before payment, states the price and payment rail (x402, $0.009 USDC), and adds a 'not a legal determination' caveat. It stops short of describing rate limits, latency, or what happens on a valid-format but unlisted/unknown tx.
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-loaded with the usage trigger, then input/output/behavior/price in a compact telegraphic style; every segment carries information. Slightly list-like density makes it less readable than prose, but there is no filler.
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?
No output schema exists, and the description compensates by enumerating returned fields (verdict, parties, roles, listed yes/no, SDN entity, programs, tx status, list date). Together with the input format and payment note this is nearly complete for a 2-param screening call; only error/edge behavior is left implicit.
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 coverage is 100%, so baseline is 3, and the description adds real value beyond the schema by naming the accepted network values ('eip155:8453 default, or solana') which the schema leaves as an open string with no enum, plus a usage example '?tx=0x…'. It does not explain edge cases like what tx formats are rejected.
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 ('screens its direct parties ... against OFAC SDN wallet addresses') and enumerates exactly what is screened on each chain (sender, recipient, contracts, Transfer parties on Base; accounts and token owners on Solana). This transaction-level scope is clearly distinguishable from the address-level siblings like sanctions_address and sanctions_screen.
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 an explicit trigger condition: 'Use when an agent must check a transaction before accepting or relaying funds.' That is a clear use context, but it does not name alternatives (e.g., when to prefer sanctions_address or sanctions_addr_batch instead) or state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
satellite_compareSatellite before/after: two clearest Sentinel-2 scenes, images and NDVI change for any placeAInspect
Use when checking what changed at a place between two dates (construction, deforestation, flooding, crops). Input: lat, lon, radius_m (200-10000), before and after dates (20+ days apart). Output: JSON per date: clearest scene, area cloud %, NDVI mean/median, true color, NDVI and false color PNG URLs; NDVI change and reliability. No scene: 404, not charged. Example: ?lat=37.5665&lon=126.978&before=2026-04-15&after=2026-10-08 Price: $0.018 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, WGS84 decimal degrees | |
| lon | Yes | Longitude, WGS84 decimal degrees | |
| size | No | Image width/height in px (default 768) | |
| after | Yes | Later date YYYY-MM-DD, at least 20 days after before | |
| before | Yes | Earlier date YYYY-MM-DD (2017-01-01 or later) | |
| radius_m | No | Half-width of the square area in meters (default 2000) | |
| window_days | No | Search ± days around each date (default 15) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden and does so well: it discloses the per-date return shape (clearest scene, cloud %, NDVI mean/median, three PNG products), the derived change + reliability fields, the failure mode (404 when no scene) with the significant commercial consequence that it is not charged, and the x402 payment price and rails. Cost, error behavior, and payment mechanics are exactly the traits an agent cannot get from structured fields.
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-loaded with the 'Use when' trigger, then organized into Input / Output / Error / Example / Price blocks — nothing is wasted. The telegraphic spec-sheet phrasing ('Output: JSON per date: …') is dense but scannable; a slightly less compressed output sentence would read better.
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, 7 parameters, and no annotations, the description covers the essentials an agent needs: trigger, inputs, return payload, error semantics, and price. Remaining gaps are minor — what 'reliability' measures and the two optional tuning params (size, window_days) are never mentioned.
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 coverage is 100%, so the baseline is 3, but the description adds genuinely new constraints not in the schema: the radius_m operating range of 200–10000 m (schema only gives the default) and a fully worked query example for lat/lon/before/after. It omits size and window_days entirely, and drops the schema's '2017-01-01 or later' floor for `before`.
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+resource pair — checking what changed at a place between two dates — and enumerates the concrete use cases (construction, deforestation, flooding, crops). It implicitly distinguishes itself from satellite_image (single scene) and satellite_trend (time series) via the 'two dates before/after' framing, but never names those siblings explicitly.
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?
Opens with 'Use when checking what changed…' which is a clear positive selection rule, and adds hard preconditions (dates 20+ days apart, radius 200–10000). It gives no exclusions or explicit pointers to satellite_image / satellite_trend for single-date or long-series needs, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
satellite_imageSatellite image of any place: clearest recent Sentinel-2 scene, true color or NDVIAInspect
Use when an agent must see a place from above or check vegetation, water or change. Input: lat, lon, radius_m (200-10000), mode (true_color, false_color, ndvi, ndwi, moisture), date, days back, max_cloud. Picks the clearest Sentinel-2 scene by cloud share inside your area, not the whole tile. Output: JSON PNG URL (+ other modes), scene date, area cloud %, alternatives. No scene: 404, not charged. Example: ?lat=37.5665&lon=126.978 Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, WGS84 decimal degrees | |
| lon | Yes | Longitude, WGS84 decimal degrees | |
| date | No | Latest acceptable scene date YYYY-MM-DD (default today; 2017-01-01 or later) | |
| days | No | Look-back window in days before date (default 30) | |
| mode | No | Rendering (default true_color); URLs for the other modes are returned too | |
| size | No | Image width/height in px (default 1024) | |
| radius_m | No | Half-width of the square area in meters (default 2000) | |
| max_cloud | No | Target max cloud % inside the area (default 40); if no scene meets it the clearest is returned with fulfillment=best_available |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does so well: it discloses scene-selection behavior (clearest scene by cloud share inside the requested area, not the whole tile), error semantics ('No scene: 404, not charged'), and payment requirements ('$0.009 USDC (Base or Solana) via x402'), plus the exact output fields. It omits rate limits and whether returned PNG URLs expire, which is the only material gap.
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?
Compact and front-loaded with a Use-when clause followed by Input/Output/Error/Price blocks; nearly every fragment earns its place. It is dense to the point of reading like a manual, but not padded.
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?
No output schema exists, so the description compensates by enumerating returns (JSON PNG URL, scene date, area cloud %, alternatives) and error/payment behavior. It is nearly complete; only minor edges like size default interplay with radius_m and URL lifetime are left implicit and covered by the schema instead.
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 coverage is 100%, so the baseline is 3, but the description adds real value beyond the schema: it enumerates mode values (true_color, false_color, ndvi, ndwi, moisture), states the radius_m working range (200-10000), and clarifies that other mode URLs are returned alongside the chosen one. That goes beyond what the terse schema descriptions provide.
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+resource ('see a place from above'), names the concrete product (Sentinel-2 true color / NDVI imagery) and its scope, so it is immediately distinguishable from every sibling (crypto, KR trade, weather, etc.). An agent knows exactly what capability this unlocks.
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?
'Use when an agent must see a place from above or check vegetation, water or change' gives a clear positive trigger context. There are no realistic alternative siblings to route to, so no exclusion clause is needed, but it also gives no when-not guidance (e.g., clouds/coverage limits).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
satellite_trendVegetation trend from space: monthly Sentinel-2 NDVI and cloud % for any place (1-12 months)AInspect
Use when tracking crops, greenery or land change month by month. Input: lat, lon, radius_m (200-10000), months (1-12), optional end date. Output: JSON series per month: clearest scene, area cloud %, NDVI mean/median, status (ok, cloudy, no_scene), plus min/max and first-to-last change. Numbers only, no images. No scene at all: 404, not charged. Example: ?lat=36.35&lon=127.38&months=6 Price: $0.012 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Last date YYYY-MM-DD (default today) | |
| lat | Yes | Latitude, WGS84 decimal degrees | |
| lon | Yes | Longitude, WGS84 decimal degrees | |
| months | No | Number of calendar months ending with the end month (default 6) | |
| radius_m | No | Half-width of the square area in meters (default 2000) |
TDQS
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: it enumerates the return fields and status values (ok, cloudy, no_scene), states that missing scenes return 404 and are not charged, and discloses the $0.012 USDC x402 payment requirement on Base/Solana. That covers cost, error behavior, and response shape an agent needs before invoking.
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-loaded with the use case, then inputs, outputs, edge case, and price in a compact telegraphic style with no filler. Minor friction from the run-on 'Example: ?lat=... Price: ...' and an example without a base URL, but nothing is wasted.
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?
No output schema exists, yet the description fully specifies the returned series fields, aggregate min/max and change, the no-scene outcome, and payment mechanics. For a 5-parameter read tool with no annotations, an agent has everything needed to call it correctly.
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 coverage is 100%, so the baseline is 3; the description goes beyond it by adding the radius_m valid range (200-10000), the months range (1-12), and a concrete example query. It still lets the schema do most of the per-parameter work.
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 activity (tracking crops, greenery, land change month by month) and the concrete resource (per-month JSON with NDVI mean/median, cloud %, scene status). The phrase 'Numbers only, no images' implicitly separates it from satellite_image and satellite_compare, so an agent can pick 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when tracking crops, greenery or land change month by month' gives a clear triggering context, and the inputs/limits (radius 200-10000, months 1-12) scope it further. There is no explicit when-not or named alternative, which keeps it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_filingsSEC EDGAR filings: 10-K, 10-Q, 8-K and more for any U.S.-listed company by ticker or CIKAInspect
Use when an agent needs a U.S. public company's SEC filings: latest 10-K/10-Q, 8-K events, proxies, S-1s. Input: ticker or cik, optional form (comma list, e.g. 10-K,8-K), since (YYYY-MM-DD), limit. Output: JSON company profile (CIK, name, industry, exchange, fiscal year end) and filings with dates, 8-K item codes and titles, XBRL flags, sec.gov links. Insider forms without filer names. Data: SEC EDGAR. Example: ?ticker=AAPL&form=10-K,8-K Price: $0.0027 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | SEC Central Index Key (e.g. 320193); give ticker or cik | |
| form | No | Only these form types, comma-separated (10-K, 10-Q, 8-K, DEF 14A, S-1, 4, 13F-HR…) | |
| limit | No | Max filings (default 20) | |
| since | No | Only filings on or after this date (YYYY-MM-DD) | |
| ticker | No | U.S. ticker (AAPL, BRK.B); give ticker or cik |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load, and it does: it names the data source (SEC EDGAR), the payment mechanism and price ($0.0027 USDC via x402), and a real limitation ('Insider forms without filer names'). It stops short of rate limits or auth details beyond payment, keeping it out of the top band.
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-loaded with the 'Use when' trigger followed by input, output, and data-source details in a compact block. It is dense but every clause (fields, caveat, pricing example) is informative, with little padding.
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?
No output schema exists, so the description usefully previews the return payload (company profile fields, filing dates, 8-K item codes, XBRL flags, sec.gov links). Combined with input coverage, data source, and pricing, an agent has enough to call it correctly; only auth/rate-limit context is absent.
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 100%, so all five parameters are already documented with examples in the schema. The description restates ticker/cik, form (comma list), since, and limit without adding syntax or format meaning beyond what the schema provides; the example query string adds marginal value.
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 ('needs a U.S. public company's SEC filings') and enumerates the form types covered (10-K/10-Q, 8-K, proxies, S-1s). No sibling in the list offers SEC EDGAR data, so the purpose is unambiguous and easily separated from neighbors like site_profile or web_metadata.
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?
Opens with an explicit 'Use when...' trigger tied to public-company SEC filings and provides a concrete example query. There is no overlapping sibling to exclude against and no when-not guidance, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sepolia_ethTop up Sepolia test ETH from an agent or CI job: 0.1 SepETH per callAInspect
Use when an agent, test suite or CI job needs Sepolia gas now: one x402 call, no faucet login or mainnet history. Input: to (recipient address); sends 0.1 SepETH (1 SepETH: /v1/testnet/sepolia-eth/1). Output: JSON txHash (confirmed before settling), explorerUrl, amountEth, from, to. Daily limits (UTC): 5 SepETH per address (both sizes), 20 overall; checked before payment. Test ETH has no monetary value. Example: ?to=0x000000000000000000000000000000000000dEaD Price: $0.05 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient Ethereum address (EIP-55 checksum if mixed case). Bad input, caps reached or out of stock → 4xx/503 before payment (not charged) |
TDQS
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: it discloses the x402 payment ($0.05 USDC on Base or Solana), that limits are checked before payment, that 4xx/503 means not charged, that the txHash is confirmed before settling, and daily caps per address and overall. These are exactly the behavioral facts an agent needs before spending money.
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-loaded with the use condition and the core behavior (input → amount → output) in a tight sequence. It is dense with high-value facts, though the example URL and price sentence add some visual clutter rather than pure signal.
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?
No output schema exists, and the description enumerates the returned JSON fields (txHash, explorerUrl, amountEth, from, to) plus the confirmation guarantee. For a one-parameter paid call, everything needed to invoke and interpret the result is present.
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 coverage is 100%, so the baseline is 3; the description adds a worked example (?to=0x...dEaD) and restates the recipient meaning, which helps concretely. The EIP-55 checksum detail lives only in the schema, so the description stops just short of fully supplementing.
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 action and asset: sends 0.1 SepETH to the given recipient via a single x402 call. It explicitly distinguishes itself from the sibling sepolia_eth_1 by noting the 1 SepETH variant path, so an agent can pick the right size without opening either schema.
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?
"Use when an agent, test suite or CI job needs Sepolia gas now" gives a clear triggering condition, and the parenthetical path routes larger needs to the 1 SepETH sibling. It does not state explicit exclusions (e.g. mainnet use or non-test use), but the 'Test ETH has no monetary value' line effectively bounds the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sepolia_eth_1Top up 1 Sepolia test ETH from an agent or CI job (bulk)AInspect
Use when a contract deploy, test suite or CI job needs more Sepolia gas than a faucet gives: one x402 call, no faucet login or mainnet history. Input: to (recipient address); sends 1 SepETH. Output: JSON txHash (confirmed before settling), explorerUrl, amountEth, from, to. Daily limits (UTC): 5 SepETH per address (both sizes), 20 overall; checked before payment. Test ETH has no monetary value. Example: ?to=0x000000000000000000000000000000000000dEaD Price: $0.50 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient Ethereum address (EIP-55 checksum if mixed case). Bad input, caps reached or out of stock → 4xx/503 before payment (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so: it discloses the x402 payment path, the $0.50 USDC price and networks, that limits are checked before payment, that bad input/caps/out-of-stock yield 4xx/503 without being charged, and that the tx is confirmed before settling. The 'no monetary value' note pre-empts a common agent misjudgment.
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-loaded with the use case, then input/output, then limits and price — a sensible ordering. It is dense (limits, price, example, currency networks in three sentences) but nearly every clause is actionable; the noting of 'both sizes' is the only slightly oblique phrasing.
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?
There is no output schema, and the description compensates by enumerating the return fields (txHash, explorerUrl, amountEth, from, to) and noting confirmation timing. Pricing, payment rail, rate limits and failure behavior are all present, so an agent has everything needed to call and interpret it.
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 coverage is 100% and the only parameter's description already covers checksum format and the no-charge failure modes. The description restates the parameter role and adds a concrete ?to=0x… example, but supplies no semantics beyond what the schema already documents, so the baseline 3 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?
States a specific verb and resource with the exact quantity: sends 1 SepETH to a recipient, framed for contract deploys/tests/CI. The '('bulk)' in the title and the mention of 'both sizes' implicitly point at a sibling tier, but the description never names the sibling tool, so differentiation is only inferable.
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?
Explicit 'Use when a contract deploy, test suite or CI job needs more Sepolia gas than a faucet gives', which names the trigger condition and contrasts with a faucet. It gives no guidance on when the other SepETH size (sepolia_eth) is preferable, so the sibling choice is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_profileSite profile: page metadata + security headers + robots/llms.txt + DNS, mail auth and domain age in one callAInspect
Use when an agent must vet or research a website in one call (lead research, security or SEO check, is this site legit). Input: url or bare domain. Output: JSON page metadata, HTTP status, HTTPS and HTTP-to-HTTPS redirect, server and hosting hints, 7 security headers, robots.txt (sitemaps, AI-crawler rules), llms.txt presence, plus domain DNS, mail provider, SPF/DMARC and RDAP registrar, age and expiry. Example: ?url=stripe.com Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL or bare domain (https:// assumed); private/internal targets → 400 (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does it well: it discloses the exact output surface, HTTP/HTTPS behavior, that private/internal targets return 400, and — unusually — the cost and payment rail ($0.009 USDC on Base or Solana via x402). Cost, payment mechanism and error semantics are exactly the behavioral traits an agent needs before calling a paid endpoint, and none of it is derivable from the schema.
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?
One dense paragraph, but it is deliberately ordered: trigger, input, output, example, price. The output enumeration is long yet every item earns its place because the agent needs to know this single call replaces several. The trailing price sentence is arguably its own concern but is front-adjacent enough to remain useful.
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 a one-parameter schema, no output schema and no annotations, the description must supply everything, and it effectively does: the agent knows the trigger, the accepted input form, the failure mode, the full response shape and the cost. Nothing required to decide whether and how to call it is missing.
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 100% for the single parameter, and the description's 'url or bare domain' plus the example '?url=stripe.com' largely restate what the schema already documents, including the https:// assumption. No added semantics such as length limits, encoding requirements or IDN handling, so this sits at the mandated baseline of 3.
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 pair ('vet or research a website in one call') and enumerates the resource surface precisely: page metadata, HTTP status, HTTPS/redirect, security headers, robots.txt/llms.txt, DNS, mail auth, RDAP. That is far more specific than a title restatement. However it never names or differentiates from the obvious siblings web_metadata and domain_lookup, so the agent has to infer the overlap boundary itself.
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 concrete when-to-use triggers ('lead research, security or SEO check, is this site legit'), which is stronger than implied usage. It stops short of a full 5 because there are no exclusions or alternatives named, despite two sibling tools who would be candidates for a narrower version of the same task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_token_infoSolana token info: SPL / Token-2022 mint supply, decimals, authorities and extensionsAInspect
Use when an agent needs a Solana token's basics before quoting, transferring or accepting it. Input: mint. Output: JSON slot, program (spl-token or token-2022), decimals, supply raw and decimal, mint and freeze authority, Token-2022 extensions (transfer fee, permanent delegate, transfer hook, default frozen, metadata), known issuer if curated. Not a mint: 422, unknown: 404, not charged. Example: ?mint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address on Solana mainnet (base58, 32 bytes). Bad input → 400, not a mint → 422 (not charged) |
TDQS
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 error semantics (400 bad input, 422 not-a-mint, 404 unknown, no charge on failures), billing ($0.002 via x402), and the shape of the returned JSON. It does not mention rate limits, caching, or whether failures on the same mint are retried, which keeps it out of the top band.
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-loaded with the usage trigger, then Input, Output, error behavior, example and price — every clause carries information and there is no filler. The list-style output enumeration is dense but scannable.
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?
No output schema exists, so the description must describe returns, and it does so field-by-field including the Token-2022 extension set. Combined with error codes and pricing, an agent has everything needed to decide and invoke correctly.
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?
Only one parameter and schema coverage is 100%, so the schema already covers base58/32-byte format and error codes. The description adds a concrete worked example (`?mint=EPjFWdd5...`) that makes the expected identifier form immediately recognizable, which is a small but real gain over the schema.
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?
Names a specific resource (Solana SPL / Token-2022 mint) and enumerates exactly what it returns: supply, decimals, authorities, extensions, issuer. The 'basics' framing cleanly separates it from the adjacent sol_token_risk sibling without opening either schema.
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?
Opens with an explicit trigger — 'Use when an agent needs a Solana token's basics before quoting, transferring or accepting it' — which gives a concrete decision context. It stops short of naming sol_token_risk as the alternative for risk assessment, so the routing rule is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_token_riskSolana Token Risk: Rug Pull & Scam Token Check (mint/freeze authority, holder concentration)AInspect
Solana token risk scan: rug pull, scam token and token safety check. Use when buying, accepting or listing a token. Input: mint. Output: JSON riskLevel + signals w/ evidence: mint authority, freeze authority (can freeze/blacklist holders), permanent delegate, transfer hook/fee, default-frozen, mutable metadata, top-10 holder share. No sell simulation; not an audit. Example: ?mint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address on Solana mainnet (base58, 32 bytes). Bad input → 400, not a mint → 422 (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it enumerates exactly which authority/permission checks are performed, discloses scope limits (no sell simulation, not an audit), and states the price/billing path. It omits rate limits, latency, and whether results are cached.
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?
Highly front-loaded: purpose, when-to-use, input, output, limitations all appear in the first three lines with no filler. The telegraphic 'X: Y' style and the appended pricing/token-address fragment make the tail slightly noisy.
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?
For a one-param tool with no output schema, the description supplies the return shape (riskLevel + signals with evidence) and enumerates the signals, which is the key missing structured data. Error semantics and signal weighting/interpretation are left unexplained.
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 coverage is 100% and the single param is fully documented in-schema (base58, 32 bytes, 400/422 behaviors). The description only restates 'Input: mint' plus a worked example address, adding little semantic meaning beyond the schema.
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+resource: a Solana token risk scan covering rug pull, scam, and safety signals, and the chain qualifier separates it from base_token_risk. It does not explicitly name sol_token_info as the non-risk sibling, so sibling routing is inferable rather than stated.
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?
'Use when buying, accepting or listing a token' gives concrete triggering contexts, and 'No sell simulation; not an audit' sets an explicit exclusion boundary. No alternative tool (e.g. sol_token_info for plain metadata) is named, so the agent must infer routing from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_txSolana transaction status with SOL and token balance changes, fee and programsAInspect
Use when an agent must confirm a Solana payment or transaction landed: did it succeed, who paid whom, how much of which token. Input: signature. Output: JSON status (success/failed), slot, block time, confirmation status, fee payer, signers, fee, programs, SOL and token balance changes per account (first 25). Unknown signature: 404, not charged. Example: ?signature=5Xg1wCobkM4jAJNHE6t7B1amt4ch5wq5GrxuhQXXgoAkUPUAjVMC9tQFCvp1awUGfrqZY9L9sLdPieJ97DcDjXtC Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| signature | Yes | Transaction signature on Solana mainnet (base58, 64 bytes). Unknown or not yet confirmed → 404 (not charged) |
TDQS
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 cost ($0.0045 USDC via x402), the 404-and-not-charged error path for unknown signatures, and the truncation behavior ('first 25' balance changes). Pricing and error semantics are exactly the context annotations would otherwise provide.
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?
Dense and front-loaded: usage trigger first, then input/output/error/price in that order. Every clause carries signal, though the output enumeration runs long and borders on a schema substitute rather than routing guidance.
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?
No output schema exists, yet the description enumerates the return fields (status, slot, block time, confirmation status, fee payer, signers, fee, programs, balance changes). Combined with error and pricing disclosure, an agent has everything needed to call and interpret it.
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 coverage is 100% and the single parameter is already documented as base58/64 bytes with 404 semantics, so the baseline is 3. The description adds value with a concrete worked example signature showing expected input shape, going slightly beyond the schema.
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 — confirm a Solana transaction landed — plus the exact question it answers (did it succeed, who paid whom, how much of which token). Implicitly distinguishes itself from siblings like base_tx (Base chain) and sol_wallet_balances (aggregate balances rather than a single signature).
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?
"Use when an agent must confirm a Solana payment or transaction landed" gives a clear triggering context. However, it never explicitly names alternatives or exclusions (e.g., use sol_wallet_balances for portfolio-level views or base_tx for Base), so the agent must infer sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sol_wallet_balancesSolana wallet balances: SOL plus every SPL and Token-2022 token account in one callAInspect
Use when an agent needs what a Solana address holds in one call. Input: address. Output: JSON slot, SOL balance, every non-zero token (mint, token account, program, decimals, raw and decimal balance, frozen flag; first 50), counts of token and empty accounts. Chain state only, no prices. Bad input: 400, not charged. Example: ?address=CV8t6fnSsckB3bzJSVRxQjVvTgdB35q11Fu3eaF1nz8u Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Wallet address on Solana mainnet (base58, 32 bytes). Bad input → 400 (not charged) |
TDQS
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: it discloses read-only chain state (no prices), the first-50 truncation limit with separate counts of remaining token and empty accounts, frozen-flag presence, error behavior (400, not charged), and the x402 price and payment chains. That's unusually complete behavioral disclosure for a bare definition.
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-loaded with the use case, then Input/Output/Errors/Example/Price in a scannable telegraphic style with no filler sentences. The fragmentary label-value format is dense but slightly harder to read than flowing prose, keeping it just below top marks.
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?
There is no output schema, so the description must describe returns — and it does, enumerating slot, SOL balance, per-token fields, truncation limit, and aggregate counts. Combined with error and billing details for a one-parameter read tool, nothing an agent needs to call it correctly is missing.
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 coverage is 100%, so both the type and base58/mainnet constraints are already documented, and a single parameter puts the baseline at 3-4. The description adds a concrete example address in query-string form (?address=...), which usefully demonstrates invocation shape beyond the raw schema.
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: what a Solana address holds in one call, explicitly covering SOL plus every SPL and Token-2022 token account. That scope distinguishes it from sibling base_wallet_balances (different chain) and sol_token_info (token metadata rather than holder balances) without needing to name them.
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?
"Use when an agent needs what a Solana address holds in one call" gives a clear trigger, and "Chain state only, no prices" sets a boundary that implicitly routes valuation needs elsewhere. It stops short of naming a specific alternative tool or an explicit when-not condition, so it's clear context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_business_daysBusiness-day calculator: add or count working days, skipping weekends and public holidays (KR, US, GB, DE, FR, JP)AInspect
Use when computing due dates, SLAs, settlement or delivery dates. Input: start date, then days (add -260..260 business days) or end (count business days between), optional country KR, US, GB, DE, FR or JP for public holidays (omit = weekends only). Output: JSON result date or business/calendar day counts, holidays skipped on the way, holiday scope. Example: ?start=2026-12-22&days=5&country=US Price: $0.003 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Count business days from start (excluded) to end (included), at most 2 years apart; ignored when days is given | |
| days | No | Business days to add (negative = go back); give days or end (days wins if both) | |
| start | Yes | Start date YYYY-MM-DD (2004–2099) | |
| country | No | Public holiday calendar (omit for weekends only) |
TDQS
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 real work: it discloses the paid x402 requirement ($0.003 USDC on Base or Solana), the output shape, holiday scope, and the -260..260 business-day bound. It does not cover error behavior for invalid or out-of-range dates, which is the main remaining gap.
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-loaded with the use case, then input rules, then output, then an example and price — a sensible information hierarchy with no filler sentences. The inline example URL is slightly cryptic (?start=... query-string form) and could be framed as a call example rather than a URL.
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?
For a 4-parameter tool with no output schema and no annotations, the description covers use case, input branching, output contents, holiday scope, limits, and cost — enough to call correctly on the first try. Only edge-case behavior (bad dates, holiday-fallback rules, response on missing country) is left unstated.
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 coverage is already 100%, so the baseline is 3, but the description adds value the schema lacks: it enumerates the valid country codes (KR, US, GB, DE, FR, JP) where the schema merely says "Public holiday calendar", and it surfaces the -260..260 range and the 2-year span limit. It stops short of format guidance for the date strings beyond what the schema states.
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 title and first sentence state a specific verb+resource pair (add or count business days) with two distinct operating modes, and the holiday-skipping scope separates it from plain date conversion (time_convert) or interval math (time_overlap). An agent can decide eligibility 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when computing due dates, SLAs, settlement or delivery dates" gives concrete triggering contexts, and the description spells out the branching rule (give `days` to add, `end` to count, omit `country` for weekends only). What's missing is an explicit negative boundary, e.g. when to use time_convert or kr_public_holidays instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_convertTime-zone conversion: one instant in many zones, DST-aware, offsets, business hoursAInspect
Use when scheduling across time zones or turning a local time into UTC without guessing DST. Input: to (IANA zones or KST, PST, CET...), optional from (zone of a local time, default UTC), time (ISO 8601, Unix seconds, or now). Output: JSON UTC instant, Unix time, and per zone: local ISO time with offset, weekday, abbreviation, DST and business-hours flags, day difference. Example: ?time=2026-10-12T09:00&from=Asia/Seoul&to=America/New_York,Europe/London Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 1–25 target zones, comma-separated (IANA names like Asia/Seoul, UTC, or abbreviations like KST, PST, CET) | |
| from | No | Zone of the input local time (default UTC; ignored when time has an offset) | |
| time | No | ISO 8601 date-time (2026-10-12T09:00, 2026-10-12T09:00:00+09:00), Unix seconds/ms, or now |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely succeeds: it discloses the exact output shape (UTC instant, Unix time, per-zone local time, offset, weekday, abbreviation, DST and business-hour flags, day difference) and, notably, the cost model ($0.002 USDC via x402 on Base or Solana). It omits failure modes (invalid zone handling, limits beyond the 1-25 zone cap) and any auth/payment-failure behavior, which keeps it out of 5 territory.
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-loaded with the use case, then Input, Output, Example, and Price in a predictable order; every clause carries information. It is dense — the Output sentence is a long enumeration — but nothing is padding.
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?
There is no output schema and no annotations, so the description must supply both behavior and return format — it does so explicitly, including the per-zone fields, the price, and a full example call. An agent has everything needed to construct a correct invocation.
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 coverage is 100%, so the baseline is 3; the description earns a bump by adding a concrete worked example (time=2026-10-12T09:00&from=Asia/Seoul&to=America/New_York,Europe/London) that shows the multi-zone comma syntax in action, plus the 'without guessing DST' framing that explains why 'from' matters.
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 specific verb and resource (convert one instant across time zones) and adds scope qualifiers (DST-aware, offsets, business-hours flags) that immediately separate it from every sibling tool, none of which handle time zones.
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 opens with an explicit trigger: 'Use when scheduling across time zones or turning a local time into UTC without guessing DST.' That is a clear when-to-use condition, but no when-not or alternative tool is named — acceptable here since no sibling overlaps, though the exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_overlapMeeting time finder: working-hour overlap across time zones, ranked slots, DST-awareAInspect
Use when scheduling a meeting across time zones. Input: zones (2-10, IANA or KST/PST/CET), date, work_start/work_end (default 09:00-18:00), include_weekends. Output: JSON overlap windows in UTC and every zone's local time, top 3 one-hour slots ranked by distance from each zone's day edges, partial windows when no full overlap, next DST change per zone. Example: ?zones=America/New_York,Europe/London,Asia/Seoul&date=2026-11-03 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Meeting date YYYY-MM-DD in the anchor zone (default today UTC) | |
| zones | Yes | 2–10 time zones, comma-separated; the first is the anchor whose local date is scanned | |
| work_end | No | Local end of working hours, HH:MM | |
| work_start | No | Local start of working hours, HH:MM | |
| include_weekends | No | Count Saturday/Sunday as working days |
TDQS
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 output shape (UTC plus local times), ranking logic, partial-window fallback, DST-change reporting, zone-count limits, and even payment requirements. This is unusually complete behavioral context.
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 dense and front-loaded, starting with the use case and then parameters, output, example, and pricing. It is efficient, though the single-paragraph packing of example URL and payment details makes it slightly cramped.
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?
There is no output schema, but the description fully explains the return value: JSON overlap windows, local times, ranked one-hour slots, partial windows, and DST changes. Combined with complete schema coverage, an agent has everything needed to call and interpret the 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 coverage is 100%, so the baseline is 3. The description adds useful meaning beyond the schema: it gives example zone formats (IANA/KST/PST/CET), notes the first zone is the anchor, and restates defaults for working hours. It does not add much on include_weekends or date behavior beyond the schema, so it is strong but not exhaustive.
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: finding working-hour overlap across time zones for scheduling. It clearly distinguishes itself from nearby tools like time_convert and time_business_days by focusing on multi-zone meeting-window calculation and ranking.
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 opens with a clear usage condition: 'Use when scheduling a meeting across time zones.' It does not explicitly name alternatives or when not to use it, but the context is strong enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_reportToken due-diligence report: risk signals, admin controls, liquidity and price impact, perp market, OFAC wallet screen (Base, Solana)AInspect
Use when an agent needs one English brief on a token before trading or listing it. Input: token (base:0x… or sol:), format=json|markdown. Output: executiveSummary, riskAssessment (signals, owner/proxy or mint/freeze authority, holders), liquidity (price, depth, $1k/$10k buy impact), perpMarket (Hyperliquid, symbol match), sanctions (OFAC wallets), dataGaps. AI-written from chain facts; not advice. Example: ?token=base:0x940181a94A35A4569E4529A3CDfB74e38FD98631 Price: $0.20 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | One token: base:0x… (ERC-20 on Base) or sol:<mint>. Unknown token or bad input → 400 before payment (not charged) | |
| format | No | markdown adds a readable English rendering of the same report |
TDQS
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 output is AI-written from chain facts, that it is not investment advice, that pricing is $0.20 USDC via x402, and that bad input returns 400 pre-payment (not charged). Latency, rate limits, and freshness of chain data are not covered, which keeps it below a 5.
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 trigger condition is front-loaded, followed by input, output fields, caveats, and an example — a sensible order with little wasted text. The only redundancy is a title that duplicates much of the body.
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?
For a complex multi-chain composite tool with no output schema, the description successfully enumerates every major return field and flags dataGaps, so an agent can interpret the response. Missing are response size/format differences between json and markdown beyond the schema note, and any statement on how often chain facts refresh.
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 100%, so both parameters are already documented in structured data, and the description mostly restates the token prefix forms. It adds marginal value with a concrete example query and the format=json|markdown enumeration, but does not clarify defaults or length limits.
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 uses a concrete verb+resource framing ("one English brief on a token before trading or listing it") and enumerates the exact report sections (riskAssessment, liquidity, perpMarket, sanctions, dataGaps), so an agent knows precisely what it is buying. It stops short of naming siblings like base_token_risk / sol_token_risk, so the cross-chain composite scope is inferable rather than explicitly contrasted.
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?
"Use when an agent needs one English brief on a token before trading or listing it" gives a clear trigger context. No exclusions or alternatives are stated, so an agent cannot tell from this text alone whether a narrower single-chain risk tool would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_explainExplain a transaction in plain English (Base / Solana): swap, transfer, approval, contract callAInspect
Use when an agent must tell a user what a transaction did. Input: tx (Base hash or Solana signature), network=eip155:8453|solana (optional, inferred). Output: explanation (1-3 sentences; every number checked against the decoded facts, template fallback), facts: status, time, fee, from/to, called function (curated selector table), ERC-20 transfers, approvals, inferred swap (sent/received), Solana programs. Example: ?tx=0x…&network=eip155:8453 Price: $0.005 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | Base transaction hash (0x + 64 hex) or Solana signature (base58) | |
| network | No | Chain (default: Base for 0x hashes, Solana otherwise) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the payment requirement ($0.005 USDC via x402), the fact that numbers are validated against decoded facts with a template fallback, automatic network inference, and a curated selector table for function names. The main gap is failure behavior – nothing is said about invalid hashes, unconfirmed/failed transactions, or unsupported chains.
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-loaded with the trigger sentence, then organized as Input / Output / Example / Price, with no filler prose. The trailing price fragment and the pseudo-query-string example are slightly compressed, but every element carries information an agent would otherwise have to guess.
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 and no annotations, the description steps up by enumerating the return payload (explanation plus facts fields) and the accuracy guarantee, which is exactly what is missing from structured data. Only error and unsupported-chain behavior are left undefined, a minor gap for a two-parameter read 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 coverage is 100%, so the baseline is 3, and the description does add a little: it spells out the concrete network values (eip155:8453|solana) that the schema leaves unenumerated and shows an example invocation. That is marginal beyond the schema's own 'default: Base for 0x hashes, Solana otherwise' note, so it does not lift the score.
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 ('tell a user what a transaction did') and clarifies the output is a human-readable explanation rather than raw decoded data. Scope is further pinned by the enumerated facts it returns (ERC-20 transfers, approvals, inferred swap, Solana programs). It falls short of a 5 because it never names the obvious siblings (base_tx, sol_tx) that return the raw equivalent, leaving that disambiguation to inference.
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?
'Use when an agent must tell a user what a transaction did' gives a clear, actionable trigger condition, and the example call plus the network-inference note tell the agent it handles both chains without a second tool call. There are no explicit exclusions or named alternatives, so the agent is not told when base_tx or sol_tx would be the better pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
us_company_intelligenceU.S. company intelligence: SEC profile, 3-year financials, risk signals and recent news in one callAInspect
Use when an agent researches a U.S. public company (due diligence, investing, competitors) and wants one sourced brief instead of many calls. Input: ticker or cik, optional news=false. Output: JSON profile, 3 fiscal years + latest quarter + balance sheet from SEC XBRL, YoY growth, rule-based risk signals (8-K items, late filings, losses) with evidence, recent 8-K events, latest news (title, link, date, publisher summary), sources. Example: ?ticker=NVDA Price: $0.035 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | SEC Central Index Key; give ticker or cik | |
| news | No | Include recent news (default true) | |
| ticker | No | U.S. ticker (NVDA, BRK.B); give ticker or cik |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well by disclosing the JSON output contents, SEC XBRL source, rule-based risk signals with evidence, and even pricing via x402. It does not cover rate limits, latency, or data freshness limitations, so it is not fully comprehensive.
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 usage, input, and output details, and every sentence contributes useful information. It is slightly dense and includes payment details in the example, but remains efficient overall.
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?
For a complex multi-source tool with no output schema or annotations, the description is fairly complete: it lists the output fields, data sources, input options, and pricing. It could still mention coverage limits or error behavior, but an agent can invoke it correctly from this description.
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 100%, so the baseline is 3. The description restates that ticker or cik is accepted and news is optional, but adds no syntax or format guidance beyond the schema.
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 clearly states a specific verb and resource: research a U.S. public company and return one sourced brief with SEC profile, financials, risk signals, and news. It does not explicitly differentiate itself from the sibling sec_filings tool, 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?
It gives clear usage context: due diligence, investing, and competitor research, and frames the tool as an alternative to many separate calls. It lacks explicit when-not-to-use guidance or named alternatives such as sec_filings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_globalWorldwide weather forecast: current, hourly (72 h) and 10-day daily for any coordinatesAInspect
Use when an agent needs the weather anywhere in the world. Input: lat, lon, optional hours (0-72 hourly steps, default 24), tz (IANA zone for daily summaries, default UTC). Output: JSON current temperature, symbol, wind, humidity, cloud, pressure; hourly series; daily min/max, precipitation, max wind, symbol for ~10 days. Data: MET Norway. Example: ?lat=51.5072&lon=-0.1276&tz=Europe/London Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA time zone for daily summaries and local hours (default UTC) | |
| lat | Yes | Latitude, WGS84 decimal degrees (rounded to 0.01) | |
| lon | Yes | Longitude, WGS84 decimal degrees (rounded to 0.01) | |
| hours | No | Hourly steps to return (default 24) |
TDQS
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 names the data provider (MET Norway) and, unusually, discloses the paid-access model ($0.002 USDC on Base or Solana via x402), which is critical behavioral context an agent must know before calling. It omits rate limits and failure behavior, keeping it out of 5 territory.
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?
Labeled Input/Output/Data/Example/Price blocks are well front-loaded and easy to scan, with the usage condition leading. The inline example query is useful; the price sentence is slightly tangential but earns its place given the payment requirement.
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?
No output schema or annotations exist, so the description must describe returns, and it does: current fields, hourly series, and daily aggregates. Combined with the data source and payment model, an agent has enough to call it correctly; pagination/error handling is the only notable gap.
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 100%, so baseline is 3, but the description adds the 0-72 range constraint on hours that the schema omits, and reinforces the defaults (24 hours, UTC). It also explains that tz affects 'daily summaries,' adding meaning beyond the schema's field description.
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+resource (worldwide weather forecast) and enumerates the exact payloads returned (current, 72h hourly, 10-day daily). The phrase 'anywhere in the world' explicitly distinguishes it from the sibling kr_weather_forecast, which is region-scoped.
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?
'Use when an agent needs the weather anywhere in the world' gives a clear triggering condition and, via 'anywhere,' implies the contrast with the Korea-specific sibling. It stops short of naming kr_weather_forecast as the alternative or stating when-not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_answerWeb answer with citations: search, read the top pages, answer in JSON with source quotesAInspect
Use when an agent needs a sourced answer to a question from the live web in one call. Input: q (question), optional time_range (day, week, month, year). Output: JSON answer (English, inline [n] citations), citations [{url, title, quote}], confidence, notes, sources read. Searches, reads the top 4 pages itself and answers only from them. Provider or model failure is not charged. Example: ?q=what+is+the+x402+payment+protocol Price: $0.012 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query | |
| time_range | No | Only results from the past day, week, month or year |
TDQS
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: it discloses the retrieval scope (top 4 pages, answer restricted to them), the return shape (answer with inline [n] citations, citations array with quotes, confidence, notes), the billing outcome ('Provider or model failure is not charged'), and the price/payment rail. These are exactly the behavioral facts an agent cannot get from the schema.
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-loaded with the 'Use when' trigger, then input, output, behavior, billing, and price in a tight sequence with no filler. The example query and price line are useful rather than decorative, though the dense packing of input/output/price into single lines reads more like a spec sheet than prose.
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?
Two-parameter tool with no nested objects; the description covers trigger, inputs, output structure (compensating for the absent output schema), retrieval limits, and cost. Nothing an agent needs to decide to call it or to interpret the result is missing.
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 coverage is already 100%, so the baseline is 3; the description adds value by restating q as the question and enumerating the accepted time_range values (day, week, month, year) that the schema leaves as free text with no enum. That closes a real ambiguity an agent would otherwise guess at.
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: produces a sourced answer to a question from the live web, and reveals the mechanism ('searches, reads the top 4 pages itself'). An agent can distinguish it from web_search/web_read because it says the answer is written and constrained to those pages. It stops short of naming a sibling as the alternative, so differentiation is implied 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?
'Use when an agent needs a sourced answer to a question from the live web in one call' gives a clear triggering condition, and 'answers only from them' implies the boundary of what it will cover. There is no explicit when-not guidance or named alternative such as web_search_read for agents who want raw pages rather than a synthesized answer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_auditWebsite audit: security headers, HTTPS/HSTS, SEO meta, SPF/DMARC and AI-readiness with scores and fixesAInspect
Use when an agent must grade a website and say what to fix. Input: url or bare domain. Output: JSON score 0-100, grade A-F, per-category scores (security, https, seo, mail, ai), findings [{id, severity, category, title, fix}] and top fixes. Rule-based from one live fetch plus DNS; raw data: /v1/web/site-profile. Example: ?url=stripe.com Price: $0.006 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL or bare domain (https:// assumed); private/internal targets → 400 (not charged) |
TDQS
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 the method ('rule-based from one live fetch plus DNS'), the cost ($0.006 USDC via x402 on Base or Solana), and the payment/auth model. It does not cover rate limits or timeout/failure behavior beyond the schema's 400 note, which keeps it from a 5.
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?
Telegraphic and front-loaded: use-case first, then input, then output, then method, cross-reference, example, and price. Every clause carries distinct information with no filler.
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?
There is no output schema, and the description fully compensates by enumerating the return structure (score, grade, per-category scores, findings fields, top fixes). Combined with cost and method disclosure, an agent has everything needed to decide and invoke correctly.
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 coverage is 100% and the single parameter is documented in both places, so the baseline is 3. The description adds value with an explicit format example ('?url=stripe.com') and the 'url or bare domain' restatement, clarifying accepted input shape beyond the schema.
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 ('grade a website and say what to fix') and enumerates the exact outputs (score 0-100, grade A-F, per-category scores, findings, top fixes). It also distinguishes itself from the raw-data sibling endpoint by pointing to /v1/web/site-profile, so an agent can tell it apart from site_profile or web_metadata.
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?
'Use when an agent must grade a website and say what to fix' gives a clear triggering condition, and the /v1/web/site-profile pointer tells the agent where to go for raw data instead. It lacks explicit when-not-to-use framing, so it sits just below the top.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_extractWeb extract: any web page into JSON matching your own JSON SchemaAInspect
Use when an agent needs specific fields from a web page as JSON. Input: url, schema (URL-encoded JSON Schema, object root, max 30 properties, depth 3, 3,000 chars). Output: JSON data validated against the schema (null when not on the page), title, finalUrl. SSRF-safe; noai pages refused; bad schema refused before payment. Fixed schema: /v1/docs/extract. Example: ?url=https://example.com/&schema={"type":"object","properties":{"title":{"type":"string"}}} Price: $0.006 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) web page URL | |
| schema | Yes | JSON Schema (object root) describing the fields to extract |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does substantial work: SSRF-safe, noai pages refused, bad schemas rejected before payment, per-call price and payment rail (x402/USDC), and null semantics for fields not present. Gaps remain on timeouts, non-HTML responses, and other failure modes.
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-loaded with the use case, then Input/Output/Example/Price labels keep it scannable with almost no filler. The inline URL-encoded example is dense and slightly awkward to parse, which keeps it from a 5.
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?
No annotations and no output schema, so the description must supply everything, and it does: return shape (validated JSON, null, title, finalUrl), input constraints, refusals, and cost. An agent can call it correctly and predict the response without opening anything else.
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 coverage is already 100%, but the description goes well beyond it: URL-encoding requirement, object root, max 30 properties, depth 3, 3,000-char limit, plus a concrete inline example. These are hard constraints an agent would otherwise violate.
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 precise verb and resource: turn a web page into JSON matching a caller-supplied schema. The phrase 'specific fields from a web page as JSON' implicitly but clearly separates it from content-reading siblings like web_read and convert_to_markdown.
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?
'Use when an agent needs specific fields from a web page as JSON' gives clear selection context, and the fixed-schema pointer gives a fallback path. It never names an alternative (web_read, web_metadata, docs_extract) or states when not to use it, so the agent must infer the boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_metadataURL metadata / link preview: title, description, Open Graph, Twitter card, icons, feeds, JSON-LDAInspect
Use when an agent needs to know what a URL is before reading it, or to build a link preview or citation. Input: url (public http/https). Output: JSON with final URL after redirects, HTTP status, content type, title, description, site name, language, canonical, preview image, favicon, Open Graph and Twitter tags, RSS/Atom feeds, hreflang alternates, JSON-LD types, robots, first H1. No JavaScript is run. Example: ?url=https://developer.mozilla.org/en-US/ Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL; private/internal addresses → 400 (not charged) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: it discloses that no JavaScript is executed (so SPA content will be missing), that the final URL is post-redirect, and that a per-call x402 payment of $0.002 is required. It omits timeouts, rate limits, and what happens on non-HTML content types, which are secondary but relevant for a fetch 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?
Front-loaded with the use case, then input, then output, then a caveat, then an example and price. The long output enumeration is justified because no output schema exists, and every clause carries 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?
With no output schema, the description correctly compensates by listing the returned fields, and it covers input constraints and cost. The remaining gap is routing: nothing tells the agent why to pick this over the similar site_profile or convert_to_markdown siblings.
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?
There is one parameter with 100% schema description coverage — the schema already documents the http(s)-only constraint and the 400/not-charged behavior for private addresses. The description only restates the same constraint and adds an example URL, so baseline 3 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 title and first sentence state a specific verb+resource ('what a URL is', 'build a link preview or citation') and enumerate exactly what metadata is extracted, so the agent knows what it gets back. It does not, however, distinguish itself from siblings such as site_profile, domain_lookup, or convert_to_markdown, which sound like overlapping URL-inspection tools.
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?
'Use when an agent needs to know what a URL is before reading it, or to build a link preview or citation' gives a clear triggering context. It stops short of naming alternatives or stating when-not to use it, which matters here because site_profile and convert_to_markdown appear to occupy adjacent territory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_readWeb read: web page to Markdown, one URL to clean Markdown for LLMs (title, language, optional injection flags)AInspect
Use when an agent already has a URL and needs the page as clean Markdown (boilerplate removed, tables kept). Input: url, optional max_chars (500-60000), flags=1 for rule-based prompt-injection signals. Output: JSON markdown, title, language, finalUrl, chars, truncated. SSRF-safe; pages opting out with noai are refused. English brief: /v1/web/read/brief. Search+read: /v1/web/search-read. Example: ?url=https://example.com/ Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) web page URL | |
| flags | No | 1 = add rule-based prompt-injection signals found in the page | |
| max_chars | No | Max Markdown characters returned (default 60000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does: SSRF-safe, refuses pages that opt out via noai, truncation via max_chars, paid access ($0.002 USDC on Base or Solana via x402). These are exactly the constraints an agent needs before invoking.
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-loaded with the usage condition, then input, output, safety, payment. Dense but every clause carries information. The telegraphic 'English brief:' / 'Example:' fragments are slightly harder to parse than prose but not wasteful.
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?
No output schema exists, yet the description enumerates the returned fields (markdown, title, language, finalUrl, chars, truncated) and covers payment, SSRF, and noai refusal. For a 3-parameter read tool this leaves nothing an agent needs missing.
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 coverage is 100%, so the baseline is 3, but the description adds real value: the 500-60000 range for max_chars (the schema only states the default) and the meaning of flags=1 as rule-based prompt-injection signalling. It does not explain the number|string union for max_chars.
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 concrete verb and resource (fetch a URL, return clean Markdown with boilerplate removed and tables kept) and the exact output shape. It also distinguishes itself from the brief and search+read variants by naming those endpoints, so an agent can pick it apart from web_read_brief and web_search_read without opening a schema.
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?
'Use when an agent already has a URL' gives an explicit precondition that separates it from search-first siblings. It points at alternatives (/v1/web/read/brief, /v1/web/search-read) but by endpoint path rather than sibling tool name, leaving a small inference step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_read_batchWeb read batch: up to 5 URLs to clean Markdown in one callAInspect
Use when an agent has several URLs (search results, citations) and needs them all as Markdown at once. Input: urls (1-5 public URLs separated by spaces), optional max_chars per URL (500-20000), flags=1. Output: JSON results[] in input order, each status ok (markdown, title, finalUrl) or error (code, message). Charged once if at least one page is read. Example: ?urls=https://example.com/ https://example.org/ Price: $0.008 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1-5 public http(s) URLs separated by spaces | |
| flags | No | 1 = add rule-based prompt-injection signals per page | |
| max_chars | No | Max Markdown characters per URL (default 20000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does it well: it discloses result ordering (results[] in input order), the partial-failure model (per-URL status ok/error with code and message), the billing rule ('charged once if at least one page is read'), and the $0.008 USDC x402 payment rails. These are exactly the traits an agent needs before committing a paid multi-fetch.
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-loaded trigger sentence, then Input / Output / cost, each earning its place. The example query string conveys the space-separated format faster than prose would.
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 and no annotations, the description covers purpose, input format, return shape, failure semantics, and pricing, which is nearly everything needed. The remaining gap is what the error codes can be and whether a partially failed batch is retryable.
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 coverage is 100%, so the baseline is 3; the description goes beyond it by stating the max_chars range (500-20000) that the schema only lists as a default, and by clarifying that flags=1 adds prompt-injection signals. It still does not explain what max_chars does if a page exceeds it (truncate vs error).
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 (read a batch of URLs into clean Markdown) plus the hard scope limit of 1-5 URLs in one call. The 'all at once' framing makes it distinguishable from the single-URL siblings web_read and convert_to_markdown without opening either schema.
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 positive trigger: 'Use when an agent has several URLs (search results, citations)'. It does not explicitly say when to fall back to web_read / web_read_brief / convert_to_markdown for a single URL, so the exclusion is only implied by 'several'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_read_briefWeb read + English brief: page Markdown plus headline, summary, key points, entities, topicsAInspect
Use when an agent needs a page in any language (Korean, Japanese, etc.) read and briefed in English. Input: url, optional max_chars, flags=1. Output: JSON markdown, title, plus brief {headline, summary, key_points, entities, topics, source_language, content_type}; fixed schema, cached by content. Model outage or daily cap is refused before payment. Example: ?url=https://example.com/ Price: $0.0045 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) web page URL | |
| flags | No | 1 = add rule-based prompt-injection signals found in the page | |
| max_chars | No | Max Markdown characters returned (default 60000) |
TDQS
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 payment ($0.0045 USDC via x402 on Base or Solana), that output is a fixed schema and cached by content, and that model outage or daily cap is refused before payment. What's missing is behavior on fetch failures (paywall, 404, robots-blocked) and whether the brief varies between runs.
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-loaded with the use condition, then Input/Output/Example/Price in tight labeled fragments — every clause carries a distinct fact (fields, schema contract, caching, payment rail). No filler or repeated material from the schema.
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?
No output schema exists, but the description enumerates the returned keys (markdown, title, brief{headline, summary, key_points, entities, topics, source_language, content_type}) and covers cost, caching, and refusal conditions — enough to invoke and budget correctly. Error/edge-case behavior would complete it.
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 coverage is 100% and the schema already documents url, flags=1 (prompt-injection signals) and the max_chars default of 60000, so the description adds no meaning beyond the structured fields. Baseline 3 is the ceiling given how little the description contributes here.
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?
Names a specific verb+resource (read a page and produce an English brief) plus scope (any-language input). The title and description together make the dual output (Markdown + brief) unambiguous, but the description never names the close sibling web_read or explain how it differs, so sibling differentiation is left to inference.
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?
'Use when an agent needs a page in any language read and briefed in English' gives a clear triggering condition, and the example URL shows invocation form. No explicit when-not or alternative routing is stated even though web_read / convert_to_markdown exist as cheaper sibling paths, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_screenshotWeb screenshot: render a page in headless Chrome and return the imageAInspect
Use when an agent must see how a page looks (layout, charts, visual QA, previews), not just its text. Input: url, width (320-1920, default 1280), full_page=1 for the whole page, format png or jpeg (default). Output: JSON imageBase64 (decode to the image), contentType, bytes, viewport. Renders JavaScript. Daily cap or bad URL refused before payment. Example: ?url=https://example.com/ Price: $0.01 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) page URL | |
| width | No | Viewport width in px (default 1280; height = 0.625 x width) | |
| format | No | Image format (default jpeg) | |
| full_page | No | 1 = capture the whole scrollable page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden — and it does well: discloses JavaScript rendering, that over-cap or bad URLs are refused before payment, and that cost is $0.01 USDC via x402 on Base or Solana. Remaining gaps are minor (no stated cap value, no timeout or failure-mode detail beyond URL/cap).
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-loaded with the decision criterion, then Input/Output/Price blocks in a compact labeled structure. Slightly dense — the inline example URL and price string crowd the tail — but nearly every clause carries information an agent needs.
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 4 params, no output schema, and no annotations, the definition still covers inputs, return payload fields (imageBase64, contentType, bytes, viewport), JS rendering, payment model, and failure behavior. Only the concrete daily cap and any timeout/latency expectation are left unspecified.
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 coverage is 100%, so baseline is 3; the description goes further by giving width bounds (320–1920), restating defaults, explaining full_page=1 as whole scrollable page, and noting jpeg is the default format. It omits the schema's height = 0.625 x width relation, but otherwise adds usable meaning.
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+resource (render a page in headless Chrome, return the image) and frames the use case as visual inspection — layout, charts, visual QA, previews — which cleanly separates it from text-oriented siblings like web_read, convert_to_markdown, and web_metadata.
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?
Explicitly says when to use it ('when an agent must see how a page looks ... not just its text'), which implicitly routes text-only needs elsewhere. It does not name the alternative sibling tools outright, so the agent must infer that web_read/convert_to_markdown are the text counterparts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchWeb search for agents: Google results as clean JSON (title, URL, date)AInspect
Use when an agent needs current web results for a query. Input: q, optional max (1-10, default 5), time_range (day, week, month, year). Output: JSON results with title, URL and date when known, provider and retrieval time. For page text use /v1/web/search-read. Provider failure is not charged. Example: ?q=x402+payment+protocol&max=5 Price: $0.006 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query | |
| max | No | Number of results (default 5) | |
| time_range | No | Only results from the past day, week, month or year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses the important traits: monetary cost ($0.006 USDC via x402 on Base or Solana), the billing policy for provider failures ('not charged'), and what the response contains. It stops short of rate limits, latency, or caching behavior, so it is strong but not exhaustive.
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-loaded with the use condition, then inputs, outputs, fallback route, billing note, example and price — dense and mostly waste-free. The URL-style '/v1/web/search-read' reference and inline price string are slightly awkward but earn their space.
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?
Absent annotations and output schema, an agent still learns the return shape (title, URL, date when known, provider, retrieval time), the payment requirement and asset, failure billing, and the correct sibling for full page text. Nothing needed to invoke it correctly is missing.
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 coverage is already 100%, so baseline is 3, but the description adds real meaning the schema lacks: it caps 'max' at 1-10 with a default of 5, and gives the concrete time_range values (day, week, month, year) that the schema leaves unenumerated. It does not explain query syntax or escaping.
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?
Opens with a concrete verb+resource+scope: 'current web results for a query'. It also names the sibling it is not — 'For page text use /v1/web/search-read' — so an agent can distinguish it from web_search_read without opening either schema.
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 an explicit use condition ('when an agent needs current web results') and an explicit routing rule to an alternative for page text. The alternative is named rather than hinted at, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_search_readWeb search + read: top results with page text as MarkdownAInspect
Use when an agent needs to search and read in one call. Input: q, optional max (1-10, default 5), time_range (day, week, month, year). Output: JSON results (title, URL, date) and, for the top 3, the page converted to Markdown (up to 4,000 characters each; a page that fails is marked, the rest still ship). Provider failure is not charged. Example: ?q=EU+AI+Act+timeline&max=5 Price: $0.02 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query | |
| max | No | Number of results (default 5) | |
| time_range | No | Only results from the past day, week, month or year |
TDQS
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 output shape, the 4,000-character truncation per page, partial-failure semantics ("a page that fails is marked, the rest still ship"), provider-failure billing, and the $0.02 USDC x402 payment requirement. These are exactly the traits an agent cannot get from structured fields.
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-loaded with the selection condition, then Input/Output/failure/pricing in a tight telegraphic style. The sample query string is marginally useful but the description stays dense with no filler sentences.
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?
There is no output schema, so the description must explain returns — and it does, specifying title/URL/date per result plus Markdown body for the top 3 with truncation and failure marking. Combined with cost and payment details, an agent has everything needed to call and interpret results.
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 coverage is 100% so the baseline is 3, but the description adds value beyond the schema: it supplies the 1-10 range and default 5 for max, and enumerates time_range values (day, week, month, year) that the schema leaves as a free-form string with no enum. That is a real gain for correct invocation.
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 verb+resource is concrete: search and read in one call, returning top results plus Markdown page text for the top 3. This implicitly separates it from sibling web_search (search only) and convert_to_markdown (read only), but it never names those siblings explicitly, so the differentiation is inferred rather than stated.
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?
"Use when an agent needs to search and read in one call" gives a clear selection condition tied to the combined capability. It stops short of an explicit when-not clause or naming web_search as the cheaper alternative when page text is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_api_recommendx402 API finder: ranked paid endpoints for a task, with demand and quality flagsAInspect
Use when an agent must pick a paid x402 API for a task. Input: q (task in plain words or keywords), optional max_price (USD), network (base, solana or CAIP-2), limit (1-20). Output: JSON ranked endpoints: resource URL, method, description, price, networks, seller, 30-day payers and calls (Bazaar), seller buyers (x402scan), wash/quality flags, score, index as_of. Same rules for every seller. Example: ?q=base+token+honeypot+check&max_price=0.02 Price: $0.009 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | What the API should do, in plain words or keywords (e.g. 'korean apartment prices', 'convert pdf to markdown'). Text only: never fetched as a URL | |
| limit | No | Number of results (default 8) | |
| network | No | Only endpoints that accept this network: base, solana, polygon, arbitrum, optimism, ethereum, avalanche, worldchain, monad, or a CAIP-2 id (eip155:8453) | |
| max_price | No | Only endpoints priced at or below this many USD per call | |
| include_flagged | No | false drops routes flagged scanner_like or uniform_payers (suspected probes / wash); default true (flagged routes are kept but ranked lower) |
TDQS
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 fairly well: it discloses the output shape (resource URL, method, price, networks, seller, 30-day payers/calls, buyers, wash/quality flags, score, as_of), the fairness rule ("Same rules for every seller"), and the cost of the call itself ($0.009 USDC). It omits auth requirements, rate limits, and latency/pagination behavior, which keeps it short of a 5.
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-loaded with the usage condition, then inputs, then a structured output field list, then a concrete example and price. Dense but nearly every clause carries information; the input list slightly duplicates the schema, which is the only mild waste.
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?
For a discovery tool with no output schema and no annotations, the description compensates well by enumerating the returned fields and disclosing per-call cost. The main residual gap is the unmentioned include_flagged parameter and any note on result freshness or ranking determinism beyond "score" and "index as_of."
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 100%, so the schema already documents all five parameters, including include_flagged. The description restates q, max_price, network and limit but adds little syntax or format detail beyond the schema, and it omits include_flagged entirely. Baseline 3 is appropriate when structured fields do the heavy lifting.
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 opens with a specific verb-and-resource pairing: pick/rank paid x402 API endpoints for a task. It is readily distinguishable from siblings like web_metadata or site_profile, which operate in different domains. An agent can tell exactly what this tool returns without reading any schema.
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?
"Use when an agent must pick a paid x402 API for a task" states a clear triggering context, and the worked example (?q=base+token+honeypot+check&max_price=0.02) shows a concrete invocation. It does not name explicit alternatives or exclusions, but the sibling set is far enough away that this is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_lintx402 seller linter: grade an x402 endpoint's 402 quote, Bazaar metadata and discovery docsAInspect
Use when you sell an API over x402 and want it to pass Bazaar/CDP listing checks. Input: url (https x402 resource), method GET or POST. Output: JSON score 0-100, grade, per-check pass/warn/fail with fix hints (x402 v2 quote, accepts fields, USDC asset, payTo format and OFAC list, description quality, Bazaar schemas, header size, CORS, latency, openapi/llms.txt, ERC-8004) plus our measured uptime. Never pays. Example: ?url=https://1gateway.dev/v1/time/convert Price: $0.008 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | https URL of the x402 resource to grade (public host) | |
| method | No | HTTP method of the resource (POST sends an empty JSON body) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it states 'Never pays', describes the output as JSON score/grade/per-check results with fix hints, and lists the checks performed. It omits auth, rate-limit, or failure-mode details, but core safety and return behavior are disclosed.
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 dense but front-loaded: use case first, then inputs, outputs, a safety note, and an example. The list of checks is long but earns its place by showing what the linter evaluates.
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?
No output schema exists, so the description must explain returns; it does so thoroughly with score, grade, per-check pass/warn/fail, fix hints, and measured uptime. Together with clear input semantics and the example, an agent has enough context to call it correctly.
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 100%, so both parameters are already documented in the schema. The description restates that url is an 'https x402 resource' and method is GET or POST, but adds little beyond what the schema provides.
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: it grades an x402 endpoint's 402 quote, Bazaar metadata, and discovery docs. It uses 'linter' and 'pass Bazaar/CDP listing checks', which clearly distinguishes it from sibling tools like x402_preflight and x402_verify.
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 use case: 'Use when you sell an API over x402 and want it to pass Bazaar/CDP listing checks.' This tells the agent when it is appropriate, but it does not explicitly name alternatives or exclusions such as when to use x402_verify instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_preflightx402 preflight: ALLOW / WARN / DENY before an agent pays an x402 endpointAInspect
Use when an agent is about to pay an unknown x402 endpoint and needs a cheap safety gate. Input: url (https x402 resource), method, optional max_price_usd. Output: JSON verdict ALLOW/WARN/DENY with reasons: live quote now, price vs similar routes and your budget, payTo on the OFAC list, price change vs our last measurement, our 7-day uptime/p95, ERC-8004 registration. Never pays; cached 60 s. Example: ?url=https://1gateway.dev/v1/fx/rates&max_price_usd=0.01 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | https URL of the x402 resource you are about to pay | |
| method | No | HTTP method of the resource | |
| max_price_usd | No | Your budget per call in USD; a higher quote gives DENY |
TDQS
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: 'Never pays' declares the read-only safety profile, 'cached 60 s' discloses freshness behavior, and the verdict reasons (OFAC payTo, price drift, uptime/p95) explain what the check actually examines. It stops short of stating rate limits, failure/error behavior, or whether results are logged.
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-loaded with the trigger, then input, output, behavior, example, and price in a compact sequence where each clause contributes. The terse colon-delimited style is dense but readable; a couple of items (e.g. the trailing price line) could be trimmed.
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?
No annotations and no output schema, yet the description fully compensates: it enumerates the input shape, the return verdict and its component reasons, the non-paying/caching behavior, and a worked example. An agent has everything needed to call it correctly.
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 coverage is 100%, so every parameter is already documented in the schema, including the max_price_usd-to-DENY relationship. The description restates the three inputs and supplies one concrete example URL with max_price_usd, but adds no format or edge-case detail beyond the schema.
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 action and scope: a pre-payment safety gate that returns ALLOW/WARN/DENY for an x402 endpoint. The 'about to pay' framing implicitly separates it from x402_verify and x402_lint, but no sibling is named, so an agent must infer the boundary itself.
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?
'Use when an agent is about to pay an unknown x402 endpoint and needs a cheap safety gate' gives a clear trigger, and the $0.002 price lets an agent weigh cost against the benefit. There is no explicit 'when not to use' or pointer to the sibling verify/lint tools for other phases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_verifyx402 payment verify: did this transaction really pay USDC to this address?AInspect
Use when an agent or seller must confirm a payment before delivering: checks a Base, Base Sepolia or Solana transaction for a USDC transfer to pay_to of at least amount. Input: tx (hash or signature), pay_to, network (default eip155:8453), optional amount in USDC. Output: JSON paid true/false, verdict, received, payers, block, time, confirmations. Bad formats refused before payment. Example: ?tx=0x…&pay_to=0x…&amount=0.01 Price: $0.002 USDC (Base or Solana) via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | Transaction hash (0x…, Base) or signature (base58, Solana) | |
| amount | No | Expected minimum USDC amount, e.g. 0.01 | |
| pay_to | Yes | Receiving address (0x… on Base, base58 owner address on Solana) | |
| network | No | CAIP-2 network (default eip155:8453 = Base) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does most of it: it names the supported networks, the default network, the minimum-amount semantics, the failure mode ('Bad formats refused before payment'), and the price. It omits auth/rate-limit behavior and whether confirmations must reach a threshold before paid=true.
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-loaded with the decision trigger, then inputs, outputs, error behavior, example and price — dense and mostly waste-free. The inline example query string and pricing sentence are useful but add bulk that could be trimmed slightly.
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?
No output schema exists, and the description compensates by enumerating the returned fields (paid, verdict, received, payers, block, time, confirmations). Combined with network coverage, cost, and invalid-input handling, an agent has everything needed to call and interpret this 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 coverage is 100%, so the baseline is 3; the description still adds real meaning by clarifying that amount is a minimum threshold ('at least amount'), that network defaults to eip155:8453, and that tx accepts either a Base hash or a Solana signature. It also shows a concrete example invocation tying the parameters together.
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 — verifies that a Base/Solana transaction actually transferred USDC to a given address — and frames it around the decision it supports (confirm before delivering). This is clearly distinct from sibling raw-chain tools like base_tx or sol_tx, which fetch transactions rather than adjudicate payment.
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?
'Use when an agent or seller must confirm a payment before delivering' gives an explicit, actionable trigger condition. It does not name a when-not case or point at a sibling alternative (e.g. use base_tx to merely inspect a transaction), so it falls short of the top band.
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.
3 tool updates
- Added
defi_yields - Added
fx_convert - Added
fx_history
4 tool updates
- Added
token_report - Added
tx_explain - Added
x402_lint - Added
x402_preflight
2 tool updates
- Added
sanctions_address_batch - Added
sanctions_tx
4 tool updates
- Added
convert_ocr - Added
render_pdf - Added
render_png - Added
x402_verify
3 tool updates
- Added
hl_extremes - Added
hl_funding_history - Added
onchain_prices_batch
4 tool updates
- Added
satellite_compare - Added
satellite_trend - Added
time_business_days - Added
time_overlap
1 tool update
- Added
kr_company_report
1 tool update
- Added
kr_policy_latest
4 tool updates
- Added
news_brief - Added
web_answer - Added
web_audit - Added
web_extract
3 tool updates
- Added
email_check - Added
web_read_batch - Added
web_screenshot
3 tool updates
- Added
docs_extract - Added
web_read - Added
web_read_brief
2 tool updates
- Added
kr_filing_summary - Added
kr_filings
1 tool update
- Added
kr_address
1 tool update
- Added
kr_supplier_check
2 tool updates
- Added
web_search - Added
web_search_read
3 tool updates
- Added
base_sepolia_eth - Added
base_sepolia_eth_1 - Added
onchain_prices
1 tool update
- Added
sepolia_eth_1
1 tool update
- Added
kr_business_status
1 tool update
- Removed
kr_business_status
Related MCP Connectors
63 pay-per-call tools for agents: vision, text, data, web, blockchain. USDC on Base via x402.
Pay-per-call tools for agents: onchain data, ECB FX rates, text tools. USDC on Base, x402
x402 pay-per-call agent tools (Base USDC): web search, URL extract, OCR, Base tx & allowance scans
32 x402 pay-per-call tools: SEO, agent audits, JSON/text utils, OSINT. USDC on Base; $1=300 calls
Related MCP Servers
- FlicenseNot gradedqualityBmaintenancePay-per-call agent tools (web reader, page extract, email/domain/site/wallet/token checks, screenshot, PDF) via x402 USDC micropayments, with 3 free trial calls per wallet.-
- AlicenseAqualityCmaintenanceEnables AI agents to call 33 pay-per-call tools for onchain data, ECB exchange rates, text utilities, and more, using USDC on Base over x402 with optional prepaid credit or wallet-based payments.3484 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to use pay-per-use web scraping, Base blockchain analytics, and PDF text extraction tools, monetized via x402 USDC micropayments.MIT
- AlicenseAqualityDmaintenanceProvides AI agents with 10 pay-per-call utility tools (QR generation, DNS lookup, OCR, etc.) using USDC on Base via the x402 protocol, with agent's private key never leaving the agent.1119 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.