Skip to main content
Glama

Server Details

566 agent tools: chain data, prices, sanctions, web, PDF. 25 free calls, then from $0.002.

Ownership verified
Status
Healthy
Uptime
95.2% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Nutshell2000/agent-data-tools
GitHub Stars
0

TDQS

A3.5/5.0

Scored across 335 tools

Disambiguation2/5

Many tools overlap heavily: search/news/contents/extract/summarize/pack_web_research all retrieve web content; ai_chat/ai_chat_large/model-specific chat and summarize/answer tools compete; check_payee/check_counterparty/sanctions_check/wallet_audit and generic vs chain-specific token/wallet tools overlap. Descriptions cross-reference each other, but with 335 tools an agent still faces multiple unclear boundaries.

Naming Consistency3/5

Most names are snake_case with readable prefixes (base_, eth_, arb_, op_, polygon_, pack_, ai_, url_, text_), but many core tools are bare nouns (token, wallet, network, package, papers, news) while others are verbs or verb_noun phrases. The convention is readable overall but not uniform.

Tool Count1/5

335 tools is an extreme mismatch for a single MCP server, forcing the agent to disambiguate among hundreds of near-neighbors. Even as a catalog, this volume makes reliable tool selection impractical and each tool does not earn its place in a coherent agent surface.

Completeness3/5

Coverage is broad across AI, web reading, crypto chain reads, DNS, finance, text/encoding and validation utilities, with aggregate pack_* helpers. However there are notable gaps for a general agent data server, such as generic HTTP requests, email sending, scheduled jobs and file storage.

Available Tools

335 tools
ai_answerWeb answer, AI with citations: answer a question from live search resultsA
Read-only
Inspect

Answer a question from the live web in one call: a Brave web search, the top result pages read, and an answer written by Llama 4 Scout from those sources only, with inline [n] citations and the source list (title, URL). Says so when the sources do not answer it. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Use when an agent needs a current, sourced answer rather than raw search results. Example: q=What is the x402 payment protocol?. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qYesThe question, at most 400 characters

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations (readOnly/openWorld/non-idempotent) to disclose pricing ($0.01/call, failed calls free), payment paths (x402 USDC or card key), a legal restriction on storing/resale/training, and the failure mode ('Says so when the sources do not answer it'). The non-idempotent, charged-per-call economics are surfaced explicitly, which is exactly the context annotations cannot carry.

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

Conciseness4/5

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

Front-loaded with capability and output format before terms and pricing, and nearly every clause carries decision-relevant information. Minor redundancy: 'each call is charged, so repeats are not free' restates the earlier price line and the readOnly safety claim is largely covered by the annotations.

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

Completeness5/5

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

With no output schema, the description carries the full return-value burden and does: citations format, source list contents, and the negative case when sources are insufficient. Cost, licensing, and safety are all present — 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.

Parameters3/5

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

Schema coverage is 100% and the single parameter already documents the 400-character limit, so the schema does the heavy lifting. The description adds only an example question string, which illustrates shape but not semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Answer a question from the live web') and enumerates the internal pipeline (Brave search, top pages read, Llama 4 Scout synthesis) plus the output shape (inline [n] citations, source list). Clearly separable from siblings that return raw text or raw search results.

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

Usage Guidelines4/5

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

'Use when an agent needs a current, sourced answer rather than raw search results' gives an explicit selection rule, and the worked example (q=What is the x402 payment protocol?) anchors it. It stops short of naming specific sibling alternatives such as ai_fact_check or ai_chat, so an agent must infer the boundary itself.

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

ai_chatLLM chat completions: Llama 4 ScoutA
Read-only
Inspect

Send a prompt, get an answer from Meta's Llama 4 Scout (17B active, 16 experts), with an optional system prompt, up to 1,024 output tokens and adjustable temperature. Fast and cheap. Use for drafting, reasoning steps, Q&A and any quick LLM call without an AI provider account; other open models by name at /v1/chat/completions, harder reasoning at ai_chat_large. Example: prompt=Explain x402 in one sentence.. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toolsNoOptional OpenAI tools array as JSON (function calling, up to 32 functions); the answer then carries tool_calls
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
messagesNoOptional OpenAI messages array as JSON (system, user, assistant with tool_calls, tool); replaces prompt and system. Together with tools, at most 20,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)
tool_choiceNoOptional: auto, none, required, or a JSON object naming one function
response_formatNoOptional OpenAI response_format as JSON: {"type":"json_object"} or a json_schema

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations it discloses billing behavior that materially affects invocation strategy: $0.002/call via x402 USDC or a card key, first 25 free, failed calls free, and an explicit warning that repeats are not free (explaining idempotentHint=false). It also states no provider account is needed and that the call changes nothing.

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

Conciseness4/5

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

Purpose and free-tier/cost facts are front-loaded, and every sentence carries operational information. The single example ('prompt=Explain x402 in one sentence..') is truncated and adds little, and the tail end (pricing, read-only note) is densely packed into one run-on sentence.

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

Completeness4/5

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

With 8 parameters, rich annotations and full schema coverage, the description covers cost, model identity and routing adequately. The one gap is the response shape: there is no output schema, yet the description never says what is returned (answer text plus optional tool_calls), which matters for the function-calling parameters.

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

Parameters3/5

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

Schema description coverage is 100%, so prompt, system, messages, tools, maxTokens, temperature, tool_choice and response_format are already fully documented. The description only echoes a few of these (optional system prompt, up to 1,024 output tokens, adjustable temperature), adding little beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('send a prompt, get an answer') and pins the exact model (Llama 4 Scout, 17B active/16 experts) with its output limit and temperature range. It distinguishes itself from siblings by naming ai_chat_large for harder reasoning and pointing to /v1/chat/completions for other open models.

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

Usage Guidelines5/5

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

Gives explicit use cases (drafting, reasoning steps, Q&A, any quick LLM call with no provider account) and an explicit alternative with the condition that selects it ('harder reasoning at ai_chat_large'). An agent can route between this and its sibling without inferring anything.

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

ai_chat_largeLLM inference, large model: Llama 3.3 70B or gpt-oss-120bA
Read-only
Inspect

Send a prompt, get an answer from a larger open model: Llama 3.3 70B Instruct (default) or OpenAI gpt-oss-120b, with an optional system prompt, up to 1,024 output tokens and adjustable temperature. Same call as /ai/chat with a stronger model. Use when the 8B model is not enough: reasoning, drafting and Q&A. Example: prompt=Explain x402 in one sentence.. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
modelNollama-3.3-70b (default) or gpt-oss-120b
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, non-destructive, openWorld, non-idempotent), and the description adds the economically critical context they cannot: $0.01 per call via x402 USDC or card key, failed calls free, and that repeated identical calls are still billed. That cost-on-repeat disclosure is exactly the kind of behavioral fact that changes agent strategy.

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

Conciseness4/5

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

Model choice, cost and usage guidance are front-loaded in a compact block, and almost every clause earns its place. Minor bloat from the redundant 'Same call as /ai/chat with a stronger model' repetition and a stray double period in the example.

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

Completeness4/5

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

With no output schema, the description covers models, limits, price and the read-only nature of the operation, which is what an agent needs before calling. It stops short of describing the response shape (e.g. whether raw text or a JSON envelope with usage/cost is returned), a small gap for a text-generation endpoint.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented in structured fields. The description restates the optional system prompt, the 1,024 output-token ceiling and adjustable temperature, and adds only the useful nugget that llama-3.3-70b is the default model. That meets the baseline but does not meaningfully exceed the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete verb and resource (send a prompt, get an answer) and names the exact backing models including the default. It explicitly positions itself against the sibling ai_chat as the same call with a stronger model, so an agent can distinguish the two 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.

Usage Guidelines5/5

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

It states the selection condition clearly: use when the 8B model is not enough, for reasoning, drafting and Q&A, and names ai_chat as the alternative for lighter work. A worked example (prompt=Explain x402 in one sentence) anchors the expected input shape.

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

ai_classifyText classification into labels: sort text into one of your labels (zero-shot), for routing and taggingA
Read-only
Inspect

Zero-shot classification: give text and 2-20 candidate labels, get the best label, a short reason and a ranking. Use for routing tickets, tagging content, intent detection and moderation queues. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText to classify, up to 8,000 characters
labelsYesComma-separated candidate labels (2-20)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, non-idempotent, open-world, non-destructive, so the bar is lower; the description goes further by disclosing cost ($0.01/call), the free tier (first 25, failed calls free), and the payment paths (x402 USDC or card key /credits). 'Each call is charged, so repeats are not free' usefully explains the non-idempotent hint. 'Reads or computes only and changes nothing' repeats readOnlyHint rather than adding, but does not contradict it.

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

Conciseness4/5

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

Front-loaded with the core capability and input/output shape in the first sentence, with secondary use cases and billing in the second. The pricing sentence is dense but earns its place because cost drives re-call behavior; nothing is filler.

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

Completeness5/5

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

For a simple two-parameter tool with no output schema, the description covers what comes back (best label, reason, ranking), the cost model, and the side-effect profile. An agent has enough to decide whether to call it and what to expect in the response.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented there, so the schema carries the semantics. The description restates the 2-20 label constraint, but adds no syntax detail (e.g. how commas inside labels are handled) or guidance on label design beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation with its input shape (text plus 2-20 candidate labels) and output shape (best label, reason, ranking), which is far more than the title restated. It is implicitly distinguishable from siblings like ai_sentiment or ai_moderation because the caller supplies arbitrary labels, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

Concrete use cases are given: routing tickets, tagging content, intent detection, moderation queues. There is no explicit exclusion or comparison to overlapping siblings (ai_sentiment for polarity, ai_moderation for policy checks), so the agent must infer the boundary itself.

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

ai_embedEmbeddings, OpenAI compatible: BGE-M3, 1,024 dimensionsA
Read-only
Inspect

A 1,024-dimension embedding vector for up to 4,000 characters of text in 100+ languages, from BAAI's BGE-M3. Use for semantic search, RAG retrieval, clustering and deduplication. Example: text=pay-per-call APIs for AI agents. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText to embed, up to 4,000 characters

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations: it discloses per-call pricing ($0.01 via x402 USDC or a card key), the 25 free calls, that failed calls are free, and that repeats are not free — which explains the idempotentHint=false in billing terms rather than merely restating it. It also explicitly confirms the readOnly/non-destructive profile ('Reads or computes only and changes nothing'), adding auth/payment context the annotations do not carry.

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

Conciseness4/5

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

Front-loaded with the output contract, then uses, then a concrete input example, then cost. Dense but nearly every sentence carries distinct information; the example and pricing sentence are both functional, though the example is marginally expendable.

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

Completeness5/5

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

No output schema exists, and the description compensates by describing exactly what is returned and its dimensionality. Input limits, language coverage, cost model and side-effect profile are all covered, so 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.

Parameters3/5

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

Schema coverage is 100% and there is only one parameter, so the schema already documents `text` fully. The description's 'up to 4,000 characters' and the inline example echo that, adding format intuition but no genuine semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with the exact output shape (1,024-dimension vector for up to 4,000 characters, 100+ languages) and names the underlying model BGE-M3. This makes it trivially distinguishable from generative siblings like ai_chat, ai_summarize_text or ai_classify.

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

Usage Guidelines4/5

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

Explicitly lists intended uses: semantic search, RAG retrieval, clustering, deduplication. However it gives no when-not guidance or comparison to alternatives such as ai_classify or ai_keywords, so an agent must infer that embeddings are for vector/retrieval work rather than labeling.

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

ai_extract_jsonExtract JSON fields from text: turn unstructured text into a JSON object with the fields you nameA
Read-only
Inspect

Pull named fields out of unstructured text (emails, invoices, listings, bios) and get them back as a JSON object, with null for anything not present. Use to turn messy text into structured data for an agent. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesSource text, up to 12,000 characters
fieldsYesComma-separated field names to extract (1-30)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false, but the description adds meaningful context beyond them: per-call pricing ($0.01/call via x402 USDC or card key), first 25 free, failed calls free, and the fact that repeats are charged. It also states output behavior—null for missing fields—which is important for an extraction tool.

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

Conciseness4/5

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

The purpose is front-loaded in the first sentence, followed by usage, then pricing/safety information. Every sentence adds something useful, though the pricing/safety sentence is slightly dense and could be split for readability.

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

Completeness5/5

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

For a simple two-parameter extraction tool with no output schema, the description covers purpose, output shape, billing model, and safety profile. Combined with a fully described input schema and informative annotations, an agent has everything needed to decide when and how to call it.

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

Parameters3/5

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

Schema coverage is 100%, so the two parameters (text and fields) are fully documented in the schema with character limits and field-count constraints. The description only implies 'named fields' and does not add syntax or format details beyond what the schema already provides; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('pull named fields out of unstructured text') and the return shape (JSON object with null for missing fields). This is clearly distinguishable from sibling tools like ai_classify, ai_summarize_text, or ai_answer, which transform text in other ways rather than extracting named fields.

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

Usage Guidelines4/5

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

Gives a clear usage statement: 'Use to turn messy text into structured data for an agent,' with example source types (emails, invoices, listings, bios). It does not explicitly name alternative tools or exclusions (e.g., use ai_classify for categories), 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.

ai_fact_checkFact check, verify a claim: against live web sourcesA
Read-only
Inspect

Check a claim against the live web in one call: a Brave search, the top pages read, and a verdict from Llama 4 Scout using those sources only (supported, contradicted, mixed or unverified) with a short explanation, [n] citations and the sources. A model's reading of a few search results, not an editorial fact-check. Results are for immediate use only (Brave API terms). Use to screen a statement before an agent repeats or acts on it. Example: claim=The x402 protocol uses the HTTP 402 Payment Required status code.. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
claimYesThe claim to check, at most 400 characters

TDQS

A4.6/5.0
Behavior5/5

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

With annotations present, the description still adds substantial context: pricing ($0.01/call via x402 USDC or card key), failed calls free, repeated calls charged (consistent with idempotentHint=false), and Brave API terms restricting reuse of results. It also discloses the verdict vocabulary and the output shape (explanation, [n] citations, sources).

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

Conciseness4/5

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

Front-loaded with what the tool does and returns, then caveats, then use case, then pricing. Dense but nearly every sentence carries operational information; the price/payment sentence is long but justified for an agent deciding whether to call.

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

Completeness5/5

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

There is no output schema, and the description compensates by describing the return: a verdict from a fixed set (supported, contradicted, mixed, unverified), a short explanation, numbered citations, and the sources. Nothing an agent needs to decide or interpret the call is missing.

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

Parameters4/5

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

Schema coverage is 100% and there is only one parameter, so baseline is 3. The description adds an example claim ('The x402 protocol uses the HTTP 402 Payment Required status code.') that shows the expected granularity, going slightly beyond the schema's length constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (check a claim against the live web) and spells out the pipeline (Brave search, page reads, Llama 4 Scout verdict). No sibling tool in the list does fact verification, and the description makes that unique role obvious.

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

Usage Guidelines4/5

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

Gives a concrete trigger: 'Use to screen a statement before an agent repeats or acts on it.' It also sets expectations with 'A model's reading of a few search results, not an editorial fact-check.' It doesn't name an alternative tool for cases where a plain answer (ai_answer) would suffice, so it stops short of explicit alternative routing.

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

ai_keywordsKeyword extraction: pull the main keywords and key phrases out of a textA
Read-only
Inspect

The most important keywords and key phrases of a text, most relevant first. Use for tagging, SEO, search indexing and topic detection. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText, up to 12,000 characters
countNoHow many, 3-30 (default 10)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, non-idempotent, and open-world behavior, but the description adds meaningful context about pricing, the free quota, failed-call billing, and repeat charges. It also restates read-only behavior, though without contradicting the annotations.

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

Conciseness4/5

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

The description is a single front-loaded paragraph with no irrelevant sections. The pricing and billing sentence is dense but still earns its place by clarifying cost behavior.

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

Completeness5/5

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

For a two-parameter tool with full schema coverage and no output schema, the description supplies purpose, return ordering, use cases, and billing details. Nothing critical for correct invocation appears to be missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already well documented in the schema. The description does not add parameter-level meaning beyond the schema; 'most relevant first' describes return ordering rather than input semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the extracted resource (keywords and key phrases) and its ordering (most relevant first), and the title adds the explicit extraction verb. It does not clearly distinguish this tool from nearby siblings such as ai_extract_json or ai_summarize_text.

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

Usage Guidelines3/5

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

It gives useful use cases (tagging, SEO, search indexing, topic detection) but does not say when to choose this over alternatives or when not to use it. Usage is implied rather than explicitly routed.

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

ai_model_deepseek_r1DeepSeek R1 reasoning model API: pay per call, no API keyA
Read-only
Inspect

Chat with DeepSeek's R1 reasoning model distilled into Qwen 32B (MIT) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 2,048 output tokens; its reasoning is removed from the answer. Also reachable as model "deepseek-r1" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. Example: prompt=Explain x402 in one sentence.. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-2048 (default 1500)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (readOnly=true, openWorld=true, destructive=false), the description discloses pricing ($0.01/call via x402 USDC or card key), that failed calls are free, that repeat calls are charged, the 2,048 output-token ceiling, and that reasoning traces are stripped from the answer. That is exactly the extra context annotations cannot carry, and it is consistent with readOnlyHint.

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

Conciseness4/5

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

The model identity, access paths, cost and behavior are front-loaded in a dense but readable block, and every clause carries information. It is slightly run-on (the stray double period after the example, the trailing clause about repeats) but not padded.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does explain that the answer comes back without reasoning and is capped at 2,048 tokens, plus cost and payment paths. It does not describe the response envelope or error shapes, which is the remaining gap for a paid single-shot call.

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

Parameters3/5

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

Schema description coverage is 100%, so prompt, system, maxTokens and temperature are already documented with limits and defaults. The description restates the prompt/system pairing and the output-token cap but adds no format or interaction detail (e.g., how temperature affects reasoning), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Chat with') and a specific resource — DeepSeek R1 distilled into Qwen 32B — and explicitly separates it from generic siblings like ai_chat by saying 'Use when an agent wants this model by name.' It also names the equivalent API route ("deepseek-r1" on /v1/chat/completions), so the model identity is unambiguous.

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

Usage Guidelines4/5

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

It gives a clear selection rule ('Use when an agent wants this model by name') and a concrete example call, which implicitly routes generic chat needs to the non-model-specific siblings. It doesn't explicitly name ai_chat as the fallback or state when not to use it, so it stops 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.

ai_model_gpt_oss_120bGPT-OSS 120B chat API: pay per call, no API keyA
Read-only
Inspect

Chat with OpenAI's open-weight gpt-oss-120b reasoning model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "gpt-oss-120b" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. Example: prompt=Explain x402 in one sentence.. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past the annotations: discloses per-call price ($0.01), payment rails (x402 USDC or card key), that failed calls are free, that repeats are charged and non-idempotent, and that no account/provider key is needed. That is exactly the cost/auth/failure context annotations cannot convey.

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

Conciseness4/5

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

Front-loads model identity and the core action, then layers pricing and payment detail efficiently. It is dense but nearly every clause carries information; minor noise like the stray double period in the example slightly hurts polish.

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

Completeness4/5

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

With no output schema, the description does say what comes back (the answer, capped at 1,024 output tokens) and covers cost, auth, and failure handling for a paid external call. An agent has enough to invoke it correctly, though the response envelope shape is only loosely implied.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (prompt, system, maxTokens, temperature) are already documented with limits and defaults. The description only restates the 1,024-token output cap and the optional system prompt, adding essentially nothing beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (chat) and resource (OpenAI's open-weight gpt-oss-120b reasoning model), and pins the exact model name, which is the key differentiator against siblings like ai_model_gpt_oss_20b. It never explicitly contrasts itself with those siblings, so the differentiation is implicit 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.

Usage Guidelines4/5

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

"Use when an agent wants this model by name" plus a concrete example gives clear selection context, and the OpenAI-compatible endpoint note helps agents routing by model string. It stops short of naming alternatives (e.g., when to pick gpt_oss_20b or ai_chat instead), so there are no explicit exclusions.

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

ai_model_gpt_oss_20bGPT-OSS 20B chat API: pay per call, no API keyA
Read-only
Inspect

Chat with OpenAI's open-weight gpt-oss-20b reasoning model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "gpt-oss-20b" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. Example: prompt=Explain x402 in one sentence.. Price $0.002/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-idempotent, and the description goes well beyond them: exact price ($0.002/call via x402 USDC or card key /credits), failed calls are free, each call is charged so retries cost money, no account or provider key required, and the 1,024 output-token ceiling. That is precisely the cost/auth/retry context 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.

Conciseness4/5

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

Front-loads the model identity and access method, then pricing and safety in a tight sequence; nearly every sentence earns its place. Minor blemishes: the example 'prompt=Explain x402 in one sentence..' has a doubled period and is marginally decorative.

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

Completeness5/5

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

For a four-parameter chat tool with no output schema, the description covers what comes back (the answer, capped at 1,024 tokens), how to pay, that no key is needed, and that calls are billed individually. 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.

Parameters3/5

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

Schema description coverage is 100%, so prompt, system, maxTokens and temperature are already documented with ranges and defaults. The description restates prompt/system and the token cap and adds a worked example, but adds no format or interaction semantics beyond the schema — baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (chat with OpenAI's gpt-oss-20b reasoning model) plus the access path (one paid HTTP call, or the OpenAI-compatible /v1/chat/completions as model "gpt-oss-20b"). It explicitly distinguishes itself from the generic ai_chat and from its size sibling gpt_oss_120b by naming the exact model and telling the agent to use it 'when an agent wants this model by name.'

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

Usage Guidelines4/5

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

'Use when an agent wants this model by name' gives a clear selection condition versus the generic chat siblings, and the price note hints at cost trade-offs. It stops short of explicitly naming an alternative for when cost or the larger 120B model matters, so no exclusion is spelled out.

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

ai_model_mistral_smallMistral Small 3.1 chat API: pay per call, no API keyA
Read-only
Inspect

Chat with Mistral AI's Mistral Small 3.1 24B model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "mistral-small" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. Example: prompt=Explain x402 in one sentence.. Price $0.005/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial context the annotations cannot carry: price ($0.005/call), failed calls free, payment paths (x402 USDC or card key /credits), no account or provider key required, and the 1,024 output-token cap. The "reads or computes only and changes nothing" statement is consistent with readOnlyHint=true, and "repeats are not free" aligns with idempotentHint=false.

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

Conciseness4/5

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

Front-loaded with model identity and payment model, which are the deciding facts. Slightly run-on and marred by a doubled period in the example, but nearly every sentence carries distinct information.

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

Completeness4/5

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

For a 4-parameter stateless chat tool with no output schema, the description covers cost, limits, auth, and the alternate endpoint, so an agent can call it correctly. The response format (plain answer text) is only implied by "get the answer."

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

Parameters3/5

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

Schema coverage is 100%, so the schema already defines prompt, system, maxTokens, and temperature with ranges and defaults. The description only echoes the prompt/system pair and the output token cap, adding no syntax or format detail beyond structured data — baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (chat with) plus the exact resource: Mistral Small 3.1 24B, with license and OpenAI-compatible alias. This makes it trivially distinguishable from sibling model tools like ai_model_qwen3_30b or ai_model_deepseek_r1.

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

Usage Guidelines4/5

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

"Use when an agent wants this model by name" gives an explicit selection condition, and the /v1/chat/completions alias offers an alternative access path. It does not compare against the other ai_model_* siblings, so an agent choosing between models gets no comparative guidance.

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

ai_model_qwen3_30bQwen3 30B chat API: pay per call, no API keyA
Read-only
Inspect

Chat with Alibaba's Qwen3 30B-A3B mixture-of-experts model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens; its reasoning is removed from the answer. Also reachable as model "qwen3-30b" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. Example: prompt=Explain x402 in one sentence.. Price $0.002/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses pricing ($0.002/call), billing paths (x402 USDC or card key via /credits), that failed calls are free, that repeats cost money, that no account or provider key is needed, and that reasoning traces are stripped from the output. That is exactly the extra context annotations cannot express.

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

Conciseness4/5

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

Front-loaded with the model identity and call shape, then cost and access details. It is a dense run-on with a slightly awkward example fragment ("Example: prompt=Explain x402 in one sentence.."), but nearly every clause carries useful information.

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

Completeness5/5

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

For a single-call inference tool with no output schema, the description covers cost, auth alternatives, output limits, what the response omits (reasoning), and side-effect-free behavior. An agent has everything needed to decide to call it and predict the charge.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents prompt length, system prompt, maxTokens range/default, and temperature range. The description adds only the 1,024 output-token cap and an example prompt, which duplicates the schema's maxTokens note without adding format or tradeoff guidance (e.g. how temperature affects this model).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (chat), a specific model (Alibaba Qwen3 30B-A3B MoE, Apache 2.0), and the exchange shape (send prompt + optional system prompt, get answer). This sharply distinguishes it from siblings like ai_model_gpt_oss_120b or ai_model_mistral_small that share the same pattern.

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

Usage Guidelines4/5

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

"Use when an agent wants this model by name" gives an explicit selection rule against the other ai_model_* siblings, and the OpenAI-compatible alias note clarifies an alternate route. It stops short of saying when to prefer a sibling like ai_chat_large instead, but the routing intent is clear.

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

ai_model_qwen_coderQwen2.5 Coder 32B, code LLM API: pay per call, no API keyA
Read-only
Inspect

Chat with Alibaba's Qwen2.5 Coder 32B code model (Apache 2.0) through one paid HTTP call: send a prompt and an optional system prompt, get the answer, up to 1,024 output tokens. Also reachable as model "qwen-coder" on the OpenAI-compatible /v1/chat/completions. No account or provider key. Use when an agent wants this model by name. Example: prompt=Explain x402 in one sentence.. Price $0.005/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
promptYesUser prompt, up to 8,000 characters
systemNoOptional system prompt, up to 2,000 characters
maxTokensNoMaximum output tokens, 1-1024 (default 400)
temperatureNo0-1.5 (default 0.6)

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations, it discloses pricing ($0.005/call), payment paths (x402 USDC or card key), that failed calls are free, that repeats are charged, and that the tool only reads/computes and changes nothing. It also notes no account or provider key is required and that output is capped at 1,024 tokens.

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

Conciseness4/5

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

The description is front-loaded with the model identity and core action, and most sentences carry useful pricing or behavior context. It is slightly dense and includes minor redundancy around the token limit, but no major waste.

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

Completeness5/5

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

For a paid, no-auth LLM call tool, the description covers identity, cost, payment, limits, safety profile, and endpoint alternative. With complete schema coverage and annotations, an agent has enough to call it correctly; an output schema is unnecessary for a familiar chat-completion response.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already self-documenting with types, defaults, and limits. The description adds only a brief mention of prompt/system and an example prompt, without extra semantics for maxTokens or temperature beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — chat with Alibaba's Qwen2.5 Coder 32B code model through a paid HTTP call — and explicitly identifies the model by name. It also distinguishes this tool from generic chat siblings by saying to use it when an agent wants this model specifically.

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

Usage Guidelines4/5

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

It gives a clear usage condition: 'Use when an agent wants this model by name,' and notes the OpenAI-compatible endpoint alternative. It does not explicitly compare against sibling tools like ai_chat or ai_model_qwen3_30b, so it falls short of full when/when-not guidance.

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

ai_moderationContent moderation, safety check: Llama Guard 3A
Read-only
Inspect

Classify a text as safe or unsafe with Meta's Llama Guard 3 and name the hazard categories it falls into (violent and non-violent crimes, sexual content, child exploitation, hate, self-harm, weapons, privacy, defamation, elections and others; 14 in all). Up to 8,000 characters. Also available in the OpenAI moderation shape at /v1/moderations. Use to screen user messages, model outputs or content before an agent posts or acts on it. Example: text=How do I bake sourdough bread at home?. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to classify (up to 8,000 characters)

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: pricing ($0.002/call via x402 USDC or card key), the first 25 free, failed calls free, and the key insight that repeats are charged — which explains why idempotentHint is false. It also confirms the read-only, no-side-effects nature and the 8,000-character ceiling.

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

Conciseness4/5

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

Front-loaded with the purpose and taxonomy, then usage, then pricing. The final sentence is dense but each clause (free tier, failed-call billing, non-idempotency) carries decision-relevant information.

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

Completeness4/5

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

For a one-parameter tool with no output schema, the description covers what comes back (safe/unsafe plus named hazard categories) and the cost model. Only the response envelope/format remains unspecified, a minor gap.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter is already documented in the schema. The description's 'Up to 8,000 characters' and the example repeat rather than extend that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Classify a text as safe or unsafe with Meta's Llama Guard 3'), names the exact hazard taxonomy and its size, and is clearly separable from siblings like ai_classify or ai_sentiment. The example input pins down the expected call shape.

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

Usage Guidelines4/5

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

Gives concrete contexts ('screen user messages, model outputs or content before an agent posts or acts on it') and points to the alternate OpenAI-shaped endpoint at /v1/moderations. No explicit exclusion versus ai_classify, so it stops short of full when/when-not guidance.

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

ai_outlineOutline a text or topic: make a structured Markdown outline of a text or topicA
Read-only
Inspect

A structured Markdown outline (headings and bullet points) of a text you send, or a suggested outline for a topic. Use to plan articles, reports, talks and documentation. Example: text=How small businesses can accept stablecoin payments. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText to outline, or a topic, up to 12,000 characters
depthNoHeading levels, 1-3 (default 2)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint=false, yet the description still adds real context: pricing model, free-tier terms, and that failed calls are free. 'Each call is charged, so repeats are not free' usefully reinforces the idempotentHint=false annotation. It doesn't describe latency or output length limits, 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.

Conciseness4/5

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

The core purpose and output format are front-loaded in the first sentence, followed by usage and an example. The pricing/key sentence is dense but earns its place by warning the agent that calls are billed and non-idempotent.

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

Completeness4/5

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

For a two-parameter generation tool with no output schema, the description covers what comes back (Markdown headings and bullets), what goes in, and the cost model. Only the depth parameter's effect on output shape is left unexplained.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already fully documented. The description's example clarifies what the 'text' value looks like in practice but adds nothing about the 'depth' parameter (1-3 heading levels), leaving it to the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and output artifact ('structured Markdown outline of headings and bullet points') plus the two input modes: a supplied text or a topic. It does not explicitly differentiate from near-siblings like ai_summarize_text or ai_rewrite, so it stops short of a 5.

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

Usage Guidelines4/5

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

Gives concrete use cases ('plan articles, reports, talks and documentation') and a worked example, which is clear usage context. It never says when not to use it or names an alternative tool for overlapping tasks such as summarizing.

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

ai_rerankRerank documents by relevance: reranker for RAGA
Read-only
Inspect

Order up to 50 documents by how well each answers a query, with a relevance score from 0 to 1 (BAAI bge-reranker-base, a cross-encoder). Send documents as a JSON array or one per line; each is read up to 2,000 characters, 40,000 in all. Returns the original index, score and text, best first; top_n keeps only the best. Also available in the Cohere-style shape at /v1/rerank. Use to pick what a model reads after search or vector retrieval. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
queryYesWhat the documents should answer (up to 2,000 characters)
top_nNoKeep only the best N results (default all)
documentsYesUp to 50 documents: a JSON array of strings, or one per line

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing truncation limits (2,000 chars per doc, 40,000 total), the 50-document cap, the return shape (index, score, text, best first), and pricing ($0.002/call, first 25 free, failed calls free). It also resolves the idempotentHint=false annotation with a concrete reason: 'each call is charged, so repeats are not free'.

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

Conciseness4/5

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

Front-loads the core operation and stays to a single dense paragraph with no filler. The pricing clause is long but earns its place because it explains the non-idempotent charging behavior; a slight tightening would push this to a 5.

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

Completeness5/5

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

There is no output schema, yet the description fully documents the return payload and ordering, plus limits, cost and side-effect profile. For a 3-parameter tool of this complexity, an agent has everything needed to call it and interpret results.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description still adds real meaning by specifying per-document and total character truncation and the semantics of top_n ('keeps only the best'). The documents parameter's input encoding is already in the schema, so no further lift is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+metric: 'Order up to 50 documents by how well each answers a query, with a relevance score from 0 to 1', and names the underlying model (BAAI bge-reranker-base, a cross-encoder). This clearly separates it from sibling embedding/chat tools like ai_embed and ai_chat.

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

Usage Guidelines4/5

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

Explicitly states the use case: 'Use to pick what a model reads after search or vector retrieval', and points to a Cohere-style alternative endpoint at /v1/rerank. It does not spell out when NOT to rerank or contrast against sibling tools such as ai_embed, 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.

ai_rewriteRewrite text in a style: rewrite text to be more formal, casual, simpler, shorter or more persuasiveA
Read-only
Inspect

Rewrite text to be more formal, casual, simpler, shorter, friendlier, more professional or more persuasive, keeping the meaning and language. Use to polish emails, replies, product copy and messages. Example: text=hey, cant make it tmrw, can we move to thu?. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText, up to 8,000 characters
styleNoformal, casual, simpler, shorter, friendly, professional or persuasive (default professional)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and idempotentHint=false; the description reinforces the non-idempotency with an operational reason ('each call is charged, so repeats are not free'). It also discloses cost, billing paths (x402 USDC or card key /credits), the 25-free allowance, and that failed calls are free — real behavioral context annotations cannot express. Return-format detail is the only gap, and no output schema exists.

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

Conciseness5/5

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

Purpose, styles, use cases, example, then cost/safety in one tight block — front-loaded and free of filler. The pricing and billing clauses are dense but each carries distinct decision-relevant information.

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

Completeness5/5

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

For a simple 2-parameter transformation tool with annotations covering the safety profile and no output schema, nothing needed to invoke it correctly is missing: input shape, example, meaning-preservation guarantee, cost, and repeat-call behavior are all present.

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

Parameters3/5

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

Schema description coverage is 100% (both params documented, enum listed, default professional stated), so the schema already carries parameter meaning. The description only repeats the style list and gives one sample text value; it adds no syntax or edge-case guidance 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (rewrite) and resource (text) plus the full set of target styles, and adds the invariant 'keeping the meaning and language.' This distinguishes it cleanly from siblings like ai_summarize_text, ai_translate, and ai_chat.

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

Usage Guidelines4/5

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

Gives concrete usage contexts ('polish emails, replies, product copy and messages') and a worked input example, so an agent knows when this is the right call. It does not name an alternative or an explicit when-not case (e.g. shortening vs summarizing), so it stops short of 5.

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

airport_statusAirport delays, US ground stops and closures: check live FAA delays, ground stops and closures at a US airportA
Read-only
Inspect

Live FAA National Airspace System status for US airports: ground stops, ground delay programs, arrival and departure delays (with minimum, maximum and trend) and closures, each with its reason. Give an IATA code such as LGA for one airport (normal when nothing is reported), or nothing for the whole country. Public FAA data, refreshed about every minute. Use before travel planning, logistics or customer notices. Example: airport=LGA. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
airportNoIATA airport code such as LGA, SFO or ORD (default: all US airports with events)

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations it discloses refresh cadence (~every minute), cost ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and that repeats are not free — which directly explains the idempotentHint=false annotation. It also clarifies the empty-result behavior ('normal when nothing is reported'), so the agent knows an empty response is not an error.

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

Conciseness4/5

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

Front-loaded with the capability and the field list before the calling convention, cost, and safety note. It is dense but every sentence carries information; the payment sentence is a bit long, which keeps it just short of the top score.

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

Completeness4/5

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

With no output schema and a single optional parameter, the description fairly complete: it names the returned field groups and their reasons, the freshness, the empty state, and the cost. It does not describe the response envelope (single object vs list of events), which is the one loose end for an agent parsing results.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds an example (airport=LGA) and the semantic that omitting the parameter covers the whole country and that no events means normal operations. That last point is genuinely new relative to the schema's 'default: all US airports with events'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: live FAA National Airspace System status for US airports, enumerating ground stops, ground delay programs, arrival/departure delays with min/max/trend, and closures. No sibling tool in the list covers aviation status, so there is no ambiguity to resolve, and an agent can tell exactly what this returns.

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

Usage Guidelines4/5

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

It gives a clear use context ('before travel planning, logistics or customer notices') and explains the two calling modes: an IATA code for one airport, or nothing for the country. What is missing is any exclusion or named alternative, though no sibling tool overlaps this domain, so that gap is minor.

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

ai_sentimentSentiment analysis of text: tell whether a text is positive or negative, with a confidence scoreA
Read-only
Inspect

Positive or negative sentiment of English text with a confidence score, from a DistilBERT model fine-tuned on SST-2. Use to triage reviews, support messages, social posts and replies. Example: text=The checkout was fast and support answered within minutes.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesEnglish text, up to 4,000 characters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover read-only/destructive semantics, but the description adds what they cannot: per-call cost ($0.01 via x402 USDC or card key), the 25-call free tier, failed calls free, and an explicit reason why idempotentHint=false matters ("each call is charged, so repeats are not free"). That cost-and-repeat guidance is decision-relevant information an agent would otherwise have to discover by 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.

Conciseness4/5

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

Purpose is front-loaded, followed by use cases, example, pricing, and safety note — a sensible order. Minor blemishes: a doubled period in the example ("within minutes..") and a dense pricing clause that packs several facts into one sentence.

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

Completeness4/5

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

With one parameter, no output schema, and annotations already declaring safety, the description covers language, cost, and side-effect profile; the return value is sketched (label + confidence). It could be slightly more explicit about the exact response shape, but nothing needed 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.

Parameters3/5

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

Schema coverage is 100% and the single `text` parameter is already documented with its 4,000-character limit. The description reinforces the English-only constraint and supplies an example value, but adds no syntax or formatting detail beyond the schema — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — predicts positive/negative sentiment of English text with a confidence score — plus the underlying model (DistilBERT fine-tuned on SST-2). An agent can immediately distinguish it from generic siblings like ai_classify or ai_moderation because the output is a fixed two-way label with a score.

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

Usage Guidelines4/5

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

"Use to triage reviews, support messages, social posts and replies" gives concrete when-to-use scenarios. It stops short of naming alternatives or exclusions — e.g. that non-English input should be routed through ai_translate first, or that multi-label taxonomy work belongs to ai_classify.

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

ai_speechText to speech (TTS): turn text into an audio fileA
Read-only
Inspect

Turn up to 1,000 characters of text into natural speech as an audio file (base64, with its content type), in English, Spanish, French, Chinese, Japanese or Korean, with MeloTTS. Use for voice replies, audio notes, accessibility and phone or chat bots. Example: text=Your payment was received. Thank you!. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
langNoLanguage: en, es, fr, zh, ja or ko (default en)
textYesText to speak, up to 1,000 characters

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses cost ($0.01/call, 25 free, failed calls free), the payment paths (x402 USDC or card key via /credits), the return shape (base64 audio plus content type), and warns that repeats are charged because the tool is not idempotent. That directly reinforces the idempotentHint=false and readOnlyHint=true annotations with actionable context.

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

Conciseness4/5

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

Purpose and limits are front-loaded, then use cases, then pricing. It is dense but nearly every clause carries new information; the pricing/payment sentence is long but justified given there is no other place to learn the cost.

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

Completeness5/5

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

With no output schema, the description correctly compensates by stating the return is base64 audio with its content type, alongside input limits, language support, and billing behavior. Nothing material for a correct call is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the enum for lang and the 1,000-character limit on text are already documented in the schema; the description mainly restates the character cap and the language list. Baseline 3 is appropriate since the description adds no format or syntax detail the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('turn text into natural speech as an audio file') plus the engine (MeloTTS) and supported languages, which cleanly separates it from siblings like transcribe (the inverse) and ai_translate. An agent can route here without opening the schema.

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

Usage Guidelines4/5

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

Names concrete use cases (voice replies, audio notes, accessibility, phone/chat bots) and provides a worked example. It gives no explicit exclusions or 'use X instead' routing against siblings such as transcribe or ai_chat, 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.

ai_summarize_textSummarize text: shorten long text into a few sentences and key pointsA
Read-only
Inspect

Summarize up to 12,000 characters of text you send into a few sentences plus bullet key points. Use for long emails, documents, transcripts and tool outputs (for a web page by URL, use /summarize). Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText to summarize, up to 12,000 characters
sentencesNoSummary length in sentences, 1-8 (default 3)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate read-only, non-destructive, non-idempotent, open-world behavior, but the description adds critical operational details: cost per call, free failed calls, first 25 calls free, and that repeats are not free because each call is charged. It also reinforces that the tool only reads/computes and changes nothing.

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

Conciseness4/5

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

The description is front-loaded with purpose and usage, then adds pricing and safety context efficiently. It is slightly dense but every sentence is relevant to an agent deciding whether and how to call the tool.

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

Completeness5/5

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

With no output schema, the description supplies the return shape (a few sentences plus bullet key points), usage boundaries, input limit, and cost/auth behavior. An agent has enough context to call it correctly and understand the main operational constraints.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description restates the 12,000-character input limit but does not add meaning beyond the schema for the sentences parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: summarize up to 12,000 characters of supplied text into a few sentences plus bullet key points. It also distinguishes the URL case by directing agents to /summarize, making the tool's scope clear.

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

Usage Guidelines5/5

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

It names concrete use cases (long emails, documents, transcripts, tool outputs) and explicitly routes web-page-by-URL work to the /summarize alternative. This is clear when-to-use guidance rather than implied context.

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

ai_translateTranslate text (100 languages): translate text into another language, about 100 languagesA
Read-only
Inspect

Translate text between about 100 languages with Meta's M2M100 1.2B model. Give the target language as an ISO code such as en, sv, de, fr, es, zh or ja; the source language is optional. Use to localise messages and documents. Example: text=Payment received, thank you!, to=sv. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYesTarget language code, e.g. sv
fromNoSource language code (default en)
textYesText, up to 4,000 characters

TDQS

A4.5/5.0
Behavior5/5

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

The description adds substantial behavioral detail beyond the annotations: pricing at $0.01 per call, payment via x402 USDC or a card key, first 25 calls free, failed calls free, and that repeated calls are charged because the operation is not idempotent. It also confirms the tool reads or computes only and changes nothing, which aligns with the readOnlyHint and destructiveHint=false annotations.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then moves immediately into language-code guidance and an example before covering pricing and side-effect behavior. Each sentence adds useful information for invocation or cost awareness, with no significant filler.

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

Completeness5/5

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

For a three-parameter translation tool with fully covered schema descriptions and clear annotations, the description is complete enough to call correctly. It covers purpose, parameter format, cost model, free tier, and confirms that the operation changes nothing, leaving no critical gaps for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds some helpful examples of target ISO codes and a full example call, but most of its parameter guidance repeats what the schema already provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: translate text between about 100 languages using Meta's M2M100 model. It also gives concrete usage context (localising messages and documents) and an example, so an agent can distinguish it from sibling AI tools like ai_rewrite or ai_summarize_text.

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

Usage Guidelines4/5

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

It clearly says to use the tool for localising messages and documents, and explains that the target language should be an ISO code while the source language is optional. It does not explicitly contrast when to choose this over related siblings, but the usage context is clear enough for correct selection.

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

arb_allowanceToken allowance, Arbitrum ERC-20A
Read-only
Inspect

ERC-20 token allowance on Arbitrum One: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use arb_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ownerYes0x wallet that gave the approval
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address
spenderYes0x contract or wallet allowed to spend (the example is Uniswap Permit2)

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover safety (readOnly, non-destructive) but the description adds the pricing model ($0.01/call, first 25 free, failures free), the error contract (404 for missing contract, 422 for non-ERC-20, both uncharged), and explains why idempotentHint=false matters: 'each call is charged, so repeats are not free.' That is real value beyond the annotations.

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

Conciseness4/5

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

One dense paragraph, front-loaded with what/why, then input resolution, then pricing. Every sentence carries information, though the pricing sentence is long and could be split for scanability.

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

Completeness5/5

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

No output schema exists, and the description compensates by naming the return fields (raw allowance, token-denominated allowance, unlimited flag). Combined with the error and pricing contract, an agent has everything needed to call this correctly and interpret results.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description still adds resolution semantics the schema lacks: token accepts a ticker or a 0x contract, with 404/422 behavior on bad input. It doesn't extend owner/spender meaning, but those are already well documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+chain - ERC-20 allowance on Arbitrum One - and spells out the three returned facts (raw allowance, token units, unlimited flag). Explicitly distinguishes itself from arb_token_balance, which the sibling list confirms exists.

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

Usage Guidelines5/5

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

Gives both positive triggers ('check an approval before a swap', 'audit risky open approvals') and an explicit alternative with its condition ('for the owner's balance use arb_token_balance'). An agent can route without opening either schema.

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

arb_balanceArbitrum One native balanceA
Read-only
Inspect

Native ETH balance (eth_getBalance) of any 0x wallet address on Arbitrum One at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use arb_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet or contract address

TDQS

A5/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that malformed addresses return 400 and are uncharged, the $0.01/call x402 or credits pricing, the first-25-free allowance, and that repeats are not free (which meaningfully explains the idempotentHint=false annotation). Also reaffirms read-only semantics with concrete consequence ('reads or computes only and changes nothing').

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

Conciseness5/5

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

The purpose and return shape are front-loaded in the first clause, followed by routing guidance, then error/pricing detail. Dense but every sentence carries information an agent would otherwise lack, with no filler.

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

Completeness5/5

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

With no output schema, the description still specifies return values (wei and ETH), the state snapshot (latest block), and error semantics. Combined with the single fully documented parameter, nothing an agent needs to call this correctly is missing.

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

Parameters5/5

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

Schema coverage is already 100%, so the baseline is a 3, but the description adds a concrete example address, clarifies 'any 0x wallet address' (including contracts per the schema), and documents validation behavior for malformed input. That is real added value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific resource (native ETH balance), the underlying method (eth_getBalance), the scope (Arbitrum One, latest block) and the units (wei and ETH). It explicitly differentiates itself from arb_token_balance and wallet_portfolio, so an agent can route correctly among the many sibling balance tools.

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

Usage Guidelines5/5

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

Gives the concrete decision rule: use this to check gas/transfer funding, use arb_token_balance for ERC-20s, and wallet_portfolio for all holdings at once. This is explicit when-to-use plus named alternatives, the top of the scale.

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

arb_blockBlock number, Arbitrum OneA
Read-only
Inspect

Latest block number and block details on Arbitrum One, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use arb_gas. A block that does not exist yet returns 404, uncharged. Example: number=latest. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberNoBlock number, or 'latest' (default)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, idempotentHint=false, so the safety profile is covered. The description adds genuinely new context: a non-existent block returns 404 uncharged, failed calls are free, and repeat calls are billed — matching idempotentHint=false. It slightly re-states 'reads or computes only and changes nothing', which annotations already convey.

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

Conciseness4/5

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

Front-loaded with purpose and return fields, then routing guidance, then error/billing notes. It is dense but slightly overloaded by the pricing sentence ('$0.01/call via x402 USDC or a card key (/credits), first 25 free'), which is useful but verbose for a description.

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

Completeness5/5

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

For a one-parameter, read-only block lookup with no output schema, the description covers purpose, return fields, error behavior, cost model, and sibling routing — everything an agent needs to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents the single param, but the description still adds value by specifying 'decimal number' format and an example ('number=latest') plus the implicit default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Latest block number and block details on Arbitrum One, or any block by decimal number') and enumerates the returned fields. It is clearly distinguishable from the chain-specific siblings (eth_block, base_block, op_block, polygon_block) and from fee tools.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('timestamps and confirmation counts') and an explicit alternative for the adjacent need ('for current fees use arb_gas'). It also supplies a usage example ('number=latest'), leaving little inference.

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

arb_callEth call, Arbitrum contract callA
Read-only
Inspect

Read-only contract call on Arbitrum One (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. Example: to=0xaf88d065e77c8cC2239327C5EDb3A432268e5831, data=0x18160ddd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x contract address to call
dataYes0x ABI-encoded calldata: 4-byte selector plus arguments
fromNoOptional 0x sender address for calls that check msg.sender

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive/non-idempotent, so the bar is lower, but the description still adds real context: 8 KB calldata cap, reverts return 422 with the reason and are uncharged, execution pinned to the latest block, and the pricing model ($0.01/call, first 25 free). The 'repeats are not free' note is consistent with idempotentHint=false rather than contradicting it.

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

Conciseness4/5

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

Front-loaded with what the tool is and when to use it, and every sentence contributes (limits, pricing, revert behavior). It is a single dense paragraph and the pricing/credits detail is slightly over-weighted relative to its selection value, keeping it just under a 5.

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

Completeness5/5

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

No output schema exists, and the description discharges that burden by explaining the return is raw undecoded return data that must be decoded with the function's ABI. Together with block semantics, revert behavior, and cost, an agent has everything needed to invoke and interpret the result correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description adds meaning beyond the schema: the calldata format is spelled out (4-byte selector plus arguments) and demonstrated with a real selector, and the 8 KB size limit is only stated here. The optional 'from' parameter is left to the schema, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read-only contract call on Arbitrum One (eth_call)') plus the exact scope: ABI-encoded calldata to a contract at the latest block, raw return data, no transaction or gas. It also distinguishes itself from the family of dedicated readers like arb_token_balance/arb_token_info by saying it covers 'any view function that has no dedicated tool'.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use this for view functions lacking a dedicated tool, and the concrete example (USDC totalSupply, selector 0x18160ddd) shows the intended call shape. Cost and retry conditions (charged per call, repeats not free, failed calls free) are stated, which is the practical guidance an agent needs before calling.

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

arb_estimate_gasEstimate gas, ArbitrumA
Read-only
Inspect

Estimate the gas a transaction would use on Arbitrum One (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use arb_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x recipient or contract address
dataNoOptional 0x calldata for a contract call
fromNo0x sender address (default: an empty address)
valueNoAmount of ETH to send, in ETH (default 0)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, non-idempotent, open-world, but the description adds genuinely new behavior: reverting transactions return 422 with the reason and are uncharged, and each successful call is billed so repeats are not free. The pricing/payment path (x402 USDC, card key, first 25 free) further clarifies cost consequences. Only the precise response shape for success is left implicit, which is minor for a no-output-schema tool.

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

Conciseness4/5

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

Front-loaded with the verb and resource, then inputs, then alternatives, then behavior and pricing — a sensible ordering with no filler sentences. It is slightly long, and the payment/billing block is dense, but every clause carries actionable information.

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

Completeness5/5

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

For a four-parameter, read-only estimator with no output schema, the description covers what is returned (gas units, gwei, ETH), the failure mode (422 with revert reason, uncharged), the cost model, and which sibling to use instead. Nothing an agent needs in order 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.

Parameters4/5

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, but the description adds real nuance: value is expressed in ETH and the sender is required only when the call depends on it. The inclusion of a concrete example address (to=0x...dEaD) also anchors the expected address format beyond the schema's generic '0x recipient or contract address'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — estimate gas for a transaction on Arbitrum One — and names the underlying method (eth_estimateGas) plus exactly what is returned (gas units, gwei, ETH cost). It explicitly distinguishes itself from the sibling arb_gas, which only reports gas price, so an agent can route correctly 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.

Usage Guidelines5/5

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

Gives concrete when-to-use triggers ('before sending a transaction or to price a batch') and an explicit when-not/alternative ('for the gas price alone use arb_gas'). It also states the preconditions for inputs ('sender when the call depends on it'), 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.

arb_gasArbitrum One gas priceA
Read-only
Inspect

Current gas price on Arbitrum One (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use arb_receipt. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.4/5.0
Behavior5/5

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

Well beyond the annotations, it discloses the billing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and explains why repeats are not free, which is precisely the context behind idempotentHint=false. It also confirms 'reads or computes only and changes nothing', reinforcing readOnlyHint with plain language.

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

Conciseness4/5

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

Front-loaded with what the tool returns, then use case, then pricing — a sensible ordering with no filler sentences. The pricing clause is dense but earns its place for a paid endpoint; the sentence count is slightly high for a zero-required-parameter read.

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

Completeness5/5

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

There is no output schema, so the description carries the return-value burden itself, and it does: it lists the exact fields and a concrete derived figure (21,000-gas ETH transfer cost). Combined with the usage and pricing context, nothing an agent needs to call or interpret this tool is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the `only` filter is already fully documented in the schema and the baseline of 3 applies. The description adds nothing about `only` and in fact says 'Takes no input', which mildly understates the optional projection parameter and could discourage an agent from using it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Current gas price on Arbitrum One'), names the underlying RPC method (eth_gasPrice), and enumerates exactly what comes back (gas price, base fee, suggested priority fee, plain-transfer cost). It also explicitly separates itself from arb_receipt, so an agent can distinguish it from at least one sibling 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.

Usage Guidelines4/5

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

It gives concrete when-to-use guidance ('before sending a transaction or to decide whether to wait') and names an alternative for a different need ('for the fee a past transaction actually paid use arb_receipt'). The remaining gap is that arb_estimate_gas — the sibling most easily confused with a gas-pricing tool — is never addressed or excluded.

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

arb_gas_historyGas history, Arbitrum gas priceA
Read-only
Inspect

Gas price history on Arbitrum One (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use arb_gas. Example: blocks=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks, 5-100 (default 20)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover read-only and destructive behavior, and the description adds genuinely new operational context: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and that repeats are not free — which explains the non-obvious idempotentHint=false. It also reinforces that the call reads/computes only and changes nothing.

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

Conciseness4/5

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

Front-loaded with the resource and return shape, then usage, then example, then cost. The pricing/billing sentence is slightly dense but carries real decision value; nothing is gratuitous filler.

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

Completeness5/5

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

There is no output schema, so the description must describe the return shape, and it does so field by field (base fee, fullness, percentiles, aggregated low/avg/high). Combined with the cost model and sibling routing, 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.

Parameters3/5

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

Schema coverage is 100%, and the parameter's range and default (5-100, default 20) are already documented in the schema, so the description's restatement adds no new constraint. The description does clarify what the window is used for and how it maps to returned statistics, but the parameter meaning itself is fully covered by structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — gas price history on Arbitrum One via eth_feeHistory — and enumerates the returned fields (base fee, block fullness, 10/50/90th percentile priority fees, low/avg/high over the window). It explicitly contrasts with the sibling arb_gas for the current price alone, 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.

Usage Guidelines5/5

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

Names concrete decision contexts (judge whether fees are rising, pick a priority fee, time a transaction) and gives the explicit alternative for the other case: 'for the current price alone use arb_gas'. That is an unambiguous when-to-use / when-not-to-use routing rule.

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

arb_is_contractArbitrum One contract checkA
Read-only
Inspect

Check whether a 0x address on Arbitrum One is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only, non-destructive, non-idempotent, open-world, but the description adds context the annotations cannot: malformed addresses are rejected with 400 and uncharged, pricing is $0.01/call with the first 25 free, failed calls are free, and the explicit note that 'each call is charged, so repeats are not free' explains the idempotentHint=false in operational terms. It also confirms 'reads or computes only and changes nothing,' reinforcing the safety profile with the billing model an agent needs before retrying.

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

Conciseness4/5

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

The core capability is front-loaded in the first sentence, with usage guidance, error behavior, example, and pricing following in a logical order; nothing is padding. It is slightly overpacked—pricing, example, and billing rules share a single dense sentence—but every clause carries information an agent needs for a paid, non-idempotent call.

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

Completeness4/5

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

With one required param and no output schema, the description carries the return-value burden and does so by naming the three outputs (bytecode size, proxy flag, implementation). The only gap is the exact response shape or how a plain wallet is represented, which an agent can infer but not confirm.

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

Parameters4/5

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

Schema coverage is 100% (the single 'address' param is described), so baseline is 3. The description adds value beyond the schema by pinning the address to Arbitrum One semantics, supplying a concrete example value, and stating the failure mode for malformed input (400, uncharged), which tells the agent how to pre-validate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('check whether a 0x address on Arbitrum One is a smart contract or a plain wallet') and enumerates what the answer contains: bytecode size, EIP-1167 minimal-proxy status, and implementation address. That detail distinguishes it from arb_proxy and the parallel *_is_contract siblings without the agent opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use ('before sending funds or approving a spender') and names an alternative with the condition that selects it ('for a fuller risk verdict use check_counterparty'). This is the when/when-not/alternative pattern at full strength.

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

arb_logsArbitrum One recent event logsA
Read-only
Inspect

Recent contract event logs on Arbitrum One (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use arb_receipt. Example: address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks to scan (1-1000, default 50)
topic0NoOptional 0x event signature hash to filter by
addressYes0x contract address

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety and world-openness, and the description adds genuinely new context: per-call pricing ($0.01 via x402/card key), first 25 free, failed calls free, and that repeats are charged — which explains the non-intuitive idempotentHint=false. It also summarizes the return payload (up to 100 logs with block, tx hash, topics) despite there being no output schema. It does restate "reads only, changes nothing," which duplicates readOnlyHint.

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

Conciseness4/5

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

Front-loaded with the verb, chain, and RPC method, then contract, then the sibling exclusion, then pricing. Dense and mostly waste-free; the inline example address and the repeated read-only assurance are the only expendable bits.

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

Completeness4/5

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

For a 3-param read tool with no output schema and full annotation coverage, the description supplies purpose, routing, return shape, cost model, and defaults. Only edge behavior (invalid address, zero-log results, whether the 100-log cap truncates silently) is unaddressed.

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

Parameters3/5

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

Schema coverage is 100% and the description largely restates it: the 1–1,000 / default 50 range for blocks is already in the schema, as is the topic0 filter. It does add value in two spots — that topic0 is specifically a 32-byte hash and that returns cap at 100 logs, which effectively bounds how much of the scanned block range is observable — but the example address is decorative. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+chain: "Recent contract event logs on Arbitrum One (eth_getLogs)" with the exact scope (last N blocks) and filters. It also names the sibling it is not, arb_receipt, so an agent can discriminate 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.

Usage Guidelines5/5

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

Explicit when-to-use ("watch transfers or contract events") and an explicit alternative with its selecting condition ("for one transaction's outcome use arb_receipt"). Nothing is left to inference about routing.

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

arb_nft_balanceNFT balance, ArbitrumA
Read-only
Inspect

How many NFTs of one ERC-721 collection a wallet holds on Arbitrum One (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use arb_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address
contractYes0x ERC-721 collection contract address

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only/no-destroy/open-world status, but the description adds real value beyond them: error contracts (404 missing contract, 422 non-ERC-721, both uncharged), pricing ($0.01/call via x402 or card key, first 25 free, failed calls free), and that repeats are billed — consistent with idempotentHint=false. It never states the response shape beyond name/symbol, and doesn't mention rate limits, which keeps it shy 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.

Conciseness4/5

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

Front-loaded with the core operation and the sibling disambiguation, then error and billing facts. Dense but mostly earned; the pricing/charging sentences are the longest portion relative to the operation's simplicity, so not perfectly tight.

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

Completeness5/5

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

With no output schema, the description discloses what comes back (balance plus collection name and symbol), the two failure modes and their billing treatment, and the prerequisite that both arguments are 0x addresses. 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.

Parameters4/5

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 still adds meaning by saying both inputs are 0x addresses and that the contract must be a valid ERC-721 collection (else 422), which ties the parameter to a failure mode. It adds no format examples or distinctions beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource: counts how many NFTs of one ERC-721 collection a wallet holds on Arbitrum One (balanceOf), plus returns collection name and symbol. Explicitly distinguishes itself from arb_nft_owner ('for who holds one token id use arb_nft_owner'), so an agent can pick between the two 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.

Usage Guidelines5/5

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

Names two concrete use cases (gate check before a token-gated action; verifying a wallet still holds a collection) and routes the alternative case (who holds a specific token id) to arb_nft_owner. Both when-to-use and when-not-to-use are present.

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

arb_nft_metadataNFT metadata, ArbitrumA
Read-only
Inspect

NFT metadata on Arbitrum One: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use arb_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses output truncation for strings over 1,000 chars (e.g. on-chain SVG), 422-uncharged for nonexistent tokens, metadataError for unreachable metadata, the ipfs.io gateway path, and the $0.01/call price with a 25-call free tier. The note that repeats are charged is consistent with idempotentHint=false and explains the cost model annotations cannot express.

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

Conciseness4/5

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

The capability and its distinguishing scope are front-loaded, then behavior, error cases, example, and pricing in a sensible order. It is dense and the pricing/cost sentence is long, but no sentence is filler.

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

Completeness5/5

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

There is no output schema, so the description carries the return contract — it names the returned fields, the truncation rule, and the metadataError signal. Combined with the error and pricing notes, 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.

Parameters4/5

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 concrete worked example (contract=0xC364...FE88, tokenId=1) that fixes the expected address and token-id format for call construction. It does not add further constraints beyond that, so it lands just above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — reads the tokenURI and the resolved JSON metadata (name, description, image, attributes) for one ERC-721 token id on Arbitrum One. It also names the sibling it is not (arb_nft_owner) and its chain-specific scope, so an agent can distinguish it from eth_/base_/op_/polygon_nft_metadata 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.

Usage Guidelines5/5

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

"Use to show or check what an NFT is; for its owner use arb_nft_owner" gives an explicit when-to-use plus the routing alternative. It also names the supported metadata sources (data:, https, ipfs://) so an agent knows which tokens it can resolve.

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

arb_nft_ownerNFT owner, ArbitrumA
Read-only
Inspect

Owner of an NFT on Arbitrum One: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use arb_nft_balance, for the token's metadata arb_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.3/5.0
Behavior4/5

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

Adds real behavioral context beyond annotations: 404 for a missing contract, 422 for a nonexistent token, both uncharged, plus per-call pricing and the note that repeats are charged (consistent with idempotentHint=false). The description could still describe the response shape, but the safety/error/cost profile is well covered.

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

Conciseness4/5

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

Purpose and the two sibling alternatives are front-loaded, followed by errors, example, and pricing. Every sentence carries information, though the billing/credits sentence is somewhat dense and could be trimmed without loss.

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

Completeness4/5

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

No output schema, and the description does state that the result includes the current owner, collection name, and symbol. Combined with the error semantics and pricing, this is nearly complete, with only the exact response field structure left implicit.

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

Parameters3/5

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

Schema coverage is 100% (contract address, token id), so the schema already documents both parameters. The example with a concrete contract and tokenId=1 is helpful but only marginally beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Owner of an NFT on Arbitrum One... the wallet that holds one ERC-721 token id right now (ownerOf)') and explicitly distinguishes itself from arb_nft_balance and arb_nft_metadata, which cover token counts and metadata respectively.

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

Usage Guidelines5/5

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

Gives concrete when-to-use triggers (verify holder before a trade, mint gate, airdrop) and names both alternatives with their scope for count and metadata, so the agent can choose without opening other schemas.

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

arb_nonceArbitrum One account nonceA
Read-only
Inspect

Read the transaction count (nonce) of a 0x address on Arbitrum One, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use arb_balance. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond the annotations: it discloses that both confirmed and pending nonces are returned, that malformed addresses fail with a 400 and are uncharged, and that successful calls are billed per call (which explains the idempotentHint=false). Pricing-tier details are useful but border on promotional rather than operational.

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

Conciseness4/5

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

Front-loads purpose, then usage, then error/pricing, so the important part is read first. It is dense but every clause carries information; the pricing sentence is the weakest use of space.

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

Completeness4/5

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

With no output schema, the description compensates by saying the result covers both confirmed and pending counts, which is what an agent needs to interpret the return. It doesn't say how the two values are distinguished in the response body.

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

Parameters4/5

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

Schema coverage is already 100%, so baseline is 3; the description adds an expected format cue and a worked example address, which is more than the schema's bare '0x address' string. It does not state whether ENS names are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read the transaction count (nonce) of a 0x address') scoped to Arbitrum One, and separates itself from the sibling arb_balance by name. An agent can pick it over eth_nonce/op_nonce purely from the chain qualifier.

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

Usage Guidelines5/5

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

Gives two concrete use cases ('build the next transaction', 'tell whether an address has ever sent anything') and an explicit alternative route ('for its balance use arb_balance'). Nothing is left to inference about when to reach for it.

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

arb_proxyProxy implementation, ArbitrumA
Read-only
Inspect

Find the implementation behind a proxy contract on Arbitrum One: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. Example: address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x contract address

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so safety framing is partially redundant rather than additive. What the description genuinely adds is cost behavior (per-call charge, repeats not free, failures uncharged) and the failure taxonomy (400 malformed vs 404 no code) — useful, but the pricing paragraphs are commercial boilerplate that wouldn't change a tool-selection decision. It stops short of saying what the response contains beyond 'names the kind found'.

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

Conciseness4/5

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

The capability and the alternative routing are front-loaded in the first two sentences, which is the right ordering. Efficiency is slightly hurt by three clauses of payment/credits detail at the end that most callers won't act on, but nothing is genuinely redundant.

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

Completeness4/5

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

With no output schema, the description still indicates the return content ('names the kind found') and lists the proxy standards checked, which is enough to set expectations. Failure modes and cost are covered; only the exact shape of the response is left to discovery, a minor gap for a single-parameter read tool.

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

Parameters3/5

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

Only one parameter and schema description coverage is 100%, so the schema already carries the meaning and the baseline is 3. The description does add a concrete address example and implicitly ties the parameter to the Arbitrum chain, which is modest added value, but no format constraints beyond the schema's '0x contract address'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find the implementation behind a proxy contract on Arbitrum One') and enumerates exactly which storage slots / bytecode patterns it inspects, so an agent knows the precise capability. The chain is named, which separates it from the eth_proxy/base_proxy/op_proxy/polygon_proxy siblings despite the parallel naming scheme.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use condition ('before trusting or decoding a contract whose code can be swapped by its admin') and an explicit alternative with a selection rule ('for a fuller risk verdict use contract_risk'). The 400/404 semantics also tell the agent what failure looks like without trial and error.

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

arb_receiptArbitrum One transaction receiptA
Read-only
Inspect

Transaction receipt on Arbitrum One (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use arb_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. Example: hash=0xf03682db039f7b1b72ddf4d17572738f142cf63ecb36c90afa570430ea9774c4. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly/openWorld/non-idempotent annotations, the description adds important operational context: pending hashes return 404 uncharged, failed calls are free, pricing is $0.01/call via x402 or card key, and repeats are charged again. These are material behavioral and billing details an agent should know 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.

Conciseness4/5

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

The purpose and return content are front-loaded, and the description is dense but readable. Some clauses repeat annotation-level facts, such as read-only behavior and non-free repeats, but the extra pricing and error details generally earn their place.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description supplies enough detail: it enumerates the receipt fields, explains the 404 case, and discloses billing behavior. An agent has what it needs to call and interpret this tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the single hash parameter is already well documented. The description still adds a concrete example and clarifies that a pending or unknown hash produces a 404 rather than a normal receipt, which is useful handling semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and chain (transaction receipt on Arbitrum One / eth_getTransactionReceipt) and enumerates the returned fields: status, gas used, effective gas price, fee, logs, and contract creation. It explicitly distinguishes itself from arb_tx by saying sender, value, and calldata belong there.

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

Usage Guidelines5/5

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

It gives an explicit use case — confirming that a payment or call went through — and names arb_tx as the alternative for sender/value/calldata. It also explains the pending/unknown-hash case as a 404 response.

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

arb_storageStorage slot read, ArbitrumA
Read-only
Inspect

Read one raw storage slot of a contract on Arbitrum One (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use arb_proxy. A malformed address or slot is rejected with 400, uncharged. Example: address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
slotNoSlot: a decimal index (0, 1, 2…) or a 0x 32-byte key
addressYes0x contract address

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnly/openWorld/non-destructive/non-idempotent), the description adds material operational facts: malformed address or slot returns 400 and is uncharged, failed calls are free, and each successful call is charged so repeats are not free. It also discloses the dual return representation. This is real context rather than restatement.

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

Conciseness4/5

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

Front-loaded with the core action and return shape, then usage, errors, pricing in a sensible order. Slightly redundant at the tail: 'each call is charged, so repeats are not free' restates the earlier 'Price $0.01/call' clause and could be trimmed.

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

Completeness5/5

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

No output schema exists, and the description compensates by describing the returned 32-byte word in both numeric and address form. Combined with error behavior and cost model, an agent has everything needed to call it correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns an increment by explaining that a slot may be a decimal index or a 0x 32-byte key and that keyed form is used for mapping and proxy slots — meaning the schema does not convey. It also supplies a concrete address example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Read one raw storage slot of a contract on Arbitrum One (eth_getStorageAt)'. It also pins the return shape (32-byte word as number, and as address when applicable), which lets an agent distinguish it from arb_call, arb_balance, and the other arb_* readers without opening the schema.

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

Usage Guidelines5/5

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

Explicitly names the use case ('contract state that has no getter, owners or implementation pointers') and routes the proxy case to the sibling: 'for proxies use arb_proxy'. Both when-to-use and when-to-use-something-else are present.

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

arb_token_balanceArbitrum One ERC-20 balanceA
Read-only
Inspect

ERC-20 token balance of a wallet on Arbitrum One (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use arb_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address
addressYes0x wallet address

TDQS

A4.5/5.0
Behavior5/5

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

Goes well past the annotations: discloses pricing ($0.01/call via x402 or credits, first 25 free, failed calls free), error semantics (404 for no contract, 422 for a non-ERC-20 contract, both uncharged), and confirms nothing is mutated. 'Each call is charged, so repeats are not free' also explains the otherwise puzzling idempotentHint=false.

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

Conciseness4/5

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

Front-loads the result shape and the sibling distinction, which is the right ordering, and every clause carries information. It is a dense single paragraph with mild redundancy — pricing is stated and then restated as 'each call is charged, so repeats are not free'.

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

Completeness4/5

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

With no output schema, the description correctly compensates by describing the return fields, and it covers errors, cost, and the sibling alternative. The only substantive gap is the mischaracterization of the token parameter's accepted forms, which is the one thing an agent could get wrong when calling.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does add the 40-hex-character address format, but its claim that 'Both inputs are 0x addresses' conflicts with the schema's token parameter, which accepts tickers like USDC or WETH — an agent reading only the prose could wrongly reject a ticker input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (fetch an ERC-20 balanceOf result for a wallet on Arbitrum One) and enumerates exactly what comes back: raw amount, decimals, symbol, human-readable amount. It explicitly separates itself from arb_balance for the native coin, so an agent can pick it over the dozens of sibling *balance tools without opening any schema.

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

Usage Guidelines5/5

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

Gives a concrete use case ('check stablecoin or token holdings before a transfer or trade') and names the alternative with the condition that selects it ('for the native coin use arb_balance'). None of the other 90+ siblings are confused with it.

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

arb_token_infoArbitrum One ERC-20 token infoA
Read-only
Inspect

Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Arbitrum One, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use arb_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. Example: token=0xaf88d065e77c8cC2239327C5EDb3A432268e5831. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the commercial model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), the failure mode (non-ERC-20 address returns 422 and is uncharged), and the fact that repeats are charged — which explains the idempotentHint=false flag rather than contradicting it. It also restates the read-only nature in agent-facing terms ('reads or computes only and changes nothing').

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

Conciseness4/5

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

Front-loads the purpose and the alternative before the operational detail, and every sentence carries information an agent needs. The payment clauses are dense and could be tightened, but none are pure waste given the unusual per-call billing model.

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

Completeness5/5

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

With no output schema, the description compensates by enumerating the returned fields (name, symbol, decimals, total supply), and it covers the input forms, the error path, the cost, and the sibling alternative. An agent has everything needed to select and invoke it correctly on the first try.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds a concrete worked example address (0xaf88…5831) and the semantic consequence of passing a non-ERC-20 address (422, uncharged), which the schema does not convey. It stops short of covering ticker-vs-address resolution behavior (e.g. unknown ticker handling), so it is not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — look up name, symbol, decimals and total supply of an ERC-20 contract — and pins the chain (Arbitrum One) which is exactly what distinguishes it from the ~7 sibling *_token_info tools. It also explicitly names the sibling it is not (arb_token_balance) so the 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.

Usage Guidelines5/5

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

Gives two concrete positive use cases (identify an unknown token address, format raw amounts) and one explicit exclusion with the correct alternative: 'for a holder's balance use arb_token_balance'. The chain scoping is unambiguous, so there is nothing left to infer about when to call it.

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

arb_token_transfersToken transfers, Arbitrum OneA
Read-only
Inspect

List a wallet's recent transfers of one ERC-20 token (default USDC) on Arbitrum One, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use arb_token_balance. Malformed addresses are rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenNoToken: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network)
blocksNoHow many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 8 minutes on Arbitrum One)
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: result cap of 50, newest-first ordering, default token, and the crucial clarification that repeats are not free because billing — not state — drives idempotentHint=false. The only gap is that it doesn't say what an empty result or a token with no transfers looks like, but the read-only/non-destructive profile is fully consistent.

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

Conciseness4/5

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

Purpose is front-loaded and every clause carries information (scope, ordering, cap, alternative, error path, pricing). It is dense to the point of being a single run-on block, and the pricing/credits tail is longer than most agents need.

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

Completeness5/5

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

There is no output schema, and the description compensates by enumerating the returned fields (direction, counterparty, amount, transaction) and their ordering and cap. Inputs, caveats and cost model are all covered, so 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.

Parameters4/5

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 extra by restating the blocks range (1-2,000, default 1,000), the USDC token default, and giving a concrete checksummed address example. It doesn't clarify ticker-vs-contract resolution edge cases, which stays in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a wallet's recent transfers of one ERC-20 token'), plus chain, direction (in and out), window and result cap. It also names the sibling it is not (arb_token_balance for current balance), so an agent can distinguish it without opening any schema.

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

Usage Guidelines5/5

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

Explicit when-to-use cases ('confirm a payment arrived or see what was sent') and an explicit alternative ('for the current balance use arb_token_balance'). It even covers the failure path: malformed addresses are rejected with 400 and uncharged.

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

arb_txArbitrum One transactionA
Read-only
Inspect

Look up an Arbitrum One transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use arb_receipt, for emitted events arb_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. Example: hash=0xf03682db039f7b1b72ddf4d17572738f142cf63ecb36c90afa570430ea9774c4. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, destructiveHint=false and idempotentHint=false; the description still adds real signal beyond them: unknown hash returns 404 uncharged, failed calls are free, each call is metered so repeats cost money (which is what idempotentHint=false actually implies for billing). It also restates the no-side-effects guarantee, reinforcing rather than contradicting the annotations.

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

Conciseness4/5

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

Front-loaded with purpose and routing before pricing and example detail, and every clause carries information. It is a dense single block though — pricing, example, and safety caveats are stacked together rather than separated, which costs a little scanability.

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

Completeness5/5

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

One required parameter, no output schema, annotations present — and the description still covers return fields, the not-found case, cost model, and side-effect profile. Nothing an agent needs in order to decide and call correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns extra by supplying a concrete worked example hash and the error semantics of an unknown value (404, uncharged). It doesn't add anything about the hash format beyond the schema, but the example and failure behavior are genuine value-adds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ("Look up an Arbitrum One transaction by hash") followed by an enumeration of what comes back (sender, recipient, value in ETH, nonce, gas limit, selector, block). It explicitly carves itself away from arb_receipt (success/failure, fees) and arb_logs (events), so an agent can pick the right sibling 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.

Usage Guidelines5/5

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

Gives an explicit use case ("see what was sent or whether it exists") and names both alternatives with the condition that selects each. This is the when/when-not/alternatives pattern at full strength.

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

barcodeBarcode generator: Code 128 or EAN-13 as SVGA
Read-only
Inspect

Generate a barcode as an SVG image: Code 128 for any printable ASCII text (switching to the compact numeric set for runs of digits, with the mod-103 check symbol), or EAN-13 for 12 or 13 digits (the check digit is computed or verified). Set bar width and height and whether to print the text below. Returns the SVG and a data URL ready for an tag. Use for shipping labels, product codes, tickets or inventory; for QR codes use qr. Example: text=AGENT-12345. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesWhat to encode: ASCII text for Code 128, or 12-13 digits for EAN-13
typeNocode128 (default) or ean13
labelNotrue (default) to print the text below the bars
widthNoModule (narrowest bar) width in pixels, 1-6 (default 2)
heightNoBar height in pixels, 20-300 (default 80)

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, but the description adds substantial context beyond them: the pricing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and the fact that each call is charged so repeats are not free. The 'reads or computes only and changes nothing' line also reconciles with the counterintuitive idempotentHint=false by explaining the cost basis.

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

Conciseness4/5

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

Dense and front-loaded — the encoding options, output format, usage, and pricing all appear in a logical order with no filler. It is on the longer side, but nearly every clause carries actionable information for the agent.

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

Completeness5/5

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

Though there is no output schema, the description explicitly states the return value (SVG plus a data URL ready for an <img> tag), covers encoding defaults, and discloses the cost model. 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.

Parameters4/5

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 five parameters, but the description adds genuine encoding semantics: the mod-103 check symbol for Code 128's numeric subset, and that EAN-13's check digit is computed or verified. These details go beyond the schema's terse field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (generate) and resource (barcode as SVG), and names both supported symbologies (Code 128, EAN-13) plus their input constraints. Explicitly routes QR users to the sibling qr tool, so the agent can distinguish it 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.

Usage Guidelines5/5

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

Gives concrete use cases (shipping labels, product codes, tickets, inventory) and an explicit alternative ('for QR codes use qr'). Provides a worked example (text=AGENT-12345) and notes EAN-13's 12-or-13-digit requirement, so the agent knows exactly when and how to select it.

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

base64_decodeBase64 decode: decode base64 or URL-safe base64 back to textA
Read-only
Inspect

Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ=. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe base64 text

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly, destructive, and idempotent hints, so the bar is lower. The description adds genuinely non-redundant context: missing padding is tolerated, pricing model (first 25 free, $0.01/call, failed calls free), and reinforces non-idempotent cost behavior ('repeats are not free').

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

Conciseness4/5

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

Front-loaded with the operation, then tolerance, then use cases, then pricing. The pricing sentence is longer than strictly needed but is behaviorally relevant to the calling agent; nothing is wasted on restating the name.

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

Completeness4/5

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

For a single-parameter utility with no output schema, the description covers input forms (standard/URL-safe, padding tolerant), usage context, and cost behavior. Only the failure mode (what happens on invalid base64) is left implicit.

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

Parameters4/5

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

Schema coverage is 100% and the single parameter is described as 'The base64 text'. The description goes beyond the schema by noting padding tolerance and giving a concrete invocation example (text=aGVsbG8gd29ybGQ=), which clarifies accepted input forms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Decode standard or URL-safe base64 to UTF-8 text', including both variants handled. The sibling base64_encode is implicitly the inverse, and the title/description make the direction of the operation unambiguous.

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

Usage Guidelines4/5

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

'Use to read encoded headers, tokens and data URLs' gives concrete use cases, which distinguishes it from base64_encode and hints at where the input comes from. No explicit when-not or named alternative, but the direction (decode vs encode) is clear from the definition.

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

base64_encodeBase64 encode: encode text as base64 and URL-safe base64A
Read-only
Inspect

Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to encode

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description's 'reads or computes only' is a mild restatement. The real added value is operational: per-call pricing, a free tier of 25 calls, and that failed calls are not charged — cost behavior an agent cannot get from annotations. It does not describe output formatting details beyond naming the two variants.

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

Conciseness4/5

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

Purpose and second output are front-loaded, and every sentence carries information. The closing sentence is dense, packing pricing, free tier, failure policy and the repetition warning together with an inline '(/credits)' fragment, which slightly hurts readability but does not waste content.

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

Completeness5/5

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

The tool has one simple parameter and no output schema, and the description compensates by saying exactly what comes back (standard base64 plus URL-safe variant). With annotations covering side-effect behavior and the description covering cost and return shape, 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.

Parameters4/5

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

Schema coverage is 100% for the single 'text' parameter, so the baseline would be 3. The description adds a concrete example ('text=hello world') that clarifies the input is raw, unencoded text rather than an already-encoded string, which is a meaningful disambiguation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Encode UTF-8 text as standard base64') and goes further by naming the second output ('URL-safe variant'). That distinguishes it cleanly from the sibling base64_decode and from other encoding tools like url_encode or hash.

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

Usage Guidelines4/5

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

It gives concrete use cases ('data URLs, headers and basic auth strings') and a worked example, which is enough for an agent to place the tool. It does not explicitly say when to prefer a sibling (e.g. url_encode for percent-encoding) or when not to use it, 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.

base_allowanceERC-20 token approval check on Base: check how much of a token a spender is approved to move on BaseA
Read-only
Inspect

Check how much of a wallet's ERC-20 token a spender contract is approved to move on Base: the raw and formatted allowance, the token symbol and decimals, and whether the approval is unlimited. Use before a swap or deposit to see if an approve transaction is needed, and to audit a wallet for risky unlimited approvals. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ownerYesWallet address that holds the token (0x...)
tokenYesERC-20 token contract address on Base (0x...)
spenderYesAddress allowed to spend, usually a router or protocol contract (0x...)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only and non-destructive, but the description adds information annotations cannot convey: pricing ($0.002/call via x402 USDC or card key, first 25 free, failed calls free) and the explicit warning that repeat calls are charged, which materially explains the idempotentHint=false billing behavior. It also reaffirms 'reads or computes only and changes nothing' and enumerates the return payload.

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

Conciseness4/5

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

Front-loads what is checked and why, then behavior and pricing; three sentences with no filler. The pricing/free-tier clause is dense but justified for a paid tool, though it slightly crowds the middle of an otherwise tight definition.

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

Completeness5/5

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

With no output schema, the description compensates by listing the exact return fields, and it covers cost, safety profile, and intended workflow for a simple 3-parameter read tool. An agent has everything needed to decide to call it and interpret the result.

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

Parameters3/5

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

Schema description coverage is 100% and all three parameters (owner, token, spender) are documented in the schema with role and address format. The description restates the owner/spender relationship but adds no format, constraint, or edge-case detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('check how much of a wallet's ERC-20 token a spender contract is approved to move on Base') and even enumerates what comes back (raw/formatted allowance, symbol, decimals, unlimited flag). The 'approved to move' phrasing cleanly separates it from the sibling balance tools (base_token_balance) and the chain prefix separates it from eth_allowance/arb_allowance etc.

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

Usage Guidelines4/5

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

Gives two concrete usage contexts: pre-swap/pre-deposit approve checks and auditing risky unlimited approvals. It does not name an alternative tool or state when-not to use it, so it stops short of the explicit routing a 5 requires.

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

base_balanceBase native balanceA
Read-only
Inspect

Native ETH balance (eth_getBalance) of any 0x wallet address on Base at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use base_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet or contract address

TDQS

A4.8/5.0
Behavior5/5

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

The description goes far beyond annotations by detailing pricing ($0.01/call, first 25 free), operational failure modes (400 uncharged for malformed address), and the nature of the computation (reads/computes only, no changes). This is essential operational context.

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

Conciseness4/5

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

While it is slightly lengthy due to the number of required operational details (pricing, failure modes, routing), it is well-structured. The most critical information (purpose, routing) is prioritized, leading to high utility.

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

Completeness5/5

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

The definition is exceptionally complete, covering the functional intent, architectural constraints (read-only), operational constraints (cost, rate limits), and failure modes. No critical information needed for correct selection or invocation is missing.

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

Parameters4/5

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

With 100% schema coverage, the baseline is already high. The description adds value by providing a concrete example of a valid address and clarifying that the address must be a 0x wallet or contract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states precisely that the tool retrieves the native ETH balance of a 0x wallet address on the Base network. Furthermore, it clearly differentiates its function from related tools by directing users to `base_token_balance` and `wallet_portfolio` for specific needs.

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

Usage Guidelines5/5

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

The definition provides excellent usage guidance by explicitly stating its intended use (checking gas payment capability or transfers) and providing clear alternatives for ERC-20 tokens and total holdings. This eliminates ambiguity for the agent.

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

base_blockBlock number, BaseA
Read-only
Inspect

Latest block number and block details on Base, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use base_gas. A block that does not exist yet returns 404, uncharged. Example: number=latest. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberNoBlock number, or 'latest' (default)

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, and the description's 'reads or computes only and changes nothing' largely restates them. It does add genuinely new context: 404 on nonexistent blocks is uncharged, and every call is billed so repeats are not free. Pricing detail is useful but is commercial rather than operational behavior.

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

Conciseness4/5

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

The core purpose, returned fields, alternative tool, and error behavior are all front-loaded. The trailing pricing/free-tier sentence is dense and somewhat boilerplate-heavy, but it is not padding for a paid x402 tool.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of describing returns, and it does so (hash, timestamp, transaction count, gas used and limit, base fee in gwei, producer). Combined with error semantics, cost, and the sibling pointer, 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.

Parameters4/5

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

Schema coverage is 100% and the single parameter already documents 'Block number, or latest (default)'. The description still adds value by specifying the number must be decimal and giving a concrete example ('number=latest'), which clarifies format beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (fetch latest block number or any block by decimal number on Base) and enumerates the returned fields. It also explicitly distinguishes itself from base_gas, so an agent can separate it from the many sibling *block/base_* tools.

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

Usage Guidelines5/5

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

Gives concrete when-to-use guidance ('Use for timestamps and confirmation counts') and names the alternative for a different need ('for current fees use base_gas'). It also notes the default/example input ('number=latest') and the not-yet-mined 404 case, leaving little to inference.

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

base_callEth call, Base contract callA
Read-only
Inspect

Read-only contract call on Base (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. Example: to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, data=0x18160ddd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x contract address to call
dataYes0x ABI-encoded calldata: 4-byte selector plus arguments
fromNoOptional 0x sender address for calls that check msg.sender

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: latest block semantics, an 8 KB calldata cap, revert behavior (422 with reason, uncharged), pricing model ($0.01/call via x402 or card key, first 25 free), and the crucial warning that each call is charged so repeats are not free — which explains the idempotentHint=false. The 'changes nothing' clause reinforces readOnlyHint/destructiveHint without merely repeating them.

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

Conciseness4/5

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

Front-loads what the tool is and when to use it, then constraints, then economics — good ordering with no filler. The pricing/free-tier sentence is dense and slightly overloaded into one line, but every clause carries information an agent needs (cost per call, free retries on failure).

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

Completeness5/5

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

There is no output schema, and the description compensates by stating the return is raw return data requiring ABI decoding, plus the revert path. Combined with the size limit, pricing, and block semantics, an agent has everything needed to invoke and interpret results without guessing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real value: a worked example pairing a live Base USDC address with selector 0x18160ddd, the note that calldata is '4-byte selector plus arguments' in context, and the 8 KB size constraint. The optional `from` parameter is not mentioned in the description, leaving that entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (read-only eth_call on Base) plus the exact scope: ABI-encoded calldata in, raw return data out, at latest block. It also distinguishes itself from the many sibling wrappers (eth_call, arb_call, op_call, polygon_call) by naming its chain, and from dedicated tools via 'any view function that has no dedicated tool'.

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

Usage Guidelines4/5

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

Clearly says when to use it: view functions that lack a dedicated tool, with a concrete USDC totalSupply example. It implies the alternatives (base_token_balance, base_storage, etc.) exist by saying 'no dedicated tool' but never names a single sibling, so the routing decision still requires the agent to scan the tool list.

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

base_estimate_gasEstimate gas, BaseA
Read-only
Inspect

Estimate the gas a transaction would use on Base (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use base_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x recipient or contract address
dataNoOptional 0x calldata for a contract call
fromNo0x sender address (default: an empty address)
valueNoAmount of ETH to send, in ETH (default 0)

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description still adds real value: revert behavior (422 with reason, uncharged), the billing model ($0.01/call, 25 free, failed calls free) and the non-idempotent cost note that explains idempotentHint=false. It does not mention latency or which errors besides revert can occur, so a 4 rather than 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.

Conciseness4/5

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

Purpose, inputs, alternatives, error behavior and pricing are front-loaded in that order with no filler. The pricing/credits sentence is the longest and is arguably the least essential, but it justifies the non-idempotent annotation so it still earns its place.

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

Completeness5/5

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

With no output schema, the description states the returned quantities (gas units, gwei, ETH) and cost basis, plus the failure mode and the fact that nothing is mutated or persisted. An agent has everything needed to call it correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description goes modestly beyond it by framing value as ETH and telling the agent to supply sender only 'when the call depends on it', which is a usage hint the schema's '(default: an empty address)' does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Estimate the gas a transaction would use on Base') plus the underlying RPC method (eth_estimateGas) and the return units (gas, gwei, ETH). It explicitly distinguishes itself from base_gas, which only returns the gas price, so an agent can pick between the two 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.

Usage Guidelines5/5

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

'Use before sending a transaction or to price a batch' gives positive trigger contexts, and 'for the gas price alone use base_gas' names the alternative and the condition selecting it. Both when-to-use and when-to-use-something-else are covered.

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

base_gasBase gas price and fee estimate: current gas price and transaction fee estimate on BaseA
Read-only
Inspect

Live gas prices on Base (chain 8453) read from the latest block: base fee and priority fee in gwei, suggested maxFeePerGas and maxPriorityFeePerGas in wei for an EIP-1559 transaction, how full the latest block is, and the estimated execution fee in ETH for an ETH transfer and an ERC-20 transfer. Use before sending a transaction on Base or to decide whether to wait for lower fees. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations: discloses pricing ($0.002/call via x402 USDC or card key, first 25 free, failed calls free) and that each call is charged so repeats are not free -- which explains the otherwise puzzling idempotentHint=false. It also confirms 'reads or computes only and changes nothing', consistent with readOnlyHint=true. Cost and billing behavior is exactly the kind of operational detail annotations cannot convey.

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

Conciseness4/5

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

Front-loads the resource and chain, then the returned fields, then usage, then cost -- a sensible priority order with no filler sentences. It is on the long side because the return-field enumeration and the billing caveats are both spelled out, but each sentence carries information an agent needs.

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

Completeness5/5

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

There is no output schema, so the description usefully enumerates units (gwei vs wei) and the concrete computed values returned. Combined with the stated safety profile (read-only, no side effects) and the billing model, an agent has everything needed to call this correctly and predict the cost.

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

Parameters3/5

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

Only one optional parameter (`only`), and the schema description already covers it at 100% with an example and fallback behavior. The description says nothing about `only` or the result-key projection it enables, so it adds no meaning beyond the schema. Baseline 3 applies when the schema does the full job.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource -- live gas prices read from the latest Base block (chain 8453) -- and enumerates exactly what is returned (base fee, priority fee in gwei, maxFeePerGas/maxPriorityFeePerGas in wei, block fullness, ETH/ERC-20 transfer fee estimates). This lets an agent separate it from base_estimate_gas (per-transaction estimation) and base_gas_history (historical 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.

Usage Guidelines4/5

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

Explicit timing guidance: 'Use before sending a transaction on Base or to decide whether to wait for lower fees.' That is a clear use context with no exclusions. It stops short of naming the sibling alternatives (base_estimate_gas, base_gas_history, pack_gas_tracker) or stating when not to use it, so it lands at 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.

base_gas_historyGas history, Base gas priceA
Read-only
Inspect

Gas price history on Base (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use base_gas. Example: blocks=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks, 5-100 (default 20)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint true, destructiveHint false), and the description adds cost behavior that no annotation carries: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and that repeat reads are not free. The 'reads or computes only and changes nothing' line is consistent with readOnlyHint, though it sits slightly at odds with idempotentHint=false — the charge-per-call explanation resolves that rather than contradicting it.

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

Conciseness4/5

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

The first sentence front-loads the purpose and the return shape, followed by usage guidance, an example, and pricing. It is dense and every clause carries information, though the pricing/credits tail is long enough to slightly dilute the core message.

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

Completeness5/5

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

There is no output schema, so the description takes responsibility for describing return contents (per-block base fee, fullness, percentile priority fees, window aggregates) and does so fully. Combined with the parameter range, cost model, and usage routing, an agent has everything needed to call it correctly and interpret results.

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

Parameters3/5

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

With 100% schema description coverage, the schema already documents the single 'blocks' parameter with range 5-100 and default 20. The description restates the same range and default plus an example (blocks=20) but adds no interpretation of the parameter beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Gas price history on Base (eth_feeHistory)') and enumerates the returned quantities: base fee in gwei per block, block fullness, 10th/50th/90th percentile priority fees, and low/avg/high base fee. It also names the sibling it is not ('for the current price alone use base_gas'), so differentiation is unambiguous.

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

Usage Guidelines5/5

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

Gives concrete selection criteria ('judge whether fees are rising, pick a priority fee or time a transaction') and an explicit exclusion routing to base_gas when only the current price is needed. Nothing about when to choose this over its alternatives 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.

base_is_contractBase contract checkA
Read-only
Inspect

Check whether a 0x address on Base is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.8/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint, openWorldHint, idempotentHint=false, destructiveHint=false), the description adds pricing details ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), error handling (malformed address returns 400 uncharged), and clarifies that repeats are not free because each call is charged. It also explicitly states 'Reads or computes only and changes nothing,' reinforcing the read-only nature.

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

Conciseness4/5

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

The description is front-loaded with purpose and then covers usage, error handling, example, and pricing. It is generally efficient, but there is slight redundancy in repeating the charging policy near the end.

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

Completeness5/5

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

Given the simple tool, one parameter, and no output schema, the description covers what is returned (bytecode size, proxy status, implementation), when to use it, error behavior, and pricing. Nothing essential for correct invocation is missing.

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

Parameters4/5

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

The single parameter 'address' is fully described in the schema, but the description adds a concrete example address and notes that a malformed address is rejected with 400, which provides extra semantic value beyond the schema's '0x address' label.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (check) and resource (0x address on Base), and enumerates the exact outputs: bytecode size, EIP-1167 proxy detection, and implementation address. It also distinguishes itself from the sibling check_counterparty for a fuller risk verdict.

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

Usage Guidelines5/5

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

It gives explicit guidance: 'Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty.' This names the alternative and the condition that selects it, 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.

base_logsBase recent event logsA
Read-only
Inspect

Recent contract event logs on Base (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use base_receipt. Example: address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks to scan (1-1000, default 50)
topic0NoOptional 0x event signature hash to filter by
addressYes0x contract address

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/destructive/idempotent/openWorld, and the description still adds genuinely non-structured behavior: pay-per-call pricing ($0.01 via x402 USDC or card key, first 25 free, failed calls free), that repeats are billed and therefore not free, and the return size cap (up to 100 logs). That is exactly the kind of cost/limit context the annotations cannot express.

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

Conciseness4/5

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

Front-loaded with method and scope, then guidelines, example, and pricing in a sensible order. Slightly overloaded at the end: 'Reads or computes only and changes nothing' largely restates readOnlyHint/destructiveHint, and the billing terms earn their place but add bulk.

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

Completeness5/5

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

There is no output schema, and the description covers the return shape (up to 100 logs with block, transaction hash, topics), the scanning window, and cost per call. An agent has everything needed to decide to call it and to interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds value: it clarifies topic0 is a 0x 32-byte event signature hash (useful for knowing to pair with keccak), restates the blocks default/range inline, and supplies a concrete address example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the exact RPC method (eth_getLogs), the resource (contract event logs), the chain (Base), and the scope (last N blocks). It is immediately distinguishable from base_receipt and from the other chain-prefixed log tools by the explicit 'Base' prefix and event-log framing.

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

Usage Guidelines4/5

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

Gives a positive use case ('watch transfers or contract events') and an explicit exclusion routing to a sibling ('for one transaction's outcome use base_receipt'). No guidance on when to prefer base_token_transfers or the equivalent logs tools on other chains, but the core when/when-not pair is present.

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

base_nft_balanceNFT balance, BaseA
Read-only
Inspect

How many NFTs of one ERC-721 collection a wallet holds on Base (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use base_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address
contractYes0x ERC-721 collection contract address

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing error semantics (404 for missing contract, 422 for non-ERC-721, both uncharged), the pricing model ($0.01/call, 25 free, failed calls free), and that repeat calls are charged — which explains why idempotentHint is false. It also confirms read-only/no-mutation, consistent with readOnlyHint=true and destructiveHint=false.

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

Conciseness4/5

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

Purpose and the sibling routing are front-loaded in the first two sentences, and the error/pricing details are genuinely decision-relevant. It is dense but slightly sprawling, with payment mechanics taking up roughly half the text.

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

Completeness5/5

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

With no output schema, the description still says what comes back (balance plus collection name and symbol). Combined with error codes, cost model, and read-only confirmation, an agent has everything needed to call this correctly and interpret failures.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters already documented as '0x wallet address' and '0x ERC-721 collection contract address'. The description only restates that both inputs are 0x addresses, adding no format, validation, or edge-case 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — NFT balance of one ERC-721 collection for a wallet on Base — and even names the underlying call (balanceOf). It explicitly separates itself from base_nft_owner ('for who holds one token id use base_nft_owner'), so an agent can pick between the two siblings 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.

Usage Guidelines5/5

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

Gives concrete use cases (check a holder before a token-gated action, verify a wallet still holds a collection) and an explicit exclusion routing to base_nft_owner. When-to-use, when-not-to-use, 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.

base_nft_metadataNFT metadata, BaseA
Read-only
Inspect

NFT metadata on Base: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use base_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. Example: contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover the safety profile, but the description adds substantial behavioral context beyond them: supported URI schemes, IPFS resolution through ipfs.io, truncation of strings over 1,000 characters, 422 handling for nonexistent tokens, metadataError reporting for unreachable metadata, pricing, and that repeat calls are charged. No contradiction with readOnlyHint/destructiveHint.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and return shape, then adds only operationally relevant details: URI support, truncation, failure behavior, sibling routing, pricing, and mutation safety. Every sentence contributes to correct invocation or interpretation.

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

Completeness5/5

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

There is no output schema, but the description explains the return values (token URI plus JSON fields), truncation behavior, metadataError, and the 422 case. Combined with full parameter coverage and rich annotations, an agent has enough to call and interpret this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented as contract address and token id. The description adds a concrete example and confirms tokenURI behavior, but it does not add syntax or validation rules beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: read the token URI and pointed-to JSON metadata for one ERC-721 token id on Base. It also explicitly distinguishes itself from the sibling base_nft_owner, making the scope unambiguous.

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

Usage Guidelines5/5

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

It gives an explicit use case ('Use to show or check what an NFT is') and names the alternative for a different need ('for its owner use base_nft_owner'). This is clear when/when-not guidance, not mere implied usage.

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

base_nft_ownerNFT owner, BaseA
Read-only
Inspect

Owner of an NFT on Base: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use base_nft_balance, for the token's metadata base_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. Example: contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond annotations: error behavior (404 missing contract, 422 nonexistent token, both uncharged), pricing model ($0.01/call, first 25 free, failed calls free), and clarifies that the tool is read-only and changes nothing. It also explains why idempotentHint=false by noting each successful repeat incurs a charge.

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

Conciseness5/5

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

Front-loads the definition in the first sentence, then layers usage, alternatives, error codes, a concrete example, and pricing without any filler. Every sentence contributes actionable information for correct invocation.

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

Completeness5/5

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

No output schema exists, but the description states what is returned (owner, name, symbol) and covers error codes, pricing, and safety profile. An agent has everything needed to call the tool correctly and understand the outcome.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are fully documented in the input schema. The description adds an inline example with plausible values for contract and tokenId, but does not add syntax or format details beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (owner of an NFT), the exact resource (ERC-721 token id on Base), and the returned data (owner, name, symbol). It explicitly distinguishes itself from base_nft_balance and base_nft_metadata, so an agent can select it without opening the schema.

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

Usage Guidelines5/5

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

Provides concrete scenarios (verify holder before trade, mint gate, airdrop) and names the alternative siblings for balance and metadata queries. The when-to-use and when-to-use-something-else rules are fully explicit.

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

base_nonceBase account nonceA
Read-only
Inspect

Read the transaction count (nonce) of a 0x address on Base, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use base_balance. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.5/5.0
Behavior4/5

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

Adds real value beyond the annotations: both confirmed and pending counts are returned, malformed input yields a 400 with no charge, and cost is $0.01/call with 25 free and failed calls free — consistent with idempotentHint=false, since repeated calls are billed. The description could still say more about the response shape (two fields? field names?), but the billing and error behavior are unusually well disclosed.

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

Conciseness4/5

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

Front-loaded with the core action, then use cases, then the sibling redirect, then pricing. Information-dense but nearly every clause is actionable; the pricing/payment clause is long and slightly crowds the functional content.

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

Completeness4/5

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

With no output schema, the description carries the burden of return values and it does indicate confirmed vs. pending counts, though not the exact response fields. For a single-parameter read tool with full annotation coverage, this is close to complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds a concrete example address and states the validation contract (malformed address rejected with 400, uncharged), which is meaning the schema does not convey. It stops short of any format nuances beyond the 0x prefix.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read the transaction count (nonce) of a 0x address on Base'), scopes it to confirmed plus pending, and explicitly redirects balance queries to base_balance. An agent can distinguish it from the ~18 sibling base_* tools and from eth_nonce/op_nonce by chain name alone.

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

Usage Guidelines5/5

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

Gives two concrete use cases (building the next transaction; determining whether an address has ever sent anything) and names the alternative tool for the adjacent task ('for its balance use base_balance'). Exclusions and selection criteria are explicit rather than inferred.

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

base_proxyProxy implementation, BaseA
Read-only
Inspect

Find the implementation behind a proxy contract on Base: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. Example: address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x contract address

TDQS

A4.5/5.0
Behavior4/5

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

With annotations already covering readOnly/destructive, the description adds real context: 400 for malformed address and 404 for codeless address are uncharged, costing is $0.01/call with 25 free and failed calls free, and it explains why idempotentHint=false ('each call is charged, so repeats are not free'). Only the shape of the returned data is left unspoken.

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

Conciseness4/5

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

Front-loaded with the capability, then usage, then failure modes, then pricing — good ordering. It is dense but every sentence (errors, price, 'failed calls free') carries decision-relevant information for an agent; the pricing tail runs a bit long.

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

Completeness4/5

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

For a one-param read-only tool with no output schema, this covers purpose, detection methods, error semantics, and cost. The only gap is that the returned structure (e.g., how the detected kind and addresses are presented) is not hinted at beyond 'names the kind found.'

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

Parameters4/5

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

Single parameter at 100% schema coverage sets baseline 3, but the description adds a concrete example address showing the expected 0x hex form, which is slightly more than the schema's '0x contract address'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Find the implementation behind a proxy contract on Base', and it enumerates the exact slots/standards checked (EIP-1967, beacon, admin, EIP-1822/UUPS, legacy OZ, EIP-1167). This is trivially distinguishable from sibling base_is_contract or base_storage.

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

Usage Guidelines5/5

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

Explicitly states when to use ('before trusting or decoding a contract whose code can be swapped by its admin') and names the alternative ('for a fuller risk verdict use contract_risk'). The when-not and routing to a sibling are both present.

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

base_receiptBase transaction receiptA
Read-only
Inspect

Transaction receipt on Base (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use base_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. Example: hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations: pricing model ($0.01/call, first 25 free, failed calls free), 404 responses being uncharged, and an explicit note that repeats are not free — which reconciles the seemingly odd idempotentHint=false with a purely read-only operation. The "reads or computes only and changes nothing" line confirms destructiveHint=false without contradicting it.

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

Conciseness4/5

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

Dense but front-loaded: purpose and return fields first, then routing to base_tx, then input format, then cost. The closing sentences repeat the read-only/charging points already implied earlier, which is mild redundancy but the length is defensible for a paid, error-prone call.

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

Completeness5/5

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

There is no output schema, and the description compensates by naming every returned field, including reverted-vs-success and contract creation. Error behavior, cost, and the read-only guarantee are all covered, leaving nothing an agent needs before calling.

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

Parameters4/5

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

Schema coverage is 100%, so the hash format is already documented; the description restates the 0x-prefixed 64-hex constraint and adds a concrete example value, plus the behavior of a pending/unknown hash. That is useful but largely duplicative of the schema, so it sits just above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Transaction receipt on Base (eth_getTransactionReceipt)") and enumerates the returned fields: status, gas used, effective gas price, fee in ETH, log count, contract created. It explicitly distinguishes itself from base_tx ("for sender, value and calldata use base_tx"), so the agent can separate the two 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.

Usage Guidelines5/5

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

Gives a concrete trigger ("Use to confirm a payment or call went through") and names the alternative for the other need (base_tx). It also covers the edge case of a pending or unknown hash returning 404, which is exactly the failure mode an agent would otherwise misread as an error.

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

base_storageStorage slot read, BaseA
Read-only
Inspect

Read one raw storage slot of a contract on Base (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use base_proxy. A malformed address or slot is rejected with 400, uncharged. Example: address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
slotNoSlot: a decimal index (0, 1, 2…) or a 0x 32-byte key
addressYes0x contract address

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint=false, but the description adds real value beyond them: malformed input returns 400 uncharged, failed calls are free, and it explains the idempotentHint=false by noting each successful call is charged so repeats are not free. Pricing and auth (x402 USDC or card key /credits, first 25 free) are also disclosed. The only gap is that it doesn't describe error behavior beyond 400 or rate limits.

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

Conciseness4/5

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

Purpose and return shape are front-loaded, then usage, then errors and pricing – a sensible order. It is dense with useful facts, though the pricing sentence is long and partially repeats the charge/free idea already implied earlier.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden itself ('the 32-byte word, as a number and, when it holds one, as an address'), and it also covers error handling, cost, and the proxy alternative. 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.

Parameters4/5

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 goes beyond the schema by explaining why a 0x 32-byte key matters ('mapping and proxy slots') and gives a concrete example address. It doesn't add format detail for the decimal slot beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one raw storage slot of a contract on Base (eth_getStorageAt)') and immediately pins down the scope of the returned word. It also names the sibling it is not (base_proxy), so an agent can distinguish it from base_call/base_proxy 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.

Usage Guidelines5/5

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

'Use to inspect contract state that has no getter, owners or implementation pointers' gives concrete when-to-use conditions, and 'for proxies use base_proxy' names the alternative that supersedes it. Both the positive case and the exclusion are explicit.

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

base_token_balanceBase ERC-20 balanceA
Read-only
Inspect

ERC-20 token balance of a wallet on Base (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use base_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive and non-idempotent, but the description adds materially more: cost ($0.01/call via x402 or card key), first 25 free, failed calls free, and that repeat calls are billed. It also confirms the call reads or computes only and mutates nothing, plus how invalid targets surface as errors.

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

Conciseness4/5

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

One front-loaded paragraph: purpose and return shape first, then the sibling routing hint, then input/error/pricing constraints. Every clause carries operational value, though the pricing and error tail-ends make it denser than strictly necessary for a two-parameter read.

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

Completeness5/5

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

No output schema exists, so the description carries return-shape duty and does so (raw amount, decimals, symbol, human-readable). Cost model, error codes, and sibling routing are all covered, leaving nothing an agent needs to call this correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters (token accepting a ticker or 0x contract address, address as a 0x wallet), making 3 the baseline. The description adds length detail (40 hex characters) but its phrasing "Both inputs are 0x addresses" partially contradicts the schema's ticker option for `token`, adding muddle rather than clarity on that parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource: ERC-20 balance of a wallet on Base, resolved via balanceOf, and enumerates the returned fields (raw amount, decimals, symbol, human-readable amount). It explicitly distinguishes itself from base_balance for the native coin, so an agent can route correctly 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.

Usage Guidelines5/5

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

Gives the concrete use case ("check stablecoin or token holdings before a transfer or trade") and names the alternative for native coin (base_balance). It also specifies error semantics for the address argument (404 for no contract, 422 for non-ERC-20), which is guidance an agent needs to interpret outcomes.

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 infoA
Read-only
Inspect

Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Base, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use base_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. Example: token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/non-destructive, and the description adds value beyond them: the 422-and-uncharged error path, the $0.01/call price, the first-25-free allowance, and the note that repeats are not free — which coherently explains the idempotentHint=false. 'Changes nothing' is consistent with readOnlyHint=true, so there is no contradiction.

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

Conciseness4/5

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

The core purpose and alternative routing are front-loaded, and most sentences carry unique information. The billing tail (price, free tier, card key) is useful but slightly crowds the single-paragraph format; it could be trimmed without losing callable guidance.

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

Completeness5/5

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

There is no output schema, and the description lists exactly what comes back (name, symbol, decimals, total supply), so the agent knows the return shape. Combined with error behavior, pricing, and input formats, nothing material needed 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.

Parameters4/5

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

Schema coverage is 100% and the schema already describes the ticker-or-address input, so the baseline is 3. The description earns a point above baseline by adding a concrete worked example address and the consequence of passing a non-contract address, which the schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — look up name, symbol, decimals and total supply of an ERC-20 contract on Base — and notes the data is read live from the contract. It explicitly distinguishes itself from the sibling base_token_balance, so an agent can route correctly without inspecting either schema.

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

Usage Guidelines5/5

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

Gives two concrete use cases (identify an unknown token address, format raw amounts) plus an explicit exclusion pointing to base_token_balance for holder balances. It also names a failure mode (non-ERC-20 address returns 422) that tells the agent when the call is inappropriate.

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

base_token_transfersToken transfers, BaseA
Read-only
Inspect

List a wallet's recent transfers of one ERC-20 token (default USDC) on Base, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use base_token_balance. Malformed addresses are rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenNoToken: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network)
blocksNoHow many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Base)
addressYes0x wallet address

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false. The description goes further on the points annotations can't carry: $0.01/call pricing, 25 free calls, failed calls free, and a 400 on malformed addresses being uncharged. However, it never states whether results are paginated, truncated at 50 with a cursor, or what happens when a wallet has more than 50 transfers in the window.

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

Conciseness4/5

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

Scope and the sibling alternative are front-loaded, and the example is useful. The final sentence packs pricing, free tier and charging caveats into a dense run-on, which is informative but less scannable than the opening.

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

Completeness5/5

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

With no output schema, the description still tells the agent what comes back (direction, counterparty, amount, transaction, newest first, up to 50). Combined with error behavior (400 uncharged), pricing and read-only nature, an agent has enough to call this correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents token, blocks and address, including the 1-2000 range and default 1000. The description adds the practical framing (default USDC, "over the last N blocks") and a concrete address example, but no new syntax or format semantics. Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List a wallet's recent transfers of one ERC-20 token") plus chain, direction ("in and out"), window, and returned fields. It explicitly distinguishes itself from base_token_balance, so an agent can separate the two 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.

Usage Guidelines5/5

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

Gives the use cases ("confirm a payment arrived or see what was sent") and names the alternative tool for the other need ("for the current balance use base_token_balance"). The default token and block window are stated up front, leaving nothing to infer.

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 and details: check whether a Base transaction succeeded, its sender, value and feeA
Read-only
Inspect

Look up any transaction on Base by hash: whether it succeeded, reverted or is still pending, sender and receiver, ETH value, called method id, block number and time, number of confirmations, gas used, gas price and the execution fee paid, and whether it created a contract. Use to confirm that a payment or contract call went through before acting on it. Example: hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYesTransaction hash on Base: 0x followed by 64 hex characters

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover readOnlyHint/destructiveHint/openWorldHint, and the description adds genuinely new context: $0.003/call via x402 USDC or card key, first 25 free, failed calls free, and that repeats are charged. The billing detail also explains the non-obvious idempotentHint=false. The claim "reads or computes only and changes nothing" is largely redundant with readOnlyHint, 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.

Conciseness4/5

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

Front-loaded with the action and the returned-field inventory, then the usage rule, then cost. Dense and free of filler. It runs long in a single sentence and the "reads or computes only and changes nothing" clause is padding against readOnlyHint, but nothing is structurally misplaced.

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

Completeness5/5

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

With no output schema, the description carries the full burden of describing the return payload, and it does so comprehensively (status, parties, value, method, block, confirmations, gas, fee, contract-creation flag). Pricing, auth path, and free-tier rules are all included, so an agent has everything needed to call and interpret this correctly.

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

Parameters3/5

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

Schema description coverage is 100% on the single `hash` parameter, so the schema already states the 0x + 64 hex format. The description adds only a sample hash value, which is a small convenience but no semantics beyond what the schema documents. Baseline 3 is appropriate when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ("Look up any transaction on Base by hash") and then enumerates exactly what comes back — status, sender/receiver, ETH value, method id, block, confirmations, gas, fee, contract creation. That is far beyond a restatement of the name. It stops short of a 5 because it never distinguishes itself from the sibling base_receipt, whose field set overlaps heavily with what is listed here.

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

Usage Guidelines4/5

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

It gives a concrete decision context: "Use to confirm that a payment or contract call went through before acting on it," which is a real when-to-use rule an agent can act on. It also states cost and free-tier conditions that affect whether to call. There are no exclusions, though — an agent choosing between base_tx and base_receipt gets no routing guidance.

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

bic_validateSWIFT code, BIC validation: structure, country and branchA
Read-only
Inspect

Check a BIC (SWIFT code) against the ISO 9362 structure: institution code, a real country code with its name, location code, branch code, whether it is the head office (XXX or 8 characters), a test BIC or a passive participant, and the 11-character form. Computed locally; it checks the format and country, not whether the bank exists. Use before an international transfer or to clean payment data; for account numbers use validate_iban. Example: bic=DEUTDEFF500. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
bicYesBIC / SWIFT code, 8 or 11 characters

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations it discloses the key behavioral caveat — computation is local and does not verify bank existence — plus a concrete pricing/cost model ($0.01/call, 25 free, failures free) that explains the idempotentHint=false annotation ('each call is charged, so repeats are not free'). The 'reads or computes only' line echoes readOnlyHint, but the added cost and local-validation context is substantive.

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

Conciseness4/5

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

Front-loaded with the purpose and ISO scope, then routing, then caveats, then pricing — logical order with no wasted preamble. It is dense and on the long side, and the pricing clause is verbose relative to its importance, keeping it just short of a 5.

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

Completeness5/5

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

No output schema exists, yet the description effectively previews the response by listing the checks performed (institution code, country name, location, branch, head-office flag, test/passive participant). For a single-parameter validation tool, an agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

With 100% schema coverage and one parameter, the schema already defines 'bic' as an 8- or 11-character code. The description reinforces the 11-character form and supplies a concrete example (bic=DEUTDEFF500) that shows the expected format beyond the schema's terse wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check a BIC (SWIFT code) against the ISO 9362 structure') and enumerates exactly which components are examined (institution, country, location, branch, head-office, test/passive, 11-char form). It also names a sibling it is not ('for account numbers use validate_iban'), so an agent can route without opening any schema.

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

Usage Guidelines5/5

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

Gives both when-to-use ('before an international transfer or to clean payment data') and an explicit alternative with its selection condition ('for account numbers use validate_iban'). The 'checks format and country, not whether the bank exists' line further scopes when this tool is insufficient.

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

btc_addressBitcoin address balance and activity: check the balance and transactions of a Bitcoin addressA
Read-only
Inspect

Balance and activity of any Bitcoin mainnet address (legacy, P2SH or bech32): confirmed balance in sats and BTC, unconfirmed pending amount, total received and sent, and transaction counts. Use for payment verification, checking whether a deposit arrived, and wallet monitoring. Example: address=bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesBitcoin mainnet address (1..., 3... or bc1...)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already carry readOnlyHint=true, destructiveHint=false, openWorldHint=true. The description adds genuinely new context beyond them: per-call billing via x402 USDC or a card key, the first 25 calls free, and 'repeats are not free', which concretely explains the idempotentHint=false. The 'changes nothing' sentence is redundant with the annotations but not harmful.

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

Conciseness4/5

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

The returned fields and purposes are front-loaded, and the example and billing model follow in a compact second half. Every clause is relevant, though the pricing/marketing tail is slightly padded for a description whose primary job is invocation instructions.

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

Completeness4/5

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

No output schema exists, and the description compensates by enumerating the returned fields (confirmed balance, unconfirmed pending, totals, transaction counts). Combined with the example address and the cost semantics, an agent has what it needs to call and interpret the result.

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

Parameters4/5

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

Schema coverage is 100% and there is only one parameter, so the schema carries most of the weight. The description still adds value by spelling out which address families are accepted (legacy, P2SH, bech32) and providing a concrete bech32 example, which helps the agent validate its input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Balance and activity of any Bitcoin mainnet address (legacy, P2SH or bech32)'. It also enumerates exactly which numbers come back (confirmed balance in sats/BTC, unconfirmed pending, total received/sent, transaction counts), so it is unmistakably distinct from siblings like btc_fees or eth_balance.

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

Usage Guidelines4/5

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

Gives clear usage contexts: payment verification, checking whether a deposit arrived, and wallet monitoring. It never names an alternative tool or a when-not-to-use condition, so it earns a 4 rather than a 5, but the intended scenarios are explicit enough to route an agent correctly.

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

btc_feesBitcoin fee rates and mempool status: Bitcoin fee estimate in sat/vB for the next block, half hour and hour, with mempool sizeA
Read-only
Inspect

Current Bitcoin network fee rates in sat/vB for next-block, half-hour, one-hour and economy confirmation, the estimated cost in sats of a typical payment, mempool size and total pending fees, and the latest block height. Use before sending a Bitcoin transaction or to decide whether to wait for lower fees. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

Output Schema

NameRequiredDescription
feesYes
unitYes
sourceYes
mempoolYes
networkYes
checkedAtYesServer retrieval time in UTC. Upstream endpoints are not an atomic snapshot.
blockHeightYes
limitationsYes
typicalPaymentSatsYes
typicalPaymentVbytesYesIllustrative transaction-size assumption; not the buyer's transaction size.

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: pricing ($0.002/call via x402 USDC or card key), 25 free calls, failed calls free, and the explicit note that repeats are not free — which explains the non-idempotent hint. It also reaffirms read-only behavior ('reads or computes only and changes nothing').

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

Conciseness4/5

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

Front-loads the returned data, then gives usage context, then pricing constraints — a sensible order with no filler. Slightly dense, and the cost/free-tier points are repeated in two sentences, costing a little economy.

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

Completeness5/5

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

With an output schema present, the description needn't document return shape, yet it enumerates the key values (fee tiers, sats cost of a typical payment, mempool size, block height) and covers cost model and safety profile. 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.

Parameters3/5

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

There is one optional parameter (`only`) with 100% schema description coverage, so the schema already explains the comma-separated key filtering and its fallback behavior. The description adds nothing about this parameter, which is acceptable given full coverage but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: current Bitcoin network fee rates in sat/vB at several confirmation horizons, plus mempool size, pending fees, and block height. The BTC scope cleanly separates it from the many *_gas siblings, which are all EVM-chain gas tools.

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

Usage Guidelines4/5

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

Explicitly says to use it 'before sending a Bitcoin transaction or to decide whether to wait for lower fees', which gives a clear decision context. It doesn't name an alternative tool or state when-not to use it, but within this toolset there is no competing BTC fee endpoint to route to.

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

btc_priceBitcoin (BTC) price in USD, EUR and other major currencies: current Bitcoin price in USD, EUR, GBP and other currenciesA
Read-only
Inspect

Current Bitcoin (BTC) spot price in USD, EUR, GBP, CAD, CHF, AUD and JPY, averaged across major exchanges, with the number of satoshis per US dollar and the time of the price. Use to convert between sats and fiat, to value a Bitcoin or Lightning payment, or to check the BTC price before a trade. Example: currency=SEK. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
currencyNoOptional: also price BTC in this currency; the seven listed ones come from the source, others (SEK, NOK, INR, BRL and about 25 more) are converted from USD at the ECB reference rate

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond annotations: pricing model ($0.01/call via x402 USDC or card key), first 25 free, failed calls free, and that repeated calls are charged (consistent with idempotentHint=false in a billing sense). Also confirms no side effects, aligning with readOnlyHint=true.

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

Conciseness4/5

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

Dense but front-loaded: price scope and returns come first, then usage, then billing. Every sentence carries information, though the pricing sentence is long and could be trimmed slightly.

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

Completeness5/5

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

With no output schema, the description still specifies what is returned (spot prices per currency, satoshis per USD, timestamp), so an agent knows exactly what to expect. Nothing material is missing for a single-optional-param read tool.

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

Parameters4/5

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

Schema coverage is already 100%, and the description still adds value: an example (currency=SEK) and the distinction that the seven listed currencies come from the source while others are ECB-rate conversions. That clarifies output semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Current Bitcoin (BTC) spot price') plus the exact currency set, averaging source, and extra returns (sats per USD, timestamp). An agent can immediately separate this from siblings like price_token or fx because it is explicitly BTC-scoped.

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

Usage Guidelines4/5

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

Gives three concrete use cases: converting sats to fiat, valuing a BTC/Lightning payment, and checking price before a trade. It does not name alternative sibling tools to use when you want token (non-BTC) prices, but the usage context is unambiguous.

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

calc_ageAge calculator: exact age from a date of birth and the next birthdayA
Read-only
Inspect

Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured today (UTC) or on any date you give. Use for age checks, forms and anniversaries. Example: birthdate=1990-05-17. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onNoMeasure on this date, YYYY-MM-DD (default today)
birthdateYesDate of birth, YYYY-MM-DD

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: per-call pricing via x402 USDC or card key, 25 free calls, failed calls free, and the explicit note that repeats are not free — which explains the idempotentHint=false flag that would otherwise look odd for a pure computation. It also confirms read-only behavior ('reads or computes only and changes nothing') and states the UTC default, consistent with readOnlyHint and destructiveHint=false.

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

Conciseness5/5

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

Outputs are front-loaded in the opening clause, followed by usage, example, and cost/repeatability caveats. Every sentence carries information an agent needs (what it returns, when to use it, input format, billing behavior); nothing is padding.

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

Completeness5/5

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

With no output schema, the description fully specifies the return shape (all derived values), the measurement-date default and override, and the pricing/caching behavior that governs repeated calls. An agent could invoke this correctly and predict its output without opening any other field.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by clarifying that measurement defaults to today in UTC 'or on any date you give' and supplies an example value (birthdate=1990-05-17). It does not restate per-parameter syntax beyond that, so it lands just above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific computation (exact age from a date of birth) and enumerates the outputs: years/months/days, total days lived, weekday of birth, and next-birthday date/countdown. This is specific enough to be told apart from generic date siblings like date_diff or date_info, and the required input (birthdate) is stated up front.

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

Usage Guidelines4/5

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

Gives concrete usage contexts ('age checks, forms and anniversaries') plus a worked example, so an agent knows when the tool fits. It stops short of naming an alternative or an exclusion (e.g., use date_diff for arbitrary date spans), which keeps it at 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.

calc_bmiBMI calculator: body mass index and WHO categoryA
Read-only
Inspect

Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity class I-III) and the weight range that counts as normal for that height. For adults; a screening number, not a diagnosis. Use for health, fitness and nutrition apps. Example: weight=70, height=175. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
unitsNometric (default) or imperial
heightYesHeight in cm (or inches with units=imperial)
weightYesWeight in kg (or lb with units=imperial)

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the read-only annotations, it discloses billing behavior: $0.01 per call, first 25 free, failed calls free, and repeats are not free. It also states that the tool only reads or computes and changes nothing, which aligns with and enriches the annotation profile.

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

Conciseness4/5

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

The core purpose and outputs are front-loaded, followed by limitations, usage context, an example, and pricing. It is generally efficient, though the pricing and no-mutation sentences overlap slightly and one sentence reads more like product positioning.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of explaining return values; it does so by naming BMI, WHO adult category, and the normal weight range. It also states the adult-only and screening-not-diagnosis constraints, making the definition complete for correct use.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3 even with no additional detail. The description adds a concrete example (weight=70, height=175) and restates metric/imperial unit conventions, which lightly clarifies invocation but largely duplicates the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that it computes body mass index from weight and height and returns the WHO adult category plus the normal weight range for that height. It is specific enough to distinguish from generic calculators, though it does not explicitly compare itself to siblings such as units_convert.

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

Usage Guidelines4/5

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

It gives clear usage context (health, fitness and nutrition apps) and an important limitation (for adults; screening, not diagnosis). It does not name alternatives or say when another sibling tool would be preferable, but the intended use case is clear.

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

calc_compound_interestCompound interest calculator: future value with monthly contributionsA
Read-only
Inspect

Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an optional contribution at the end of each month. Returns the final balance, total contributed, interest earned and the balance after each year. Use for savings goals and investment what-ifs; rates are assumed constant. Example: principal=10000, rate=7, years=10. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rateYesAnnual interest rate in percent, -50 to 100
yearsYesYears, up to 100
monthlyNoContribution at the end of each month (default 0)
compoundNoyearly, quarterly, monthly (default) or daily
principalYesStarting amount (0 or more)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already say readOnlyHint=true and destructiveHint=false, but the description adds genuinely non-obvious behavior: fixed $0.01/call pricing via x402 USDC or card key, first 25 free, failed calls free, and that repeat calls are charged. That last point resolves the otherwise puzzling idempotentHint=false for a pure calculator, which the annotation alone would leave ambiguous.

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

Conciseness4/5

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

The purpose, output list and usage guidance are front-loaded, and the example is compact. The billing sentence is longer than it needs to be (three payment mechanisms plus two free-tier clauses) but each clause is operationally relevant.

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

Completeness5/5

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

There is no output schema, yet the description names every returned value (final balance, total contributed, interest earned, year-by-year balances). Combined with the constant-rate assumption, the end-of-month contribution convention and the cost model, nothing an agent needs to call this correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so ranges (rate -50 to 100, years up to 100), defaults for monthly and compound, and the enum-like compounding options are already documented in the schema. The description restates them and adds an example but no new syntax or edge-case semantics, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computation (future value with compound interest), enumerates the driving inputs (principal, rate, years, compounding frequency, monthly contribution) and names the returned quantities. An agent can distinguish it from calc_loan or calc_tip purely from the text.

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

Usage Guidelines4/5

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

"Use for savings goals and investment what-ifs; rates are assumed constant" gives clear usage context, and the worked example (principal=10000, rate=7, years=10) shows a concrete call shape. No explicit exclusion or cross-reference to a sibling such as calc_loan, 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.

calc_loanLoan and mortgage calculator: monthly payment, total interest and scheduleA
Read-only
Inspect

Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first months of the repayment schedule (principal, interest and balance). Fixed rate, monthly payments. Use to compare loan offers or plan a mortgage. Example: principal=300000, rate=4.5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rateYesAnnual interest rate in percent, 0-100
rowsNoSchedule rows to return, 0-60 (default 3)
yearsNoTerm in years (default 30), or give months
monthsNoTerm in months, instead of years
principalYesAmount borrowed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds genuinely non-structured behavior: per-call pricing ($0.01 via x402 USDC or card key, first 25 free, failed calls free) and the modelling assumptions (fixed rate, monthly payments). The 'each call is charged, so repeats are not free' line usefully reinforces, rather than contradicts, idempotentHint=false.

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

Conciseness4/5

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

Front-loaded with what is computed and what is returned, followed by usage and pricing; every clause is informative. The pricing sentence is somewhat dense (mixing x402, card keys, free tier and failure policy) and could be trimmed without losing meaning.

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

Completeness4/5

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

With no output schema, the description carries the return-shape burden and does so well, enumerating monthly payment, total paid, total interest, and schedule columns (principal, interest, balance). Minor gaps remain: assumed currency and behavior when term is omitted or when both years and months are given.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents units and defaults for rate, years, months and rows; baseline 3 applies. The description adds only a sample value pair (principal=300000, rate=4.5) and implies that only 'the first months' of the schedule are returned, without clarifying precedence when both years and months are supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb-and-resource: computes the monthly payment of an amortised loan plus total paid, total interest and the first rows of the repayment schedule. The qualifiers 'fixed rate, monthly payments' and 'amortised' scope it tightly enough that an agent can distinguish it from calc_compound_interest or calc_tip without opening the schema.

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

Usage Guidelines4/5

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

'Use to compare loan offers or plan a mortgage' gives clear positive usage context, and the worked example (principal=300000, rate=4.5) shows a canonical invocation. However, no alternatives or when-not conditions are named, so the agent gets no routing guidance against the other calc_* siblings.

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

calc_tipTip calculator: tip, total and split per personA
Read-only
Inspect

Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, expense apps and group payments. Example: bill=84.5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
billYesBill amount before tip
peopleNoPeople sharing, 1-100 (default 1)
percentNoTip percent, 0-100 (default 15)
roundUpNotrue to round each share up to a whole amount

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and idempotentHint=false, so safety is covered structurally. The description adds genuinely non-structural facts: it is a pure read/compute, each call is billed at $0.01 via x402 USDC or card key, the first 25 are free, and failed calls are free – which is consistent with idempotentHint=false (repeats cost money). It does not spell out the exact response shape, keeping this 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.

Conciseness4/5

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

The core purpose is front-loaded in the first clause and the billing terms follow, which is the right order. The dangling fragment "Example: bill=84.5." is an unfinished sentence that earns nothing, a minor but real waste.

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

Completeness4/5

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

With no output schema, the description still makes clear what comes back (tip amount, total, and per-person share, optionally rounded) and covers cost and read-only behavior. A 5 would require explicit statement of the returned fields or default handling when people/percent are omitted.

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

Parameters3/5

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

Schema description coverage is 100%, so bill, people, percent and roundUp are all already documented in the schema, establishing a baseline of 3. The description's note about rounding each share up restates the roundUp schema wording and adds no new constraints (units, defaults, precision) beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact computation (tip and total for a bill at a given percentage, split per person, optional per-share rounding) with a concrete resource and scope. No sibling in the toolset (calc_loan, calc_bmi, calc_age) does this, so an agent can route here without opening the schema.

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

Usage Guidelines4/5

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

"Use for receipts, expense apps and group payments" gives clear situational context for when to pick this tool rather than a generic arithmetic path. It stops short of naming exclusions or an alternative (e.g., splitting without a tip), so it is context-rich but not a full when/when-not rule set.

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

caseCase converter: camelCase, snake_case, kebab-case and moreA
Read-only
Inspect

Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed input like 'userID_value'. Use when renaming fields or generating code identifiers. Example: text=user profile id, to=camel. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYescamel, pascal, snake, kebab, constant, title, sentence, upper or lower
textYesThe text

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses pricing, payment options, a free tier, that failed calls are free, and that repeated calls are charged. It also confirms the tool only reads/computes and changes nothing, which is useful behavioral context alongside readOnlyHint=true and destructiveHint=false.

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

Conciseness4/5

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

The purpose is front-loaded, followed by usage, an example, and cost/behavioral details. The pricing sentence is dense but relevant; overall the description is efficient, though slightly longer than necessary for a simple converter.

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

Completeness4/5

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

For a two-parameter, read-only converter with full schema coverage and rich annotations, the description is largely complete. It does not explicitly state the return value or error behavior for invalid targets, but the core invocation context is clear.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already defines both parameters and the accepted target formats. The description adds value with an example mapping text=user profile id and to=camel, and by noting that mixed input like 'userID_value' is handled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: converting text or identifiers between named case formats. It lists the supported formats and gives a concrete mixed-input example, making the tool easy to distinguish from unrelated text utilities such as slug or text_stats.

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

Usage Guidelines4/5

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

It gives a clear use context: renaming fields or generating code identifiers. It does not explicitly name when not to use it or compare with nearby siblings such as slug, so the guidance is strong but not complete.

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

check_counterpartyCounterparty risk check: screen a payee's EVM address before paying (OFAC and on-chain signals)A
Read-only
Inspect

Screen a payee before paying, trading or onboarding: one call vets an address on Base, Ethereum, Arbitrum or Optimism with an OFAC SDN match, account type and activity, USD holdings and, on Base, wallet or contract risk checks; add the payee's domain for its age and trust flags. One block, review or pass verdict with reasons. Screening aid, not legal advice or a security audit. Use before paying, trading with or onboarding an address. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork: base (default), eth, arb or op
domainNoOptional: the payee's domain or website URL, e.g. ethereum.org; adds domain age and trust flags
addressYes0x address to check

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover safety (readOnly, non-destructive, openWorld), and the description adds real value beyond them: cost model ($0.01/call, first 25 free, failed calls free) and the explicit note that each call is charged so repeats are not free — which meaningfully explains the idempotentHint=false. It also discloses output shape (block/review/pass with reasons) and a legal disclaimer, though no rate limits or latency expectations.

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

Conciseness3/5

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

The opening sentence is one long semicolon-chained clause that is dense to parse, and the instruction "Use before paying, trading with or onboarding an address" nearly duplicates the opening "Screen a payee before paying, trading or onboarding." Pricing and disclaimer content is useful, but the block is longer than it needs to be.

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

Completeness4/5

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

With no output schema, the description still tells the agent the return is a block/review/pass verdict with reasons, plus cost and per-call charging. Missing only scoring detail or how to interpret a partial (e.g., domain-only) result, which is a minor gap for a 3-parameter read-only tool.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (address, chain enum, optional domain) are already documented. The description restates the chain list and the domain's effect (domain age and trust flags) plus an example address, but adds no syntax or format detail the schema lacks. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (screen/vet) and resource (payee EVM address) plus scope: OFAC SDN match, account type, holdings, Base risk checks, optional domain signals. Clear enough to be actionable, but it never distinguishes itself by name from close siblings like check_payee or sanctions_check, which an agent selecting among 25 tools would need.

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

Usage Guidelines4/5

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

"Use before paying, trading with or onboarding an address" gives a clear situational trigger. There are no explicit exclusions or named alternatives (e.g., when to prefer sanctions_check or check_x402_seller), so routing among overlapping siblings is still left to inference.

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

check_payeePayee screening: OFAC-screen an address before paying, plus account type and domain ageA
Read-only
Inspect

Fast check of a payee before an agent pays it: OFAC SDN match on the address, account type (wallet, delegated wallet or contract) and nonce on Base, Ethereum, Arbitrum, Optimism or Polygon, and optionally the payee domain's age and trust flags. One block, review or pass verdict with reasons. Screening aid, not legal advice. Use before an x402 or USDC payment to an unfamiliar address; holdings and wallet heuristics: check_counterparty. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork of the payment: base (default), eth, arb, op or polygon
domainNoOptional: the payee's domain or website URL, e.g. ethereum.org; adds domain age and trust flags
addressYes0x address you are about to pay

TDQS

A4.2/5.0
Behavior4/5

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

Adds real context beyond the annotations: pricing ($0.005/call, first 25 free, failed calls free), which explains why idempotentHint=false since repeats are charged, plus the output shape (pass/review/block with reasons) and the "screening aid, not legal advice" limitation. "Reads or computes only and changes nothing" largely restates readOnlyHint, but the charging semantics justify it.

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

Conciseness3/5

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

Purpose is front-loaded in the first clause, but the description is a dense run-on that repeats the chain enum verbatim and splits pricing across two places ("$0.005/call ... first 25 free" and "each call is charged, so repeats are not free"). Several clauses could be consolidated without losing information.

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

Completeness4/5

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

With no output schema, the description does the necessary work by describing the verdict shape (block/review/pass with reasons) and the legal-advice caveat. Missing only edge-case behavior, such as what a passing verdict looks like when the domain is omitted or how a partial OFAC match is reported.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description goes slightly further by explaining that the optional domain parameter unlocks domain age and trust flags, and supplies a worked address example. It does not add anything about failure modes for an invalid or non-EVM address.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (payee screening) and enumerates exactly what is checked: OFAC SDN match on the address, account type and nonce on named chains, optional domain age and trust flags. It also names the sibling it is not (holdings/wallet heuristics → check_counterparty), so an agent can separate the two 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.

Usage Guidelines4/5

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

"Use before an x402 or USDC payment to an unfamiliar address" gives a clear trigger condition, and it explicitly routes holdings/wallet heuristics to check_counterparty. It stops short of routing other adjacent siblings (sanctions_check, check_x402_seller, domain_report), which would have been the natural exclusions for an OFAC/domain tool.

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

check_x402_sellerx402 audit of a seller: vet a paid endpoint's terms, payTo and domain before buyingA
Read-only
Inspect

Audit an x402 seller before an agent buys from it: decodes the endpoint's 402 terms without paying, OFAC-screens each payTo address, reads its account type and nonce on the payment network, checks the seller domain's age and trust flags, and flags non-USDC assets and high prices. One block, review or pass verdict with reasons. Never signs. Screening aid, not legal advice. Use before the first payment to an unfamiliar x402 seller. Example: url=https://agent-data-tools.revmesh2074.workers.dev/btc-fees. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public https URL of the paid endpoint, with any query it needs

TDQS

A4/5.0
Behavior5/5

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

It discloses a lot beyond the readOnly/openWorld/idempotent annotations: it does not sign transactions, it does not touch the endpoint's state, each call is charged so repeats are not free (which explains the non-idempotent hint), and the verdict format is 'review or pass with reasons'. Cost and the legal-disclaimer caveat are exactly the kind of context annotations cannot carry.

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

Conciseness3/5

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

The purpose is front-loaded and each clause carries real information, but the pricing boilerplate ('$0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free') and the specific worker example URL are noise an agent does not need to select or call the tool. The single dense semicolon-chained sentence is also hard to scan.

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

Completeness4/5

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

With no output schema, the description still conveys the return shape ('review or pass verdict with reasons'), the checks performed, and the free-of-side-effect guarantee. The parameter is fully documented. Only the exact verdict fields and what happens on an unreachable or non-402 endpoint are left to discover.

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

Parameters3/5

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

There is only one parameter and the schema already describes it fully at 100%: an absolute public https URL, including any query string. The description adds an example URL, but no extra syntax or constraint beyond what the schema says. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+scope: auditing an x402 seller's 402 terms, payTo addresses, domain and assets before an agent pays. That is far more specific than a generic 'check'. It never names the near-identical sibling x402_check, so what separates the two is not stated explicitly.

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

Usage Guidelines4/5

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

Use is clearly labelled: 'Use before the first payment to an unfamiliar x402 seller.' It also says 'Never signs' and 'Screening aid, not legal advice', which sets limits on when the verdict is enough. No alternative tool is named, so there is no explicit 'use X instead when…' guidance.

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

coinFlip a coinA
Read-only
Inspect

Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many coins (1-100, default 1)

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, it discloses the cryptographic random source, return shape, pricing and payment paths, free-call allowance, failed-call behavior, and that repeated calls are charged. It also reinforces the read-only nature consistently with readOnlyHint=true.

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

Conciseness4/5

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

The purpose and return behavior are front-loaded, and the pricing and safety notes are relevant for this paid tool. The example is mildly redundant, but overall the description is efficient rather than padded.

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

Completeness5/5

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

For a simple one-parameter randomness tool, the description covers purpose, usage context, return shape, cost, failure behavior, and side-effect profile. No output schema is present, but the description says it returns each result and totals.

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

Parameters3/5

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

The schema already documents the count parameter at 100% coverage, including its intended range and default. The description only adds a simple example and the phrase 'one or more', without reconciling the schema's broader numeric bounds or adding much beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: flipping one or more fair coins from a cryptographic random source. It is clear what the tool does, but it does not explicitly distinguish itself from sibling randomness tools such as dice or random_number.

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

Usage Guidelines4/5

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

It gives a clear usage context: fair decisions and games, with an example of count=1. It does not state when not to use it or name alternatives, but the intended use is explicit.

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

colorHex to RGB, color converter: convert a color between hex, RGB and HSLA
Read-only
Inspect

Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b) and hsl(h,s%,l%). Use for theming and design checks. Example: color=#0f6cbd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
colorYesThe colour

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds real value on top by explaining cost ('$0.01/call', first 25 free, failed calls free) and clarifying that 'reads or computes only and changes nothing' yet 'each call is charged, so repeats are not free' — which explains the otherwise puzzling idempotentHint=false. It does not describe the shape of the response, 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.

Conciseness4/5

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

Front-loaded with the conversion capability and accepted formats before secondary details (pricing, safety note). The pricing sentence is a little dense and could be tightened, but no sentence is pure filler.

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

Completeness4/5

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

For a one-parameter tool with no output schema, the description does the important work of naming the returned values (relative luminance and contrast recommendation) and the accepted formats. Without an output schema, a description of the exact response fields would have closed the last gap.

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

Parameters4/5

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

Schema coverage is 100%, but the schema's own text is just 'The colour', so the description carries the real semantics: it lists #rgb, #rrggbb, rgb(r,g,b) and hsl(h,s%,l%) syntax and gives a concrete example. It does not say what happens with unsupported forms (named colours, alpha channels), leaving a small ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Convert a colour between hex, RGB and HSL') and enumerates the accepted input formats plus the derived outputs (relative luminance, black-vs-white text preference). The added 'whether black or white text reads better' overlaps conceptually with the color_contrast sibling without saying so, so the differentiation is left implicit.

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

Usage Guidelines4/5

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

'Use for theming and design checks' gives concrete usage context, and the worked example (color=#0f6cbd) shows typical invocation. It stops short of naming when to prefer color_contrast or color_palette instead, so there are no explicit exclusions.

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

color_contrastColor contrast check (WCAG): check the contrast ratio of two colors against WCAG accessibility levelsA
Read-only
Inspect

WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is readable. Example: fg=#767676, bg=#ffffff. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
bgYesBackground colour
fgYesText colour

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the billing model: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and repeats are charged — which explains the idempotentHint=false. The statement "reads or computes only and changes nothing" is consistent with readOnlyHint=true and destructiveHint=false.

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

Conciseness4/5

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

Purpose and result shape are front-loaded, followed by usage and then billing. Every sentence carries information, though the pricing clause is dense enough that it slightly crowds out the core tool description.

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

Completeness5/5

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

For a two-parameter compute tool with no output schema, the description covers what is computed (ratio plus AA/AAA verdicts at two sizes), input format via example, safety profile, and the cost model. 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.

Parameters4/5

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

Schema coverage is 100%, so both parameters are documented, but the description adds the value format via the example (hex strings like #767676 and #ffffff), which the schema does not specify. That is a genuine increment over structured data, though it doesn't cover alternate formats like rgb() or named colors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: computes the WCAG 2 contrast ratio between a text colour and a background colour, plus AA/AAA pass/fail at both text sizes. This is clearly separable from siblings like color_palette, color, or random_color, which do not evaluate accessibility.

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

Usage Guidelines4/5

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

"Use to check that a design is readable" plus a concrete example (fg=#767676, bg=#ffffff) gives a clear usage context. It stops short of naming alternatives or when-not-to-use (e.g. use color_palette to generate colors instead), so it does not reach the top band.

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

color_paletteColor palette generator: harmonies and shades from one colorA
Read-only
Inspect

Build a colour palette from one hex colour: complementary, analogous, triadic, split-complementary and tetradic harmonies (hue rotations at the same saturation and lightness), plus six shades from light to dark, all as hex codes, with the base colour's HSL. Use for UI themes, charts, brand kits or slide decks; to check text readability on a colour use color_contrast. Example: color=#3366ff. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
colorYesBase colour as hex, such as #3366ff or 36f

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds the auth and cost model ($0.01/call via x402 USDC or a card key at /credits, first 25 free, failed calls free) and warns that repeats are not free, which explains the idempotentHint=false annotation in practical terms. It does not describe ordering or exact shape of the returned harmonies, but the cost/auth disclosure is real value beyond the 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.

Conciseness4/5

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

Front-loaded with the core capability and output inventory in one sentence, followed by use cases, the sibling pointer, and the pricing/behaviour note. Slightly padded by the em-dash stacking of specificity details ('first 25 free; failed calls free') and the commercial pricing pitch, but no sentence is off-topic.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does a fair job (harmonies and shades as hex codes, plus base HSL). What is still fuzzy is the container format — whether results come back as one string or structured fields — and the ordering of the six shades, which an agent may want to know before formatting the output.

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

Parameters3/5

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

Schema coverage is 100% and the single `color` parameter already documents hex formats like #3366ff or 36f, so the description's example adds nothing new about the argument itself. The 'hue rotations at the same saturation and lightness' clause adds useful semantics but describes the computation, not the parameter. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Build a colour palette from one hex colour') and enumerates exactly what is produced: five named harmonies plus six shades plus the base HSL. It also distinguishes itself from the nearest sibling by routing readability checks to color_contrast, so an agent can tell it apart from `color`, `random_color` and `color_contrast` without opening any schema.

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

Usage Guidelines5/5

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

Gives concrete use cases (UI themes, charts, brand kits, slide decks) and explicitly names the alternative tool with the condition that selects it ('to check text readability on a colour use color_contrast'). The input example and the note that repeated calls are charged further tell the agent how to invoke it efficiently.

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

companyCompany data lookup: profile, identifiers and website from WikidataA
Read-only
Inspect

Facts about a company by name or Wikidata ID: official website, founding date, country, headquarters, industries, CEO, founders, parent, employee count, stock tickers and exchanges, and LEI, with Wikidata and Wikipedia links. Public domain data (CC0), best for established and listed companies. No match returns 404, uncharged. Use to enrich leads, vendors and counterparties or ground an answer about a company. Example: name=Spotify. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
idNoWikidata item ID such as Q689141, instead of name
nameNoCompany name to search for (give name or id)

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only/non-destructive, and the description adds substantial context beyond them: CC0 licensing, 404-on-no-match behavior (uncharged), failure calls free, per-call pricing and payment routes, and an explicit reconciliation of why repeats are not free despite being a pure read. That last point usefully explains the idempotentHint=false, which would otherwise look odd 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.

Conciseness3/5

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

Front-loaded with the useful field list, but the tail is dense and partly redundant: price and 'failed calls free' appear in one sentence, then 'each call is charged, so repeats are not free' restates the billing point. Payment-rail detail (x402 USDC, /credits key) is relevant to cost but crowds out structure in a single undifferentiated paragraph.

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

Completeness5/5

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

With only two optional parameters, no nested objects, no output schema, and near-zero complexity, the description covers everything needed: the returned fields are enumerated, error behavior and cost are stated, and the read-only nature is explicit. Nothing an agent needs before calling is missing.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are self-documented ('Wikidata item ID such as Q689141, instead of name'; 'give name or id'). The description restates the either/or choice and adds one worked example (name=Spotify), which is mildly helpful but adds no format or disambiguation rules beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (company facts) with explicit input modes (name or Wikidata ID) and enumerates the exact fields returned: website, founding date, HQ, industries, CEO, founders, parent, employees, tickers, LEI, and external links. An agent can immediately distinguish this from siblings like domain, sec_filings, or check_counterparty without opening the schema.

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

Usage Guidelines4/5

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

Gives concrete use cases (enrich leads, vendors, counterparties; ground an answer about a company) plus a scoping constraint ('best for established and listed companies'), which implies when NOT to use it. It stops short of naming which sibling to use for private/early-stage companies or for financial filings, so it is clear context without explicit alternatives.

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

contentsGet contents, web contents: clean text of up to five pages in one callA
Read-only
Inspect

Read one to five public web pages in one call and get each one's clean text (or Markdown), title, author and published date where the page declares them, in the request shape search APIs use (urls as a list). Pages are read in parallel; one that cannot be read is listed in statuses with its reason and the rest still answer. Static HTML, Markdown and plain text, up to 20,000 characters a page. Use to read search results in one call. Example: urls=https://example.com,https://www.iana.org/help/example-domains. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlsYesOne to five page URLs: comma-separated, one per line, or a JSON array
formatNotext (default) or markdown
maxCharsNoCharacters per page, 500 to 20000 (default 4000)

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: parallel fetching, per-page failure isolation via 'statuses with its reason and the rest still answer', a static-only limitation, a 20,000 character per-page ceiling, and a full cost model ($0.01/call, first 25 free, failed calls free, repeats not free). The charging note independently explains why idempotentHint is false, which the annotation alone would not convey.

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

Conciseness4/5

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

Front-loaded with the core verb, resource and return contents, and no sentence is filler. The billing and safety clauses are crammed into long semicolon-chained sentences at the end, which slightly hurts scannability.

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

Completeness5/5

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

With no output schema, the description carries the return contract and does it: field names (text/Markdown, title, author, published date), the statuses array and its per-page reason semantics, and the truncated-length limit. Combined with the static-only caveat and cost, 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.

Parameters4/5

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: it frames urls as 'the request shape search APIs use (urls as a list)' and supplies a concrete example call, clarifying the one-to-five and multi-URL semantics. It does mention the 20,000 cap without the 4000 default, so the maxChars default still only comes from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one to five public web pages in one call') plus exactly what is returned: clean text or Markdown, title, author, published date. It is clearly separable from siblings such as search (which finds URLs), html_to_text (which converts provided markup) and extract_rendered (which implies JS rendering), because it declares 'Static HTML, Markdown and plain text'.

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

Usage Guidelines4/5

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

Gives a concrete usage cue, 'Use to read search results in one call', which tells the agent when to reach for this over repeated single-URL fetching. It stops short of naming alternatives or exclusions (e.g. what to use for JS-rendered pages or for already-fetched HTML), so routing for edge cases 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.

contract_abiContract ABI, verified contract: ABI and sourceA
Read-only
Inspect

The verified ABI of a smart contract on Ethereum, Base, Arbitrum, Optimism or Polygon from Sourcify's open verification repository: contract name, compiler, match quality, every function and event signature, the full ABI, and for proxies the implementation contract with its ABI. Optional source=true adds the main source file (up to 20,000 characters). Unverified contracts are an uncharged 404. Use before calling or decoding a contract. Example: address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoethereum (default), base, arbitrum, optimism or polygon
sourceNotrue to include the main source file
addressYesContract 0x address

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say read-only, non-destructive, open-world and non-idempotent; the description adds the substantive traits behind that: unverified contracts yield an uncharged 404, source is truncated at 20,000 characters, cost is $0.01 per call via x402 USDC or a card key, first 25 free, and repeats are charged again (consistent with idempotentHint=false). This is exactly the context annotations cannot carry.

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

Conciseness4/5

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

Purpose and supported chains are front-loaded, followed by return payload, then cost and semantics. The single dense paragraph is efficient with no filler, though the pricing/auth clause is packed tightly enough that skimming risks missing the charging caveat.

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

Completeness5/5

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

With no output schema, the description fully enumerates the return payload (name, compiler, match quality, signatures, ABI, proxy implementation), covers the failure mode (404 on unverified), and discloses auth and pricing. 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.

Parameters4/5

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 goes beyond it by stating the source parameter's 20,000-character truncation limit and by listing the supported chains in prose that the chain enum-less schema only partially conveys. A concrete example address is also supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (verified contract ABI), its source (Sourcify), and its full scope (Ethereum, Base, Arbitrum, Optimism, Polygon), then enumerates the returned fields. An agent can distinguish it from eth_call or eth_proxy without opening the schema, since the return payload is spelled out field by field.

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

Usage Guidelines4/5

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

"Use before calling or decoding a contract" gives an explicit trigger condition and implicitly routes work away from eth_call/evm_decode_calldata. It does not name a sibling alternative or state any when-not condition, 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.

contract_riskSmart contract risk check: proxy, bytecode and supply red flags for a Base contract before approving itA
Read-only
Inspect

Check a Base contract before you approve or call it: a low to critical risk tier with named flags (proxy, proxy with no implementation, tiny bytecode, zero token supply), plus bytecode size, the EIP-1967 implementation slot and ERC-20 owner, renounced and paused reads. Unreadable reads are null; EOAs return not-applicable. Limited heuristics, not a full security audit. Use before approving a spender or calling an unfamiliar Base contract. Example: address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesBase chain contract address, 0x-prefixed 20-byte hex

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond annotations: unreadable reads return null, EOAs return not-applicable, pricing model ($0.01/call, 25 free, failed calls free), and the warning that repeat calls are charged (consistent with idempotentHint=false). This tells the agent the cost and failure semantics, which annotations alone cannot.

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

Conciseness4/5

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

Front-loads what the tool returns and what it is for, then adds usage, example, pricing, and safety notes. Dense but nearly every clause carries information; the pricing sentence is the longest but is genuinely relevant to repeat calls.

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

Completeness4/5

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

With no output schema, the description does the work of naming the returned fields and their edge-case values. It is nearly complete for a single-param read tool, though the exact shape/ordering of the response payload is left implicit.

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

Parameters4/5

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

Schema coverage is 100% and the single `address` param is already documented, so the schema does the heavy lifting. The description still adds value by pinning the chain to Base and giving a real example address, which prevents cross-chain misuse among the many arb/eth/op/polygon siblings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — risk check of a Base contract — plus the exact outputs (risk tier, named flags, bytecode size, EIP-1967 slot, ERC-20 reads). Clearly distinguishes itself from siblings like base_proxy, base_is_contract, and base_token_info, which each cover only one piece of this check.

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

Usage Guidelines4/5

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

Explicitly says when to use it ('before approving a spender or calling an unfamiliar Base contract') and states a boundary ('Limited heuristics, not a full security audit'), with a concrete example invocation. It does not name sibling alternatives for deeper analysis, which keeps it 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.

countryCountry info, country facts: facts about a country: capital, region, income level and populationA
Read-only
Inspect

Facts about a country by ISO code (SE, SWE, US…): official World Bank name, ISO-2 and ISO-3 codes, region, income level, capital city and its coordinates, and the latest population figure with its year (World Bank open data). Use to enrich records with country data. Example: country=SE. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countryYesISO 3166 alpha-2 or alpha-3 code

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: pricing ($0.01/call), access methods (x402 USDC or card key /credits), the first 25 calls free, and failed calls free. It also reinforces that the call reads/computes only and that repeated calls are billed, which is useful operational context not captured by the annotations.

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

Conciseness4/5

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

Front-loads the resource and returned fields, then adds useful pricing context. It is somewhat dense, and the phrase 'Reads or computes only and changes nothing' partly repeats the readOnly/destructive annotations, but overall there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter lookup with no output schema, the description fully covers the returned data fields, data source (World Bank open data), and billing behavior. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter is already documented as ISO 3166 alpha-2 or alpha-3. The description nonetheless adds examples (SE, SWE, US, country=SE) that make the accepted format immediately clear, providing modest value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns facts about a country by ISO code, then enumerates the exact fields returned (name, ISO-2/ISO-3, region, income level, capital coordinates, population). It is clearly distinguishable from sibling geocoding and economic-indicator tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear usage context ('Use to enrich records with country data') and a concrete example ('country=SE'). It does not explicitly compare against alternatives such as geocode or econ_population, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cron_nextCron expression next run times: get the next run times of a cron schedule expressionA
Read-only
Inspect

Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to check a schedule before deploying it. Example: expr=*/15 9-17 * * MON-FRI. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
exprYesThe cron expression
fromNoStart time, ISO (default now)
countNoHow many runs (1-50, default 5)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, and the description is consistent with all of them ('Reads or computes only and changes nothing'). It adds information annotations cannot carry: per-call pricing via x402 USDC or card key, 25 free calls, failed calls free, and that repeated calls incur cost again — genuinely useful before an agent loops on it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then syntax support, use case, example, then cost. Dense but nearly every clause carries information; the pricing sentence is longish yet relevant to call decisions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does state the return is next run times in UTC, plus the syntax accepted for the required parameter and the cost model. Count/from behavior is left to the schema, which adequately documents it, so an agent has enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description earns an extra point by spelling out the 5-field cron grammar (minute hour day month weekday) and that ranges, lists, steps and names like MON/JAN are accepted, which is semantics the schema's bare 'The cron expression' does not provide. It says nothing about 'from' or 'count', but those schema descriptions are adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('next run times of a standard 5-field cron expression') and immediately scopes it with the supported syntax and UTC output. No sibling tool covers cron, and the definition makes the scope unmistakable anyway.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('check a schedule before deploying it') and a worked example expression. There are no competing cron siblings to route away from, so the absence of explicit exclusions costs little.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crypto_fear_greedFear and greed index, crypto: today's value and historyA
Read-only
Inspect

The Crypto Fear & Greed Index (0 = extreme fear, 100 = extreme greed) from alternative.me: today's value and label, the change against 1, 7 and 30 days ago, the low, high and average over the window, and the daily history (up to 90 days, default 30). Updated once a day. Use as a market-sentiment input for a trading agent, a dashboard or a daily brief; for live prices use price_token. Example: days=30. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
daysNoDays of history, 1-90 (default 30)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly/idempotent hints, and the description adds context the annotations cannot: daily update cadence, cost ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and the explicit warning that repeated calls are billed — which explains why idempotentHint=false matters in practice. It also confirms 'reads or computes only and changes nothing', reinforcing the safety profile with a stated consequence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the definition and scale, then return contents, then usage and economics — a logical order with no filler sentences. It runs long for a single-parameter tool because pricing/licensing details are packed into the same block, which is useful but makes the final third dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-shape burden and does so fully (value, label, deltas, window stats, history length), plus freshness, cost, and side-effect posture. An agent has everything needed to decide and call correctly; only pagination/truncation of the 90-day history is unstated, a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by explaining that `days` defines the window over which low/high/average are computed and that it drives the returned daily history (default 30, up to 90). That aggregation semantics is not visible in the bare parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific resource (Crypto Fear & Greed Index from alternative.me), its scale (0 = extreme fear, 100 = extreme greed), and enumerates exactly what is returned: today's value and label, 1/7/30-day deltas, window low/high/average, and daily history. It also routes a closely-related need elsewhere ('for live prices use price_token'), so the agent can distinguish it from siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('market-sentiment input for a trading agent, a dashboard or a daily brief') and names the alternative for live prices. It does not state explicit exclusions against the other market tools (btc_price, trade_insight, pack_crypto_market), so the boundary is clear for the price case but left implicit for the rest.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

csv_to_jsonCSV to JSON: convert CSV text into a JSON array of objectsA
Read-only
Inspect

Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. Numbers stay as text unless numbers=true. Use to load spreadsheet exports into an agent. Example: text=name,age Ada,36. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe CSV text, first row is the header
numbersNotrue to turn numeric cells into numbers

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, non-idempotent), and the description adds genuinely new context: per-call pricing, the 25-free-call allowance, failed calls being free, and the warning that repeats are not free because each call is charged. That pricing/idempotency reinforcement goes beyond the 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Conversion behavior and the example are front-loaded, and the pricing sentence is compact despite covering several facts. Slightly dense at the end, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly explains the return value (array of objects keyed by the header row) and covers input formats. It stops short of edge cases — ragged rows, malformed CSV, empty input — which would matter for an agent handling messy exports.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented; the description's note that numbers stay text unless numbers=true largely restates the schema. It does add automatic delimiter detection and quoted-field handling, but those are behaviors rather than parameter semantics. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (convert CSV to a JSON array of objects) plus the exact output shape — objects keyed by the first row. This clearly distinguishes it from siblings like json_to_csv, csv_to_markdown and html_table_to_json.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers one concrete usage context ('load spreadsheet exports into an agent'), which is helpful, but never names an alternative or an exclusion — nothing tells the agent when to pick csv_to_markdown or html_table_to_json instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

csv_to_markdownMarkdown table from CSV: convert CSV into a GitHub tableA
Read-only
Inspect

Convert CSV (comma, semicolon, tab or pipe, detected automatically; quoted fields supported) into a GitHub-flavoured Markdown table, with number columns right-aligned, pipes escaped and line breaks kept as . Up to 100 KB. Use to show spreadsheet data in a README, chat reply, issue or report; for JSON use csv_to_json. Example: csv=tool,price,calls weather,0.01,120 search,0.01,45. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
csvYesThe CSV text (up to 100 KB)
headerNotrue (default) if the first row holds the column names

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral detail beyond the annotations: auto-detected delimiters, quoted-field handling, a 100 KB ceiling, and explicit 'reads or computes only and changes nothing' which complements readOnlyHint/destructiveHint. The billing note ('each call is charged, first 25 free, failed calls free') is useful but slightly muddies the picture by hinting at a non-idempotent cost model rather than clarifying behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Conversion semantics are front-loaded in the first sentence, with usage and the sibling alternative following. The inline CSV example and the pricing sentence make it longer than strictly needed for a two-parameter tool, but every element is at least informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by describing the produced table's formatting rules (alignment, escaped pipes, <br>). Together with the input limits and no-side-effect statement, 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.

Parameters4/5

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 adds value: it documents which delimiters are auto-detected and that quoted fields are supported, plus the default header behavior. It goes modestly beyond the schema rather than substantially re-explaining it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (convert CSV into a GitHub-flavoured Markdown table) and spells out the exact output conventions (right-aligned numbers, escaped pipes, <br> for line breaks). It explicitly names csv_to_json as the sibling for the JSON case, so an agent can route 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use scenarios (README, chat reply, issue, report) and an explicit alternative with its selection condition ('for JSON use csv_to_json'). Delimiter support and size limit further delimit applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

date_addDate calculator, add time: add or subtract days, weeks, months or years to a dateA
Read-only
Inspect

Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month ends are clamped (31 Jan + 1 month = 28/29 Feb). Use to compute due dates and expiries. Example: date=2026-01-31. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateYesStart date or ISO timestamp
daysNoDays to add
hoursNoHours to add
weeksNoWeeks to add
yearsNoYears to add (negative subtracts)
monthsNoMonths to add
minutesNoMinutes to add
businessDaysNoWeekdays to add (skips weekends)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing month-end clamping semantics (31 Jan + 1 month = 28/29 Feb), that negative values subtract, weekend skipping for business days, and the billing model (first 25 free, failed calls free, repeats charged). This is substantive behavioral context the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability statement is front-loaded and dense with useful detail, and the example is well-placed. The trailing pricing/credits sentences are necessary for cost-sensitive agents but slightly dilute the core message.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter computation tool with no output schema, the description covers units, edge-case semantics, an example, and cost, which is everything an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented; the description adds real value on top by explaining negative-value subtraction and the month-end clamping rule that the schema never mentions. It does not explain unit-combination or precision behavior, keeping it just shy of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb (add/subtract) on a specific resource (date components) and enumerates the supported units, including the special businessDays mode. An agent can immediately distinguish it from date_diff or date_business_days siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the intended use case ('compute due dates and expiries') and provides a concrete example, giving clear context for when to pick this tool. It stops short of explicitly naming the alternative sibling date_business_days 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.

date_business_daysBusiness days between dates, working days calculator: count working days between two dates, skipping weekends and public holidaysA
Read-only
Inspect

Count business (working) days between two dates, skipping weekends and public holidays for the US, UK, Sweden, Germany, France, Norway, Denmark or Finland, and list the holidays skipped; or give add=N to get the date N business days after (or before) a date. Other countries count weekends only, and the answer says so. Use for delivery estimates, SLAs, payment terms and payroll dates. Example: from=2026-12-01. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toNoEnd date, YYYY-MM-DD (inclusive; default: the last day of the start month); or use add
addNoBusiness days to add to from (negative to go back), instead of to
fromYesStart date, YYYY-MM-DD
countryNoHoliday calendar: US, GB, SE, DE, FR, NO, DK or FI (default: weekends only)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely new context beyond the annotations: per-call pricing, 25 free calls, failed calls free, and the warning that repeats are not free (consistent with idempotentHint=false). It also discloses the fallback behavior for unlisted countries. The 'reads or computes only and changes nothing' sentence largely restates readOnlyHint/destructiveHint, and return-field structure is only hinted at, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core operation and both modes, then use cases, then an example, then pricing. Dense and mostly waste-free, though the pricing/commercial tail adds bulk that an agent making a first selection does not strictly need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter computational tool with no output schema, the description covers both modes, the default for 'to', the country-calendar fallback, and the cost model. The only gap is the exact shape of the returned counts/holiday list, which it gestures at ('list the holidays skipped') without detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so baseline would be 3; the description adds value by spelling out the country calendars with human-readable names (US, UK, Sweden, Germany, France, Norway, Denmark, Finland) that map onto the ISO codes in the schema, and by clarifying the add=N alternative including negative values. It still doesn't clarify how conflicting to/add inputs are resolved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('count business days between two dates') and covers both modes (count between dates, or add=N to shift a date) in the same breath. It is clearly distinguishable from date_diff/date_add siblings because it names the weekend-and-holiday skipping behavior and the country calendars.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('delivery estimates, SLAs, payment terms and payroll dates') and explains the two modes with an inline example. It does not explicitly name the sibling alternatives (date_add, date_diff) or exclude cases where a plain calendar-day diff is the right choice, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

date_diffDate difference: count the days, weeks and months between two datesA
Read-only
Inspect

Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) in between. Use for deadlines, ages and durations. Example: from=2026-01-01, to=2026-10-18. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYesEnd date or ISO timestamp
fromYesStart date or ISO timestamp

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses pricing ($0.01/call, first 25 free, failed calls free) and explicitly explains why repeats are not free, which makes the otherwise cryptic idempotentHint=false concrete. It also restates the compute-only, non-mutating nature, so the agent knows no state is touched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the return values, then usage, then an example, then billing. Dense but every clause carries information; the pricing sentence is long but load-bearing for a paid, non-idempotent call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description enumerates every return component, and both required params are covered. For a two-parameter read-only computation tool, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so from/to are already documented as start/end date or ISO timestamp. The description adds only a sample value pair (2026-01-01 / 2026-10-18) that confirms the accepted format — helpful but marginal over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (time between two dates/timestamps) and enumerates the exact outputs: total days/weeks/hours/minutes/seconds, a years-months-days breakdown, and weekday count. An agent knows precisely what it gets, though it never names the neighbouring tools (date_add, date_business_days, calc_age) it overlaps with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for deadlines, ages and durations" plus a concrete from/to example gives clear usage context. It stops short of exclusions or naming alternatives — "ages" overlaps with the sibling calc_age without disambiguation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

date_infoWeek number and date facts: ISO week, weekday, day of year, quarterA
Read-only
Inspect

Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use for calendar and reporting logic. Example: date=2026-10-18. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateNoDate or ISO timestamp (default today)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces that ('Reads or computes only and changes nothing'). It adds genuinely non-structured context: the $0.01/call x402 USDC or card-key pricing, 25 free calls, and that failed calls are free while repeats are charged, which also explains the idempotentHint=false flag. It does not describe the response shape beyond the field enumeration, hence 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the full field list so the agent knows what it gets immediately. The pricing sentence is long and slightly run-on, but every clause (price, free tier, free failures, repeat cost) carries behavioral information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single optional-parameter computation tool with no output schema, the description supplies the returned fields, the input format, the cost model, and a clear read-only guarantee. Nothing an agent needs in order 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents 'Date or ISO timestamp (default today)', so the baseline is 3. The description adds a concrete format example (date=2026-10-18), which disambiguates acceptable input syntax beyond the schema text, justifying a small uplift.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description enumerates the exact facts computed (weekday, ISO week number and week-year, day of year, quarter, days in month, leap year, Unix timestamp, weekend flag) for any date, which is specific enough to separate it from the many date siblings such as date_add, date_diff, date_zodiac, unix and time. The input example (date=2026-10-18) makes the resource concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for calendar and reporting logic' gives only implied usage context. No exclusions or explicit alternatives are named, even though the sibling list contains obvious confusables (date_diff, date_business_days, unix, holidays) whose boundary with this tool is left for the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

date_zodiacZodiac sign from a birth date: western and ChineseA
Read-only
Inspect

Western (tropical) zodiac sign with its element, and the Chinese zodiac animal and element of a birth date. The Chinese year is counted from the Gregorian year, so dates in January and early February before Chinese New Year are flagged as possibly the previous animal. Use for profile enrichment, greeting cards, games or horoscope-style content. Example: date=1990-08-15. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateYesBirth date, YYYY-MM-DD

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/destructive annotations it discloses pricing ($0.01/call via x402, first 25 free, failed calls free) and explains why idempotentHint=false in practical terms: each call is charged, so repeats are not free. It also flags a real correctness caveat (January/early-February dates may belong to the previous Chinese animal) that an agent could not infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is returned, then the boundary caveat, then use cases, then pricing. Dense and mostly purposeful, though the pricing sentence runs long and could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does name the returned components (sign, element, Chinese animal, Chinese element) and the edge-case flag, which covers what an agent needs to decide and call. It stops short of describing the response structure or field names, which would matter given the absent output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents the single parameter as YYYY-MM-DD, so the baseline is 3. The inline example (date=1990-08-15) reinforces the format and confirms a full-date string is expected, adding modest value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and computation: the western (tropical) sign with element plus the Chinese animal and element for a birth date. It is clearly distinguishable from adjacent siblings such as date_info, calc_age, or holidays without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for profile enrichment, greeting cards, games or horoscope-style content" gives concrete usage contexts, and the example date anchors the expected input. It never names an alternative tool or an explicit when-not condition, so routing against siblings like date_info is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describeDescribe or question an image: ask what is in an image or photo at a URL and get a text description or answerA
Read-only
Inspect

Vision model for an image at a public URL: get a detailed description including any visible text, or pass a question to ask something specific about the image. Accepts PNG, JPEG, WebP and GIF up to 3 MB. Use for alt text, OCR-style reading of screenshots, chart reading and content checks. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of a PNG, JPEG, WebP or GIF image (max 3 MB)
questionNoOptional question about the image (max 300 characters); default is a detailed description

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, non-idempotent, non-destructive. Description adds crucial behavioral details: it is a paid call ($0.01/call via USDC or card), failed calls are free, and repeats are not free due to charging. This directly informs cost and non-idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then adds file type limits, use cases, pricing, and behavioral notes in a tight, logical flow. Every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich annotations and no output schema, the description covers all needed aspects: purpose, supported formats, size limit, pricing model, and read-only behavior. An agent has everything necessary to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already fully documents both parameters. The description reinforces the URL's public nature and the question's purpose, but adds no format or syntax details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Vision model for an image at a public URL' with two clear modes (describe or question). It distinguishes itself from general text AI tools by focusing on image analysis and even lists concrete use cases like alt text and OCR.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear contexts for use: alt text, OCR-style reading, chart reading, content checks. Does not explicitly state when not to use it or name a sibling alternative, but the image-specific focus makes its niche clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diceRoll diceA
Read-only
Inspect

Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier and the total. Use for tabletop games and simulations. Example: roll=2d6+3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rollNoDice notation, e.g. 2d6+3 (default 1d6)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety and idempotency, but the description adds real behavioral context: cryptographic random source, per-roll return shape (every roll, the modifier, the total), and the charging model including that repeats are not free — which meaningfully explains why idempotentHint=false matters. It also states failed calls are free, which matters for retry behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability, format, and limits, then usage, then pricing. Every sentence carries information, though 'Reads or computes only and changes nothing' overlaps with readOnlyHint=true and the pricing sentence is dense relative to the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description covers input format, bounds, what is returned, safety profile, and cost — everything needed to call it correctly and predict the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single documented parameter, so the baseline is 3, and the description adds bounds not present in the schema (up to 100 dice of up to 1000 sides) plus a second notation example. It doesn't restate the default (1d6), which is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Roll dice') plus the exact input format ('standard notation such as 2d6+3 or 1d20') and hard limits (100 dice, 1000 sides). This clearly separates it from siblings like random_number, random_pick, or coin, which don't take dice notation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for tabletop games and simulations' plus a concrete example ('roll=2d6+3') gives an agent a clear context for selecting it. It stops short of explicit exclusions or naming an alternative (e.g., 'for a single uniform integer use random_number'), so it isn't a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dictionaryDictionary definition: English wordsA
Read-only
Inspect

Definitions of an English word from Wiktionary, grouped by part of speech, with example sentences where Wiktionary gives them, plus the page link and the CC BY-SA attribution to show. Use for writing help, vocabulary, translation checks and word games. Example: word=serendipity. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
wordYesAn English word

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true; the description adds genuinely extra operational facts: $0.01/call via x402 USDC or card key, first 25 free, and failed calls free. The 'each call is charged, so repeats are not free' note usefully reinforces the non-idempotent hint, though 'reads or computes only and changes nothing' mostly restates the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the return content, then use cases, then a concrete example, then commercial terms — each sentence carries a distinct payload. Pricing detail is verbose in absolute terms but necessary for an x402 metered tool and is packed into a single compact clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must describe returns and it does: part-of-speech grouping, example sentences, source page link, and the CC BY-SA attribution the caller must display. Cost model and read-only nature are also covered, leaving nothing an agent needs before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'word' parameter, so the baseline is 3. The example 'word=serendipity' gives a sample value but adds no constraints, casing rules, or handling of multi-word phrases/misspellings beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Definitions of an English word from Wiktionary') and details the shape of the result: part-of-speech grouping, example sentences, page link and attribution. That clearly differentiates it from siblings like wikipedia or ai_translate, which return prose or translations rather than lexical entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('writing help, vocabulary, translation checks and word games') and a worked example (word=serendipity), so an agent knows when it applies. It stops short of naming alternatives or exclusions — e.g. that ai_translate is the pick when the goal is producing a translation rather than checking a word.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_lookupDNS records lookup: A, AAAA, MX, TXT, CNAME, NS and moreA
Read-only
Inspect

Look up DNS records of a domain over DNS-over-HTTPS (Cloudflare 1.1.1.1): A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV, PTR, DS, DNSKEY or HTTPS, with each answer's TTL, the response code (NOERROR, NXDOMAIN…) and whether DNSSEC validated. Use to check email (MX, SPF in TXT), verify a domain, or debug a DNS change; for whether the change has spread use dns_propagation. Example: name=example.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesDomain name (or a URL; its host is used)
typeNoRecord type: A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS (default A)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint=false, destructiveHint=false), the description adds material context: the transport (DoH via Cloudflare 1.1.1.1), what each answer returns (TTL, response code like NOERROR/NXDOMAIN, DNSSEC verdict), pricing ($0.01/call, first 25 free, failed calls free), and that repeats are charged — which explains the idempotentHint=false. This is exactly the value-add expected when annotations 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and record types, then usage, then pricing. Efficient overall, though the pricing/credits clause and 'reads or computes only' restatement add length that could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description steps in to describe the returned fields (TTL, response code, DNSSEC validation), which is essential for this tool. Combined with usage routing and pricing, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (name, type) and the full type list are already documented in the schema. The description restates the type list and adds a usage example (name=example.com) and the note that a URL's host is used, but that host detail is also in the schema. Baseline 3 is appropriate since the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Look up DNS records of a domain') and enumerates the record types and returned fields, so the agent knows exactly what it does. It also distinguishes itself from the sibling dns_propagation, which handles propagation spread rather than the record lookup itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases (check email via MX/SPF, verify a domain, debug a DNS change) and names the alternative with the condition that selects it: 'for whether the change has spread use dns_propagation'. Nothing is left to inference about when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_propagationDNS propagation check: answers from 5 resolvers worldwideA
Read-only
Inspect

Check whether a DNS change has propagated: the same record queried at five public resolvers (Cloudflare, Google, AdGuard, AliDNS and DNSPod), each resolver's answers and TTLs, whether they all agree, and the majority answer. Record types A, AAAA, CNAME, MX, NS, TXT, CAA. Use to see where an old value is still cached after changing a record, moving hosting or setting up email; for one lookup use dns_lookup. Example: name=example.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesDomain name (or a URL; its host is used)
typeNoRecord type: A, AAAA, CNAME, MX, NS, TXT or CAA (default A)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, destructive=false), and the description usefully reinforces that nothing is mutated while adding cost behavior not present in annotations: $0.01/call via x402 or credits, first 25 free, failed calls free, repeats charged. That cost/repeat note also explains the idempotentHint=false in practical terms. It stops short of stating rate limits or latency/timeout behavior, which for a five-resolver fan-out would be the one remaining operational unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability and resolver list are front-loaded, and the single dense paragraph covers purpose, alternatives, example and pricing without filler. The pricing clause is stated twice in slightly different forms ("first 25 free; failed calls free" then "each call is charged, so repeats are not free"), a minor redundancy in an otherwise efficient block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description compensates by enumerating what comes back: each resolver's answers and TTLs, whether they all agree, and the majority answer. Combined with the alternative routing to dns_lookup and the cost model, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (name, type) are already fully documented, including the URL-host fallback and the A default. The description restates the record-type set and gives a name example, adding only marginal value over the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Check whether a DNS change has propagated") and immediately names the exact mechanism: the same record queried at five named public resolvers, with agreement and majority answer. It also enumerates supported record types, so the scope is unambiguous against any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggering scenarios (old value still cached after a change, moving hosting, setting up email) and an explicit exclusion with the alternative: "for one lookup use dns_lookup." Nothing about when to pick this over dns_lookup 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.

dockerfile_lintLint a Dockerfile for security and size issues: check a Dockerfile for security problems and image size issuesA
Read-only
Inspect

Check a Dockerfile (up to 8,000 characters) for common security and image-size problems: unpinned or :latest base images, running as root, piping downloads into a shell, sensitive values baked into ENV or ARG, ADD from URLs, apt and pip cache left in layers, sudo, chmod 777 and an exposed SSH port. Returns each finding with its line, a severity and a fix, plus a score. Use before building or shipping an image. Example: dockerfile=FROM node:latest COPY . /app CMD node /app/server.js. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dockerfileYesDockerfile contents (up to 8,000 characters)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive=false, but the description goes further: it states the 8,000-character input cap, the shape of the response (line, severity, fix, plus a score, which matters since there is no output schema), and the billing model including 'failed calls free' and that repeats are charged, which meaningfully explains the idempotentHint=false. Behavior is fully disclosed beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the full check list are front-loaded, with the response shape, usage timing, and pricing at the end. Slightly bloated by the pricing/credits sentence and an inline multi-line example that disrupts the sentence flow, but nearly every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description supplies the input limit, the finding structure, severity and score, cost per call, and failure billing. Nothing an agent needs to invoke or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is only one required parameter, so the baseline would be 3. The description adds value by restating the 8,000-character limit and supplying a concrete example value that shows the expected raw-text format for the dockerfile field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check a Dockerfile') and then enumerates the exact classes of findings (unpinned base images, root user, curl|bash, secrets in ENV/ARG, ADD from URLs, cache retention, sudo, chmod 777, SSH port). An agent knows precisely what this does and that it is distinct from the many unrelated siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use before building or shipping an image' gives a clear trigger point in the workflow. There are no near-alternative siblings to disambiguate against, so explicit exclusions are not needed, but it also does not say when not to use it (e.g., for non-Dockerfile configs).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domainDNS lookup, WHOIS lookup: DNS, RDAP registration age and email authenticationA
Read-only
Inspect

Domain intelligence in one call: DNS records (A, AAAA, CNAME, MX, NS, TXT, CAA), DNSSEC status, registrar, registration and expiry dates with domain age in days (RDAP/WHOIS), and email authentication (SPF and DMARC records and policies, whether the domain accepts mail). Use for lead qualification, phishing and trust checks, and deliverability audits. For a trust verdict with named flags use domain_report. Example: name=cloudflare.com. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesDomain name, e.g. cloudflare.com

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost model ($0.005/call, 25 free, failed calls free), the auth paths (x402 USDC or card key at /credits), and that repeat calls are charged — which operationally explains the idempotentHint=false flag. The 'reads or computes only and changes nothing' line reinforces rather than contradicts readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability list is front-loaded and each sentence carries information: capabilities, use cases, sibling routing, example, pricing. Minor redundancy in 'Reads or computes only and changes nothing,' which echoes readOnlyHint=true, but the density of the pricing/auth sentence justifies its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the return contents (record types, policies, ages, mail acceptance). Combined with cost, auth, and failure behavior, an agent has everything needed to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter and schema coverage is 100%, with an inline example in the schema itself, so the schema carries the full burden. The description's 'Example: name=cloudflare.com' merely restates what the schema already documents, adding no new format, normalization, or subdomain/IP-handling detail. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific capability ('Domain intelligence in one call') and enumerates the exact record types and data classes returned: DNS records, DNSSEC status, registrar, registration/expiry dates with age, SPF/DMARC. It also explicitly contrasts itself with the sibling domain_report, so an agent can separate the two 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (lead qualification, phishing/trust checks, deliverability audits) and routes to the alternative with an explicit condition: 'For a trust verdict with named flags use domain_report.' An input example is also provided, 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.

domain_reportDomain lookup, trust verdict: age, DNS and email-auth flagsA
Read-only
Inspect

A trust verdict for any domain in one call: high/medium/low trust with named flags for very new registrations, expiry, missing or weak SPF and DMARC, too few nameservers, no web host and non-resolving domains, plus the key facts (registrar, age, nameservers, DNSSEC). Use for lead qualification, phishing and vendor checks, and before an agent sends mail to or trusts a domain. Signals only, not a guarantee. Raw DNS records: domain. Example: name=cloudflare.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesDomain name, e.g. cloudflare.com

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, and the description explains the non-idempotency in cost terms ('each call is charged, so repeats are not free'), plus failed calls are free. It adds the accuracy caveat ('signals only, not a guarantee') and the payment/auth model (x402 USDC or card key, 25 free), which is material context 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verdict definition and the flag list, with caveats and pricing trailing at the end where they belong. It is dense and reads as one long run-on paragraph, so a small amount of structural cleanup is left on the table.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still enumerates the return content (verdict level, named flags, key facts: registrar, age, nameservers, DNSSEC). Pricing, payment paths, failure semantics, and the accuracy caveat round out what an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter with 100% schema description coverage and an inline example, so the schema already does the work. The description's 'Example: name=cloudflare.com' duplicates rather than extends the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ('a trust verdict for any domain in one call') and enumerates exactly what the verdict contains (high/medium/low trust, named flags for new registration, expiry, SPF/DMARC, nameserver count, web host, resolution). It also distinguishes itself from the sibling `domain` tool by pointing there for raw DNS records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage contexts (lead qualification, phishing and vendor checks, before sending mail or trusting a domain) and names the alternative (`domain`) for raw records. It does not state an explicit when-not-use case beyond the 'signals only, not a guarantee' caveat, so it falls just 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.

earthquakesRecent earthquakes, USGS data: list recent earthquakes worldwide from USGS, by magnitudeA
Read-only
Inspect

Recent earthquakes worldwide from the US Geological Survey: magnitude, place, time, depth, coordinates, tsunami flag and USGS link, for the past day or week, filtered by minimum magnitude (2.5, 4.5 or significant). Use for alerts, news and travel checks. Example: period=day. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
periodNohour, day (default), week or month
minMagnitudeNoSmallest magnitude to include, 0-10 (default 2.5), or significant

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses pricing ($0.01/call via x402 USDC or card key), a free tier (first 25 free), failed calls free, and that repeats are charged because each call is billed. It also confirms the operation 'reads or computes only and changes nothing,' which aligns with readOnlyHint and destructiveHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and fields, then moves to use cases, an example, and billing details. It is slightly dense but each sentence adds useful information and avoids repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description lists the key return fields (magnitude, place, time, depth, coordinates, tsunami flag, USGS link), data source, filter options, and pricing behavior. An agent has enough information to call the tool correctly and understand what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds an example and mentions common magnitude thresholds, but omits the schema's hour/month period options and arbitrary 0-10 magnitude range, so it provides no additional parameter clarity beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: list recent earthquakes worldwide from the US Geological Survey, filtered by minimum magnitude. It also names the returned fields and data source, so the agent can distinguish this from siblings like weather or country without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage contexts (alerts, news, travel checks) and an example call. It does not state when not to use it or name a specific alternative, but the sibling tools are in unrelated domains, so the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

echoEcho a message: send a message and get it back, to test a paid call end to endA
Read-only
Inspect

Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=hello. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
messageYesMessage, up to 2,000 characters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations by disclosing the charging model: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and that repeats are not free. This cost and idempotency consequence (paired with idempotentHint=false) is exactly the operational context 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the return value, then usage, then pricing. Four dense sentences with little waste, though the payment sentence packs several clauses that could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return contract and does so fully (message, length, server time), while also covering cost and safety. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and documents the single message parameter with a 2,000-character limit, so the schema does the work. The description only adds a trivial 'Example: message=hello' and no format or constraint 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (returns the message you send) plus the exact payload (length and server time), which no sibling tool does. An agent can distinguish this from text_stats or ping without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it for testing an x402 client, payment flow, or agent tool wiring end to end, which is a clear context. It does not name an alternative or exclusion, but for a self-evidently unique echo tool none is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

econ_gdpGDP by country, World Bank data: current US$, real growth and per capitaA
Read-only
Inspect

GDP of any country from World Bank data: GDP in current US dollars, annual real GDP growth in % and GDP per capita in US dollars, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for country comparisons, market sizing and macro context. Example: country=SE. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yearsNoYears of history to return, 1-10 (default 5)
countryYesISO 3166 code (SE, SWE) or English country name (Sweden)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that data comes from a committed snapshot (so calls answer instantly), that the snapshot date is included in the answer, and that pricing is $0.01/call with 25 free and failed calls free — which also explains why idempotentHint is false ('repeats are not free'). This is exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and payload, then freshness, then pricing. Dense but mostly earned; the pricing/auth sentence is longer than needed but conveys genuinely useful invocation constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-shape burden and does so: three metrics, units, ordering, and the snapshot date in the answer. Source/licensing (World Bank, CC BY 4.0) and cost model round out everything an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds meaning the schema lacks by stating results are ordered newest-year-first and that country accepts either ISO code form (SE, SWE) or English name, with a worked example (country=SE).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource (GDP) plus the exact three metrics returned (current US$, real growth %, per capita) and the 1-10 year window, so the agent knows precisely what data comes back. The resource is naturally distinct from siblings like econ_inflation and econ_population, though no sibling is named explicitly to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for country comparisons, market sizing and macro context' gives concrete usage contexts. It stops short of naming alternatives or exclusions (e.g., when to prefer econ_inflation for price levels), so it's clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

econ_inflationInflation rate by country: consumer prices, annual % (World Bank)A
Read-only
Inspect

Inflation rate of any country: annual % change in consumer prices (CPI) from World Bank data, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for real-return, pricing and macro questions. Example: country=SE. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yearsNoYears of history to return, 1-10 (default 5)
countryYesISO 3166 code (SE, SWE) or English country name (Sweden)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: discloses that reads come from a committed snapshot (so latency is low), that the snapshot date is included in the answer, and that failed calls are free while repeats are charged. This is consistent with idempotentHint=false and readOnlyHint=true rather than contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool returns and the country identifier before moving to sourcing and billing. Dense but almost every clause carries information; the pricing detail is slightly over-weighted relative to the core semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description explains the shape of the return (1-10 annual values, newest first, snapshot date included). Combined with the source, licensing, and cost model, an agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented with ranges and formats. The description repeats the country format (ISO code or English name) and adds the newest-year-first ordering, but that ordering concerns output, not parameter meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the exact metric (annual % change in CPI), source (World Bank), and the distinguishing sibling set (econ_gdp, econ_unemployment, econ_population) is implicitly excluded by naming CPI specifically. An agent knows precisely 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('real-return, pricing and macro questions') and a worked example (country=SE), which is more than most tools offer. It does not explicitly say when to pick econ_gdp or econ_unemployment instead, so routing between the econ_* siblings is still inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

econ_populationPopulation by country: total, growth and urban share (World Bank)A
Read-only
Inspect

Population of any country from World Bank data: total population, annual population growth in % and the urban share of the population in %, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for market sizing, per-capita figures and demographics. Example: country=SE. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yearsNoYears of history to return, 1-10 (default 5)
countryYesISO 3166 code (SE, SWE) or English country name (Sweden)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/destructive annotations it discloses latency ('every call answers at once'), data provenance and vintage (committed World Bank snapshot, CC BY 4.0, snapshot date in the answer), pricing per call, that failed calls are free, and that repeats are not free — which explains the idempotentHint=false flag. That is substantial behavioral context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, fields and country input before secondary detail; every sentence communicates something. The billing point is stated twice ('Price $0.01/call... failed calls free' and 'each call is charged, so repeats are not free'), which is mild redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still names the returned measures, their units, the year ordering and count, and notes the snapshot date is included in the answer. Combined with the disclosed cost model, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds ordering information not present in the schema ('last 1-10 years with the newest year first') and restates accepted country identifiers with an example. It does not clarify what happens for out-of-range or unknown-country inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Population of any country from World Bank data') and enumerates the three returned measures. It is clearly distinguishable from siblings such as econ_gdp, econ_inflation and econ_unemployment by resource, so an agent can pick it without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage context ('Use for market sizing, per-capita figures and demographics') and an example call (country=SE). It never names an alternative tool or states when not to use this one, so guidance is clear but not exclusionary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

econ_unemploymentUnemployment rate by country: total and youth, % of labour force (World Bank)A
Read-only
Inspect

Unemployment rate of any country from World Bank data (ILO modelled estimates): total unemployment and youth unemployment (ages 15-24) as % of the labour force, for the last 1-10 years with the newest year first. Country by ISO code (SE, SWE) or English name. Read from a committed World Bank Open Data snapshot (CC BY 4.0), so every call answers at once; the snapshot date is in the answer. Use for labour-market and macro questions. Example: country=SE. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yearsNoYears of history to return, 1-10 (default 5)
countryYesISO 3166 code (SE, SWE) or English country name (Sweden)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that reads come from a committed snapshot so latency is immediate, that the snapshot date is embedded in the answer, and the full billing model ($0.01/call, 25 free, failed calls free, repeats not free). This also explains the idempotentHint=false annotation rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool returns and the country identifier format, then covers provenance and pricing. Slightly heavy on payment mechanics for a tool description, but every sentence is informative and none are tautological.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return contract itself: both series, units as % of labour force, 1-10 years newest-first, and the snapshot date included in the answer. An agent can call this without further discovery.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: accepted ISO forms (SE, SWE) alongside English names, and that years are returned newest-first. It does not describe edge cases such as unknown country names or out-of-range years.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (unemployment rate, total plus youth 15-24, as % of labour force) plus the data source and coverage window. It is clearly distinguishable from siblings econ_gdp, econ_inflation and econ_population, which cover different indicators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear usage context ("Use for labour-market and macro questions") and a concrete invocation example (country=SE). It does not explicitly name an alternative tool or state when not to use it, 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.

emailEmail verification, validation: verify an address with syntax, MX and disposable-address checks, no mail sentA
Read-only
Inspect

Check email syntax, DNS and MX records, disposable providers, role addresses, free providers and SPF/DMARC presence. Returns likely-deliverable, risky, undeliverable or invalid with reasons. No message is sent and the mail server is not contacted. These are DNS and syntax signals, not proof that a mailbox exists or accepts delivery. Use before sending mail or saving a signup. Example: address=support@cloudflare.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesThe email address to check

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantive context beyond annotations: no message is sent, the mail server is not contacted, results are DNS/syntax signals not proof of mailbox existence, and pricing ($0.01/call, first 25 free, failed calls free, repeats not free). The per-call cost caveat meaningfully informs an agent about repeat invocation, complementing the idempotentHint=false annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and what is checked, then covers limits and pricing. Dense but each sentence carries information; the pricing and billing sentences could be trimmed slightly but are relevant to call behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description still names the return classifications (likely-deliverable, risky, undeliverable, invalid) with reasons, plus caveats about what the result does not prove. Nothing an agent needs to invoke or interpret it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter at 100% schema description coverage, so the schema already does the work. The inline example (address=support@cloudflare.com) adds slight format confirmation but nothing beyond that; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check email syntax, DNS and MX records...') and enumerates the exact signal set (disposable, role, free provider, SPF/DMARC). This clearly separates it from generic siblings like dns_lookup or domain_report, and from pack_email_deliverability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions: 'Use before sending mail or saving a signup.' It does not name an alternative sibling (e.g. pack_email_deliverability vs this tool) or state when-not-to-use, 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.

ensENS name resolver, reverse ENS: ENS name to address and address to ENS nameA
Read-only
Inspect

Resolve an Ethereum Name Service name such as vitalik.eth to its wallet address and avatar, or look up the primary ENS name of an address (reverse resolution). Read live from Ethereum mainnet. Use to turn a human-readable name into a payable address, or to show a readable name for a counterparty address. Example: name=vitalik.eth. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesAn ENS name such as vitalik.eth, or an address (0x...) for reverse lookup

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint, destructiveHint=false), and the description adds real context the annotations do not: live mainnet reads, a concrete cost model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and a note that repeats are not free — which explains the non-obvious idempotentHint=false. That is meaningful value beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first sentence, with usage in the second and commercial terms last. It is slightly long — the closing claims 'reads or computes only' partially restate the annotations and the charge warning is repeated with the pricing sentence — but nothing is wasted enough to be distracting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by naming the fields returned in each direction (address + avatar, or primary name). It does not state behavior for unresolvable names or addresses lacking a reverse record, which is the remaining gap for a single-param lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already documented as accepting either an ENS name or a 0x address for reverse lookup. The description only reinforces this with the vitalik.eth example, adding no syntax or format 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (resolve / reverse-resolve), the resource (ENS names and addresses), and the exact data returned (wallet address and avatar, or primary ENS name). Both directions of the operation are stated up front, so the agent can tell it apart from generic lookup siblings such as dns_lookup or domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states concrete use cases: turning a name into a payable address, and showing a readable name for a counterparty address. That gives clear selection context, but no explicit exclusion or named alternative (e.g. when to prefer dns_lookup or evm_checksum instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_allowanceToken allowance, Ethereum ERC-20A
Read-only
Inspect

ERC-20 token allowance on Ethereum: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use eth_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ownerYes0x wallet that gave the approval
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address
spenderYes0x contract or wallet allowed to spend (the example is Uniswap Permit2)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false, so the safety profile is covered. The description still adds real value beyond the annotations: the pricing model ($0.01/call via x402 or card key, first 25 free), the fact that failed calls are free, and the 404/422 error semantics. However, it restates the read-only nature already in annotations, so it is additive rather than essential.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and scoping, then use cases, then error/pricing terms; every clause carries information and the unconventional pricing details earn their place for a paid x402 endpoint. It is dense as a single paragraph and repeats the read-only claim already in annotations, costing a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description steps in to explain return values (raw and token-unit allowance, plus whether the approval is unlimited) — exactly the information an agent would otherwise lack. Combined with error behavior, auth/payment requirements, and sibling routing, nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description nonetheless adds meaning beyond the schema: it confirms token accepts a ticker or 0x contract and explains the failure modes (missing contract → 404, non-ERC-20 → 422, both uncharged), and it contextualizes spender via the Permit2 example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+chain: 'ERC-20 token allowance on Ethereum: how much a spender may move from an owner's wallet', and it explicitly distinguishes itself from upstream sibling eth_token_balance (balance vs. approval). An agent can pick it over the many other *_allowance siblings by chain name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases ('check an approval before a swap', 'audit risky open approvals') and names the alternative plus the condition that selects it ('for the owner's balance use eth_token_balance'). Routing is explicit rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_balanceEthereum native balanceA
Read-only
Inspect

Native ETH balance (eth_getBalance) of any 0x wallet address on Ethereum at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use eth_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet or contract address

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses cost model ($0.01/call via x402 or card key, first 25 free, failed calls free), that malformed addresses return 400 and are uncharged, and that repeat calls are billable — which usefully explains the non-obvious idempotentHint=false. Missing only latency/finality caveats about the latest block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and return units are front-loaded, then alternatives, then validation, then pricing — a sensible ordering. Slightly over-packed: the closing 'each call is charged, so repeats are not free' restates the pricing already given in the previous sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description specifies both return representations (wei and ETH) at a defined block. Combined with pricing, validation behavior, and sibling routing, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100% for the single address parameter, so the baseline is 3. The description adds a concrete example address and confirms the accepted format (0x) plus the failure behavior for malformed input, which is genuine added value over the schema's one-line description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Native ETH balance', underlying eth_getBalance), the chain, the block scope ('latest block'), and the return units ('wei and in ETH'). It explicitly names the two sibling alternatives (eth_token_balance, wallet_portfolio), so the agent can disambiguate within a very large sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a positive use case ('check whether a wallet can pay gas or a transfer') plus explicit routing rules for ERC-20 balances and aggregate holdings. When-to-use and when-to-use-something-else are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_blockBlock number, EthereumA
Read-only
Inspect

Latest block number and block details on Ethereum, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use eth_gas. A block that does not exist yet returns 404, uncharged. Example: number=latest. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberNoBlock number, or 'latest' (default)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavior beyond the annotations: cost of $0.01/call via x402 or card key, 25 free calls, failed calls uncharged, 404 for future blocks, and that repeat calls are charged (explaining the non-idempotent hint). It does not cover rate limits or response shape details, but the annotation set already carries the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what it returns, then routing guidance, then operational caveats; the example is one token and useful. The pricing clause is dense (x402 USDC, card key, /credits, free tier, failed-free) but each piece affects whether an agent should call it, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description supplies the return-field list, default behavior, error semantics, cost model, and sibling routing. Nothing an agent needs in order 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents 'number' plus the 'latest' default, so the baseline is 3. The description adds a real constraint the schema omits: the value must be a decimal block number, and it supplies a concrete example ('number=latest').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (Ethereum block, latest or by number) and enumerates the returned fields: hash, timestamp, tx count, gas used/limit, base fee, producer. The word 'Ethereum' plus the eth_ naming separates it from the base_block/op_block/polygon_block/arb_block siblings, and eth_gas is explicitly carved out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives positive triggers ('timestamps and confirmation counts') and an explicit alternative with its condition ('for current fees use eth_gas'), which is exactly the when-to-use/when-not guidance needed among 30+ eth_* siblings. The 404 behavior for a not-yet-existing block further defines valid usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_callEth call, Ethereum contract callA
Read-only
Inspect

Read-only contract call on Ethereum (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. Example: to=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, data=0x18160ddd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x contract address to call
dataYes0x ABI-encoded calldata: 4-byte selector plus arguments
fromNoOptional 0x sender address for calls that check msg.sender

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond annotations: no transaction or gas, 8 KB calldata limit, 422 on revert with the reason and no charge, $0.01 per call, first 25 free, and failed calls free. It also explains that reads change nothing but repeat calls are not free, which aligns with idempotentHint=false rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and usage, then pricing and behavioral constraints. It is dense but mostly earns its space; the USDC selector is given twice (once parenthetically and again in the example), which is a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description explains that the return value is raw return data to be decoded with the function ABI. It also covers revert behavior, charging, calldata limits, and lack of transaction/gas, which is complete for this read-only call tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the schema documents to, data, and from. The description adds useful meaning with a concrete to/data example, the ABI selector format, and the instruction to decode results using the function's ABI, though it does not elaborate on the optional from parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: a read-only contract call on Ethereum, with the exact eth_call semantics of sending ABI-encoded calldata and receiving raw return data. It distinguishes itself from dedicated tools by saying to use it for view functions that have no dedicated tool, and the chain name separates it from sibling *_call tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says when to use this tool: for any view function without a dedicated tool, with a concrete USDC totalSupply example. It does not enumerate the sibling alternatives such as eth_token_balance or eth_balance, but the 'no dedicated tool' condition gives an agent enough routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_estimate_gasEstimate gas, EthereumA
Read-only
Inspect

Estimate the gas a transaction would use on Ethereum (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use eth_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x recipient or contract address
dataNoOptional 0x calldata for a contract call
fromNo0x sender address (default: an empty address)
valueNoAmount of ETH to send, in ETH (default 0)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, non-destructive, openWorld and non-idempotent; the description adds genuinely new behavior: revert yields a 422 with the reason and is uncharged, each successful call is billed at $0.01 (first 25 free), and repeats are not free. The billing-per-call note is consistent with idempotentHint=false and 'changes nothing' is consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and usage are front-loaded, the example is compact, and every sentence carries information. The pricing/payment sentence is long and operationally dense, but it is relevant because calls are charged, so nothing is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what comes back (gas units, gwei and ETH) and how failures surface (422 with reason, uncharged). For a 4-parameter read-only estimator that is 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.

Parameters4/5

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 conditional semantics the schema does not: value is expressed in ETH and from is only needed 'when the call depends on it'. It also frames data as calldata for a contract call, reinforcing the schema wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Estimate the gas a transaction would use on Ethereum') and names the RPC method. It also implicitly distinguishes itself from the parallel arb_/base_/op_/polygon_ variants by naming Ethereum and explicitly routes gas-price-only queries to eth_gas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('before sending a transaction or to price a batch') and an explicit alternative with its selection condition ('for the gas price alone use eth_gas'). No inference is required to choose between the two.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_gasEthereum gas priceA
Read-only
Inspect

Current gas price on Ethereum (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use eth_receipt. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/openWorld/idempotent annotations by disclosing commercial and rate-limit behavior: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and that repeats are charged (consistent with idempotentHint=false). It also confirms 'reads or computes only and changes nothing,' and gives return units (gwei) and a concrete real-world derivation (21,000 gas).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and unit-bearing payload, then use case, then pricing. Dense but mostly earns its place; the pricing sentence is a long run-on and 'Reads or computes only and changes nothing' partly restates the readOnly annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating return fields (gas price, base fee, suggested priority fee in gwei, 21,000-gas transfer cost). An agent has enough to call it and interpret the answer without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `only` filter is fully documented in the schema, so the baseline of 3 applies. The description does not explain `only` at all and in fact says 'Takes no input,' which is mildly misleading for an agent that could shrink responses with only=price,base_fee.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific resource and payload: 'Current gas price on Ethereum (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs.' It also names the sibling it is not (eth_receipt), so an agent can distinguish it from the past-fee tools 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing: 'Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use eth_receipt.' Both the when-to-use condition and the alternative are stated, 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.

eth_gas_historyGas history, Ethereum gas priceA
Read-only
Inspect

Gas price history on Ethereum (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use eth_gas. Example: blocks=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks, 5-100 (default 20)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, destructive=false, openWorld=true, and idempotent=false. The description adds important context beyond that: the payment model, $0.01/call, first 25 free, failed calls free, and that repeated calls are charged. It still does not mention rate limits or latency, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose, usage guidance, and alternative are front-loaded before pricing details. Some wording is redundant with the schema default and annotations, but the description remains readable and mostly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so well: base fee per block, block fullness, priority-fee percentiles, and low/average/high aggregates. One optional parameter plus clear usage and pricing context makes it complete for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single blocks parameter has 100% schema coverage with type, range, and default. The description repeats the range/default and gives an example, but does not add new meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the underlying eth_feeHistory call, the exact window (last N blocks), and the returned data (base fee, block fullness, priority-fee percentiles, window aggregates). It also distinguishes itself from eth_gas, which covers the current price alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases: judge whether fees are rising, pick a priority fee, or time a transaction. It names the alternative eth_gas for current-price-only queries, so the selection boundary is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_is_contractEthereum contract checkA
Read-only
Inspect

Check whether a 0x address on Ethereum is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=false; the description is consistent ('reads or computes only and changes nothing') and adds genuinely non-obvious detail: pricing ($0.01/call, first 25 free), malformed address returning 400 uncharged, and that repeats are charged. However, it doesn't mention latency, caching, or output format beyond field names. With annotations covering the safety profile, this is solid but not maximal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then usage, then pricing and error behavior. Dense but every sentence carries relevant information; the pricing/examples block is slightly crammed alongside the capability statement, keeping it short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description explains what is returned (bytecode size, proxy status, implementation address), plus the failure mode (400, uncharged) and cost model. An agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'address' parameter, so the schema already carries the semantics. The description adds only a concrete example address and the 400 behavior for malformed input, which is useful but marginal beyond baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check whether a 0x address on Ethereum is a smart contract or a plain wallet') and enumerates the outputs: bytecode size, EIP-1167 minimal proxy detection, and implementation address. It also distinguishes itself from eth_proxy and check_counterparty, so an agent can route correctly 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('before sending funds or approving a spender') and names the alternative for a different need ('for a fuller risk verdict use check_counterparty'). The condition selecting the sibling is stated, not implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_logsEthereum recent event logsA
Read-only
Inspect

Recent contract event logs on Ethereum (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use eth_receipt. Example: address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks to scan (1-1000, default 50)
topic0NoOptional 0x event signature hash to filter by
addressYes0x contract address

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses the block-scan cap (1-1,000, default 50), the result cap (up to 100 logs), the returned fields, and the billing model ($0.01/call, first 25 free, failed calls free, 'repeats are not free'), which is consistent with idempotentHint=false. That pricing/limit detail is exactly the context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core definition and limits, then the alternative, then an example, then billing. Dense but every clause carries information; the example address and pricing sentence are the only parts that could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the return contents (block, transaction hash, topics) and the 100-log cap. Combined with cost and scan-window limits, an agent has everything needed to call this correctly and predict the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters, making 3 the baseline. The description adds modest value by restating the range/default and clarifying that topic0 is the '0x 32-byte event signature hash' plus a sample address, but nothing that isn't largely inferable from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Recent contract event logs on Ethereum') and anchors it to the underlying RPC method (eth_getLogs). It explicitly names the sibling it is not for ('for one transaction's outcome use eth_receipt'), so the agent can separate it from eth_receipt and the per-chain *_logs variants 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('watch transfers or contract events') plus an explicit exclusion with the alternative ('for one transaction's outcome use eth_receipt'). The only soft spot: it recommends this for 'transfers' even though a sibling eth_token_transfers exists, which could route a transfer query suboptimally.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_nft_balanceNFT balance, EthereumA
Read-only
Inspect

How many NFTs of one ERC-721 collection a wallet holds on Ethereum (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use eth_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address
contractYes0x ERC-721 collection contract address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses error behavior (404 for missing contract, 422 for non-ERC-721), that failed calls are uncharged, and pricing ($0.01/call, first 25 free). It also clarifies the tool only reads/computes and changes nothing, while noting repeats are charged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and usage, then includes errors and pricing in a compact flow. It is somewhat dense with operational details, but each sentence largely earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only tool with no output schema, the description covers purpose, return content (balance plus collection name and symbol), error cases, and charging behavior. An agent has enough information to call it correctly and interpret outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents both inputs as 0x wallet and 0x ERC-721 contract addresses. The description reinforces that both inputs are 0x addresses but adds little semantic detail beyond the schema, which is the expected baseline when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: how many NFTs of one ERC-721 collection a wallet holds on Ethereum (balanceOf), plus the collection name and symbol. It explicitly distinguishes itself from the sibling eth_nft_owner, which covers who holds one token id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete when-to-use cases: checking a holder before a token-gated action or seeing whether a wallet still holds a collection. It also names the alternative eth_nft_owner and the condition for choosing it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_nft_metadataNFT metadata, EthereumA
Read-only
Inspect

NFT metadata on Ethereum: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use eth_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, destructiveHint false, openWorldHint), but the description adds real operational detail beyond them: strings over 1,000 characters such as on-chain SVGs are truncated, a nonexistent token is 422 and uncharged, unreachable metadata surfaces as metadataError, and each call is billed so repeats are not free — which concretely explains idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return shape are front-loaded, and nearly every sentence contributes a fact. It runs long with pricing, repeat-charge, and free-tier detail at the tail, which is relevant but could be trimmed for readers who only need invocation guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully carries the burden: it describes the resolved field set, the truncation of large values, the two distinct failure modes (422 nonexistent vs. metadataError unreachable), and the cost model. An agent needs nothing else to call it correctly or interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already defines both parameters; the description nonetheless adds a concrete example pair (0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1) and reinforces that the contract is an ERC-721 collection address whose id is being queried. Useful, but modest value over an already complete schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (the tokenURI of one ERC-721 token id and the JSON it resolves to) and enumerates the fields returned (name, description, image, attributes). It is unambiguously distinguishable from eth_nft_owner, which it names explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to show or check what an NFT is; for its owner use eth_nft_owner" states both the intended use and the alternative tool that covers the adjacent need. Supported URI schemes (data:, https, ipfs:// via ipfs.io) further bound when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_nft_ownerNFT owner, EthereumA
Read-only
Inspect

Owner of an NFT on Ethereum: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use eth_nft_balance, for the token's metadata eth_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses error semantics (404 missing contract, 422 nonexistent token, both uncharged), billing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and that repeated calls are charged — which is the practical meaning of idempotentHint=false. Nothing contradicts the readOnly/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core definition, then routing, then error/pricing rules — every block is useful. There is minor redundancy in restating the charge in both the pricing sentence and the closing 'each call is charged, so repeats are not free', though that repetition reinforces non-idempotency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description names the return fields (owner, collection name, symbol) and enumerates the two failure cases with status codes. An agent has everything needed to call it, interpret results, and predict cost.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a 3 is the floor; the description adds a worked example (contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1) and ties each parameter's failure mode to a distinct status code, which helps validate inputs. Format details themselves remain in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns the wallet that currently holds one ERC-721 token id (ownerOf), plus collection name and symbol. It explicitly distinguishes itself from the two nearest siblings, eth_nft_balance and eth_nft_metadata, so an agent can pick it 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases (verify holder before a trade, mint gate, airdrop) and names the alternatives for adjacent needs: eth_nft_balance for holdings counts, eth_nft_metadata for token metadata. Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_nonceEthereum account nonceA
Read-only
Inspect

Read the transaction count (nonce) of a 0x address on Ethereum, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use eth_balance. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing pricing ($0.01/call, first 25 free, failed calls free), error behavior (malformed address returns 400 and is uncharged), and the cost consequence of repeats, which explains the idempotentHint=false flag in practical terms. The 'changes nothing' clause is a mild restatement of readOnlyHint but the surrounding payment and error context is genuinely additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core read operation and scope, then use cases, error behavior, example, and pricing in a sensible order. Slightly dense at five sentences, with the 'reads or computes only and changes nothing' clause partially duplicating the annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should pin down the return value; it implies a nonce and mentions confirmed vs. pending coverage but doesn't state whether both are returned together or how they are shaped. Everything else an agent needs to call it correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single required parameter is already documented, so the baseline is 3. The description adds a concrete example address and validation semantics (malformed input rejected with 400, uncharged), which helps the agent format and anticipate failures.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: reads the transaction count (nonce) of a 0x address on Ethereum, and it clarifies scope by covering both confirmed and pending. It explicitly routes the balance case to the sibling eth_balance, so an agent can separate it from eth_balance and the per-chain *_nonce clones without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States two concrete use cases (build the next transaction, determine whether an address has ever sent anything) and names the alternative for a different question (eth_balance). The when-not guidance is explicit rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_proxyProxy implementation, EthereumA
Read-only
Inspect

Find the implementation behind a proxy contract on Ethereum: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. Example: address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x contract address

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: the 400/404 failure semantics, that failures are uncharged, pricing ($0.01/call, first 25 free), and that repeat calls are billed — which directly explains the non-obvious idempotentHint=false. The 'reads or computes only and changes nothing' line corroborates readOnlyHint/destructiveHint rather than contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the slot standards, then usage, errors, example, and pricing in a sensible order. The billing point is stated twice ('failed calls free' then 'each call is charged, so repeats are not free'), a minor redundancy in an otherwise dense block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of describing the return ('names the kind found') and lists the kinds it can detect, which is the key output shape. It omits the non-error, non-proxy case (what is returned when no proxy pattern is found), leaving one meaningful gap for a resolution tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already documented as '0x contract address', so the schema carries most of the load. The description still adds value with a concrete checksummed example and by tying malformed-address input to a specific 400 outcome.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find the implementation behind a proxy contract on Ethereum') and enumerates exactly which storage slots and bytecode patterns it inspects, so the agent knows the resolution depth. The 'on Ethereum' scope plus the named sibling contract_risk distinguish it from the arb_/base_/op_/polygon_proxy family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear trigger ('Use before trusting or decoding a contract whose code can be swapped by its admin') and routes to an alternative for a different need ('for a fuller risk verdict use contract_risk'). No explicit when-not-to-use statement, which keeps it just below the top mark.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_receiptEthereum transaction receiptA
Read-only
Inspect

Transaction receipt on Ethereum (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use eth_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. Example: hash=0x9531467e03a57bbb5cd080439ac3b10c0cefed147282eb2ff709b02c897afcbf. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds considerable context beyond annotations: 404 on pending/unknown hashes with no charge, failed calls free, and per-call pricing via x402/credits. This is consistent with readOnlyHint=true and idempotentHint=false ('each call is charged, so repeats are not free'). It does not disclose rate limits or response shape beyond field names, so it falls just short of the top mark.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose and return contents, then the routing hint, then the input spec, then pricing. Dense but mostly earning its place; the pricing/credits sentence is the longest and slightly heavy for a tool description, though it is the only place that info appears.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description enumerates the meaningful return fields (status, gas used, effective gas price, fee in ETH, log count, created contract). Combined with error behavior, pricing and input format, an agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns extra credit by restating the 0x-prefixed 64-hex format, supplying a concrete example hash, and defining what a pending/unknown hash does. It goes beyond the schema's one-line parameter doc without adding validation details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Transaction receipt on Ethereum (eth_getTransactionReceipt)') and enumerates the returned fields, then explicitly contrasts with the sibling eth_tx for sender/value/calldata. An agent can distinguish it from arb_receipt/base_receipt etc. only by chain naming, but within the eth_ family it is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ('confirm a payment or call went through') and names the alternative tool with the condition that selects it ('for sender, value and calldata use eth_tx'). Also states the failure mode for pending/unknown hashes, so nothing about when-to-use is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_storageStorage slot read, EthereumA
Read-only
Inspect

Read one raw storage slot of a contract on Ethereum (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use eth_proxy. A malformed address or slot is rejected with 400, uncharged. Example: address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
slotNoSlot: a decimal index (0, 1, 2…) or a 0x 32-byte key
addressYes0x contract address

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses error behavior (malformed address or slot rejected with 400, uncharged), billing model ($0.01/call, first 25 free, failed calls free), and that repeats are charged — which explains why idempotentHint is false for what is otherwise a pure read. It also confirms no state change occurs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and return shape, then usage and pricing. Slightly redundant at the tail where 'each call is charged, so repeats are not free' restates the price sentence, and 'reads or computes only and changes nothing' partly duplicates the readOnly annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, no output schema, and safety already covered by annotations, the description supplies everything needed: return format, slot key forms, error semantics, and cost. Nothing required for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents both address and slot (decimal index or 0x 32-byte key). The description adds only the mapping/proxy rationale for key-form slots and an example address; notably it never states what slot defaults to when omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (read one raw storage slot of a contract on Ethereum), names the underlying RPC method eth_getStorageAt, and describes the return shape (32-byte word as number, and as an address when applicable). This clearly separates it from generic call/balance siblings and from eth_proxy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage context ('contract state that has no getter, owners or implementation pointers') and names the alternative for the proxy case ('for proxies use eth_proxy'). Slight internal tension remains because implementation-pointer slots are themselves proxy-related, but the intended routing is still clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_token_balanceEthereum ERC-20 balanceA
Read-only
Inspect

ERC-20 token balance of a wallet on Ethereum (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use eth_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/non-destructive, but the description adds substantial context they don't carry: pricing ($0.01/call via x402 or card key, first 25 free, failed calls free), the fact that repeat calls are charged (consistent with idempotentHint=false), that values are read live from the contract, and the status codes for two failure modes. Nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return shape, and tightly packed. The pricing/free-tier sentence is longer than strictly needed for invocation but is genuinely useful information; only minor trimming would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description fully specifies the return fields, chain scope, input formats, cost model, and error behavior — everything an agent needs to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented, making 3 the baseline. The description partially adds value by specifying 0x / 40-hex input format, but it says "Both inputs are 0x addresses," which conflicts with the token parameter accepting tickers like USDC — a small inconsistency that reduces the net value added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource — ERC-20 balance of a wallet via balanceOf — and enumerates the exact returned fields (raw amount, decimals, symbol, human-readable amount). It also names the sibling it is not (eth_balance for the native coin), so an agent can separate it from the other *_token_balance tools by chain name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to check stablecoin or token holdings before a transfer or trade" gives the positive trigger, and "for the native coin use eth_balance" gives the explicit alternative. It further states when NOT to expect success (no contract → 404, non-ERC-20 → 422), which is decision-relevant routing information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_token_infoEthereum ERC-20 token infoA
Read-only
Inspect

Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Ethereum, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use eth_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. Example: token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses live-on-chain sourcing, the uncharged 422 failure mode, and full billing mechanics ($0.01/call via x402 or card key, first 25 free, failures free). The line 'each call is charged, so repeats are not free' reconciles the idempotentHint=false annotation, which would otherwise look odd for a pure read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the returned fields and the sibling exclusion, so the important routing signal comes first. The billing information is somewhat repetitive ('failed calls free' and 'each call is charged' restate the same pricing tier twice), costing a bit of tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although no output schema exists, the description enumerates the returned fields, which is the equivalent disclosure. Combined with the failure mode, input formats, and cost model, an agent has everything needed to call it correctly and predict the result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, and the description reinforces the ticker-or-address duality plus a concrete worked address example (USDC). It also attaches error semantics to the parameter for the non-contract case. It adds value, but most of the parameter meaning is duplicated from the schema rather than extended.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('look up') and enumerates exactly what is returned (name, symbol, decimals, total supply) for a specific resource (ERC-20 contract on Ethereum). It explicitly distinguishes itself from the sibling eth_token_balance, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases ('identify an unknown token address' and 'format raw amounts') and an explicit exclusion with the named alternative ('for a holder's balance use eth_token_balance'). The 422-for-non-ERC-20 note tells the agent when the call will fail rather than return data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_token_transfersToken transfers, EthereumA
Read-only
Inspect

List a wallet's recent transfers of one ERC-20 token (default USDC) on Ethereum, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use eth_token_balance. Malformed addresses are rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenNoToken: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network)
blocksNoHow many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 6.7 hours on Ethereum)
addressYes0x wallet address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the charging model ($0.01/call, first 25 free, failed calls free, repeats not free — consistent with idempotentHint=false), the error path (malformed address → 400, uncharged), and result shaping (newest first, capped at 50). Even with readOnlyHint/openWorldHint already given, this is substantial added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, defaults and the alternative are front-loaded, and there is little wasted text. Minor redundancy: 'each call is charged, so repeats are not free' restates the earlier '$0.01/call ... failed calls free', and 'Reads or computes only and changes nothing' duplicates readOnlyHint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what comes back (direction, counterparty, amount, transaction, ordered newest first, 50 max), how errors behave, and what it costs — the things needed to call it correctly and interpret results. Nothing material is missing for a read-only listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents the token/blocks/address fields with defaults and ranges, so the description mostly restates them. It does add value with a concrete example address and by restating the USDC default and 1–2,000 block window inline for quick scanning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a wallet's recent transfers of one ERC-20 token ... on Ethereum'), plus scope (in and out, last N blocks, newest first, up to 50). It also names the sibling it is not ('for the current balance use eth_token_balance'), so an agent can separate it from eth_token_balance and the *_token_transfers tools on other chains 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('confirm a payment arrived or see what was sent') and an explicit alternative with the condition that selects it ('for the current balance use eth_token_balance'). Network scoping ('on Ethereum') implicitly routes against arb_/base_/op_/polygon_token_transfers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eth_txEthereum transactionA
Read-only
Inspect

Look up an Ethereum transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use eth_receipt, for emitted events eth_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. Example: hash=0x9531467e03a57bbb5cd080439ac3b10c0cefed147282eb2ff709b02c897afcbf. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds material context beyond them: unknown hashes return 404 and are uncharged, pricing is $0.01/call with the first 25 free and failed calls free, and repeats are billed. The 'each call is charged, so repeats are not free' note usefully explains the idempotentHint=false annotation rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and returned fields, then routes to siblings, then covers input format, pricing and safety — a sensible ordering with no filler. It runs long and repeats the hash format already in the schema, so it is dense rather than maximally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of telling the agent what comes back, and it does so field by field. Combined with pricing, error behavior and the read-only assurance, an agent has everything needed to call this correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the format spec ('0x-prefixed, 64 hex characters') is largely a restatement of the schema. However, the description adds the error semantics for a malformed or unknown hash and a concrete worked example value, which is meaningfully beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up an Ethereum transaction by hash') and enumerates the returned fields: sender, recipient, value in ETH, nonce, gas limit, function selector, block. It explicitly distinguishes itself from the two nearest siblings, eth_receipt and eth_logs, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('see what was sent or whether it exists') and names the alternatives with their selecting conditions: eth_receipt for success/failure and fees, eth_logs for emitted events. It also states the input format and what happens on an unknown hash (404, uncharged), 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.

evm_checksumAddress checksum (EIP-55): validate and format an EVM addressA
Read-only
Inspect

Validate an EVM address and return its EIP-55 checksummed form, saying whether the input was all lower case, all upper case, correctly checksummed or mixed case with a wrong checksum (a likely typo). Works for every EVM chain. Use before sending funds or storing an address; for whether it is a contract use _is_contract. Example: address=0xd8da6bf26964af9d7eed9e03e53415d37aa96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address (40 hex characters)

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description carries rich behavioral context beyond the annotations: scope ('works for every EVM chain'), read-only semantics ('reads or computes only and changes nothing'), pricing ($0.01/call, first 25 free, failed calls free) and the non-idempotent charge-per-call rule, which is consistent with idempotentHint=false. With annotations already covering safety, this is genuinely additive context, but the pricing detail crowds out other operational facts such as error behavior for malformed input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and outcome classifications, then usage, then pricing. Every sentence is functional, though the pricing/payment sentence is dense and could be trimmed without losing selection-relevant meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain returns – it does by listing the four checksum verdicts the caller can receive. It is close to complete for a one-parameter tool; only malformed-input handling is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already documented as a 0x address of 40 hex characters. The description adds a concrete worked example (0xd8da...6045) that makes the expected format unambiguous, a modest but real gain over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: validate an EVM address and return its EIP-55 checksummed form. It also enumerates the possible verdicts (all lower, all upper, correct checksum, mixed/wrong checksum), which pins down the exact behavior and separates it from sibling evm_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use condition ('before sending funds or storing an address') and names the alternative for a different question ('for whether it is a contract use <chain>_is_contract'). There is nothing left to infer about when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evm_decode_calldataDecode calldata: function and arguments of an EVM callA
Read-only
Inspect

Decode EVM transaction calldata into the function and its arguments with viem: give the function signature (transfer(address,uint256)), or leave it out to try common ERC-20, ERC-721, ERC-1155, WETH, permit and multicall functions by selector. Numbers come back as decimal strings. Use to read what a pending or past transaction does before signing; get calldata from eth_tx. A selector that does not match is 422, uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dataYes0x calldata (selector plus ABI-encoded arguments), up to 8 KB
signatureNoOptional function signature such as transfer(address,uint256)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the 422 error for unmatched selectors, that failed calls are uncharged, per-call pricing ($0.01 via x402 USDC or card key with 25 free), and that repeats are billed because the call is non-idempotent — consistent with idempotentHint=false. Also notes how numbers are returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the signature-optional behavior, and every sentence carries information. Slightly overpacked, with the billing point restated ('each call is charged, so repeats are not free') after the free-failure clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining the returned function/arguments and decimal-string number formatting, plus error and billing semantics. 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.

Parameters4/5

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: it explains the optional signature's role and gives the selector-matching fallback behavior for ERC-20/721/1155/WETH/permit/multicall when it is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('decode EVM transaction calldata into the function and its arguments') and names the underlying library, which distinguishes it clearly from sibling helpers like evm_checksum and evm_verify_signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use context ('read what a pending or past transaction does before signing') and points to the upstream source of the input ('get calldata from eth_tx'). No explicit exclusion against a sibling, but the domain is narrow enough that guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evm_verify_signatureSignature verify, EIP-191: recover the signer of an Ethereum messageA
Read-only
Inspect

Verify an Ethereum personal_sign (EIP-191) signature: recover the address that signed a message and, given an expected address, say whether it matches. Works for ordinary wallets (EOAs); smart-contract wallets sign by ERC-1271, which this offline check does not cover. Use for sign-in-with-wallet, proving wallet ownership or checking a signed order. A malformed signature is 400, uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rawNotrue to treat a 0x message as raw bytes instead of text
addressNoOptional expected signer address to compare
messageYesThe exact message that was signed (or 0x hex with raw=true)
signatureYes0x signature, 65 bytes (130 hex characters)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that the check is offline, that malformed signatures return 400 and are uncharged, that successful calls cost $0.01 via x402 USDC or a card key, that the first 25 are free, and that failed calls are free. Crucially it explains why repeats are not free, which reconciles with idempotentHint=false and adds real decision-relevant context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and scope before pricing and error details; nearly every sentence carries information an agent needs (limits, cost, error handling). It is dense and slightly crammed with payment mechanics, but nothing is truly redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still explains what comes back (recovered signer address plus a match verdict when an expected address is supplied), what happens on bad input (400, uncharged), and what class of signatures are unsupported. That is enough for an agent to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters (message, signature, address, raw) are already documented in the schema, including the raw-bytes flag and the 65-byte signature format. The description confirms the meaning of the optional expected address ('say whether it matches') but adds no syntax or edge-case detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('verify an Ethereum personal_sign (EIP-191) signature: recover the address... say whether it matches'), including the exact output semantics. It also delimits scope by ruling out ERC-1271 smart-contract wallets, so an agent can distinguish this from any other crypto/EVM helper in the catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases (sign-in-with-wallet, proving wallet ownership, checking a signed order) and an explicit exclusion (contract wallets signing via ERC-1271 are not covered by this offline check). It stops short of naming a sibling tool as the alternative for that excluded case, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extractScrape website page to Markdown: page URL into clean Markdown or text for LLMsA
Read-only
Inspect

Fetch any public web page URL and get clean, LLM-ready text or Markdown: main content, code blocks, tables, links and headings, for RAG and agent context. Static HTML, Markdown or text; optional section ID. Default 20,000 output characters, max 100,000; input 2 MiB. No JavaScript rendering (see /extract/rendered), logins or paywalls. Empty pages, bad sections, browser challenges and errors are not charged. Use to read docs or articles. Example: url=https://example.com. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page to fetch
formatNoReturned representation: text (default), markdown, or both. HTML structured details are included in every format; Markdown/plain sources have empty details.
sectionNoOptional exact visible HTML ID within primary content, 1-500 characters. Heading scope includes subsections until next same/higher-level heading; section/article/main/div scope is its subtree. Missing/ambiguous/unsupported targets fail uncharged. URL fragments alone do not select a section.
maxCharsNoMaximum characters of body text to return (500-100000, default 20000)

Output Schema

NameRequiredDescription
urlYes
langYes
textNo
linksYes
titleYes
formatYes
statusYes
tablesYes
sectionYesNull for full primary-content reading. Otherwise the explicitly requested scope; title/description/canonical remain page-level metadata. Heading scope ends before the next same/higher-level heading, including nested subsections; container scope is its subtree.
finalUrlYes
headingsYes
markdownNo
warningsYes
canonicalYes
fetchedAtYes
truncatedYesInput or requested primary representation is incomplete. Structured detail limits are reported separately in warnings.
codeBlocksYes
hashFormatYes
textLengthYesFull extracted text length before the character cap, within the input limit.
contentHashYes
contentTypeYes
descriptionYes
linkBaseUrlYesEffective source-derived HTTP(S) base for links: the first supported HTML base href outside inert/foreign subtrees, otherwise finalUrl. Credentials and non-HTTP(S) base values are ignored with a warning. HTML links/canonical use this base; raw Markdown keeps relative syntax and can be resolved using this field. No linked resource is fetched. This static interpretation does not evaluate scripts or Content Security Policy.
sourceFormatYesSource interpretation. Markdown is identified by text/markdown, or a .md/.markdown final path served as text/plain (warned). Markdown syntax is retained verbatim within the cap, not converted to HTML or parsed for structured details; text also retains that syntax. HTML section IDs are unsupported for Markdown/plain text.
sourceMetadataYesPage-level source declarations, not verified authorship or freshness. Head author/Open Graph date tags and bounded direct Schema.org JSON-LD Article/WebPage-like nodes only; exact-URL matches preferred, otherwise only one identity-free candidate. Author @id references resolve only to unambiguous local Person/Organization names, with both paths recorded. No external context/reference fetching or general JSON-LD expansion. Separate 2000-character value+provenance budget; 5 authors/10 dates. Original date strings are not normalized. Empty for Markdown/plain sources; unrelated entities and ambiguous nodes are omitted with warnings.
contentSelectionYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only annotations, the description discloses important operational behavior: static HTML only, no JavaScript rendering, output limits (default 20,000, max 100,000 characters), input limit 2 MiB, billing per call, free failed calls, and that repeated calls are charged. These are meaningful details an agent needs before invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and is dense with useful constraints. It includes minor redundancy, such as restating the read-only nature already covered by annotations and giving an example URL despite url being required in the schema, but most sentences carry operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety, an output schema present, and full schema parameter descriptions, the remaining description is complete for correct invocation. It covers rendering limits, authentication/paywall exclusions, output size limits, pricing, and failure behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines url, format, section, and maxChars in detail. The description adds little parameter-specific meaning beyond mentioning the optional section ID and default/max output characters, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: fetch a public web page URL and return clean LLM-ready text or Markdown. It also names the content extracted (main content, code blocks, tables, links, headings) and distinguishes the no-JavaScript path from the sibling rendered option.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this to read docs or articles, and it names the alternative for JavaScript rendering via /extract/rendered. It also states clear exclusions: no logins or paywalls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_renderedWeb page to Markdown, rendered: a JavaScript-rendered page as text or MarkdownA
Read-only
Inspect

Same output as /extract, but the page is first rendered in a real browser, so single-page apps and pages that build their content with JavaScript come back with their text instead of an empty shell. Waits for the network to settle (up to 15 seconds). Public pages only; no login. Use when /extract returns EXTRACTION_EMPTY or too little text for a page you can read in a browser. Example: url=https://example.com/. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public http(s) URL of the page
formatNotext (default), markdown or both
sectionNoOptional exact HTML id to read only that element
maxCharsNoOutput limit, 500-100000 characters (default 20000)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, non-destructive and non-idempotent. The description adds useful context beyond them: up to 15 seconds waiting for network settle, public pages only, and per-call pricing including failed calls being free. It stops short of describing the returned structure or truncation behavior directly, relying on '/extract' for output semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key differentiator and usage trigger are front-loaded, and the description is dense without obvious repetition. It is slightly run-on, especially the pricing and safety clauses appended at the end, but every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter extraction tool with no output schema, the description covers the important operational facts: rendering behavior, latency wait, public-only access, failure guidance, and cost. It relies on the sibling '/extract' for exact output format, which is a minor completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented in the schema. The description only supplies an example url and does not add meaning for format, section, or maxChars beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: rendering a page in a real browser and returning its text/Markdown. It explicitly contrasts itself with the sibling /extract tool, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit condition for use: when /extract returns EXTRACTION_EMPTY or too little text for a page readable in a browser. It also states the public-page/no-login constraint, which tells the agent when this tool is not applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

feedRSS feed reader: read an RSS or Atom feedA
Read-only
Inspect

Read a public RSS 2.0, RSS 1.0 or Atom feed and get the feed title, link and description plus its newest items: title, link, date (ISO 8601), short plain-text summary, author and id. Up to 50 items, feeds up to 2 MB. Lenient with real-world feeds; a page that is not a feed returns 422, uncharged. Use to follow news, blogs, release notes or podcasts without scraping pages. Example: url=https://blog.cloudflare.com/rss/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public http(s) URL of the feed, or of a web page whose head links to its feed
limitNoItems to return (1-50, default 20)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: 50-item and 2 MB caps, lenient parsing, 422 (uncharged) for non-feed pages, pricing model and free tier, plus the crucial note that repeats are charged because calls are non-idempotent — which directly explains idempotentHint=false. Safety semantics (read-only, changes nothing) are restated consistently with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool returns, then limits, error behavior, intended use, example and pricing — a logical order with no filler. The closing sentence is slightly redundant with readOnlyHint but earns its place by stating the charging consequence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the returned fields (title, link, date in ISO 8601, summary, author, id). Cost, error behavior, size limits and scope are all covered, leaving nothing essential an agent needs before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both url and limit are already documented, including the 1-50 range and default 20. The description reinforces the 50-item ceiling and shows an example URL, but adds no syntax or format detail beyond the schema — the expected baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (public RSS 2.0/RSS 1.0/Atom feed) and enumerates the returned fields, so the agent knows exactly what comes back. It never names a sibling tool, so the boundary against 'news', 'search' or 'extract' must be inferred from the 'without scraping pages' phrasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('follow news, blogs, release notes or podcasts without scraping pages') and a worked example URL. It stops short of explicit exclusions or pointing to an alternative sibling when the URL is not a feed or when a dedicated news tool would be a better fit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fxCurrency exchange rates, forex: currency converter and conversionA
Read-only
Inspect

Foreign exchange rates from the European Central Bank for about 30 major currencies (USD, EUR, GBP, JPY, CHF, SEK, CAD, AUD, CNY, INR, BRL and more). Give a base currency, optionally the target currencies and an amount, and get the rates, the converted amounts and the date the rates apply to. Use for currency conversion, invoice and price calculations, and reporting in another currency. Example: from=USD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toNoOptional comma-separated target currency codes, e.g. EUR,GBP; default is all available currencies
fromYesBase currency as a three-letter ISO 4217 code, e.g. USD
amountNoOptional amount of the base currency to convert (default 1)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the data source (European Central Bank), the pricing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and warns that repeats are not free despite being a read. It also clarifies the read/compute-only semantics and confirms no side effects, consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool does and the currency coverage, then usage and pricing. Dense but nearly every sentence carries information; the pricing/charging sentence is somewhat packed but still earns its place as cost-relevant behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still explains returns (rates, converted amounts, applicable date), data source, currency set, parameter behavior, and cost. An agent has everything needed to call it and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds a concrete example (from=USD) and clarifies the base-vs-target relationship and that targets default to all currencies. It adds modest value over the already-complete schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (ECB foreign exchange rates for ~30 major currencies) and the inputs/outputs (base currency, optional targets and amount, returns rates, converted amounts, rate date). The named currency examples and conversion output make it clearly distinguishable from the crypto-oriented siblings like price_token or btc_price.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists when to use it: currency conversion, invoice and price calculations, and reporting in another currency, plus a worked example (from=USD). It does not explicitly name an alternative or exclusion case, 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.

geocodeGeocoding: place name to latitude and longitudeA
Read-only
Inspect

Find places by name in Wikidata (CC0) and get their coordinates, description, country, administrative region, population and elevation where recorded, best match first. Cities, towns, landmarks and other places with coordinates. Use before weather, sun or distance lookups, or to tell two places of the same name apart. Example: name=Uppsala. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesPlace name
countNoMax results (1-10, default 5)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds concrete behavioral context: pricing ($0.01/call via x402 USDC or card key), a free tier (first 25 free), failed calls free, and the critical note that repeats are not free because each call is charged. This directly clarifies the idempotentHint=false annotation and makes the cost model transparent, which annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose and use cases, and each sentence carries useful information (source, return fields, example, pricing, read-only note). It is slightly longer than strictly necessary but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description enumerates the returned fields (coordinates, description, country, administrative region, population, elevation). Combined with the usage guidance and cost model, it provides everything an agent needs to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds an example ('name=Uppsala') but does not explain the count parameter or add syntax details beyond the schema, so it meets the baseline without exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Find places by name') and resource ('places in Wikidata') and lists exactly what data is returned (coordinates, description, country, administrative region, population, elevation). It distinguishes itself from siblings by naming weather, sun, and distance lookups as downstream tools, so an agent can tell it apart without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use it ('Use before weather, sun or distance lookups, or to tell two places of the same name apart') and names relevant sibling tools. It does not give explicit when-not-to-use guidance or a full decision tree against non-named alternatives, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geocode_reverseReverse geocoding: place name from coordinatesA
Read-only
Inspect

Turn latitude and longitude into place names: the nearest populated place and the largest one within the radius (usually the town or city the point is in), with country and ISO code, administrative region, population, distance and Wikidata id, plus the other places nearby. Data from Wikidata (CC0). Use to label GPS points, photos, deliveries or IP-derived coordinates; for place name to coordinates use geocode. Example: lat=59.3293, lon=18.0686. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
latYesLatitude (-90 to 90)
lonYesLongitude (-180 to 180)
radiusNoSearch radius in km, 1-50 (default 10)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=false. The description adds important behavioral context beyond annotations: pricing, failed-call policy, auth options, and the fact that repeated calls are charged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and most sentences carry useful information. The first sentence is dense with output-field details, but the overall structure remains efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description needs to explain return values, and it does: nearest populated place, largest place within radius, country/ISO code, administrative region, population, distance, Wikidata id, and nearby places. It also covers pricing and auth, making the definition complete enough for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so lat, lon, and radius are already documented in the schema. The description provides an example coordinate pair and mentions radius indirectly, but adds little parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: turning latitude/longitude into place names. It distinguishes itself from the sibling geocode by explicitly saying to use geocode for place name to coordinates, and it names the key returned geographic fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases such as labeling GPS points, photos, deliveries, or IP-derived coordinates. It also explicitly routes the opposite operation to the sibling tool geocode.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_distanceDistance between coordinates: km, miles, bearing and midpointA
Read-only
Inspect

Great-circle distance between two latitude/longitude points (haversine on the mean earth radius) in kilometres, miles and nautical miles, plus the initial compass bearing and the midpoint. Accurate to about 0.5% against the ellipsoid. Use for delivery radius, travel and proximity checks, or sorting places by distance; for coordinates of a place name use geocode first. Example: lat1=59.3293, lon1=18.0686, lat2=51.5072, lon2=-0.1276. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
lat1YesLatitude of the first point (-90 to 90)
lat2YesLatitude of the second point
lon1YesLongitude of the first point (-180 to 180)
lon2YesLongitude of the second point

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotation coverage is strong, and the description adds accuracy (about 0.5%), billing details ($0.01/call, first 25 free, failed calls free), and the repeat-call charging nuance. It also explicitly confirms the tool reads/computes only and changes nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, followed by use cases, an example, pricing, and safety behavior. The text is dense but every sentence adds useful operational or behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description fully explains the return components: distances in three units, initial bearing, and midpoint. Accuracy, billing, and safety behavior are also covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so lat/lon semantics are already documented. The description provides a concrete coordinate example, but does not add parameter-level constraints beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computation: great-circle distance between two lat/lon points, returning km/miles/nautical miles plus bearing and midpoint. It distinguishes itself from coordinate-lookup tools by directing place-name inputs to geocode first.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear use cases such as delivery radius, travel/proximity checks, and sorting by distance, and names the geocode prerequisite for place names. It does not explicitly state when not to use the tool, but the intended context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gov_clinical_trialsClinical trials search: ClinicalTrials.gov studiesA
Read-only
Inspect

Search ClinicalTrials.gov studies by condition, intervention or any words, optionally only recruiting ones: NCT id, title, status, phase, conditions, interventions, sponsor, enrollment, start and completion dates, number of locations and countries, and a link. From the ClinicalTrials.gov API (US National Library of Medicine). Information only, not medical advice. Use to find trials for a condition or drug. Example: condition=type 1 diabetes. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qNoAny other words (optional)
limitNoStudies to return, 1-20 (default 10)
statusNorecruiting, active, completed or all (default recruiting)
conditionNoCondition or disease, e.g. type 1 diabetes
interventionNoDrug or intervention, e.g. semaglutide (optional)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, non-destructive and non-idempotent; the description adds real context on top: the source (NLM API), a returned-field inventory, a non-medical-advice disclaimer, and cost behaviour ('first 25 free; failed calls free... repeats are not free') that concretely explains why idempotentHint is false. It does not contradict any annotation, though it omits rate limits or result-cap behaviour for a broad query.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded in the first clause, with the returned-field list and the pricing/disclaimer tail after. Almost every sentence carries information an agent needs, though the payment and 'repeats are not free' lines are somewhat verbose for what they convey.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the returned fields (NCT id, title, status, phase, conditions, interventions, sponsor, enrollment, dates, location/country counts, link). With the safety profile in annotations and full parameter docs in the schema, 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.

Parameters3/5

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 defaults and ranges. The description only lightly echoes them ('by condition, intervention or any words', 'optionally only recruiting ones') and adds no format or syntax 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search ClinicalTrials.gov studies') plus the three axes it searches by (condition, intervention, any words) and a default filter ('optionally only recruiting ones'). No sibling tool overlaps this domain, so disambiguation is trivially satisfied and the scope is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to find trials for a condition or drug' and gives a concrete invocation example ('condition=type 1 diabetes'), which tells the agent the intended call shape. No when-not-to-use or alternative is named, but there is no sibling to route to, 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.

gov_federal_registerFederal Register search: US rules and noticesA
Read-only
Inspect

Search the US Federal Register: final rules, proposed rules, notices and presidential documents, newest first, with title, type, agencies, abstract, publication date, comment deadline, effective date and links. Filter by type and agency. From the Federal Register API (US government work). Use to track new regulations or open comment periods on a topic. Example: q=artificial intelligence. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qYesSearch words, e.g. artificial intelligence
typeNorule, proposed_rule, notice or presidential (default all)
limitNoDocuments to return, 1-20 (default 10)
agencyNoAgency slug, e.g. securities-and-exchange-commission (optional)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, non-idempotent and non-destructive, so the safety profile is covered. The description adds materially beyond that: per-call price of $0.01, 25 free calls, card-key alternative, failed calls free, and a warning that repeats are charged because the call is not idempotent. The only omission is result ordering/pagination behavior, which is partially covered by 'newest first'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is searched and what is returned, followed by filters, provenance, use case and pricing. Dense but each clause carries information; the pricing sentence is long but operationally necessary for an agent deciding whether to call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description enumerates the returned fields (title, type, agencies, abstract, publication dates, comment deadline, links) and the sort order, and it discloses cost and provenance. Nothing an agent needs in order to decide or call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds a little meaning by mapping the content classes (final rules, proposed rules, notices, presidential documents) onto the type filter and by showing an example query value, but it does not clarify the agency-slug format or the limit range beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search the US Federal Register), enumerates the document classes covered, and the scope ('US rules and notices') clearly separates it from the SEC-focused siblings. 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('track new regulations or open comment periods on a topic') plus a worked example (q=artificial intelligence). It stops short of naming when to prefer a sibling such as sec_filings or sec_8k for company-level disclosure, so the boundary 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.

hashSHA256 hash, SHA-256: hash text with SHA-256, SHA-1, SHA-384 or SHA-512A
Read-only
Inspect

Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Example: text=hello. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to hash
algorithmNosha256 (default), sha1, sha384 or sha512

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the bar is lower; the description adds real value beyond them by disclosing pricing ($0.01/call via x402 USDC or card key), 25 free calls, and that failed calls are free. 'Each call is charged, so repeats are not free' usefully explains the non-idempotent annotation in practical terms, though 'reads or computes only' merely restates the readOnly hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core capability, usage, and cost are front-loaded in a compact four-sentence block with no filler. Minor redundancy: the per-call price and the 'repeats are not free' sentence say much the same thing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema tool, the description supplies everything needed: algorithms, default, input encoding, and return formats (hex and base64). An agent can call this correctly without opening the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, and the description adds only a default restatement (SHA-256 default) and one example (text=hello). That is marginal added meaning over the structured schema, which is the expected baseline 3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (hash), resource (UTF-8 text), supported algorithms with an explicit default, and the return encoding (hex and base64). It is highly self-describing, but it never distinguishes itself from close siblings like hmac or pack_hash_toolbox, leaving the agent to infer that this tool is unkeyed hashing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for checksums, cache keys and deduplication' gives concrete usage contexts rather than vague intent. It stops short of stating when NOT to use it — e.g. use hmac for keyed digests, or another tool for file hashing — so there is no explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hmacHMAC signature: sign a message with an HMAC (SHA-256 and others) and a key, or check a webhook signatureA
Read-only
Inspect

Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used only for this call and is not stored. Example: message=hello, key=secret. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key
messageYesThe message
algorithmNosha256 (default), sha1, sha384 or sha512

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: states the key is ephemeral and not stored, discloses per-call pricing ($0.01 via x402 USDC or card key, first 25 free, failed calls free), and explains the consequence of idempotentHint=false by warning that repeats are not free. The read-only/no-side-effect claim is consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core operation and algorithm list, then the use case, then cost. The billing sentences are long and slightly rushed together ('Price $0.01/call... first 25 free; failed calls free'), but every clause carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully discloses that digests are returned in hex and base64, and it covers algorithms, key handling, cost, and side-effect profile. It leaves minor ambiguity about whether both encodings are returned in a single response or one is selectable, since no encoding parameter exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the three parameters are already documented, and the description only restates the sha256 default and adds a trivial 'message=hello, key=secret' example. The genuinely useful addition — that digests come back in hex and base64 — is about output rather than parameters, so the baseline of 3 is right.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Compute an HMAC of a message with a key') plus the supported algorithms and output encodings, which cleanly separates it from the unkeyed `hash` sibling. It never names `hash`/`pack_hash_toolbox` explicitly, so routing is inferred rather than declared.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers one concrete use case ('Use to check webhook signatures') and shows an example invocation, which implies when to reach for it. There is no when-not guidance and no named alternative for plain (unkeyed) hashing, so the agent must infer the boundary with `hash`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

holidaysPublic holidays by country: list a country's public holidays for a yearA
Read-only
Inspect

Nationwide public holidays for a year in the US (federal), UK (England and Wales), Sweden, Germany, France, Norway, Denmark and Finland: date, local and English name, and the weekday it is observed on where a weekend moves it. Computed from statutory rules for 2024-2100. Use for scheduling, delivery dates and business-day maths. Example: country=SE. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yearNoYear, 2024-2100 (default this year)
countryYesISO 3166-1 alpha-2 code: US, GB (UK), SE, DE, FR, NO, DK or FI; English country names also work

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, destructiveHint=false, openWorldHint), but the description adds real context: computed from statutory rules, validity window 2024-2100, weekend observance shifting the observed weekday, and the billing model ($0.01/call, first 25 free, failed calls free, repeats not free) which explains the non-idempotent hint. 'Reads or computes only and changes nothing' largely restates the annotations, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The resource and coverage come first, followed by output fields, then constraints and pricing, so the important content is front-loaded. The pricing/compute sentence is slightly run-on and mixes payment, side-effect and caching semantics in one clause, costing some readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-shape burden and does so by naming date, local name, English name and observed weekday. It also discloses the computation source and year window; only edge behavior (unsupported country, empty result) is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by spelling out that GB/UK resolves to England and Wales only and by listing the supported country set alongside the schema's code format. The year range is duplicated from the schema and the 'default this year' behavior is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list nationwide public holidays for a year) and enumerates both the covered countries and the returned fields (date, local and English name, observed weekday). It does not name the nearby siblings (date_business_days, date_info, cron_next) it should be distinguished from, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for scheduling, delivery dates and business-day maths' gives an implied context, and the country=SE example shows the expected input shape. There is no when-not guidance and no explicit mention of the overlapping date_business_days tool, so the agent gets no stated alternative or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_table_to_jsonHTML table to JSON: extract tables from HTMLA
Read-only
Inspect

Extract every table from an HTML fragment into JSON: header cells become keys and each body row an object (or raw arrays when there is no header row), with captions, colspans repeated and entities decoded. Give the HTML itself (up to 500 KB). Use to turn web or email tables into data an agent can sort and compute on; to fetch a page first use extract. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
htmlYesHTML containing one or more <table> elements (up to 500 KB)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing output construction rules (headers as keys, raw arrays when no header), colspan repetition, entity decoding, caption handling, and a 500 KB input cap. It also explains the billing model and clarifies why repeats are not free, which explains the idempotentHint=false annotation rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core transformation and output shape in the first sentence, then adds usage, then pricing. The pricing sentence is long and packs several facts, but each sentence carries distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description fully specifies the return shape, including the no-header fallback to raw arrays. For a single-parameter tool with full annotation coverage, nothing needed 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and schema coverage is 100%, so the schema already documents 'html' fully. The description restates the 500 KB limit and that the HTML itself is the argument but adds no new 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Extract every table from an HTML fragment into JSON') and describes the output shape. It is clearly separable from siblings like csv_to_json and html_to_text because the input is HTML tables and the output is structured JSON rows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('turn web or email tables into data an agent can sort and compute on') and routes the agent elsewhere for fetching a page ('to fetch a page first use extract'). It lacks an explicit when-not-to-use versus html_to_text, and the referenced 'extract' tool does not appear in the sibling list, but the selection context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_to_textHTML to plain text: strip HTML down to readable plain textA
Read-only
Inspect

Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web content or emails to an LLM. Example: html=HiA &amp; Bone. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
htmlYesThe HTML

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile, yet the description still earns its keep by disclosing the output transformation rules (what gets removed, what becomes line breaks or bullets) plus cost behavior — $0.01/call, 25 free, failed calls free, repeats charged. 'Reads or computes only and changes nothing' is consistent with readOnlyHint=true and destructiveHint=false, and the charge-per-call note makes idempotentHint=false understandable to the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and transformation behavior, which is the right order. The pricing/call-charging sentence is long and slightly interrupts the technical narrative, but it carries information an agent needs before looping on this paid tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

One parameter, no output schema, annotations covering safety — the description supplies exactly what is missing: what the output text looks like, what an agent would use it for, and what each call costs. Nothing needed to invoke it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one required parameter with 100% schema coverage, so the baseline is 3. The inline example showing html=<h1>Hi</h1><p>A &amp; B</p><ul><li>one</li></ul> adds concrete input-format value beyond the schema's bare 'The HTML'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Strip HTML to readable plain text') and then enumerates the exact transformations performed (scripts/styles removed, block elements to line breaks, bullets, entity decoding). This is clearly distinguishable from siblings like html_table_to_json or markdown_to_html, which go in different directions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to feed web content or emails to an LLM' gives an explicit intended context, and the worked example anchors the input shape. It stops short of naming alternatives or exclusions (e.g., use html_table_to_json when tabular structure must be preserved), so it is clear context without routing rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

http_security_headersSecurity headers check, HTTP: audit a page's security headersA
Read-only
Inspect

Fetch a public URL and grade its HTTP security headers: HSTS, Content-Security-Policy, framing protection, nosniff, Referrer-Policy and Permissions-Policy, plus version leaks (Server, X-Powered-By) and cookies missing Secure, HttpOnly or SameSite. Returns a grade A-F, a score and each check with its value. Use to review a site's basic web security; for DNS and email records use domain. Private hosts are refused with 400, uncharged. Example: url=https://example.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesPublic http(s) URL to check

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, non-destructive, open-world and non-idempotent, and the description usefully explains the non-idempotency in cost terms ('each call is charged, so repeats are not free') plus private-host refusal and free failure handling. It adds real context but is largely commercial (price, free tier, payment rails) rather than operational depth such as redirect handling, timeout behavior, or what a partial fetch yields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability and check list, then the alternative, then error/pricing details, which is the right order. It runs long and packs a lot into a few dense sentences, with pricing detail occupying roughly a quarter of the text, but no sentence is genuinely dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by describing the return shape (grade A-F, score, per-check values and findings). Error behavior, cost model, and eligibility constraints are all present, so an agent has enough to call it and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter at 100% schema coverage, the schema already defines 'url' as a public http(s) URL. The description reinforces the public constraint and gives a concrete example, but adds no format or edge-case detail beyond that (e.g., trailing paths, query strings, redirect targets).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Fetch a public URL and grade its HTTP security headers') and enumerates exactly what is checked (HSTS, CSP, framing, nosniff, Referrer-Policy, Permissions-Policy, version leaks, cookie flags). It also names the sibling 'domain' as the tool for DNS/email records, so an agent can separate the two 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the use case ('review a site's basic web security') and routes a common adjacent need to the named alternative ('for DNS and email records use domain'). The private-host restriction is stated as a hard exclusion with the exact failure mode (400, uncharged), leaving little to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

http_statusHTTP status code meaning: explain what an HTTP status code meansA
Read-only
Inspect

Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handling API errors. Example: code=429. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
codeYesStatus code

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, non-destructive behavior, and the description adds substantive context: pricing at $0.01/call via x402 USDC or a card key, first 25 free, failed calls free, and that repeated calls are not free. It also reinforces that the tool reads or computes only and changes nothing, so an agent understands cost and side-effect behavior before invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and usage, followed by clear cost and behavior notes. It is appropriately sized, though the charging information is slightly redundant between the explicit price and the later 'each call is charged' clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup tool with annotations covering safety and no output schema, the description supplies everything needed: purpose, usage context, input range, output fields, pricing, and side-effect behavior. Nothing an agent needs in order to call it correctly appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the single parameter is fully described in the schema, the description adds domain meaning beyond the bare 'Status code' field by specifying the valid 1xx-5xx range and calling out specific codes like 402 and 429. The example code=429 further clarifies accepted input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and output: the name, plain-language meaning, and retry guidance for an HTTP status code. It scopes the input to 1xx-5xx and gives concrete examples, making it unmistakable versus otherwise 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this when handling API errors and provides an example call with code=429. There are no obvious alternative HTTP-status tools to contrast with, but it does not state any exclusions or when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hyperliquid_candlesCrypto candles, OHLCV: open, high, low, close and volume of Hyperliquid perpsA
Read-only
Inspect

Historical price candles (OHLCV) of a Hyperliquid perpetual such as BTC, ETH or SOL: open, high, low, close, volume in coins and trade count per bar, newest last. Intervals 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w and more; up to 500 bars (default 50). Read from Hyperliquid's public API. Use for charts, backtests, volatility and trend checks, or as context for a trading agent. Example: coin=BTC. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
barsNoNumber of bars, 1-500 (default 50)
coinNoCoin symbol such as BTC, ETH, SOL or HYPE (default BTC)
intervalNoBar length: 1m, 3m, 5m, 15m, 30m, 1h (default), 2h, 4h, 8h, 12h, 1d, 3d or 1w

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, openWorld and destructive=false, and the description adds genuinely new context: newest-last ordering, "each call is charged, so repeats are not free" (which explains idempotentHint=false meaningfully), and a concrete price/free-tier model. Its "changes nothing" sentence largely restates readOnlyHint, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single dense paragraph that front-loads what the data is, then intervals/counts, then use cases, then cost. Almost every sentence earns its place, though the pricing/trial sentences are somewhat stacked and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only 3 optional parameters, rich annotations and no output schema, the description covers the bar contents and ordering effectively as an output summary, plus interval/count limits and cost. Nothing an agent needs in order to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the interval list, default of 50 bars and coin default are already documented. The description restates these without adding syntax, constraints or examples beyond "coin=BTC" (which is already implied by the schema), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Historical price candles (OHLCV)") and enumerates exactly what each bar contains, which cleanly separates it from sibling tools like hyperliquid_orderbook, hyperliquid_prices or hyperliquid_indicators. An agent can identify the output shape without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use contexts ("charts, backtests, volatility and trend checks, or as context for a trading agent") and an example call, so the agent knows when this is the right tool. It stops short of naming alternatives or stating when NOT to use it, which would be the fifth point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hyperliquid_funding_historyFunding rate history: hourly Hyperliquid perp funding rates and APRA
Read-only
Inspect

Past hourly funding rates of a Hyperliquid perpetual (BTC, ETH, SOL…): each rate with its premium and time, plus the average rate and its annualised APR over the window. Up to 500 hours back (default 24). Read from Hyperliquid's public API. Use to compare carry over time, spot funding regime changes, or backtest basis and funding-arbitrage strategies; for the current rate use hyperliquid_market. Example: coin=ETH. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinNoCoin symbol such as BTC, ETH, SOL or HYPE (default ETH)
hoursNoHours of history, 1-500 (default 24)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the read-only/destructive profile, and the description adds what they don't: the upstream source ('Hyperliquid's public API'), the 500-hour lookback cap, and a detailed cost model ($0.01/call, first 25 free, failed calls free, repeats charged). The 'each call is charged, so repeats are not free' line is consistent with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability and return shape lead, followed by usage and cost; nothing is buried. The pricing/payment sentence is dense boilerplate but does carry decision-relevant cost information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description fully describes the return payload (per-rate fields plus aggregate average and APR), the data source, the history cap, and the cost model — everything an agent needs to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters documented (coin default ETH, hours 1-500 default 24). The description restates the example coin=ETH and the default window but adds no syntax or edge-case 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Past hourly funding rates of a Hyperliquid perpetual', and enumerates the return contents (rate, premium, time, average rate, APR). It also explicitly disambiguates from the sibling hyperliquid_market, which serves the current rate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases ('compare carry over time, spot funding regime changes, or backtest basis and funding-arbitrage strategies') and gives an explicit exclusion redirect: 'for the current rate use hyperliquid_market'. Window bounds and default are also stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hyperliquid_indicatorsTechnical indicators, RSI, MACD: moving averages, Bollinger bands and ATR for cryptoA
Read-only
Inspect

Technical indicators for a Hyperliquid perpetual (BTC, ETH, SOL…) on closed candles of any interval from 1m to 1w: RSI 14, MACD 12/26/9, SMA 20/50/200, EMA 12/26/50, Bollinger bands 20/2 with %B, ATR 14, annualised realised volatility, and plain readings such as overbought or above the 200 SMA. Computed from Hyperliquid's public candles. Use as context for a trading agent or a market dashboard; not investment advice. Example: coin=BTC. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinNoCoin symbol such as BTC, ETH, SOL or HYPE (default BTC)
intervalNoCandle length: 1m, 5m, 15m, 30m, 1h, 4h (default), 1d, 1w and others

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, non-destructive, non-idempotent and open-world. The description adds genuinely useful context beyond that: it is computed from Hyperliquid's public candles, costs $0.01/call via x402 or a credits key, the first 25 are free, and failed calls are free — which explains the non-idempotent hint. The sentence 'Reads or computes only and changes nothing' largely restates readOnlyHint, keeping 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It front-loads the indicator inventory, which is what an agent needs to decide relevance, then follows with usage, pricing and a disclaimer. The pricing/disclaimer sentences are somewhat dense and could be trimmed, but nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden and does so by listing every computed indicator and the plain-language readings. Combined with full schema coverage and existing 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema. The description only adds the interval range (1m–1w) and the note that candles are closed, plus a coin=BTC example; that is marginal added meaning over the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (technical indicators for a Hyperliquid perpetual) and enumerates exactly what is computed: RSI 14, MACD 12/26/9, SMA/EMA sets, Bollinger 20/2 with %B, ATR 14 and realised volatility. That enumeration cleanly distinguishes it from hyperliquid_candles, which returns raw candles rather than derived indicators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an intended consumer (trading agent or market dashboard) and a usage example (coin=BTC), so the purpose context is implied. But it never states when to prefer this over hyperliquid_candles or hyperliquid_market, nor any exclusions or prerequisites beyond the pricing note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hyperliquid_marketHyperliquid funding rate, perps: open interest and priceA
Read-only
Inspect

Live Hyperliquid perpetual futures data for a coin (BTC, ETH, SOL, HYPE…): mark, oracle and mid price, hourly funding rate and its APR, premium, open interest in coins and USD, 24-hour volume and price change, and max leverage. Without a coin, the 20 most traded markets by 24-hour volume. Read from Hyperliquid's public API. Use for funding-rate checks, basis trades, derivatives dashboards and market context. Example: coin=BTC. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinNoCoin symbol such as BTC, ETH, SOL or HYPE (default: the 20 most traded markets)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: names the data source (Hyperliquid's public API), discloses pricing ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and explicitly warns that repeats are not free, which explains the non-idempotent cost model behind idempotentHint=false. It also confirms the call changes nothing, reinforcing readOnlyHint/destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the returned data, then the default behavior, then cost/auth, which matches how an agent decides and calls. Slightly over-stuffed in one paragraph, and 'Reads or computes only and changes nothing' partly restates the readOnly/destructive annotations, but no sentence is wasted overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing return values and does so field by field. Combined with the single optional parameter and the disclosed default, an agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is well documented there, so the baseline is 3. The description adds real meaning: it confirms the symbol format with examples (BTC, ETH, SOL, HYPE), specifies the default set is ranked by 24-hour volume (a detail the schema only calls 'most traded'), and gives a concrete call example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('Live Hyperliquid perpetual futures data for a coin') and enumerates the exact fields returned: mark/oracle/mid price, hourly funding rate and APR, premium, open interest in coins and USD, 24h volume and price change, max leverage. That field list makes it clearly separable from siblings like hyperliquid_prices, hyperliquid_candles, hyperliquid_orderbook and hyperliquid_funding_history without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases ('funding-rate checks, basis trades, derivatives dashboards and market context') and states the no-argument fallback behavior. It does not, however, name any sibling alternative or say when a different tool (e.g. hyperliquid_funding_history for historical funding, hyperliquid_orderbook for depth) 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.

hyperliquid_orderbookCrypto order book, Hyperliquid: bids, asks, spread and depth of a perpA
Read-only
Inspect

Live order book of a Hyperliquid perpetual (BTC, ETH, SOL, HYPE…): the best bid and ask levels with price, size and order count, the mid price, the spread in USD and basis points, and the summed depth on each side. Up to 20 levels a side (default 10). Read from Hyperliquid's public API. Use to judge liquidity and slippage before a trade, or for market-making and arbitrage checks. Example: coin=BTC. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinNoCoin symbol such as BTC, ETH, SOL or HYPE (default BTC)
levelsNoLevels per side, 1-20 (default 10)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the data source (Hyperliquid public API), the cost model ($0.01/call via x402 USDC or card key /credits, first 25 free, failed calls free), and the fact that repeats are charged — consistent with idempotentHint=false. It also confirms read-only semantics ("reads or computes only and changes nothing"), reinforcing readOnlyHint=true with concrete detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Return payload is front-loaded in the first sentence, followed by scope, usage, and cost — a sensible ordering. It runs slightly long, with pricing/auth detail consuming a full clause that could be tightened, but each sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param, no-output-schema read tool, the description covers what is returned, the level range, the data source, cost/auth, and safety, leaving nothing material an agent would need before calling. Cost-per-call is especially valuable given the charged, non-idempotent nature of the endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented. The description adds only the default and cap for levels ("Up to 20 levels a side (default 10)") and repeats the coin default, which restates rather than extends the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Live order book of a Hyperliquid perpetual") and enumerates exactly what is returned: best bid/ask, sizes, order counts, mid, spread in USD and bps, and summed depth. This is clearly distinct from hyperliquid_candles, hyperliquid_prices, and token-pricing siblings, though it never explicitly names a sibling or draws the line versus hyperliquid_market.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases: "judge liquidity and slippage before a trade, or for market-making and arbitrage checks," plus an invocation example (coin=BTC). It provides clear affirmative context but no exclusions or explicit alternatives for adjacent needs (e.g., when to prefer hyperliquid_market or hyperliquid_candles).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hyperliquid_pricesAll crypto prices, Hyperliquid: mid prices of every perpetualA
Read-only
Inspect

Current mid prices of every Hyperliquid perpetual in one call (BTC, ETH, SOL, HYPE and about 200 more), as a coin-to-price map, or only the coins you name. Read live from Hyperliquid's public API. Use for a quick price snapshot of many coins at once, portfolio marks or a price ticker; for funding and open interest use hyperliquid_market. Example: coins=BTC,ETH,SOL. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinsNoOptional comma-separated symbols such as BTC,ETH,SOL (default: every perpetual)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it as read-only, non-destructive, open-world, and non-idempotent. The description adds useful non-schema context: live public API reads, response shape, pricing/per-call billing, free first 25 calls, failed calls free, and that repeats are not free.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and return shape are front-loaded and the alternative tool is named early. The pricing and billing details are relevant but slightly repetitive, especially the separate note that each call is charged and repeats are not free.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully explains the return shape as a coin-to-price map. It covers usage, filtering, and billing, though it does not mention behavior for unknown or invalid coin symbols.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the single coins parameter is already documented as optional comma-separated symbols defaulting to every perpetual. The description adds an example (coins=BTC,ETH,SOL), which is marginally useful but not necessary beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: current mid prices of every Hyperliquid perpetual, returned as a coin-to-price map or filtered by named coins. It clearly distinguishes itself from the funding/open-interest sibling hyperliquid_market.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit use cases (quick snapshot, portfolio marks, price ticker) and explicitly routes funding and open-interest queries to hyperliquid_market. This leaves little ambiguity about when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

imageImage generation, generate image from a text prompt: create a picture from a description with an AI image modelA
Read-only
Inspect

Text-to-image generation with FLUX.1 schnell. Send a prompt, get a 1024x1024 JPEG back as base64 in a few seconds. Use for illustrations, thumbnails, mockups, avatars and social media images. Optional steps parameter (1-8, default 4) trades speed for detail. Example: prompt=a lighthouse on a cliff at sunset, watercolor. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
stepsNoDiffusion steps, 1-8 (default 4)
promptYesWhat the image should show (3-800 characters)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: expected latency ('a few seconds'), output encoding (base64 JPEG), and a full pricing model ('$0.01/call via x402 USDC or a card key', failed calls free). The line 'each call is charged, so repeats are not free' correctly reinforces the idempotentHint=false annotation, and 'Reads or computes only and changes nothing' is consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and output format are front-loaded, and each sentence carries distinct information (format, use cases, steps, example, pricing, safety). It is dense rather than bloated, though the pricing clause and the final 'changes nothing' sentence could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by stating the return format, dimensions, latency, and cost. Nothing an agent needs in order to call this tool correctly and anticipate its behavior is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns an extra point by explaining the tradeoff behind `steps` ('trades speed for detail') and supplying a concrete example prompt that models the desired input style.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Text-to-image generation with FLUX.1 schnell') and immediately specifies the output ('1024x1024 JPEG back as base64 in a few seconds'). This clearly distinguishes it from every sibling, which are text/audio/embedding tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (illustrations, thumbnails, mockups, avatars, social media images), giving an agent a clear sense of fit. It stops short of explicit when-not-to-use guidance or alternatives, but no sibling competes for this job.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_metadataImage metadata, EXIF: camera, date, GPS and sizeA
Read-only
Inspect

Read an image's metadata from its URL: format (JPEG, PNG, GIF or WebP), width and height, and for JPEG photos the EXIF data: camera make and model, lens, date taken, exposure, aperture, ISO, focal length, orientation, software and the GPS position (latitude, longitude, altitude) when it was recorded. Up to 15 MB. Use to check where and when a photo was taken, verify an upload, or strip-check images before publishing. Example: url=https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesPublic URL of the image

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses the 15 MB input ceiling, the charging model ($0.01/call, first 25 free, failed calls free) and that repeats are not free — corroborating the idempotentHint=false with real cost consequences. It also explicitly states the tool 'reads or computes only and changes nothing', reinforcing readOnlyHint with operational detail an agent can plan around.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return fields, then usage, example, cost and safety — a sensible ordering with no filler. It is on the long side and the pricing detail is dense, but every sentence 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read with annotations and no output schema, the description is nearly complete: it enumerates returnable fields and notes that EXIF/GPS appear only 'when it was recorded'. It does not say what happens on a non-image URL or an oversized file, leaving error behavior implicit rather than stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage, the schema already carries the definition ('Public URL of the image'). The description adds value by supplying a concrete working example URL, which shows the expected absolute-URL form, and by implying constraints via the supported-format and size limits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read an image's metadata from its URL') and then enumerates exactly what is returned: format, dimensions, and JPEG EXIF fields including camera, lens, date, exposure and GPS. This clearly separates it from sibling URL-inspection tools like url_meta, url_favicon and screenshot, which operate on pages or render output rather than image files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete situations ('check where and when a photo was taken, verify an upload, or strip-check images before publishing'), which is clear when-to-use guidance. It does not name an alternative tool or state when not to use it, 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.

ip_cidrCIDR calculator: calculate the address range, size and netmask of a CIDR blockA
Read-only
Inspect

Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP falls inside. Use for firewall rules and allowlists. Example: cidr=192.168.1.0/24. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipNoOptional IPv4 address to test for membership
cidrYesIPv4 network in CIDR notation

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so 'reads or computes only and changes nothing' is largely redundant; the real added value is the cost model ($0.01/call, first 25 free, failed calls free) and the note that repeats are not free, which explains the non-obvious idempotentHint=false for a pure computation. Rate limits and error behavior are still unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Output fields are front-loaded in the first sentence, followed by use case, example, pricing, and safety in a compact sequence with no filler. The payment sentence is long but carries decision-relevant information rather than marketing fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, enumerating the returned fields in the description is exactly the right compensation, and the cost/permission facts make it safe to call. It still omits response format (JSON structure) and failure/error semantics for invalid CIDR strings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both `cidr` and the optional `ip` membership-test parameter are already documented in the schema. The description reinforces this ('whether a given IP falls inside') and supplies a format example (cidr=192.168.1.0/24), but adds little the schema doesn't already say, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (an IPv4 network in CIDR notation) and enumerates exactly what it computes: network/broadcast address, first/last usable host, netmask, address count, and membership test. It never routes the agent away from the sibling `ip_info`, so the boundary between 'CIDR math' and 'IP lookup' 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for firewall rules and allowlists' plus a concrete example input gives an agent a clear context for reaching for this tool. There are no explicit when-not conditions or named alternatives (e.g., 'use ip_info for geolocation/ASN instead'), 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.

ip_infoIP address info, classify an IP: tell whether an IP address is public, private, reserved, IPv4 or IPv6A
Read-only
Inspect

Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reverse-DNS forms (IPv4). Use to triage IPs in logs or allowlists. Example: ip=10.1.2.3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipYesThe IP address

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says the tool works 'without any lookup' and 'reads or computes only', which describes a purely local computation. The annotations set `openWorldHint: true`, implying interaction with an open world of external entities; that directly conflicts with the description's no-lookup/local-only claim. The cost and idempotency details are otherwise useful, but the structured annotation contradicts the stated behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the core classification behavior and the use case. It is mostly efficient, but the pricing sentence and the later 'each call is charged, so repeats are not free' restate the same billing point, adding slight redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, no output schema, and rich annotations, the description does enough: it lists the returned classifications and computed forms, notes that no lookup occurs, and explains billing. It does not describe the exact response shape, so it is not fully complete, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and schema description coverage is 100%, so the schema already carries the parameter documentation. The description adds an example (`ip=10.1.2.3`) and says IPv4 or IPv6 is accepted, which is a small but useful addition beyond the schema's generic 'The IP address'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: classify an IPv4 or IPv6 address. It enumerates the exact classifications (version, private, loopback, link-local, CGNAT, public) plus computed forms, so an agent can distinguish it from sibling `ip_cidr` 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete use case: triage IPs in logs or allowlists. It also clarifies that no external lookup occurs, which helps separate it from DNS or geolocation tools. It does not explicitly name or exclude the sibling `ip_cidr`, so the routing guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ip_lookupIP lookup: owner, network range and country (RDAP)A
Read-only
Inspect

Look up who holds an IPv4 or IPv6 address in the regional internet registries' public RDAP records (ARIN, RIPE NCC, APNIC, LACNIC, AFRINIC): the holding organisation, network name and range, allocation type, registration country, abuse contact and registry. Use to see which company or ISP a log or firewall address belongs to. Registration country, not city geolocation. Private and reserved addresses are refused with 400, uncharged. Example: ip=8.8.8.8. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipYesPublic IPv4 or IPv6 address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/destructive annotations by disclosing that private and reserved addresses are refused with HTTP 400 and are uncharged, that pricing is $0.01/call via x402 USDC or card key with the first 25 free, that failed calls are free, and why repeats are not free (each call is charged) — which explains the idempotentHint=false. This is exactly the kind of cost and failure-mode context 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and returned fields, then constraints, then an example, then pricing — a sensible order with no filler sentences. The pricing/billing sentence is dense and long, but each clause carries information an agent needs (cost, free tier, failure charging).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the response fields. Combined with failure behavior (400 for private/reserved), billing semantics, and an example, an agent has everything needed to decide to call and to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already described as 'Public IPv4 or IPv6 address', so the baseline is 3. The description adds value with a concrete example (ip=8.8.8.8) and the functional constraint that private/reserved space is rejected, telling the agent what values are valid beyond the schema's wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (look up) and resource (IPv4/IPv6 address holder) and enumerates the returned fields: holding organisation, network name and range, allocation type, registration country, abuse contact, registry. It also distinguishes itself from geolocation tools with 'Registration country, not city geolocation', so an agent can tell it apart from siblings like ip_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('see which company or ISP a log or firewall address belongs to') and an explicit exclusion ('Registration country, not city geolocation'), which implicitly routes geolocation queries elsewhere. It does not name the sibling tool (ip_info) directly, so it stops short of the strongest routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_formatJSON formatter, pretty-print: pretty-print JSON with indentation, optionally with sorted keysA
Read-only
Inspect

Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise it for diffs. Example: text={"b":2,"a":1}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe JSON text
indentNo2 (default), 4 or tab
sortKeysNotrue to sort object keys

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/idempotent, but the description adds real value beyond them: the pricing model ($0.01/call, first 25 free, failed calls free) and the explicit explanation that repeats are charged, which reconciles the surprising idempotentHint=false. It does not say what happens on malformed JSON (error vs. repair), the one remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then usage, then example, then commercial terms — logical order with no filler. The pricing sentence is longer than the rest but carries information an agent cannot get elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly states the return value (formatted text) and covers cost and side-effect profile. Only the invalid-input failure mode is left unspecified, which is a modest gap for a pure-transformation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents text, indent (2 default, 4 or tab) and sortKeys. The description repeats the same indent options and shows one example object, adding only marginal meaning beyond the structured fields, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (format JSON) plus the two axes of behavior (indentation, key sorting) and names the return value. The example input makes it clearly distinguishable from siblings like json_minify, json_validate, json_repair and json_schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to make machine JSON readable or to normalise it for diffs" gives concrete usage contexts, which is stronger than implied usage. It never names an alternative tool or exclusion (e.g. use json_minify to compact, json_validate to check), so it stops short of explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_minifyMinify JSON: remove whitespace from JSON to make it compactA
Read-only
Inspect

Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ "a" : 1 }. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe JSON text

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive=false, but the description adds meaningful context they don't cover: the billing model ($0.01/call, first 25 free, failed calls free) and the explicit warning that repeats are not free. That cost/idempotency nuance is genuinely useful and consistent with idempotentHint=false, though nothing is said about how malformed JSON is handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and example, then the pricing detail last. The pricing/payment sentence is dense with clauses but each carries information an agent would otherwise have to guess at.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, annotation-backed transform tool this covers the essentials: what it does, one use case, a format example, the size-delta output, and the cost model. The only real omission is error behavior on invalid JSON input, which the agent must infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'text' parameter, so baseline is 3; the inline example text={ "a" : 1 } adds concrete format guidance beyond the terse schema field description, pushing it up one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Remove all unnecessary whitespace from JSON', plus the side output ('report the size before and after'). It is distinguishable from siblings like json_format or json_validate by the whitespace-removal framing, though it never names those siblings to sharpen the contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to shrink payloads or prompts' gives one concrete context, but there is no when-not-to-use guidance and no mention of the near neighbors (json_format, json_repair, pack_json_toolbox) an agent would plausibly confuse this with.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_repairJSON repair: fix broken JSONA
Read-only
Inspect

Fix JSON as LLMs often write it: removes json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True/False/None, and closes unclosed brackets. Returns the repaired JSON and whether it now parses. Use when an LLM's JSON output fails to parse. Example: text=json {name: 'Ada', tags: ['x',],}

NameRequiredDescriptionDefault
textYesThe broken JSON text

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so 'reads or computes only and changes nothing' is mostly redundant. The description adds genuinely non-redundant behavior: per-call pricing, first 25 free, failed calls free, and 'each call is charged, so repeats are not free', which explains the idempotentHint=false annotation in practical terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The repair list and usage trigger are front-loaded in the first two sentences, so the critical information is reached immediately. The billing/pricing tail is longer than strictly needed for tool selection, though it is operationally relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description says what comes back ('the repaired JSON and whether it now parses'), what happens on failure (failed calls free), and confirms no side effects. Nothing an agent needs in order to call this one-parameter tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage the baseline is 3, and the description adds real value by showing a sample of the 'text' payload (```json fences, single-quoted keys, trailing commas) that demonstrates accepted input rather than just naming the field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ('Fix JSON') and then enumerates the exact failure modes it repairs: fences, prose, comments, trailing commas, single quotes, bare keys, True/False/None, unclosed brackets. The clause 'Use when an LLM's JSON output fails to parse' implicitly separates it from json_format/json_validate, which handle well-formed input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition — 'Use when an LLM's JSON output fails to parse' — plus a worked example of the input shape it targets. It does not name the closest siblings (json_validate, json_format) as alternatives, so the agent must infer that valid JSON should go elsewhere.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_schemaJSON schema from example: infer a JSON SchemaA
Read-only
Inspect

Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and string formats (date-time, date, email, uri, uuid). Use to document an API response or to validate later data against the same shape. Example: json={"id":1,"email":"ada@example.com","tags":["a","b"],"created":"2026-10-23T08:00:00Z"}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
jsonYesThe example JSON

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and non-destructive annotations, it discloses that each call is charged, repeats are not free, the first 25 calls are free, failed calls are free, and payment is via x402 USDC or a card key. It also explains what the output contains, including draft version and supported inference features.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the core action and inferred output, followed by usage, an example, and billing details. It is somewhat dense because it packs pricing and behavioral notes into the same paragraph, but every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers purpose, output format, usage context, an example input, and billing behavior. An agent has enough information to decide when to call it and what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter with 100% description coverage, so the baseline is 3. The description supplies an example value for the json parameter, which clarifies expected input shape, but it does not add substantial syntax or formatting details beyond that example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: infer a JSON Schema from an example JSON value. It names the schema draft, the inferred constructs, and distinguishes itself from sibling tools like json_validate and json_format by focusing on schema generation rather than validation or formatting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear use cases: documenting an API response or validating later data against the same shape. It does not explicitly state when not to use it or name alternatives such as json_validate, but the intended context is easy to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_to_csvJSON to CSV, array to table: convert a JSON array of objects into CSVA
Read-only
Inspect

Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Example: text=[{"name":"Ada","age":36},{"name":"Alan","age":41}]. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesA JSON array of objects

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, non-destructive, non-idempotent, open-world, but the description adds the non-obvious parts: per-call billing ($0.01 via x402/card key, first 25 free, failed calls free) and that repeats are not free, which operationalizes idempotentHint=false. It still omits edge behavior such as empty arrays, objects with disjoint keys, or CSV quoting/escaping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the transformation and output shape, then usage, then a compact concrete example, then cost caveats. Every sentence carries information the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must convey the return format, and it does (header row from all keys, nested values as JSON) while also flagging the pricing model. Missing detail on uneven keys/delimiter escaping is the only real gap for a single-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3 applies, but the description adds real meaning: the input must be an array of objects and the header row is the union of all keys, with nested values serialized as JSON. The worked example with two records makes the expected input concrete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and both resource types ('Convert a JSON array of objects to CSV') plus the output shape ('header row built from all keys'). This clearly separates it from the reverse sibling csv_to_json and the other json_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to export API results to a spreadsheet' gives a concrete triggering scenario. It does not name the inverse tool (csv_to_json) or state when not to use it, 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.

json_to_yamlJSON to YAML: convert JSON into a readable YAML documentA
Read-only
Inspect

Convert a JSON value into a YAML document (block style, no line folding), for config files, Kubernetes manifests, GitHub Actions or docs that humans edit. Up to 100 KB of JSON. Use when a tool or person wants YAML; for the reverse use yaml_to_json. Invalid JSON is a 400, uncharged. Example: json={"name":"agent","ports":[80,443],"enabled":true}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
jsonYesThe JSON text (up to 100 KB)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, non-destructive, non-idempotent), and the description adds value beyond them: block-style/no-folding output shape, 100 KB limit, 400-on-invalid-JSON with no charge, pricing and first-25-free, and the note that repeats are charged because each call costs — which coherently explains idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the conversion and format details, then the routing hint, then limits and pricing. It is dense but every sentence conveys actionable information; the pricing/credits clause is a little promotional ('Price $0.01/call via x402 USDC or a card key (/credits)') and could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, no-output-schema conversion tool this covers input limits, error semantics, output style, and cost. The only modest gap is a precise statement of what the returned YAML document contains (bare document vs. trailing newline, multi-document handling), though 'block style, no line folding' already sets expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required 'json' string parameter, so the baseline is 3. The inline worked example (json={"name":"agent","ports":[80,443],"enabled":true}) usefully shows that the parameter takes a JSON *string* rather than a structured object, which is the one ambiguity the schema type alone leaves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Convert a JSON value into a YAML document'), pins the output style (block style, no line folding), and names the sibling for the reverse direction (yaml_to_json). An agent can distinguish it from json_format, json_minify, and yaml_to_json without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the positive condition ('use when a tool or person wants YAML'), the explicit exclusion/alternative ('for the reverse use yaml_to_json'), and names target use cases (config files, K8s manifests, GitHub Actions). Also states the 100 KB input ceiling, which is a real gating condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_validateJSON validator, validate JSON: check whether text is valid JSON and where the error isA
Read-only
Inspect

Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use before parsing an LLM's or an API's output. Example: text={"a":1}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe JSON text to check (up to 20,000 characters)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavior beyond annotations: return values for valid and invalid input, line/column error details, pricing, free failed calls, and the fact that repeated calls are charged. These details are consistent with readOnlyHint=true, destructiveHint=false, and idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and mostly efficient, moving from purpose to return format to usage to pricing. The safety sentence partly repeats annotation information, which slightly reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter validation tool with no output schema, the description covers purpose, return shape, error reporting, usage context, pricing, and safety. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single text parameter and its 20,000-character limit are already documented in the schema. The description adds only an example, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: check whether text is valid JSON. It is clear what the tool does, but it does not explicitly distinguish itself from closely related siblings such as json_repair, json_format, or json_schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context: use before parsing an LLM's or an API's output. However, it does not specify when to choose this over json_repair or json_format, nor does it state exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jwt_decodeJWT decode: decode a JWT token's header and payload and check its expiryA
Read-only
Inspect

Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. The token is not stored. Do not use the result to trust a token. Use to debug auth flows. Example: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3OTIyODE2MDB9.sig. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesThe JWT

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond annotations: no signature verification, the token is not stored, results must not be used for trust decisions, and per-call billing explains why repeats are not free (consistent with idempotentHint=false). The sentence 'Reads or computes only and changes nothing' duplicates readOnlyHint/destructiveHint rather than adding value, and error behavior on malformed tokens is unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation and its outputs, then stacks cautions, example, and pricing in a sensible order. The pricing/credits sentence is long and partly boilerplate, though it does justify the non-idempotent charge behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by describing decoded header/payload plus date-normalized claims and an expiry verdict. Missing only failure behavior (malformed or non-JWT input) and whether the output is structured or stringified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single required parameter with 100% schema coverage, so the schema baseline applies; the description only adds a worked example token, which helps confirm the expected compact-serialization format but no other semantics. Baseline 3 is right.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Decode a JSON Web Token's header and payload without verifying the signature', and it enumerates the outputs (iat/nbf/exp as dates, expired flag). This clearly separates it from generic siblings like base64_decode and json_format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('Use to debug auth flows') and a strong when-not warning ('Do not use the result to trust a token'). It does not name a sibling alternative, but no JWT verification tool exists among the siblings, so the routing gap is small.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

keccakKeccak256, function selector: Keccak-256 hash, 4-byte selector and event topicA
Read-only
Inspect

Keccak-256 hash (the Ethereum hash) of text or of 0x hex bytes, as used for function selectors, event topics and storage slots. Use when building or decoding EVM calls. Example: text=transfer(address,uint256). Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesText, or 0x-prefixed hex bytes, up to 10,000 characters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description usefully adds pricing ($0.01/call, 25 free, failed calls free) and the non-idempotent cost note, which matches idempotentHint=false. It does not describe the exact return shape (hash only vs. hash plus 4-byte selector), which is the remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the definition and use case, then the example, then pricing. The pricing/free-tier sentence is longer than necessary for tool selection and could be trimmed, keeping it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must carry return semantics; the title's "4-byte selector and event topic" hints at outputs but the body only says it hashes, leaving ambiguity about whether a selector is returned alongside the hash. Everything else needed to call it (input format, cost, safety) is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema documents the 10,000-character limit, so the baseline is 3; the worked example adds real value by showing the accepted input syntax (raw signature text rather than encoded calldata). It still doesn't clarify the 0x-hex byte branch with an example, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation (Keccak-256 hash) over a specific input (text or 0x hex bytes) and names the concrete uses (function selectors, event topics, storage slots). It is trivially distinguishable from every sibling, which are all chain-prefixed RPC lookups rather than a pure hashing utility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when building or decoding EVM calls" plus a concrete example (text=transfer(address,uint256)) gives a clear triggering context. It stops short of explicit exclusions or alternatives (e.g. use eth_call to actually simulate the encoded call), so it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liquidity_pool_auditLiquidity pool check: a Base DEX pair's liquidity, volume, trades and age before tradingA
Read-only
Inspect

Check a Base DEX pool before you trade: give a pair address and get the verified DEX, both tokens, reported liquidity, 24h volume and trades, and pair age from DexScreener, or read on Base when it is unavailable, with source and retrieval time. Missing fields are null; an unknown pair returns 404. Market data only, no risk assessment. Use to confirm a pair is real and deep enough before trading; token red flags: token_report. Example: address=0x98c7A2338336d2d354663246F64676009c7bDa97. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesDEX pair address on Base, 0x-prefixed 20-byte hex

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only/non-destructive, and the description adds real context beyond them: a DexScreener-primary/Base-fallback source with source and retrieval time in the result, null for missing fields, 404 for unknown pairs, and an explicit cost model (first 25 free, failed calls free, repeats charged) that explains the non-idempotent hint. The scope boundary (market data only, no risk assessment) prevents over-trusting the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The action and its output are front-loaded, followed by scope boundary, alternative routing, example and pricing. It is information-dense rather than padded, though the pricing/commercial clauses make it longer than a pure capability description needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the full burden and does so: it enumerates the returned fields, source/provenance, null and 404 behavior, and the scope limit. Nothing an agent needs in order to call this correctly or interpret its result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter's format (0x-prefixed 20-byte hex) is fully documented in the schema, so the baseline of 3 applies. The description restates 'give a pair address' and adds a concrete example value, which is mildly helpful but contributes no new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check/audit) and a tightly scoped resource (a Base DEX pair's liquidity, volume, trades, age), and lists exactly what comes back. It explicitly bounds itself ('Market data only, no risk assessment') and names token_report as the sibling for token red flags, so an agent can separate it from token_report, price_token and wallet tools 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to confirm a pair is real and deep enough before trading' gives a concrete trigger, and 'token red flags: token_report' names the alternative with the condition that selects it. The 'no risk assessment' clause tells the agent when this tool is not enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ln_invoiceDecode a Lightning invoice: decode a BOLT11 Lightning invoice: amount, description, expiry and payment hashA
Read-only
Inspect

Decode a BOLT11 Lightning Network invoice without paying it: network, amount in sats and BTC, description, payment hash, creation time, expiry time and whether it has already expired. Use to check what an invoice asks for before an agent pays it. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
invoiceYesBOLT11 invoice string starting with ln (lnbc... for mainnet)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, non-destructive and non-idempotent, but the description adds real value beyond them: it explains why repeats are not free ('each call is charged'), discloses the price model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and confirms the operation 'reads or computes only and changes nothing'. That is exactly the kind of billing and side-effect disclosure annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The decode scope and the 'without paying' caveat are front-loaded, which is the right ordering. There is slight redundancy in restating the charging model twice ('Price $0.01/call...' and 'each call is charged, so repeats are not free'), but both sentences otherwise earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating what comes back — network, amount in sats and BTC, description, payment hash, creation/expiry times and expired status. Combined with the payment model disclosure, an agent has everything needed to decide to call and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'invoice' parameter is already documented as a BOLT11 string starting with 'ln'. The description's list of decoded fields is return-value information rather than parameter guidance, so it adds nothing to the one argument beyond the schema — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Decode a BOLT11 Lightning Network invoice') plus the crucial scope qualifier 'without paying it'. No sibling tool in the list touches Lightning, so the tool is unambiguous against the EVM/BTC cluster it sits in.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to check what an invoice asks for before an agent pays it' gives a clear triggering context and even implies the decision it supports. No alternatives or exclusions are named, but there is no competing sibling to route away from, 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.

magic_8_ballMagic 8-ballA
Read-only
Inspect

Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will it ship today?. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
questionNoYour question (optional, not stored)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely useful behavior beyond the annotations: pricing ($0.01/call, first 25 free, failed calls free) and the fact that repeat calls are charged, which explains idempotentHint=false. 'Reads or computes only and changes nothing' largely restates readOnlyHint, but the cost and randomness disclosure carry real value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, usage, example, and pricing in a compact block. The sentence 'Reads or computes only and changes nothing' is redundant with the readOnlyHint annotation, a minor waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-optional-parameter novelty tool with no output schema, the description covers purpose, random output, cost model, and intended audience. It could be stronger by pointing at yes_no for a deterministic alternative, but nothing essential for calling it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage and a single optional 'question' parameter, the schema already does the documentation work. The example (question=Will it ship today?) clarifies expected format but adds little beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random'), which is clear and unambiguous. It does not differentiate from the sibling 'yes_no' tool, which is the nearest alternative, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use context ('For fun only. Use for games and chat bots'), which is more than implied usage. It does not name exclusions or the sibling alternative yes_no for deterministic answers, so no 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

markdown_to_htmlMarkdown to HTML: render Markdown text as HTMLA
Read-only
Inspect

Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists and task lists, tables, quotes, rules) to HTML. Raw HTML in the input is escaped, so the output is safe to embed. Use to publish agent-written Markdown on a web page. Example: markdown=# Title Some bold text and a link.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
markdownYesThe Markdown

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations by disclosing that raw HTML in the input is escaped and the result is safe to embed — a security trait nowhere in the structured fields — and explains the non-idempotent hint by noting each call is charged so repeats are not free. It still doesn't describe the return shape (fragment vs. full document) or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and the feature list are front-loaded in the first sentence, with safety and cost after. The billing sentence is dense and the inline example is clumsily formatted inside a prose sentence, costing some readability without padding the whole.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool with full schema coverage and annotations covering safety, this is nearly complete: purpose, supported syntax, escaping behavior, and pricing are all present. Only the exact form of the returned HTML and any input-size limits are left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'markdown' parameter, so the baseline is 3. The example ('markdown=# Title ...') illustrates an accepted value but adds nothing about limits, size caps, or encoding that the schema doesn't already cover.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and both source and target formats ('Convert Markdown ... to HTML') and enumerates the constructs handled, which lets an agent distinguish it from inverse tools like html_to_text or csv_to_markdown without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to publish agent-written Markdown on a web page' gives a concrete usage context, and the cost note implies when not to call it redundantly. However, it never names an alternative (e.g. html_to_text for the reverse direction) or any exclusion, so it stops short of explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math_evaluateMath expression calculator: evaluate a formula safelyA
Read-only
Inspect

Evaluate an arithmetic expression safely (parsed, never executed as code): + - * / % ^ and **, parentheses, factorial !, constants pi, e and tau, and functions sqrt, cbrt, abs, round, floor, ceil, exp, ln, log (base 10), log2, sin, cos, tan, asin, acos, atan (radians), min, max and pow. Up to 500 characters. Use when an agent needs exact arithmetic instead of guessing, for prices, unit maths or formulas. Example: expression=(1500 * 0.045 / 12) + sqrt(144) - 2^3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
expressionYesThe expression, such as (2+3)*4^2/sqrt(16)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: the parser is safe and never executes code, there is a 500-character limit, calls cost $0.01, the first 25 are free, failed calls are free, and repeats are not free. The readOnlyHint=true and destructiveHint=false annotations are consistent with 'reads or computes only and changes nothing'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool computes and what syntax it accepts, then follows with usage, an example, and pricing. Slightly redundant at the end ('each call is charged, so repeats are not free' repeats the $0.01/call point), but every part is relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is thorough on syntax, limits, and billing, but with no output schema it never states the return type or shape (e.g., a number vs. a formatted string, or how rounding is handled). That is a clear gap for a compute tool, though the rest of the entry is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself includes an example, so parameter semantics are already well served. The description adds useful meaning with the supported operator/function set and the 500-character constraint, which the schema does not state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (evaluate) and resource (arithmetic expression) and enumerates exactly what the parser accepts: operators, constants, and named functions. This clearly separates it from siblings like math_stats, units_convert, and the calc_* helpers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit usage condition ('when an agent needs exact arithmetic instead of guessing, for prices, unit maths or formulas') with a concrete example. It does not name the sibling tools an agent should prefer for statistics or unit conversion, but the context is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

math_statsStatistics of numbers: mean, median, standard deviation, percentilesA
Read-only
Inspect

Descriptive statistics for a list of numbers: count, sum, mean, median, mode, min, max, range, population and sample variance and standard deviation, quartiles with IQR, and the 90th, 95th and 99th percentiles (linear interpolation). Up to 10,000 numbers, comma or space separated. Use to summarise measurements, latencies, prices or scores without a spreadsheet. Example: values=12, 15, 15, 18, 21, 24, 30, 45. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
valuesYesNumbers separated by commas, spaces or new lines

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/destructiveHint/idempotentHint, but the description adds the non-obvious 'why': each call is billed, so repeats are not free, which explains idempotentHint=false. It also discloses price, the free-tier allowance, the 10,000-number cap, and that failed calls are free — real value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The output list is front-loaded and the example, limits, and pricing follow in a logical order. Slightly dense — the pricing/second sentence is long — but each sentence carries information an agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully compensates by enumerating every returned statistic and the interpolation method for percentiles. Combined with input format, size cap, and cost model, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the schema already documents the separator formats. The description adds the 10,000-number limit and a worked example, but omits the newline separator mentioned in the schema — marginal added meaning, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a specific verb (compute descriptive statistics) and a specific resource (a list of numbers), then enumerates the exact outputs (mean, median, variance, quartiles, percentiles). That makes it easy to distinguish from math_evaluate or text_stats by subject matter, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to summarise measurements, latencies, prices or scores without a spreadsheet' gives concrete, actionable usage context. It does not, however, state when to prefer a sibling such as math_evaluate (expressions) or text_stats (text corpora).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_inspectMCP server check, inspector: tools, auth and protocolA
Read-only
Inspect

Inspect a remote MCP server over streamable HTTP: whether it answers initialize, its name, version, protocol version and capabilities, whether it needs sign-in (OAuth or another 401 challenge), and its tools with names, titles, descriptions and input parameters, plus prompt and resource counts. Read-only: it lists, never calls a tool. Use to vet an MCP server before adding it to an agent, or to check your own after a deploy. Example: url=https://mcp.deepwiki.com/mcp. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe MCP server's streamable-HTTP URL

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it adds real behavioral context: 'Read-only: it lists, never calls a tool' clarifies the blast radius, sign-in detection is described, and it discloses billing semantics ($0.01/call, first 25 free, failed calls free, repeats are not free) which explains the idempotentHint=false. Consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability inventory in the first sentence, then usage, then example, then pricing. Mildly redundant: the pricing/per-call cost idea appears twice ('Price $0.01/call...' and 'each call is charged, so repeats are not free'), and the closing 'Reads or computes only and changes nothing' repeats the earlier 'Read-only'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-shape burden and does so thoroughly: it lists the exact fields an agent will get back. Combined with auth behavior, safety profile, and cost, an agent has everything needed to decide to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is a single required param, so baseline is 3. The description adds genuinely useful meaning not in the schema by providing a working example value (url=https://mcp.deepwiki.com/mcp) and specifying that the URL must be the streamable-HTTP endpoint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Inspect') and resource ('a remote MCP server over streamable HTTP') and enumerates exactly what is returned: initialize handshake, name/version/protocol/capabilities, auth challenge, tool list with schemas, and prompt/resource counts. Nothing in the long sibling list is confusable 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases: 'vet an MCP server before adding it to an agent, or check your own after a deploy', plus a concrete example URL. It does not name an alternative (e.g. http_status or openapi_summary) or state exclusions, so it stops 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.

memory_deleteAgent memory, delete a keyA
DestructiveIdempotent
Inspect

Delete the value saved under a key in your namespace now, before it expires. Answers deleted: false when there was nothing to delete. Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to forget a fact or clear task state. Example: namespace=demo-agent-memory-7f3c9a21, key=user-preferences. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Changes only what you saved in your own memory namespace; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key, up to 200 characters
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, it discloses return behavior ('deleted: false when there was nothing to delete'), retention limits, read-after-write lag, namespace scope, and billing details including repeat-call charges. This is rich behavioral context for a destructive paid operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and remains generally efficient. Some clauses are redundant, such as restating expiry rules and pricing, but each major sentence contributes operational context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, paid, two-parameter memory tool with no output schema, the description covers return semantics, billing, scope, expiry, and read lag. Nothing essential for correct invocation appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters in detail, including namespace secrecy and key length. The description adds a concrete example but mostly reinforces what the schema provides rather than adding new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: delete the value saved under a key in your namespace. It clearly distinguishes deletion from sibling memory operations such as memory_set and memory_get, and the added usage phrase 'forget a fact or clear task state' reinforces intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear use case: 'Use to forget a fact or clear task state.' It does not explicitly contrast with memory_set, memory_get, or memory_list, but the deletion context and scope make the intended usage clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_getAgent memory, recall: read a saved valueA
Read-only
Inspect

Read the value saved under a key in your namespace with /memory/set, with when it was saved and when it expires. A key that was never saved or has expired is a 404 and is not charged. Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to recall what an agent saved in an earlier run. Example: namespace=demo-agent-memory-7f3c9a21, key=user-preferences. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key, up to 200 characters
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: TTL cap of 30 days, cross-region read lag up to a minute, 404-on-miss/expired with no charge, and per-call pricing with 25 free. The note that every call is charged even if repeated directly explains why idempotentHint is false for a read-only tool — genuinely useful context 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and scoping, then cost/lag caveats, which is the right order. Slightly over-packed: 'failed calls free' duplicates the earlier 'is not charged', and 'changes nothing' restates readOnlyHint, costing a little density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two required params and no output schema, the description covers everything an agent needs: how to address the record, what comes back (value plus saved and expiry timestamps), failure mode, staleness window, and cost. Nothing material is left to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds a worked example (namespace=demo-agent-memory-7f3c9a21, key=user-preferences) that illustrates the expected shapes and reinforces that key is scoped inside namespace. Minor value-add only, since the schema already spells out both fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (read a saved value by namespace+key) and ties it explicitly to its counterpart /memory/set, so the read/write pair with memory_set is unambiguous. The one-line 'Use to recall what an agent saved in an earlier run' pins the intent with no vagueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear situational context ('recall what an agent saved in an earlier run') and a concrete example call with namespace and key. It does not explicitly exclude or route to siblings like memory_list or memory_delete, so an agent must infer when listing beats direct key lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_listAgent memory, list keys: what a namespace holdsA
Read-only
Inspect

List up to 100 keys saved in your namespace, optionally only those starting with a prefix, with their size, save time and expiry; pass the returned cursor for the next page. Values are not included (read them with /memory/get). Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to see what an agent has saved. Example: namespace=demo-agent-memory-7f3c9a21. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
cursorNoThe cursor from the previous page of this list
prefixNoOnly keys that start with this text
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: page size cap (100), cursor chaining, fields returned (size, save time, expiry), a 30-day TTL, and a read-after-write lag of up to a minute. It also explains the billing model and that repeat calls are charged, which is exactly the context an agent needs to avoid wasteful polling, and it is consistent with readOnlyHint=true and idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what is listed and what is excluded, then pagination, then lifetime/lag, then pricing — a sensible order. The pricing clause is long and somewhat dense ('$0.002/call via x402 USDC or a card key...') but each sentence carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by naming the returned fields and explicitly stating values are omitted. With pagination, TTL, consistency lag, and cost all covered, an agent has everything needed to call this repeatedly and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds behavior not in the schema: prefix restricts keys to those starting with the text, and the cursor is explicitly 'the returned cursor for the next page', clarifying the pagination contract. Namespace semantics (secret, password-like) remain in the schema only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+scope: 'List up to 100 keys saved in your namespace', and immediately distinguishes itself from memory_get by stating values are not included. An agent can tell it apart from memory_set/memory_get/memory_delete without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to see what an agent has saved' gives a positive trigger and it explicitly routes to /memory/get for values, which is the main alternative an agent would consider. It lacks an explicit 'do not use this for X' exclusion (e.g., content retrieval versus deletion), so it is clear but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_setAgent memory, save: key value store for agentsA
Idempotent
Inspect

Save a value (up to 8,000 characters of text or JSON) under a key in your own namespace, so an agent can remember facts, preferences or task state between runs. Overwrites an existing key; expires after 1 to 30 days (default 30). Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to persist what an agent learned for a later call to memory_get. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Changes only what you saved in your own memory namespace; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key, up to 200 characters
daysNoDays to keep it, 1 to 30 (default 30)
valueYesThe text or JSON to save, up to 8,000 characters
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: overwrite-of-existing-key semantics, TTL of 1-30 days with a default of 30, values persisting until expiry or deletion, cross-region read lag up to a minute, billing model including free failed calls, and the blast radius ('changes only what you saved in your own memory namespace'). Annotations only supply the readOnly/idempotent/destructive flags, so this is substantial added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and its storage semantics are front-loaded and the paragraph is dense with useful facts. It loses a point for redundancy: TTL/expiry is stated twice ('expires after 1 to 30 days' and 'kept until they expire (at most 30 days)') and pricing is restated at the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter write tool with no output schema, the description covers lifetime, consistency, cost, scope of effect, and overwrite behavior, leaving nothing an agent needs in order to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents the key length, value size, days range/default, and the namespace-as-password warning. The description restates the value size and TTL rather than adding new syntax or format guidance, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Save a value ... under a key in your own namespace') plus the payload limit, and names memory_get as the read counterpart, which separates it from memory_get/memory_list/memory_delete in the sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it: 'Use to persist what an agent learned for a later call to memory_get,' and warns that each call is charged so repeats are not free. It does not mention the other siblings (memory_list for enumeration, memory_delete for removal), so the routing picture is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mev_simulatorBase gas-cost estimates under priority-fee scenarios: estimate Base transaction gas costs under different priority-fee scenariosA
Read-only
Inspect

Estimates Base gas costs from current fees and priority-fee presets. Fixed gas units (100k simple, 250k complex, 180k liquidity) are typical assumptions, not transaction-specific estimates or quotes. Valid values: standard, high-mev (3x priority fee), low-gas (half); invalid values return HTTP 400 without charge. No transaction simulation, mempool observation, or MEV/sandwich-risk measurement. Use to budget gas for a Base transaction. Example: scenario=standard. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
scenarioNoOne of standard, high-mev, low-gas (default: standard)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/destructive annotations by disclosing pricing ($0.01/call, first 25 free, failed calls free), that invalid enum values return HTTP 400 with no charge, and that repeat calls are billed - consistent with idempotentHint=false. It also flags that the gas-unit figures are assumptions rather than quotes, which is exactly the caveat an agent needs to avoid overclaiming precision.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and caveats, and every sentence carries operational information. It is somewhat dense and packs pricing, validation, and exclusions into long clauses, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers cost, failure modes, assumptions, and exclusions thoroughly for a one-parameter tool. The one remaining gap is that with no output schema, the description never says what the response actually contains (field names, units, whether cost is in wei/ETH/USD), leaving the agent to infer the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single enum is documented, so the baseline is 3. The description earns extra credit by explaining what the presets mean (high-mev = 3x priority fee, low-gas = half) and the default, plus the failure behavior for invalid values, which the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource - estimating Base gas costs under priority-fee scenarios - and the fixed gas-unit figures make the output shape concrete. No sibling tool covers gas or fee estimation, and the description explicitly disclaims transaction simulation and MEV measurement, so an agent can place it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the intended use ('Use to budget gas for a Base transaction'), gives the valid preset values with their meanings, and explicitly rules out what it does not do (no simulation, no mempool observation, no sandwich-risk measurement). This is when-to-use plus when-not-to-use, which is the top of the scale.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mimeMIME type for a file: find the MIME content type for a file name or extensionA
Read-only
Inspect

MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or serving files. Example: file=report.xlsx. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
fileYesFile name or extension

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this ('Reads or computes only and changes nothing'). It adds billing behavior beyond the annotations — per-call charge, first 25 free, failed calls free, repeats not free — which usefully explains why idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core behavior and example before the pricing block. The pricing/payment sentence is longer than the functional content, but it is the only padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden — it does, naming both the MIME type and the inline-display flag. Input format is covered by example. Only minor gaps such as fallback behavior for unknown extensions remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already documented, so the baseline is 3. The description earns an extra point by showing through examples that either a full file name or a bare extension is acceptable input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: resolves the MIME content type for a file name or extension, and additionally reports whether browsers display it inline. The example mapping 'report.pdf → application/pdf' removes any ambiguity, and no sibling tool overlaps with this function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage context ('when uploading or serving files') and a call example. It doesn't name alternatives or exclusions, but for a lookup tool with no near-siblings there is little to disambiguate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

moonMoon phase: the moon phase and illumination for a dateA
Read-only
Inspect

Moon phase name, illuminated percentage and age in days for any date, plus the next new and full moon (UTC). Computed locally from the mean synodic month. Use for calendars and night-sky planning. Example: date=2026-10-18. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateNoDate or ISO time (default now)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the computation method (mean synodic month), pricing and free-call structure, failed-call behavior, and the fact that repeats are charged. It also clarifies that the tool only reads or computes and changes nothing, which reinforces the safety annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with what the tool returns and stays reasonably concise. The final sentence partially repeats the pricing and read-only points, keeping it from being maximally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter computation tool, the description covers return values, method, usage context, cost, failure behavior, and side-effect profile. No output schema exists, but the description adequately enumerates what comes back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the single date parameter, including its default-now behavior. The description only adds an example value, without extra constraints or format details, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource and return fields: moon phase name, illumination percentage, age in days, and next new/full moon dates. It is unmistakably about lunar data, though it does not explicitly differentiate itself from nearby siblings such as sun or date_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage contexts (calendars and night-sky planning) and a concrete example date. It does not state when not to use it or name alternatives, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

networkBase network and USDC facts: Base network facts for payment clients: chain id, USDC contract, RPC and explorer URLsA
Read-only
Inspect

Reference facts for paying and reading on Base mainnet: chain id, native USDC contract and decimals, block explorer and public RPC URLs, and the x402 network identifier. Use to configure an x402 or Base client. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, non-destructive, open-world and non-idempotent; the description is consistent with all of them ("changes nothing"; "repeats are not free" matches idempotentHint=false). It adds genuinely non-schema information: per-call price of $0.01, first 25 calls free, failed calls free, and card-key alternative via /credits. It does not describe caching or return shape, which keeps it at 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph, front-loaded with the returned facts before usage and pricing, which is the right order for an agent deciding whether to call. Everything is relevant, though the pricing promotion could be compressed slightly without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional parameter, no output schema), and the description compensates by naming the returned fields directly plus cost and safety behavior. An agent has everything it needs to select and call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single `only` parameter is fully documented in the schema itself, and the baseline of 3 applies. The description never mentions the projection parameter or gives an example of using it to shrink the response.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-and-resource framing and enumerates the exact facts returned: chain id, native USDC contract and decimals, explorer/RPC URLs, and the x402 network identifier. This distinguishes it implicitly from the many per-chain RPC siblings (base_block, base_gas, base_token_info) since it returns static config rather than querying chain state, but no sibling is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete trigger: "Use to configure an x402 or Base client." That is a clear usage context. It stops short of explicit exclusions (e.g., "use base_token_info for live USDC balances"), so it is a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newsCrypto news, news headlines: search current news articles (Brave)A
Read-only
Inspect

Search current news on any topic, crypto included, and get the latest headlines as JSON: title, URL, snippet, publisher domain and age, from the Brave Search API's news index. 1-20 results per call; freshness limits results to the past day, week or month. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Upstream failures return 503, uncharged. Use when an agent needs current news on a topic. Example: q=bitcoin ETF. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qYesNews search query, at most 400 characters
countNoNumber of results (1-20, default 10)
freshnessNoOnly articles from the past day, week or month (default: any age)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses Brave's terms restricting storage, resale and model training, states that upstream failures return 503 uncharged, and gives the price ($0.01/call via x402 USDC or card key) with the note that repeat calls are not free. This complements the readOnlyHint/destructiveHint/idempotentHint annotations rather than repeating them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and return shape are front-loaded, and each block (output, limits, licensing, pricing, read-only) earns its place. It is on the dense side with some redundancy between 'crypto included', the title, and the example, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully covers the return shape (title, URL, snippet, publisher domain, age), result-count and freshness bounds, error behavior, cost model, and legal constraints. An agent has everything needed to call it correctly and understand the consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented in the schema, and the description largely restates them ('1-20 results', 'past day, week or month'). The q=bitcoin ETF example is the only added semantic value; the freshness values are not enumerated more precisely than the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('search current news on any topic') plus the exact source (Brave Search API's news index) and the returned fields. It is clearly a news search rather than a generic web search, but it never names the sibling `search` tool or any news alternative, so the 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when an agent needs current news on a topic' and supplies a concrete example (q=bitcoin ETF), which gives a clear use context. It offers no when-not-to-use condition or named alternative for non-news lookups, 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.

npm_downloadsnpm package downloads: download counts of an npm package over the last day, week or monthA
Read-only
Inspect

Download counts of an npm package for the last day, week and month, from the official npm registry API. Use to judge how widely a dependency is used. Example: package=hono. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
packageYesPackage name, e.g. react or @scope/name

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world and non-destructive behavior; the description adds genuinely new context: the cost model ($0.01/call, first 25 free, failed calls free) and the reason repeats are not free, which explains the non-idempotent hint. It does not describe the shape of the returned counts, but no output schema exists to cover that either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and source, then use case, then cost. Dense but no wasted sentence; the 'reads or computes only and changes nothing' clause is partly redundant with readOnlyHint but short.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only lookup, the definition covers purpose, source, cost and usage. The main missing piece is a hint about the return structure (per-period counts), which matters since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'package' parameter already documents scoped names ('@scope/name'). The description's 'package=hono' example duplicates rather than extends that, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — download counts of an npm package over day/week/month from the official npm registry API — and the sibling set (pypi for Python) makes the npm scope meaningful. An agent can tell exactly what it retrieves without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use case ('judge how widely a dependency is used') and names the data source, but does not state when not to use it or point at alternatives like pypi for Python packages. Clear context with no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

number_romanRoman numerals: convert numbers to Roman numerals and backA
Read-only
Inspect

Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: number=2026. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
romanNoRoman numerals to read
numberNo1 to 3999

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring the safety profile, the description adds genuinely non-redundant context: pay-per-call pricing, first 25 free, failed calls free, and the fact that repeats are charged, which explains why idempotentHint=false. 'Reads or computes only and changes nothing' is largely a restatement of readOnlyHint/destructiveHint, but the cost model is real added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose is front-loaded in the first sentence, but the trailing payments sentence drags in '/credits', 'x402 USDC' and card-key detail that is partially redundant with 'each call is charged, so repeats are not free'. Some of the cost clause earns its place; the payment-rail specifics are clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param converter with no output schema, the description covers inputs and cost but never says what comes back (a string, e.g. 'MMXXVI') nor what happens if both or neither argument is supplied. Adequate but leaves behavioural edges to be discovered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented, so the baseline is 3. The description goes beyond by stating the 1-3999 range for number and clarifying the mutual-exclusivity mode ('Give either number or roman'), which is not expressed in the schema (required: 0).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource in both directions ('Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number') and gives the valid range, so an agent knows exactly what it does. It does not differentiate itself from the near-neighbour sibling number_words, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for dates, outlines and puzzles' gives loose context for when the tool applies, and 'Give either number or roman' implies the input-mode choice. There is no explicit when-not guidance and no named alternative among the many siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

number_wordsNumber to English words: write a number out in English wordsA
Read-only
Inspect

Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents when given a decimal amount. Use when amounts must be written out in full. Example: number=1234.5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberYesThe number, decimals allowed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint=false, and the description reinforces this with 'Reads or computes only and changes nothing'. It goes beyond structured data by disclosing the billing model ($0.01/call via x402 or card key, first 25 free, failed calls free) and explains why repeats cost again, which clarifies the non-idempotent hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core behavior and example before the pricing/immutability notes, and every sentence carries information. The pricing clause is somewhat dense but is genuinely decision-relevant for an agent, so it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

One required parameter, no output schema, and the description covers both return shapes (words, and the cheque form with cents), input limits, and the cost model. Nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% ('The number, decimals allowed'), so baseline is 3, but the description adds real constraints: the trillions ceiling, negatives permitted, and that a decimal input yields the 'and' cents cheque form. That is meaningfully more than the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Write a whole number ... out in English words') and pins down scope with 'up to trillions, negatives allowed' plus the cheque-form variant for decimals. Combined with the sibling list (number_roman is the adjacent tool) the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use when amounts must be written out in full' gives a clear trigger context plus a worked example (number=1234.5). It stops short of naming when-not-to-use or an alternative (e.g. number_roman), so it 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.

op_allowanceToken allowance, Optimism ERC-20A
Read-only
Inspect

ERC-20 token allowance on Optimism: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use op_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ownerYes0x wallet that gave the approval
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address
spenderYes0x contract or wallet allowed to spend (the example is Uniswap Permit2)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/destructive annotations it discloses pricing ($0.01/call via x402, first 25 free, failed calls free), error semantics (404 for missing contract, 422 for non-ERC-20, both uncharged), and clarifies that repeats are billed — directly explaining the idempotentHint=false flag in practical terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every sentence carries information, but the pricing/billing clauses are packed into a dense multi-clause sentence that could be trimmed or split without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Only three fully-specified parameters, no output schema, and the description still covers the return shape, error behavior, cost model, and a sibling alternative — nothing an agent needs in order 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.

Parameters4/5

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 meaning beyond the schema by explaining that the token parameter accepts a ticker or 0x contract and what each failure mode (404/422) maps to. Owner and spender semantics are largely restated from the schema, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: ERC-20 allowance on Optimism, plus what is returned (raw and token units, unlimited flag). It explicitly distinguishes itself from the sibling op_token_balance, so an agent can separate the two 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use cases ('check an approval before a swap or to audit risky open approvals') and names the alternative for a different need ('for the owner's balance use op_token_balance'). Routing is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_balanceOptimism native balanceA
Read-only
Inspect

Native ETH balance (eth_getBalance) of any 0x wallet address on Optimism at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use op_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet or contract address

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds real context the annotations don't carry: pricing per call ($0.01 x402 USDC or card key, first 25 free), that failed calls are free, that malformed addresses return 400 uncharged, and that repeats are billed. The 'nothing is changed' statement is redundant with readOnlyHint but harmless. It stops short of describing response shape or rate limits beyond the per-call charge.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool returns and where, then usage routing, then operational facts. Dense but each sentence earns its place; the pricing/payment clause is the one segment that could be trimmed for a reader who already knows the platform's billing model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Single-parameter read tool with no output schema: the description covers what is returned, in what units, on which chain, at which block, how to choose it over siblings, and how errors and billing behave. There is nothing an agent needs in order to invoke it correctly that is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already documented, so the baseline is 3. The description adds an inline example address and motivates the format ('0x wallet address', malformed rejected with 400), which gives the agent slightly more than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific resource (native ETH balance of a 0x address on Optimism at the latest block), the underlying method (eth_getBalance), and the returned units (wei and ETH). It explicitly distinguishes itself from op_token_balance and wallet_portfolio, so an agent can route correctly without opening the sibling schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete when-to-use condition (checking whether a wallet can pay gas or a transfer) and names two alternatives with the conditions that select them: op_token_balance for ERC-20s and wallet_portfolio for all holdings. Nothing about tool selection 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.

op_blockBlock number, OptimismA
Read-only
Inspect

Latest block number and block details on Optimism, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use op_gas. A block that does not exist yet returns 404, uncharged. Example: number=latest. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberNoBlock number, or 'latest' (default)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, destructive=false, and openWorld=true; the description adds a 404-on-missing-block behavior, the uncharged failure path, and repeat-call billing that explains the non-idempotent hint. These are useful, but much of the remaining text is pricing boilerplate rather than further behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and field list are front-loaded before usage, error, and pricing notes. It is denser than strictly necessary — the x402/card-key payment sentence is long — but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

One optional parameter, no output schema, no nesting: the description compensates by listing the returned fields, documenting the missing-block case, and noting billing. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents 'latest' as default, so this is a baseline-3 case. The description adds genuine value by clarifying the input is a decimal block number (ruling out hex) and supplying a concrete example 'number=latest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Latest block number and block details on Optimism') and enumerates the payload fields (hash, timestamp, tx count, gas used/limit, base fee, producer). It is clearly distinguishable from op_gas within the op_* family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the use cases ('timestamps and confirmation counts') and routes fee lookups to the sibling: 'for current fees use op_gas'. Both the when and the when-not are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_callEth call, Optimism contract callA
Read-only
Inspect

Read-only contract call on Optimism (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. Example: to=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85, data=0x18160ddd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x contract address to call
dataYes0x ABI-encoded calldata: 4-byte selector plus arguments
fromNoOptional 0x sender address for calls that check msg.sender

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: 8 KB calldata cap, revert behavior (422 with reason, uncharged), required ABI decoding of the result, and the per-call $0.01 pricing with 25 free calls. The pricing note usefully explains the idempotentHint=false annotation — repeats cost money.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core operation and the main usage rule before pricing and error details. Slightly dense with parenthetical details and pricing, 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly explains that the return is raw return data requiring ABI decoding, and covers failure mode and cost. For a low-parameter passthrough tool, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so `to`, `data`, and `from` are already documented; the description mostly restates the ABI-encoded calldata requirement. The worked example (to=0x0b2C..., data=0x18160ddd) adds modest concrete value but no new semantics for the optional `from` parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — read-only eth_call on Optimism — with the scope (latest block, no transaction, raw return data). It is clearly distinguishable from the many sibling *_call tools (eth_call, base_call, arb_call, polygon_call) by naming the chain, and from dedicated read tools like op_token_balance by framing it as the generic escape hatch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it for view functions that have no dedicated tool, and the example shows the concrete case (USDC totalSupply). It does not explicitly state when to prefer a sibling like op_token_balance or how it differs from eth_call when a user is ambiguous about chain, but the positive guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openapi_summaryOpenAPI spec summary: operations, auth and serversA
Read-only
Inspect

Read an OpenAPI 3 or Swagger 2 document (JSON or YAML, up to 2 MB) from a URL and summarise it for an agent: title, version, description, servers, auth schemes, operation count by method, tags, which operations are paid (402 or x-payment-info) or deprecated, and up to 150 operations with method, path, summary and operationId. Use before calling an unfamiliar API, to pick an endpoint, or to compare APIs. Example: url=https://petstore3.swagger.io/api/v3/openapi.json. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesURL of the OpenAPI or Swagger document

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: a 2 MB size limit, JSON-or-YAML acceptance, per-call pricing (first 25 free, failed calls free), and an explicit 'each call is charged, so repeats are not free' that explains the non-idempotent, costly nature of retries. Also restates the read-only/no-mutation guarantee consistently with readOnlyHint and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the returned fields, then usage, then an example, then commercial terms. The pricing/permission sentence is long but earns its place because it explains retry cost. Slightly dense as a single paragraph, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description effectively specifies the return payload field-by-field, including the 150-operation truncation cap — the key detail an agent needs to avoid assuming a full listing. Coverage limit, auth/payment route, and safety profile are all present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `url` parameter is documented there. The description still contributes format and constraint meaning ('JSON or YAML, up to 2 MB' and a concrete example value) that the schema does not carry, though it does not say what happens for non-OpenAPI URLs or unreachable hosts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read ... and summarise') and resource (OpenAPI 3 / Swagger 2 document), then enumerates the exact fields returned (title, version, servers, auth schemes, operation counts, paid/deprecated flags, up to 150 operations with method/path/summary/operationId). No sibling tool does this, and the scope is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger conditions: 'Use before calling an unfamiliar API, to pick an endpoint, or to compare APIs', plus a worked example URL. It stops short of naming when NOT to use it or a specific alternative, but no sibling overlaps meaningfully.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_estimate_gasEstimate gas, OptimismA
Read-only
Inspect

Estimate the gas a transaction would use on Optimism (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and ETH. Give to, plus value in ETH and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use op_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x recipient or contract address
dataNoOptional 0x calldata for a contract call
fromNo0x sender address (default: an empty address)
valueNoAmount of ETH to send, in ETH (default 0)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: 422-with-reason for reverting transactions, no charge on failure, per-call pricing, and the warning that repeats are not free (which explains the idempotentHint=false annotation). The only shortfall is that the revert/pricing detail is embedded in a dense run-on rather than clearly separated from estimation semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then usage routing, then params, then pricing — a sensible order with no filler about the tool's importance. Slightly overpacked (pricing promo sentence plus example), but every sentence carries usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Though there is no output schema, the description states the return shape in gas units, gwei and ETH, covers the error path (422 with reason), and discloses cost and safety characteristics. An agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic value beyond it: value is denominated in ETH, calldata is for a contract call, and 'from' matters only when the call depends on the sender. That is meaning the schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Estimate the gas a transaction would use on Optimism') plus the underlying RPC (eth_estimateGas), and explicitly distinguishes itself from the sibling op_gas. It also states the output dimensions (gas units, gwei, ETH), so an agent knows exactly what it gets back.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('before sending a transaction or to price a batch') and an explicit alternative with the selecting condition ('for the gas price alone use op_gas'). Nothing about routing to the sibling 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.

op_gasOptimism gas priceA
Read-only
Inspect

Current gas price on Optimism (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain ETH transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use op_receipt. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile, but the description adds non-obvious behavior: it reads/computes only, takes no required input, and — critically — explains that idempotentHint=false means each call is billed ($0.01/call, 25 free, failed calls free), so repeats are not free. That billing semantics is exactly the context an agent needs before retrying.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and return values, and every clause is substantive. The closing pricing/retry sentence is a bit dense but earns its place given idempotentHint=false.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description enumerates the return fields and the derived transfer cost, plus billing and free-tier rules. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the schema already documents the optional `only` projection parameter, so baseline 3 applies. However, the description's blanket "Takes no input" is at odds with a documented optional parameter and could cause an agent to omit `only` for smaller/cheaper answers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Current gas price on Optimism") and enumerates the returned fields: gas price, base fee, suggested priority fee, and the 21,000-gas transfer cost. It also explicitly routes the past-fee case to op_receipt, so an agent can separate it from sibling tools 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use before sending a transaction or to decide whether to wait" gives an explicit when-to-use, and "for the fee a past transaction actually paid use op_receipt" names an alternative with the condition that selects it. Exclusions are stated, not implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_gas_historyGas history, Optimism gas priceA
Read-only
Inspect

Gas price history on Optimism (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use op_gas. Example: blocks=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks, 5-100 (default 20)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, non-destructive, open-world profile, and the description adds cost behavior the annotations cannot express: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and that repeats are not free because each call is charged. It also reaffirms 'reads or computes only and changes nothing', which aligns with readOnlyHint and explains the non-idempotent cost model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and return contents, then usage, then pricing. Dense and mostly waste-free, though the range/default is repeated verbatim from the schema and the payment details run slightly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description enumerates the returned shape (per-block base fee, fullness, priority fee percentiles, plus window-level low/avg/high), which is exactly what an agent needs to interpret results. For a one-parameter read tool, nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single blocks parameter is already documented as 5-100 with default 20 in the schema. The description restates that range and default and adds an example (blocks=20), which is mildly reinforcing but not new semantics. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (gas price history on Optimism via eth_feeHistory) and enumerates the exact contents: base fee in gwei, block fullness, 10th/50th/90th percentile priority fees, and low/avg/high base fee. It explicitly distinguishes itself from sibling op_gas for the current price, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use cases (judge whether fees are rising, pick a priority fee, time a transaction) and names the alternative (op_gas) with the condition that selects it (current price alone). Nothing 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.

op_is_contractOptimism contract checkA
Read-only
Inspect

Check whether a 0x address on Optimism is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive false, and the description adds substantial context beyond them: error semantics (malformed address returns 400 and is uncharged), pricing model ($0.01/call, first 25 free, failed calls free), and the note that repeats are not free — which explains why idempotentHint is false despite the read-only nature. It also confirms it only reads/computes and mutates nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core check, then usage, then error/pricing details — a logical ordering with no filler. The final sentence packs statelessness and per-call charging into two dense clauses; it earns its place but is the tightest place to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still enumerates what is returned (bytecode size, minimal-proxy flag, implementation address), plus error and cost behavior. For a single-parameter read tool, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is trivially documented, so the baseline is 3. The description goes slightly further by giving a concrete example address and specifying rejection behavior for malformed input, which adds meaning beyond the schema's '0x address'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb+resource ('Check whether a 0x address on Optimism is a smart contract or a plain wallet') with the added scope of bytecode size and EIP-1167 proxy/implementation detection. This clearly distinguishes it from the sibling is_contract tools on other chains and from op_proxy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the decision it supports ('Use before sending funds or approving a spender') and names a superseding alternative ('for a fuller risk verdict use check_counterparty'). The condition selecting the alternative is explicit, so nothing 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.

op_logsOptimism recent event logsA
Read-only
Inspect

Recent contract event logs on Optimism (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use op_receipt. Example: address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks to scan (1-1000, default 50)
topic0NoOptional 0x event signature hash to filter by
addressYes0x contract address

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/openWorld/destructive, but the description contributes information not in them: cost per call, the first-25-free quota, failed calls being free, and the 100-log result cap with returned fields. This is real added context on rate/cost behavior; only a lack of pagination or empty-result behavior keeps it from the top.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, range, filter, return shape, alternatives, and pricing are front-loaded in an efficient paragraph, with a useful example address. Slight redundancy in restating cost twice ("$0.01/call … failed calls free" then "each call is charged, so repeats are not free") costs it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description explains the return payload (up to 100 logs with block, transaction hash, topics) and the filtering semantics, so an agent knows what it will get. Combined with cost and alternative-routing guidance, nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters, including defaults and ranges. The description adds only one detail beyond it (topic0 is 0x 32-byte), so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Recent contract event logs on Optimism (eth_getLogs)") plus scope (last N blocks, topic0 filter), and explicitly distinguishes itself from op_receipt for single-transaction outcomes. The chain prefix and RPC method name make it unambiguous against the many sibling *_logs tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a positive use case ("watch transfers or contract events") and names the alternative with the condition that selects it ("for one transaction's outcome use op_receipt"). It also flags that repeated calls are not free, which affects how an agent should batch or cache.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_nft_balanceNFT balance, OptimismA
Read-only
Inspect

How many NFTs of one ERC-721 collection a wallet holds on Optimism (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use op_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address
contractYes0x ERC-721 collection contract address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses failure semantics (404/422, both uncharged), billing behavior ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and the fact that repeats cost money again — which explains the otherwise surprising idempotentHint=false. It also confirms read-only, consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph with purpose front-loaded, followed by alternatives, error codes and pricing. Every clause carries information, though the pricing/billing run-on is heavy enough that it slightly crowds the core call semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-address read tool with no output schema, the description covers inputs, chain, return contents (balance plus collection name and symbol), error behavior, cost and safety. Nothing an agent needs in order 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.

Parameters3/5

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 in the schema. The description only restates that both inputs are 0x addresses and that the contract must be an ERC-721 collection, adding little beyond the structured field descriptions. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource, standard and chain: count of NFTs from one ERC-721 collection held by a wallet on Optimism via balanceOf, plus the name/symbol returned. It explicitly differentiates from the sibling op_nft_owner ('for who holds one token id use op_nft_owner'), so the agent can choose 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use cases (pre-token-gated-action holder check, verifying a wallet still holds a collection) and names the alternative tool with the condition that selects it. It also supplies when-not conditions in the form of error outcomes (404 for missing contract, 422 for non-ERC-721).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_nft_metadataNFT metadata, OptimismA
Read-only
Inspect

NFT metadata on Optimism: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use op_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, the description discloses resolution sources (data: URIs, https, ipfs:// via ipfs.io), truncation of strings over 1,000 characters such as on-chain SVGs, the 422-uncharged failure mode, metadataError reporting, and the charging model ($0.01/call, first 25 free, failed calls free). "Each call is charged, so repeats are not free" explains the idempotentHint=false rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the operation and semantics, then alternatives, then edge cases, then pricing — a logical order. The pricing/credits clause is longer than strictly needed for tool selection, which keeps it off a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return burden and does: it enumerates the returned fields, describes transformation of long strings, and defines both failure shapes (422 vs metadataError). Nothing an agent needs to call or interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes modestly further by tying tokenURI lookups to "one ERC-721 token id" and supplying a concrete worked example (contract=0xC364...FE88, tokenId=1) that clarifies address/id formatting. It does not add new constraints beyond the schema's "whole number" and 0x-address notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: reads the tokenURI of one ERC-721 token id on Optimism and the JSON it resolves to (name, description, image, attributes). It also names the adjacent sibling it is not (op_nft_owner), so an agent can pick it 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to show or check what an NFT is; for its owner use op_nft_owner" gives explicit when-to-use plus a named alternative with the condition that selects it. Error-path guidance (non-existent token = 422 uncharged, unreachable metadata surfaces in metadataError) further tells the agent what to expect at failure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_nft_ownerNFT owner, OptimismA
Read-only
Inspect

Owner of an NFT on Optimism: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use op_nft_balance, for the token's metadata op_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-idempotent, and the description adds substantial new context: 404 for a missing contract, 422 for a nonexistent token, both uncharged, $0.01/call via x402 or card key, first 25 free, failed calls free, and an explicit warning that repeats are billed. That is exactly the cost and failure behavior 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then alternatives, then error semantics, then pricing. Dense but nearly every clause carries new information; the closing pricing sentence stacks several facts and could be split for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by naming what is returned: the owner address plus the collection's name and symbol. Combined with error codes, pricing, and exclusions, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented; the description still adds a concrete worked example with a real contract address and tokenId, plus the clarification that tokenId is a whole number identifying one ERC-721 token. Useful but not beyond what a strong schema plus example can convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Owner of an NFT on Optimism: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol" names the specific verb, resource, chain, and the exact on-chain call used. It is unmistakably distinct from the sibling metadata and balance tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the intended use case (verify holder before a trade, mint gate, airdrop) and explicitly routes to siblings with conditions: "for how many a wallet holds use op_nft_balance, for the token's metadata op_nft_metadata." Nothing 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.

op_nonceOptimism account nonceA
Read-only
Inspect

Read the transaction count (nonce) of a 0x address on Optimism, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use op_balance. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and notably idempotentHint=false. The description earns credit by explaining that non-idempotence is a billing/counting matter ('each call is charged, so repeats are not free') and by adding the confirmed-vs-pending data scope and the 400-uncharged error behavior. However, the pricing boilerplate ($0.01/call, x402 USDC, card key, first 25 free) is commercial rather than behavioral context for invoking the tool correctly, which keeps this from the top of the scale.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the disambiguation from op_balance are front-loaded where they matter most. The tail is dense with pricing detail that could be trimmed for an agent-facing definition, but nearly every clause carries a distinct fact rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description covers purpose, return semantics (confirmed plus pending count), failure mode, side-effect profile and cost model. Nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required parameter, so the baseline is 3. The description goes beyond it with a real example value ('0xd8dA...6045') and by specifying what happens on an invalid input ('A malformed address is rejected with 400, uncharged'), which the schema's bare '0x address' does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read the transaction count (nonce) of a 0x address on Optimism') plus the scope distinction of confirmed vs. pending. The chain-specific name op_nonce is reinforced and the sibling op_balance is named as the different tool, so an agent can separate it from the other *nonce tools 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases ('build the next transaction', 'tell whether an address has ever sent anything') and an explicit alternative with its own condition ('for its balance use op_balance'). No inference required about when this is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_proxyProxy implementation, OptimismA
Read-only
Inspect

Find the implementation behind a proxy contract on Optimism: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. Example: address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x contract address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses error semantics (400 malformed, 404 no code, both uncharged), pricing ($0.01/call, first 25 free, failures free), and that repeats are not free — which explains the idempotentHint=false rather than contradicting it. It also restates the no-state-change property of a read/compute tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then alternative, then failure modes and cost — a sound order with little filler. It is dense (pricing plus error codes plus mechanism list in a few sentences) and could be tightened, but every clause carries operational value for an agent deciding to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, annotated, no-output-schema tool, the description covers what is returned (the implementation and the kind found), when to use it, what failure responses look like, and what it costs. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema coverage is 100% ('0x contract address'); the description adds an example address confirming the expected format but no syntax or constraint details beyond what the schema already conveys. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('find the implementation behind a proxy contract on Optimism') and enumerates the detection mechanisms (EIP-1967, beacon, admin, UUPS/EIP-1822, OZ layout, EIP-1167). The chain prefix in the name is reinforced in prose, so it is clearly distinguishable from eth_proxy/arb_proxy/base_proxy/polygon_proxy siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use ('before trusting or decoding a contract whose code can be swapped by its admin') and names the escalation path ('for a fuller risk verdict use contract_risk'). Nothing is left to inference about the decision boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_receiptOptimism transaction receiptA
Read-only
Inspect

Transaction receipt on Optimism (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in ETH, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use op_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. Example: hash=0x721f3e9a996da49e2a8929bd2dd42e0f51344c11d7ca7bc3328fda349cdfae89. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare read-only, open-world, non-idempotent, non-destructive; the description adds the billing model ($0.01/call, 25 free, failed calls free, repeats charged), which explains and is consistent with idempotentHint=false. It also discloses the miss path (404, uncharged) and restates the no-side-effects guarantee.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and its payload, then the alternative, then input/error semantics, then cost. Dense but every clause carries decision-relevant information for an agent that will be charged per call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating the receipt fields returned. For a single-parameter, read-only, billed tool, nothing an agent needs to call it correctly or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already documented, so the baseline is 3; the description goes further by supplying a concrete example hash and tying hash validity to the 404 outcome. It stops short of explaining hash casing or malformed-input behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource — fetch an Optimism transaction receipt — and immediately enumerates the returned facts (status, gas used, effective gas price, fee in ETH, log count, contract created). It also names the sibling it is not (op_tx) with the payload it does not cover, so an agent can separate the two 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ("confirm a payment or call went through") and an explicit alternative with the condition that selects it ("for sender, value and calldata use op_tx"). Pending/unknown hashes are routed to a defined outcome (404) rather than left ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_storageStorage slot read, OptimismA
Read-only
Inspect

Read one raw storage slot of a contract on Optimism (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use op_proxy. A malformed address or slot is rejected with 400, uncharged. Example: address=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
slotNoSlot: a decimal index (0, 1, 2…) or a 0x 32-byte key
addressYes0x contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: malformed address or slot yields a 400 and is uncharged, pricing is $0.01/call with first 25 free and failed calls free, and repeats are billed — which explains the otherwise puzzling idempotentHint=false. It also confirms read-only semantics ('reads or computes only and changes nothing'), consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return shape are front-loaded, followed by usage routing, error behavior, and cost. Slightly overstuffed at the end: the payment-channel detail ('x402 USDC or a card key (/credits)') and the restated charging note ('each call is charged, so repeats are not free') partially repeat the same fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter, annotation-covered read with no output schema, the description covers purpose, input formats, return value, error behavior, and cost. 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.

Parameters4/5

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 meaning by clarifying that the slot can be a mapping or proxy slot as well as a plain index, and supplies a concrete address example. It stops short of explaining what happens when the slot is empty or how the word is formatted numerically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource+chain: 'Read one raw storage slot of a contract on Optimism (eth_getStorageAt)', and states the return shape (32-byte word as number, and as address when applicable). This clearly separates it from siblings like op_call and op_proxy without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('inspect contract state that has no getter, owners or implementation pointers') and names the alternative for the adjacent case ('for proxies use op_proxy'). Also explains the two accepted slot encodings, so an agent knows what inputs are valid before invoking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_token_balanceOptimism ERC-20 balanceA
Read-only
Inspect

ERC-20 token balance of a wallet on Optimism (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use op_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: no-contract returns 404, non-ERC-20 contract returns 422, both uncharged; pricing is $0.01/call via x402 USDC or card key, first 25 free, failed calls free. The "each call is charged, so repeats are not free" note is consistent with idempotentHint=false and warns about metered repetition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and scope, then folds error codes, pricing and the native-coin alternative into two dense sentences. Slightly over-packed, and "Reads or computes only and changes nothing" restates readOnlyHint/destructiveHint, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still enumerates the return shape (raw amount, decimals, symbol, human-readable amount), plus failure modes and cost. For a 2-parameter read tool this covers everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented; the description adds the balanceOf source and return fields but little about the inputs. The line "Both inputs are 0x addresses (40 hex characters)" is imprecise for `token`, which the schema and the opening sentence both say accepts a ticker such as USDC — a minor contradiction the agent must resolve from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource+chain: ERC-20 balance of a wallet on Optimism, sourced via balanceOf from the token contract. It explicitly separates itself from the sibling op_balance (native coin) and implicitly from op_token_info/op_allowance, so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete when-to-use ("check stablecoin or token holdings before a transfer or trade") and an explicit when-not with the named alternative ("for the native coin use op_balance"). That is exactly the routing information an agent needs among this large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_token_infoOptimism ERC-20 token infoA
Read-only
Inspect

Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Optimism, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use op_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. Example: token=0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false. The description adds real value beyond that: pricing ($0.01/call, first 25 free, failed calls free), the 422 uncharged failure mode, and confirmation that calls are billed so repeats are not free — consistent with idempotentHint=false. However, it does not describe the return shape (e.g. how decimals/supply are formatted) or ticker-resolution behavior, which limits it to solid-but-not-rich disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the sibling routing, then supporting detail. It is somewhat dense with pricing/billing sentences that could be trimmed, but each sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by naming exactly what is returned (name, symbol, decimals, total supply). Combined with the input clarification, failure mode, and billing context, 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.

Parameters4/5

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: it clarifies that a ticker or a 0x address is accepted, supplies a concrete example address, and explains the rejection behavior for non-ERC-20 addresses. That extra context on the single parameter's accepted forms justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: look up name, symbol, decimals and total supply of an ERC-20 contract on Optimism, live from chain. It explicitly routes away from the nearest sibling ('for a holder's balance use op_token_balance'), so an agent can distinguish op_token_info from op_token_balance and the other op_* tools without reading a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('identify an unknown token address or to format raw amounts') and an explicit exclusion with the named alternative for holder balances. It also states what happens on invalid input (non-ERC-20 address returns 422, uncharged), covering when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_token_transfersToken transfers, OptimismA
Read-only
Inspect

List a wallet's recent transfers of one ERC-20 token (default USDC) on Optimism, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use op_token_balance. Malformed addresses are rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenNoToken: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network)
blocksNoHow many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Optimism)
addressYes0x wallet address

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description still adds real context beyond them: per-call pricing ($0.01 via x402 or card key), a 25-call free tier, failed calls free, malformed addresses rejected with 400 and uncharged, and a 50-result cap ordered newest first. The note that repeats are not free is consistent with idempotentHint=false rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded in the first clause, followed by usage routing, then error and pricing details. It is a single dense paragraph where nearly every clause carries information, though the pricing/free-tier detail crowds the block and slightly dilutes the core instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description responsibly names the returned fields (direction, counterparty, amount, transaction), the ordering (newest first), and the 50-row cap. Combined with annotations and a fully described schema, an agent has everything needed to call it correctly; only result pagination/truncation semantics are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both optional parameters already document their defaults and the 1-2,000 block range in detail. The description largely restates those defaults; the only added value is an example 0x address demonstrating expected format. Baseline 3 is appropriate when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a wallet's recent transfers of one ERC-20 token ... on Optimism, in and out'), including the scope (last N blocks), default token, and max results. An agent can distinguish it immediately from op_token_balance and from the per-chain variants like eth_token_transfers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('confirm a payment arrived or see what was sent') and names the alternative with its condition ('for the current balance use op_token_balance'). The exclusion is explicit, so the agent does not have to infer which sibling to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

op_txOptimism transactionA
Read-only
Inspect

Look up an Optimism transaction by hash: sender, recipient, value in ETH, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use op_receipt, for emitted events op_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. Example: hash=0x721f3e9a996da49e2a8929bd2dd42e0f51344c11d7ca7bc3328fda349cdfae89. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: states that an unknown hash returns 404 uncharged, that failed calls are free, that pricing is $0.01/call via x402 USDC or a card key with the first 25 free, and that repeated calls are not free — the latter explaining the idempotentHint=false in billing terms. It also confirms the read-only profile ("reads or computes only and changes nothing"), consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return fields, then alternatives, then input format, then commercial terms — good ordering. It is slightly overpacked for one paragraph, and the charging model is stated twice ("Price $0.01/call... failed calls free" and "each call is charged, so repeats are not free"), which is the only waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden and does so by listing the returned fields. Combined with error behavior, cost model, and input format for a single-parameter tool, an agent has everything needed to call it correctly and predict the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds a concrete format constraint and a full worked example hash, plus the 404-on-miss behavior for an unknown value. It does not add anything about normalization or case sensitivity, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ("Look up an Optimism transaction by hash") and enumerates exactly what comes back: sender, recipient, value in ETH, nonce, gas limit, 4-byte function selector, block. It also explicitly separates itself from op_receipt and op_logs, so the agent can distinguish it from its closest siblings 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives positive triggers ("see what was sent or whether it exists") and names two alternatives with the exact condition that selects each: op_receipt for success/failure and fees, op_logs for emitted events. Nothing is left to inference for the routing decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

packagePackage risk check: npm, PyPI, Cargo, Go, Maven or NuGet metadata and dependency-risk signals, latest or pinned versionA
Read-only
Inspect

Reports package existence, latest version and release, age, version count, npm weekly downloads, licenses, deprecation and known advisory severity. ok means no listed flags, not a safety guarantee. Supports npm, PyPI, Cargo, Go, Maven and NuGet. Optional exact version adds pinned-version metadata and uses deps.dev advisories; use /package-audit for OSV affected ranges and dated FIRST EPSS CVE estimates. Use before adding a dependency. Example: ecosystem=npm, name=lodash. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameYesExact package name, e.g. lodash or @scope/name
versionNoOptional exact version to inspect; ranges and tags are not accepted
ecosystemYesOne of npm, pypi, cargo, go, maven, nuget

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/destructiveHint annotations, it discloses pricing ($0.002/call, first 25 free, failed calls free), the fact that repeats are charged (explaining the non-idempotent hint), and a key semantic caveat: 'ok means no listed flags, not a safety guarantee.' It also states which advisory source is used per mode, which is material behavioral context an agent cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The return fields are front-loaded and the sibling routing and caveats follow logically, with every clause carrying information. It is dense and slightly overloaded by the pricing/billing sentence, but nothing is redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the returned signals and the meaning of the 'ok' status. Coverage of ecosystems, version modes, cost, and safety caveats is sufficient for an agent to call this correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: supplying an exact version switches to pinned-version metadata and deps.dev advisories, whereas the default covers latest-version signals. That consequence-level detail is genuinely useful, though the version-format constraint is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and enumerates exactly what is returned: existence, latest version, release date, age, version count, npm weekly downloads, licenses, deprecation, and advisory severity. It also scopes the supported ecosystems and explicitly distinguishes itself from the sibling package_audit, so an agent can route between them 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a direct usage rule ('Use before adding a dependency') and names the alternative with the condition that selects it ('use /package-audit for OSV affected ranges and dated FIRST EPSS CVE estimates'). It also supplies a concrete call example (ecosystem=npm, name=lodash), leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

package_auditDependency audit: up to 10 packages, exact-version advisories and fixesA
Read-only
Inspect

Check up to 10 public dependencies, optionally pinned to exact versions, for advisory IDs, OSV affected/fixed ranges and dated FIRST EPSS CVE estimates. Scoped npm names supported. Detail and subrequest caps apply; omitted details and incomplete coverage are explicit. Missing evidence is unknown, not zero risk. Automated signals, not a safety guarantee. See the buying guide for limits. Use before installing or upgrading dependencies. Example: packages=npm:lodash@4.17.20,pypi:requests@2.31.0,npm:@types/node@22.0.0. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
packagesYesComma-separated ecosystem:name items, optionally name@exact-version; max 10. For scoped npm, use npm:@scope/name@version.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/destructive annotations: discloses detail and subrequest caps, that omissions are explicit rather than silent, that missing evidence is 'unknown, not zero risk', that outputs are automated signals not a safety guarantee, and the full pricing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free). The 'each call is charged, so repeats are not free' line coherently explains the idempotentHint=false annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with capability, then caveats, then a usage trigger and example, then pricing — a sensible order. It is dense but most sentences carry real information; the pricing sentence is long and 'See the buying guide for limits' is a soft pointer that costs a little space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one parameter, no output schema, and open-world behavior, the description compensates well: it names the return fields (advisory IDs, affected/fixed ranges, EPSS), warns that coverage may be incomplete, and sets expectations that the tool is advisory-only. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is well documented, so the schema carries the format burden. The description still adds value with a concrete example ('packages=npm:lodash@4.17.20,pypi:requests@2.31.0,npm:@types/node@22.0.0') and the scoped-npm note, reinforcing the encoding an agent must produce.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check up to 10 public dependencies') and enumerates exactly what it returns: advisory IDs, OSV affected/fixed ranges, and dated FIRST EPSS CVE estimates. Scope limits (max 10, optional exact pins, scoped npm names) clearly separate it from generic sibling tools like package, pypi, or semver.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use before installing or upgrading dependencies' gives an explicit trigger context. However, no sibling alternative is named for the case where the agent only needs version/download metadata (e.g., package, npm_downloads, pypi), so the when-not guidance is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_api_healthAPI health check: uptime, latency, headers, x402A
Read-only
Inspect

One call to health-check an API endpoint: up or down with status and response time over three requests (min, median, max), the redirect chain, HTTP security headers, whether it is a paid x402 endpoint and what its payment terms are, and the API's OpenAPI document when one is found at the usual places. Cheaper than the tools bought one by one. Use for API monitoring, before integrating a third-party API, or to check your own after a deploy. Example: url=https://petstore3.swagger.io/api/v3/pet/findByStatus?status=available. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe API endpoint URL

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds material facts beyond the annotations: three requests per call with min/median/max aggregation, explicit per-call pricing ($0.01 via x402 USDC or card key, first 25 free, failed calls free), and the warning that every call is charged so repeats are not free — directly relevant given idempotentHint=false. 'Reads or computes only and changes nothing' restates readOnlyHint, but the cost model is genuinely new information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and return surface, then examples, then pricing. Dense but nearly every sentence carries signal; the safety restatement ('reads or computes only') and the slightly redundant price/free-tier phrasing cost it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description fully compensates by listing every returned artifact and the aggregation method. With one parameter, no auth ambiguity beyond the stated payment models, and cost behavior disclosed, an agent has everything needed to call it correctly and know the bill.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single required parameter with 100% schema coverage, so the baseline is already high. The description still adds value by showing a real example endpoint URL (including query string), which clarifies that a full URL with parameters is acceptable rather than a bare host.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ('health-check an API endpoint') followed by an explicit enumeration of what is returned: status, response time over three requests (min/median/max), redirect chain, security headers, x402 payment terms, and the OpenAPI document. This distinguishes it from the narrow siblings (http_status, url_uptime, url_redirects, http_security_headers, x402_check, openapi_summary) that each do one slice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete situations (API monitoring, pre-integration vetting, post-deploy check) and a worked example URL. 'Cheaper than the tools bought one by one' implicitly routes the agent away from the single-purpose siblings, but it never names them, so the agent must infer which alternatives this replaces.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_coin_researchCrypto research, coin brief: price, funding, depth, signalsA
Read-only
Inspect

One call to research a single coin traded on Hyperliquid (BTC, ETH, SOL, HYPE and about 200 more): price, 24-hour change, volume and open interest, the funding rate now and over the last 3 days, order-book depth and spread, technical readings on the 4-hour and daily charts (RSI, MACD, moving averages, Bollinger, volatility), and market-wide sentiment (Fear & Greed, attributed). Use before a trade or for a coin brief. Example: coin=ETH. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinNoCoin symbol such as BTC, ETH, SOL or HYPE (default BTC)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnlyHint annotation by disclosing cost ($0.01/call via x402 USDC or card key), a free tier (first 25), free failed calls, and that repeats are charged — which explains the idempotentHint=false. 'Reads or computes only and changes nothing' restates the safety profile rather than contradicting it, and covers Hyperliquid-only scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the returned data before cost detail, and every sentence carries usable information (scope, use case, example, pricing). The second sentence is a long comma-run list of indicators, which is dense but still scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by enumerating each data category the agent receives. Pricing, free tier, failure behavior and read-only nature are all stated, so nothing an agent needs before calling is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents the single 'coin' param including its default of BTC. The description only adds an example value (coin=ETH) and the note that ~200 symbols beyond BTC/ETH/SOL/HYPE exist, which is marginal beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource + scope: 'research a single coin traded on Hyperliquid' with an explicit enumeration of the returned data (price, OI, funding, depth, 4h/daily technicals, sentiment). It is clearly an aggregator of the hyperliquid_* siblings, but it never names them, so the distinction from hyperliquid_market / hyperliquid_indicators / pack_crypto_market must be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a use case ('Use before a trade or for a coin brief') and an example ('coin=ETH'), which is enough to know when it fits. But it offers no when-not guidance and never contrasts with the dozens of single-purpose hyperliquid_* or pack_* siblings an agent must choose between.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_crypto_marketCrypto market overview: sentiment, prices, funding and signalsA
Read-only
Inspect

Market sentiment, prices and signals in one call: the Fear & Greed index with its 7-day change (alternative.me, attributed), the 10 most traded Hyperliquid perpetuals with price, 24-hour change, funding and open interest, technical readings (RSI, MACD, moving averages) for up to three coins, and Bitcoin fee rates. Cheaper than the five tools bought one by one. Use for a daily market brief, a trading agent's context or a dashboard. Example: coins=BTC,ETH,SOL. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
coinsNoUp to 3 coins for technical readings, comma separated (default BTC,ETH,SOL)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, yet the description adds real value beyond them: it confirms nothing is mutated ("Reads or computes only and changes nothing"), explains why repeats are non-idempotent ("each call is charged, so repeats are not free"), and details billing mechanics (x402 USDC or card key via /credits, first 25 free, failed calls free). It also attributes the Fear & Greed data source, which no annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with capability and contents, then use cases, then a concrete example, then pricing and safety notes – a sensible ordering. The pricing/payment clause is long and slightly crowds the tail, but every element (contents, cost comparison, billing, read-only guarantee) is decision-relevant for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates fully by enumerating every returned field group (sentiment index plus delta, perp price/change/funding/OI, indicator set, BTC fees) and even the data source. Cost, payment paths, free-tier behavior and the read-only guarantee are all present, leaving nothing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single param is already documented as "up to 3 coins, comma separated, default BTC,ETH,SOL". The description reinforces this by tying the coins param to the technical readings it controls and giving a concrete invocation example (coins=BTC,ETH,SOL), adding modest practical value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (crypto market overview) and enumerates the exact contents: Fear & Greed with 7-day change, 10 Hyperliquid perps with price/24h change/funding/OI, RSI/MACD/moving averages for up to three coins, and BTC fee rates. This clearly differentiates it from atomic siblings like crypto_fear_greed, hyperliquid_prices, hyperliquid_indicators and btc_fees that it bundles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states intended use cases (daily market brief, trading agent context, dashboard) and positions itself versus alternatives with "Cheaper than the five tools bought one by one", so the agent knows to prefer this over individual calls. However, it never names those sibling tools, so the agent must infer which ones it replaces.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_domain_intelDomain intelligence, enrichment: who runs a domain and on whatA
Read-only
Inspect

Company enrichment in one call for any domain: the site's name, description and logo, its tech stack (CMS, frameworks, analytics, hosting), email provider and email security (SPF, DMARC), who hosts the server (IP registry holder), DNS records, and the domain's registrar, age and expiry. Public DNS, RDAP and the home page only. Use for lead enrichment, company research, vendor checks or sales prospecting. Example: domain=stripe.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
domainYesCompany domain such as stripe.com (or a URL; its host is used)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-idempotent, but the description adds genuinely new operational context: data provenance ('public DNS, RDAP and the home page only'), pricing ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and the key consequence that each repeat call is billed, which is exactly why idempotentHint=false matters here. This is behavior an agent cannot derive from the 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The output inventory is front-loaded in the first sentence and the cost/safety caveats are packed into the tail, so the important facts land early. The middle enumeration is dense and long but each item describes an actual returned field, so nothing is clearly padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no sibling differentiation available from annotations, the description carries the full burden and does: it lists the returned data, the data sources, the billing model, and confirms no side effects. An agent can decide to call it and predict the cost and result shape without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents that a URL is accepted and its host used, so the baseline is 3. The description adds only a light example ('domain=stripe.com') and the phrase 'any domain', which adds marginal clarity rather than new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete capability ('Company enrichment in one call for any domain') and enumerates the exact data returned: site name/description/logo, tech stack, email provider and SPF/DMARC, hosting IP holder, DNS records, registrar, age, expiry. An agent knows precisely what comes back, which matters since there is no output schema. It does not distinguish itself from overlapping siblings such as domain_report, dns_lookup or company, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names concrete use cases ('lead enrichment, company research, vendor checks or sales prospecting') and supplies a worked example (domain=stripe.com). However it gives no exclusions and no routing advice against the many similar siblings (domain_report, dns_lookup, pack_website_audit), leaving the agent to guess when this bundle is preferable to a single-purpose lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_email_deliverabilityEmail deliverability check: MX, SPF, DMARC, DKIM and scoreA
Read-only
Inspect

One call to check a domain's email setup: MX records, SPF and its all-policy, DMARC and its policy, DKIM keys at the common selectors (Google, Microsoft, Mailchimp and others), MTA-STS, TLS-RPT and BIMI, with a 0-100 score, a grade and a list of fixes; optionally also checks one address (syntax, MX, disposable domain). Uses public DNS only and sends no mail. Use before a campaign, when mail lands in spam, or to vet a sender domain. Example: domain=github.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
emailNoOptional address to check as well
domainYesThe sending domain, such as example.com (or a URL; its host is used)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: public DNS only, sends no mail, changes nothing, failed calls are free, and it explains the non-idempotent/costly nature explicitly ('each call is charged, so repeats are not free'). Pricing mechanics ($0.01/call via x402 USDC or card key, first 25 free) are disclosed up front, which is exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then scope, then use cases, then pricing — a sensible order. It is a single dense paragraph, and the pricing/licensing details occupy roughly a third of the text, which is justified by the cost model but makes it heavier than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still describes the return shape (0-100 score, grade, list of fixes, optional address sub-check) and covers cost, safety and prerequisites. An agent has everything needed to decide and call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3; the description adds real value by saying what the optional email parameter actually validates (syntax, MX, disposable domain) rather than just 'an address to check'. The domain parameter's URL-tolerance is repeated from the schema rather than extended, keeping it below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('check a domain's email setup') and then enumerates exactly what is inspected: MX, SPF with all-policy, DMARC with policy, DKIM at named selectors, MTA-STS, TLS-RPT, BIMI, plus a 0-100 score and grade. This clearly separates it from generic siblings like dns_lookup, domain_report or pack_domain_intel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggering situations: 'Use before a campaign, when mail lands in spam, or to vet a sender domain,' plus a worked example (domain=github.com). It stops short of naming an alternative tool or an explicit when-not-to-use case, so it is clear context rather than a full routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_encoding_toolboxEncoding toolbox: Base64, hex, URL, HTML and UnicodeA
Read-only
Inspect

Every common encoding of one text in a single call: Base64 and Base64url, hex, URL component and full-URL encoding, HTML-escaped, ROT13, Unicode code points, UTF-8 byte count and Punycode for international domain names, plus automatic decoding when the input already looks like Base64, hex, URL or HTML encoding. Use to prepare data for headers, URLs and markup, or to work out what an encoded string says. Example: text=Café & . Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text (up to 20,000 characters)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint, so the description's 'reads or computes only and changes nothing' mostly restates them. It does add genuinely non-schema behavior: automatic decoding when input already looks encoded, and per-call charging (first 25 free, failed calls free) which explains the idempotentHint=false cost implication. The lack of any statement about what the response looks like 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability list and use case are front-loaded and every clause names a distinct format, so the long first sentence is dense rather than padded. The trailing pricing sentence is transactional necessity rather than description value, and the 'reads or computes only' clause is mild redundancy against the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema tool this covers inputs, formats produced and billing well enough to call correctly. What is missing is how the result is shaped — whether all encodings are returned together or only those relevant to the input, and how the auto-decode path is signalled — which an agent would need to interpret the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the single 'text' parameter is already documented, including the 20,000-character limit, so the schema carries the load. The description nonetheless adds value by supplying a realistic sample value ('Café & <tags>') that shows the tool expects arbitrary mixed text rather than pre-encoded input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ('every common encoding of one text in a single call') and enumerates the exact formats produced (Base64/Base64url, hex, URL component and full-URL, HTML, ROT13, code points, UTF-8 byte count, Punycode) plus automatic decoding. This clearly distinguishes it from the single-format siblings such as base64_encode, url_encode and text_caesar without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to prepare data for headers, URLs and markup, or to work out what an encoded string says' gives both a write-side and a read-side use case with a worked example (text=Café & <tags>). It does not explicitly say when to prefer this over the narrower base64_encode/url_encode siblings, so the boundary 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.

pack_evm_toolboxEVM developer utilities toolbox: checksum, keccak, selectors, unitsA
Read-only
Inspect

One call that works out what an EVM value is and converts it every useful way: an address gets its EIP-55 checksum and bytes32 form; a signature its 4-byte selector and event topic; calldata is decoded (ERC-20, NFT, permit, EIP-3009); a bytes32 becomes uint256, address and units; a number converts between wei, gwei, ether (or any decimals) and hex; text gets keccak256. Local, no network. Use for building or debugging contracts and agents. Example: input=transfer(address,uint256). Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
inputYesAn address, signature, calldata, hex value, number or text
decimalsNoToken decimals for unit conversions (default 18)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and non-destructive status, and the description adds what they cannot: it is local with no network calls, it changes nothing, it is billed per call ($0.01 via x402/card key, first 25 free, failures free), and repeats are explicitly not free — which usefully reinforces idempotentHint=false. Minor tension: the description says "no network" while openWorldHint=true is asserted, which an agent could read as inconsistent even though the safety hints align.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core behavior and organized as a per-input-type enumeration, so an agent can scan for its case quickly. It is dense but nearly every sentence carries information; the pricing/clause near the end is the least essential part and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a polymorphic dispatcher with only two parameters and no output schema, the description covers the input modes well. The notable gap is the response shape — an agent does not know what fields come back when an input matches multiple interpretations, nor what the error/degenerate-case behavior looks like beyond "failed calls free".

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains that `input` is auto-detected rather than declared by the caller, and maps each accepted shape to its resulting conversions, plus notes decimals default to 18 and "any decimals" are supported. It does not say how ambiguous inputs (a hex string that could be calldata, a value, or a hash) are disambiguated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-and-resource with a dispatch model: it inspects an EVM value and converts it, enumerating each input type and its outputs (address→EIP-55 + bytes32, signature→selector/topic, calldata→decoded, bytes32→uint256/address/units, number→wei/gwei/ether, text→keccak256). That is far more specific than the title alone. It does not name the overlapping siblings (evm_checksum, evm_decode_calldata, keccak, units_convert) it supersedes, so the differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear applicability ("Use for building or debugging contracts and agents") plus a concrete worked input example, which is enough for an agent to recognize the right moment. It offers no explicit when-not conditions and never routes the agent away from the single-purpose sibling tools that do overlapping work.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_gas_trackerGas tracker, multichain gas: 5 EVM chains and Bitcoin feesA
Read-only
Inspect

One call for current gas prices on Base, Ethereum, Arbitrum, Optimism and Polygon: gas price, base fee and priority fee in gwei and what a plain transfer costs in the native coin and, for the ETH chains, in US dollars (Uniswap ETH price), sorted cheapest first, plus Bitcoin fee rates in sat/vB. Cheaper than the tools bought one by one. Use to pick the cheapest chain, time a transaction or show fees in a wallet. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: cost model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), an explicit warning that repeats are charged (which explains why idempotentHint is false), the data source for USD conversion (Uniswap ETH price), and the cheapest-first sort order. Confirms read-only behavior consistent with readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the resource and chains, then the returned fields, then usage and pricing — a sensible order with no filler sentences. It runs long as a single dense paragraph and includes mildly promotional phrasing ('Cheaper than the tools bought one by one'), which keeps it off a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter, no output schema, and annotations carrying the safety profile, the description covers what is needed: what comes back, in what order, at what cost. It stops short of naming the actual result keys an agent would receive, which matters slightly more given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one optional parameter whose schema description already covers its syntax and edge cases (unknown keys ignored, empty match returns full result) at 100% coverage. The tool description never mentions the 'only' projection parameter, so it adds no meaning beyond the schema — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (current gas prices across five named EVM chains plus Bitcoin fee rates) and enumerates the returned metrics: gas price, base fee, priority fee in gwei, transfer cost in native coin and USD, BTC sat/vB. This clearly distinguishes it from the per-chain siblings like eth_gas, base_gas, polygon_gas and btc_fees, which return data for one chain only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases — pick the cheapest chain, time a transaction, show fees in a wallet — and signals it replaces the single-chain tools with 'cheaper than the tools bought one by one.' The alternatives are referenced generically rather than named (eth_gas, btc_fees), and there is no explicit when-not-to-use clause, 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.

pack_hash_toolboxHash generator, hash toolbox: MD5, SHA-256, SHA-512, Keccak, CRC32 and SRIA
Read-only
Inspect

Every common hash of one input in a single call: MD5, SHA-1, SHA-256, SHA-384, SHA-512, Keccak-256 (Ethereum), CRC-32, base64 SHA-256, and Subresource Integrity strings (sha256-, sha384-, sha512-) for . Hashes UTF-8 text, or 0x/hex bytes with hex=true. Cheaper than hashing one algorithm at a time. Use for checksums, cache keys, file integrity and comparing digests across systems. Example: text=hello world. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hexNotrue to treat text as hex bytes (0x prefix optional)
textYesText to hash (up to 100,000 characters), or hex bytes with hex=true

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial extra context: it 'reads or computes only and changes nothing', each call is charged so repeats are not free (which explains the idempotentHint=false), pricing is $0.01/call with 25 free and failed calls free. It also discloses the 100,000-character input cap and UTF-8 vs 0x/hex byte handling. This is behavior an agent cannot get from the 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The algorithm list and input modes are front-loaded, and the pricing/safety note is kept to the tail. It is a single dense paragraph with little waste, though the pricing sentence could be tightened since it partially repeats the annotations' implication of a metered tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers what is produced (named algorithms plus SRI strings) well enough for an agent to call it correctly, and no nested or enum parameters exist. It stops short of specifying the exact return structure (e.g. a map of algorithm to digest), which would fully close the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both 'text' and 'hex' are already documented in the schema. The description reinforces them ('Hashes UTF-8 text, or 0x/hex bytes with hex=true') and gives a concrete example, but adds no syntax or edge-case detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource ('Every common hash of one input in a single call') and enumerates the exact algorithms and output formats produced, including SRI strings. It also distinguishes itself from the sibling 'hash' tool by noting it is 'cheaper than hashing one algorithm at a time', so an agent can choose between them 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage contexts ('checksums, cache keys, file integrity and comparing digests across systems') and points at the single-algorithm alternative implicitly. What is missing is an explicit when-not clause, e.g. use plain 'hash' if you need one digest and want to avoid cost, though the cost note partially covers this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_id_toolboxID generator, UUID, ULID: UUID v4, UUID v7, ULID, NanoIDA
Read-only
Inspect

Generate unique IDs of every common kind in one call: UUID v4 (random), UUID v7 and ULID (time-ordered, sort by creation), NanoID (21 URL-safe characters) and random base62 and hex strings, up to 20 of each, from the platform's cryptographic random source; and decode the creation time hidden in a ULID or UUID v7. Use for database keys, request and trace IDs, file names or test data. Example: count=3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many of each kind, 1-20 (default 3)
decodeNoOptional ULID or UUID to read the timestamp from
lengthNoLength of the random strings, 8-128 (default 24)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety and idempotency, and the description adds real value beyond them: entropy source is the platform's cryptographic RNG, there is a hard 'up to 20 of each' cap, calls are billable with the first 25 free and failures free, and repeats are not free because each call is charged. The clause 'reads or computes only and changes nothing' is redundant with readOnlyHint/destructiveHint but does not conflict with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability list is front-loaded and the pricing/mutation disclaimer is deferred to the end, which is the right order. It is dense but nearly every clause carries information; the billing sentence is the longest and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers formats, caps, entropy source, decode mode, cost, and side-effect profile for a zero-required-parameter tool. With no output schema, it would help to state the returned shape (e.g., all kinds returned together, or decode's result field), which is the one remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, yet the description adds meaning beyond it: count is explicitly per-kind ('up to 20 of each'), NanoID is specified as 21 URL-safe characters, and decode is framed as reading a creation time from a ULID or UUID v7 rather than a generic timestamp field. The concrete 'Example: count=3' anchors the default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate unique IDs') and enumerates every format produced (UUID v4/v7, ULID, NanoID, base62, hex) plus a secondary decode capability. That is enough for an agent to separate it from generic helpers like random_password, random_number, or the plain uuid sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (database keys, request/trace IDs, file names, test data), which gives an agent a clear selection context, and the decode clause implies when to use that mode. It never names an alternative tool or states when NOT to use it, 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.

pack_ip_intelligenceIP intelligence: owner, network, reverse DNS and typeA
Read-only
Inspect

One call for everything about an IP address: its type (public, private, loopback, carrier-grade NAT), the registry record (holding organisation, network name and range, registration country, abuse contact) and the reverse DNS name. IPv4 and IPv6. Registration country, not city geolocation. Cheaper than the tools bought one by one. Use to investigate an address in logs, a login or an abuse report. Example: ip=8.8.8.8. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it explains cost ($0.01/call, first 25 free, failed calls free) and explicitly ties the non-idempotent hint to billing ('each call is charged, so repeats are not free'). It also scopes the data honestly ('registration country, not city geolocation') and confirms the read-only nature in plain language.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is returned, then usage, then pricing. Slight redundancy between the price sentence and the closing 'each call is charged, so repeats are not free', though the latter also explains the idempotency hint, so it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns, which it does by enumerating the fields and flagging the geolocation caveat. It does not describe response shape or error behavior, but for a one-parameter lookup this is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single `ip` parameter, so the baseline is 3; the description adds that both IPv4 and IPv6 are accepted and gives an example value (ip=8.8.8.8), which is genuine added meaning over the schema's bare type declaration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb-and-resource statement: it enumerates the returned facts (IP type, registry record, reverse DNS) and the address families supported. It could be sharper about how it differs from siblings ip_info, ip_lookup and dns_lookup, which an agent would plausibly consider interchangeable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear usage context (investigating an address in logs, a login, or an abuse report) plus a concrete call example. It does not explicitly exclude or route away from the similar single-purpose IP/DNS tools in the sibling list, so the agent must infer when this aggregated call is preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_json_toolboxJSON toolbox: validate, format, minify, schema and YAMLA
Read-only
Inspect

Everything about one JSON document in a single call: valid or not with the error's line and column, pretty-printed (optionally with sorted keys), minified with the bytes saved, an inferred JSON Schema, structure statistics (depth, objects, arrays, keys, value types) and the same data as YAML. Up to 200 KB. Cheaper than the separate JSON tools. Use to inspect API responses, clean model output or document a payload. Example: json={"name":"agent","tools":["weather","search"],"active":true,"limits":{"daily":100}}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
jsonYesThe JSON text (up to 200 KB)
sortKeysNotrue to sort object keys in the formatted output

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations establish read-only and non-destructive, and the description adds pricing ($0.01/call, first 25 free, failed calls free), a 200 KB size cap, and an explicit warning that repeat calls are billed — which usefully explains the idempotentHint=false annotation. It also states 'reads or computes only and changes nothing', reinforcing the safety profile with concrete context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The output list is front-loaded and every clause carries information; the example and pricing note each earn their space. It is dense — one long chain of clauses — but not padded with filler, and the length is justified by the breadth of operations covered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden and discharges it by enumerating each return artifact: validity plus error location, formatted text, byte savings, inferred schema, statistics, and YAML. Size limits, cost model, and safety are all covered, so 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.

Parameters4/5

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: a concrete json example showing nested objects, arrays, and mixed types, the 200 KB limit restated in context, and the note that sorted keys apply to formatted output only. The sortKeys parameter is still only loosely characterized ('optionally with sorted keys').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific scope statement ('Everything about one JSON document in a single call') and enumerates every operation: validation with line/column errors, pretty-print with optional sorted keys, minify with byte savings, schema inference, statistics, and YAML output. It explicitly positions itself against the sibling single-purpose tools (json_validate, json_format, json_schema, json_to_yaml) by calling itself cheaper than using them separately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases ('inspect API responses, clean model output or document a payload') and a routing incentive ('cheaper than the separate JSON tools'). It doesn't say when NOT to use it — e.g., that a single-purpose sibling may be preferable if you only need one output and want to avoid the $0.01 charge — but the routing intent is clear enough for an agent to choose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_location_briefLocation data, place brief: weather, sunrise and country factsA
Read-only
Inspect

One call for a place by name: its coordinates, country, region, population and elevation (Wikidata), the current weather and a short hourly forecast (MET Norway, CC BY 4.0), today's sunrise, sunset and day length, and facts about its country (capital, region, income level, population). Cheaper than the tools bought one by one. Use for travel planning, event and delivery context, or enriching a city name in a record. Example: place=Stockholm. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
placeYesPlace name, such as Stockholm or Lyon, France

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only and open-world, and the description adds genuinely new context: price ($0.01/call via x402 USDC or card key), first 25 free, failed calls free, and repeats are not free — consistent with idempotentHint=false. The 'reads or computes only and changes nothing' line plus data-source licensing goes beyond the annotation surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the payload contents, then use cases, then a concrete example, then pricing. Dense but every clause carries information; the billing sentence is the longest but is operationally necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately enumerates the return bundle across four data domains. It leaves minor gaps: how 'short' the hourly forecast window is, response shape, and behavior on ambiguous or unknown place names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter with 100% schema coverage ('Place name, such as Stockholm or Lyon, France'). The description only adds a minimal example (place=Stockholm) and doesn't address ambiguity handling or whether a country qualifier improves resolution, so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific composite resource — coordinates, country/region/population/elevation, current weather plus hourly forecast, sunrise/sunset/day length, and country facts — with named data sources (Wikidata, MET Norway). An agent can tell exactly what it gets back 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases (travel planning, event/delivery context, enriching a city name in a record) and frames itself as a cheaper bundle than 'the tools bought one by one'. It stops short of naming the specific siblings to skip (weather, sun, country, geocode), so the routing is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_news_sentimentNews sentiment: headlines with sentiment scoresA
Read-only
Inspect

The news on a topic and its tone in one call: the latest headlines from the Brave News index (title, URL, publisher, age), each with a positive or negative score from a DistilBERT model, and the balance across them. Up to 10 articles from the past day, week or month. Not a market signal. Results are for the caller's immediate use only (Brave API terms). Use for a market mood check, brand monitoring or a news brief. Example: q=bitcoin. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qYesNews topic, at most 400 characters
countNoNumber of articles (1-10, default 5)
freshnessNoOnly articles from the past day, week or month (default: week)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: discloses the data source and model, hard caps (up to 10 articles, past day/week/month), the Brave API redistribution restriction, and pricing ($0.01/call via x402 USDC or card key; failed calls free; repeats charged). The 'reads or computes only and changes nothing' line reinforces rather than contradicts readOnlyHint/destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what is returned, then limits, caveat, use cases, pricing and safety. Dense but nearly every clause carries information; the sentence structure is packed and somewhat run-on, and 'Not a market signal' reads as an orphaned fragment.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return contract itself — it enumerates title, URL, publisher, age, per-article score and the aggregate balance. Combined with pricing, quota and freshness limits, an agent has everything needed to call it correctly and to reason about cost.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented with types, bounds and defaults. The description only adds a sample value (q=bitcoin) and restates the article cap and freshness windows, adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific composite verb+resource: latest headlines from the Brave News index plus per-article sentiment from a DistilBERT model, plus aggregate balance. The 'in one call' framing distinguishes it from combining `news` and `ai_sentiment`, but no sibling is named explicitly, so 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('market mood check, brand monitoring or a news brief') and an example query (q=bitcoin), plus a scope caveat ('Not a market signal'). It never names an alternative tool or a case where a sibling (`news`, `ai_sentiment`, `pack_web_research`) is the better pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_nft_analysisNFT analysis: owner, metadata, holdings and collectionA
Read-only
Inspect

One call to analyse an NFT: its current owner, its metadata (name, description, image, traits from data:, https or ipfs), how many NFTs of the collection that owner holds, and the collection contract (name, symbol, whether it is an upgradeable proxy). ERC-721 on Base, Ethereum, Arbitrum, Optimism or Polygon. Cheaper than the tools bought one by one. Use before buying, listing or verifying an NFT. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork: eth (default), base, arb, op or polygon
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, and the description adds materially: 'Reads or computes only and changes nothing', explicit pricing ($0.01/call via x402 USDC or card key), a 25-call free tier, failed calls free, and the warning that 'each call is charged, so repeats are not free' — which coherently explains the idempotentHint=false annotation in billing terms. This is behavior an agent needs before calling a paid tool and cannot get from structured fields alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the purpose and outputs, and most sentences carry distinct load (networks, cost, use case, example, safety). The block is dense and the pricing/billing clause is slightly buried after the chain list, but nothing is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must describe the return values — and it does so field by field (owner, metadata, holdings, collection contract and proxy status). Combined with the chain scope, cost model and read-only/side-effect 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents chain, tokenId and contract, so the baseline is 3. The description adds a concrete worked example (contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1) and reiterates the ERC-721 / five-chain constraint, giving usable format guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('One call to analyse an NFT') and then enumerates exactly what is returned: current owner, metadata fields and their source schemes (data:, https, ipfs), collection holdings count for that owner, and collection contract name/symbol/proxy status. It also states the supported networks and ERC-721 scope, which cleanly separates it from the per-chain siblings like eth_nft_owner or base_nft_metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context ('Use before buying, listing or verifying an NFT') and points at the alternative it replaces ('Cheaper than the tools bought one by one'), which maps onto the many per-chain nft_* siblings. It does not state any when-not-to-use condition, 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.

pack_seo_toolkitSEO analysis, SEO toolkit: audit, keywords, social previewA
Read-only
Inspect

One call for an on-page SEO analysis of a URL: the SEO audit (title and description lengths, canonical, headings, alt text, structured data, score, issues), the top keywords and two-word phrases with their density, the social preview (OpenGraph, Twitter card), the favicon, and robots.txt access with its sitemaps. Server HTML only. Cheaper than the tools one by one. Use before publishing, for an SEO report or to compare a competitor's page. Example: url=https://www.wikipedia.org/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: per-call charge of $0.01 (x402 USDC or card key), first 25 free, failed calls free, and 'repeats are not free', which explains why idempotentHint is false despite being read-only. It also discloses the key execution constraint, 'Server HTML only', i.e. no JS rendering — exactly the kind of trap an agent would otherwise fall into.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded: the capability enumeration comes first, usage second, and commercial/payment terms last where they can be skimmed. The single pricing sentence is dense but carries genuinely decision-relevant facts; a slightly tighter split would be cleaner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by listing the returned sections (title/description lengths, canonical, headings, alt text, structured data, score, issues, keywords, OG/Twitter, favicon, robots.txt sitemaps). Combined with the server-HTML caveat and cost model, an agent has everything needed to call it or reject it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema coverage is 100% ('Absolute http(s) URL of the page'), so the schema does the work. The description adds a worked example (url=https://www.wikipedia.org/) that shows expected granularity, which is modest but real added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('on-page SEO analysis of a URL') and then enumerates exactly what is computed: audit fields, keyword/two-word density, social preview, favicon, robots.txt/sitemaps. That enumeration is what distinguishes it from siblings like seo_audit, url_meta, url_favicon, robots and text_keyword_density — it is explicitly the bundle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use before publishing, for an SEO report or to compare a competitor's page' gives concrete usage contexts, and 'Cheaper than the tools one by one' signals it supersedes the singles. It never names the actual alternative tools (seo_audit, url_meta, pack_website_audit), so the agent must infer the routing, and no when-not-to-use case is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_string_toolboxString utilities: every case, slug, counts and moreA
Read-only
Inspect

Transform one string every common way at once: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Title Case, Sentence case, upper and lower; a URL slug (accents removed); reversed; trimmed and whitespace-collapsed; and counts of characters, letters, digits, words and lines. Splits identifiers like userIDValue or XMLHttpRequest correctly. Use when naming fields, files and routes or cleaning user input. Example: text=Hello World, user profile ID 42. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe string (up to 10,000 characters)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses pricing/auth (x402 USDC or card key, first 25 free, failed calls free), explains why repeats cost money (explaining idempotentHint=false), and confirms 'reads or computes only and changes nothing' in plain language. It also states the 10,000-character scope of each call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the full enumeration of transformations before the usage hint, which is the right ordering. It is dense and the pricing/payment sentence is long, but every clause (including pricing and the no-side-effects note) carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the enumeration effectively serves as the return-value description, and pricing/auth/idempotency are covered. It doesn't say how results are packaged (a single object of all variants?), so a 4 rather than a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

A single parameter with 100% schema description coverage, so the schema already carries the type and length limit. The description's example ('text=Hello World') adds a little, but it is embedded in a run-on sentence mixing in pricing and is fuzzier than it could be. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Transform one string every common way at once') and then enumerates the exact outputs: camelCase, snake_case, slug, reversed, trimmed, and character/word/line counts. The 'at once' framing differentiates it from single-purpose siblings such as slug, case, and text_stats, so an agent can tell what it uniquely does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('naming fields, files and routes or cleaning user input'), which is more than most definitions offer. It stops short of explicit when-not guidance or naming alternatives (e.g., 'for a slug alone use slug'), so a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_text_analysisText analysis: readability, keywords, entities and safetyA
Read-only
Inspect

One call to analyse a text: length, reading time and readability grade, the top keywords and repeated phrases with their density, the emails, links, phone numbers, hashtags and mentions it contains, and a prompt-injection scan for text an agent is about to act on. Up to 20,000 characters, local processing. Cheaper than the four tools bought one by one. Use to review drafts, triage inbound messages or vet scraped content. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text (up to 20,000 characters)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/destructiveHint already declaring safety, the description still adds substantial non-structured context: the 20,000-character ceiling, local processing, per-call pricing ($0.01 via x402 USDC or card key /credits), the first-25-free allowance, and that failed calls are free. It even explains the non-idempotent hint ('each call is charged, so repeats are not free') and confirms mutability boundaries ('Reads or computes only and changes nothing'). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core 'one call' framing and the output inventory, with cost/limits after. The first sentence is a very long run-on list, and some clauses (e.g. x402 vs card key detail) are dense, but every sentence carries usable information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description compensates by enumerating the returned sections (length, reading time, readability grade, keywords, repeated phrases with density, entities, injection scan). Combined with size limit, cost model and safety semantics, an agent has everything needed to decide to call it and to interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and the schema already documents it fully ('The text (up to 20,000 characters)'), so the description's 'Up to 20,000 characters' merely restates the constraint. Nothing is added about encoding, truncation behavior, or what happens if the limit is exceeded, so the high-coverage baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('One call to analyse a text') and then enumerates the exact sub-analyses returned: length, reading time, readability grade, keywords, phrase density, PII-like entities and a prompt-injection scan. That enumeration also implicitly distinguishes it from the granular siblings (text_stats, ai_keywords, text_prompt_injection, text_keyword_density), which an agent can infer without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete usage contexts ('review drafts, triage inbound messages or vet scraped content') and signals a bundle-vs-singles tradeoff ('Cheaper than the four tools bought one by one'). It stops short of explicitly naming the alternative single-purpose tools or saying when a narrower sibling is preferable (e.g. if you only need a prompt-injection check).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_token_analysisToken analysis, token security: price, supply, proxy and risk checksA
Read-only
Inspect

One call to analyse an ERC-20 token: name, symbol, decimals and supply, USD price from the deepest Uniswap v3 pool, whether it is an upgradeable proxy and who can upgrade it, and on Base the honeypot and contract risk checks (paused transfers, blacklist, owner fees, mint rights, liquidity). Give a ticker or 0x address and the network (base, eth, arb, op or polygon). Use before buying, listing or accepting an unknown token. Example: token=0x4200000000000000000000000000000000000006. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork: base (default), eth, arb, op or polygon
tokenYesToken: a ticker such as USDC or a 0x ERC-20 contract address

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: per-call charge via x402/card, first 25 free, failed calls free, and "reads or computes only and changes nothing" – consistent with readOnlyHint=true and non-destructive. The billing/pricing detail is exactly the kind of operational fact annotations cannot carry; it stops short of describing latency or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose before the usage and pricing details, and every clause carries information. It is dense and a bit run-on, with the pricing tail slightly diluting the main read, but nothing is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned fields and the chain coverage. For a 2-parameter read-only tool that is nearly complete; only the exact response shape/units are unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100% and documents both parameters, so baseline is 3. The description reinforces usage ('give a ticker or 0x address and the network') and supplies a concrete example address, which adds modest value over the schema text it repeats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (analyse) and resource (ERC-20 token) and enumerates exactly what comes back: metadata, supply, USD price from the deepest Uniswap v3 pool, proxy/upgrade authority, and Base honeypot/risk checks. That scope distinguishes it from siblings like token_report, base_token_info, price_token and contract_risk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use before buying, listing or accepting an unknown token" gives a clear triggering context, and the chain list sets scope. It does not, however, explicitly route the agent to or away from near-neighbours (token_report, price_tokens, base_token_info), leaving that inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_tx_explainExplain transaction, decoded: what an EVM transaction didA
Read-only
Inspect

Explain an EVM transaction in plain words: success or revert, sender and contract, ETH value, fee, the function called (decoded for common ERC-20, ERC-721, WETH, permit and multicall calls), and every token transfer, mint, burn and approval it emitted with amounts and symbols, plus one-line summaries. Base, Ethereum, Arbitrum, Optimism or Polygon. Use to check what a payment or contract call really did before trusting it or reporting it. Example: hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x transaction hash
chainNoNetwork: base (default), eth, arb, op or polygon

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, non-destructive, open-world, and non-idempotent; the description adds genuinely new context: pricing ($0.01/call, first 25 free, failed calls free), that repeat calls are re-charged (explaining the non-idempotent hint), and the limited decode scope ("common ERC-20, ERC-721, WETH, permit and multicall"). It does not discuss rate limits or what happens on unknown/non-decodable calldata beyond implying graceful fallback.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability is front-loaded in the first sentence, with use case, example, pricing, and safety follow-ups in descending priority. It is dense and slightly long, but nearly every clause carries information an agent needs; the pricing sentence is a bit promotional in tone.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of explaining the return contents in detail (decoded function, transfers with amounts and symbols, summaries), plus chains, cost, and safety. What is missing is failure-mode behavior for exotic calldata or unverified contracts, which matters for a decoding tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both hash and chain fully documented including the default and the five network aliases, so the schema carries the parameter burden. The description only restates the chain set and adds a worked hash example, which adds marginal value at best.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific action (explain an EVM transaction) and enumerates exactly what the output covers: status, sender/contract, ETH value, fee, decoded function, token transfers/mints/burns/approvals plus one-line summaries. It also names the supported chains, which distinguishes it from the per-chain siblings (base_tx, eth_receipt, arb_tx, etc.) that return raw data rather than a decoded narrative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to check what a payment or contract call really did before trusting it or reporting it" gives a clear verification-before-reliance use case, and the example hash shows the intended call shape. It does not explicitly name the raw alternatives (e.g., base_tx, evm_decode_calldata) or say when raw data is preferable, so routing 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.

pack_url_safetyURL safety check, scam signals: domain age, redirects and HTTPSA
Read-only
Inspect

Check a link before an agent opens or pays it: where it really leads (each redirect hop, the final URL), the destination domain's age, registrar and trust flags, HTTPS and security headers, and named risk signals (days-old domain, bare IP host, punycode look-alike, user@host trick, chains across many hosts). Heuristic signals from public facts, not a phishing blocklist. Use to vet links in emails, chats and scraped pages, or a payee's website. Example: url=http://github.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe link to check (http or https)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses pricing and auth mechanics ($0.01/call via x402 USDC or a card key, first 25 free, failed calls free) and explains the non-idempotent cost implication: 'each call is charged, so repeats are not free'. It also characterises the output as heuristics rather than a verified blocklist, which is important behavioral context an agent cannot infer from readOnlyHint alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead clause front-loads the action and the decision it supports, and the sentence is dense with distinct facts rather than filler. The closing 'Reads or computes only and changes nothing' largely restates readOnlyHint/destructiveHint, costing some tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description spells out the shape of the result (redirect hops, final URL, domain age, registrar, trust flags, HTTPS/security headers, named signals) so an agent can anticipate what it gets back. Combined with the cost model and safety profile, nothing material is missing for a one-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter and 100% schema description coverage, the schema already documents that url is the link to check and must be http/https. The description adds only a worked example (url=http://github.com) and no additional format or edge-case guidance, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Check a link') and enumerates exactly what is returned: each redirect hop and final URL, domain age/registrar/trust flags, HTTPS and security headers, and named risk signals. This clearly distinguishes it from siblings like url_redirects (hops only), domain_report or pack_domain_intel (domain facts only) and pack_website_audit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage contexts: 'before an agent opens or pays it', links in emails, chats, scraped pages, or a payee's website. It also sets a boundary by declaring this is 'heuristic signals from public facts, not a phishing blocklist'. It does not name a specific sibling alternative for narrower needs, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_wallet_profileWallet profile: balances, activity, contract check and sanctionsA
Read-only
Inspect

One call to profile an EVM wallet: native and USDC balances on Base, Ethereum, Arbitrum, Optimism and Polygon, transaction counts on Base and Ethereum, whether it is a contract or a plain wallet, its recent USDC transfers on Base, and an OFAC sanctions screen. Cheaper than the tools bought one by one. Use before paying, onboarding or trusting a counterparty wallet; for a single risk verdict use check_counterparty. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing pricing ($0.01/call via x402 or card key, first 25 free, failed calls free) and that 'each call is charged, so repeats are not free' – which meaningfully explains the idempotentHint=false flag. It restates the read-only nature ('reads or computes only and changes nothing'), which is redundant with readOnlyHint but harmless. It does not describe latency, rate limits, or partial-failure behavior across the five chains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the capability, then usage, then pricing/constraints – a sensible order with no filler. It is dense and slightly long, with the pricing clause spanning a full sentence, but each part carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description enumerates the returned data categories (balances per chain, tx counts, contract status, USDC transfers, sanctions result), so an agent knows what it gets back. Combined with cost and side-effect disclosure, nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage the baseline is 3, but the description adds value by qualifying the address as an 'EVM wallet' and supplying a concrete example address, reinforcing the expected 0x format and that only EVM networks are supported.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('One call to profile an EVM wallet') and enumerates exactly what the profile contains: native/USDC balances across five chains, tx counts, contract-vs-wallet, recent USDC transfers, OFAC screen. This makes it clearly distinguishable from granular siblings like base_balance or sanctions_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it ('before paying, onboarding or trusting a counterparty wallet') and names the alternative for a different need ('for a single risk verdict use check_counterparty'). Also positions it as a bundle ('cheaper than the tools bought one by one'), giving the agent a cost-based selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pack_web_researchWeb research: search and read the top pagesA
Read-only
Inspect

One call to research a question on the web: a Brave web search, then the text of the top 1-5 result pages, read in parallel and clipped to your length, with titles and URLs. A page that cannot be read is listed with its reason. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Use when an agent needs current, sourced information in one step instead of a search plus several page reads. Example: q=x402 payment protocol. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qYesWhat to research, at most 400 characters
pagesNoHow many top results to read in full (1-5, default 3)
maxCharsNoCharacters of text per page (500-10000, default 3000)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, the description discloses pricing ($0.01/call), that failed calls are free, that repeats are charged, that results cannot be stored/resold/trained on, and that unreadable pages are listed with reasons. These are important operational constraints an agent would not know from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the action and return shape, then usage, example, and pricing/licensing constraints. It is somewhat dense but mostly earns its length, with minor redundancy around charged repeats and read-only behavior already covered by annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an open-world paid research tool with a fully described schema and no output schema, the description covers what it returns, how unreadable pages are handled, usage conditions, cost, and legal restrictions. An agent has enough information to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in structured data. The description mentions reading 1-5 pages, clipping to the caller's length, and gives a q example, but adds no real syntax or constraints beyond the schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific compound action: Brave web search followed by reading the top 1-5 result pages in parallel with titles and URLs. This clearly distinguishes it from a bare search or separate page-extraction workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it when an agent needs current, sourced information in one step instead of a search plus several page reads, and gives an example query. It does not explicitly name sibling tools or say when not to use it versus search, wikipedia, or papers, 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.

pack_website_auditWebsite audit, security audit: uptime, SEO, security headers, redirects and DNSA
Read-only
Inspect

One call to audit a website: is it up and how fast, the redirect chain (including whether plain http moves to https), the on-page SEO audit with its score and issues, HTTP security headers and their grade, robots.txt for the page, and the domain's DNS, email authentication and registration age. Server-side HTML only, no JavaScript. Cheaper than the six tools bought one by one. Use before a launch, for a client report or to compare competitors. Example: url=https://www.wikipedia.org/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-destructive, but the description adds substantial context beyond them: server-side HTML only with no JavaScript (so JS-rendered pages will read as empty), reads/computes only and mutates nothing, per-call pricing via x402 USDC or a card key with first 25 free and failed calls free. 'Each call is charged, so repeats are not free' is a concrete, correct elaboration of the non-idempotent annotation rather than a contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is one dense paragraph, but it is front-loaded with the audit contents before cost and usage, and every clause carries information an agent needs (scope, limitation, price, safety). The pricing/settlement detail is slightly compressed but earns its place for a metered paid tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description effectively substitutes for one by enumerating the return payload (uptime/speed, redirect chain with http→https check, SEO score and issues, header grade, robots.txt, DNS/email auth/registration age). It also covers the key operational caveat (no JS execution) and the billing model, leaving no material gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single required parameter, so the schema carries the definition ('Absolute http(s) URL of the page'). The description still adds value with a concrete worked example (url=https://www.wikipedia.org/), demonstrating an acceptable absolute URL form including scheme and www host, which resolves the common apex-vs-www and scheme ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('One call to audit a website') and then enumerates the six sub-audits it bundles: uptime/speed, redirect chain, on-page SEO with score, security headers with grade, robots.txt, and DNS/email auth/registration age. That enumeration makes it distinguishable from the granular siblings (url_uptime, seo_audit, http_security_headers, dns_lookup) 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names concrete situations ('before a launch, for a client report or to compare competitors') and states the economic rationale ('Cheaper than the six tools bought one by one'), which implicitly steers agents here over the individual tools. It never explicitly says when NOT to use it or names a specific cheaper sibling for single-purpose checks, 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.

papersResearch papers, Crossref: academic papers searchA
Read-only
Inspect

Search scholarly literature across journals, conferences, preprints and books: title, authors, year, venue, citation count, DOI link and abstract where available. Optional fromYear filter and up to 20 results per call. Use for research agents, literature reviews, fact-checking a claim against published work, and finding the DOI for a citation. Example: query=CRISPR off-target effects. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
limitNoNumber of results, 1-20 (default 5)
queryYesSearch terms, a title or a research question (3-300 characters)
fromYearNoOnly works published in or after this year

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds pricing and access details beyond the annotations: $0.01 per call via x402 USDC or a card key, first 25 free, failed calls free, and each repeat call is charged. It also confirms the read-only nature by saying it 'Reads or computes only and changes nothing,' consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, returned fields and usage contexts, then closes with pricing and read-only behavior. It is a bit long but every section is relevant; minor repetition around charging is acceptable for billing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description lists the key return fields an agent would need: title, authors, year, venue, citation count, DOI link and abstract where available. Combined with usage guidance, parameter constraints and pricing/auth details, it is complete for this search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema with their types and constraints. The description only restates that fromYear is optional and that up to 20 results are available, adding little beyond the schema's own limit and fromYear descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource, 'Search scholarly literature across journals, conferences, preprints and books,' and enumerates returned fields such as title, authors, venue, citation count and DOI. This clearly distinguishes it from general search siblings like search, news and wikipedia.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit use cases: research agents, literature reviews, fact-checking claims against published work, and finding a DOI for a citation, plus an example query. It does not explicitly name alternative tools or state when not to use it, so it is strong but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_textPDF to text, page by page: extract the text of a PDF document from a URL, page by pageA
Read-only
Inspect

Download a public PDF (up to 10 MB) and return its text page by page, with title, author, page count and character counts. Choose a first page and how many pages to read (up to 200) and cap the output with maxChars. arXiv abstract links are read as their PDF. Scanned PDFs without a text layer, encrypted files and non-PDF URLs fail uncharged. Use to read papers, invoices, reports and manuals into an agent's context. Example: url=https://bitcoin.org/bitcoin.pdf. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public http(s) URL of the PDF
pagesNoHow many pages to read (1-200, default 20)
maxCharsNoMaximum characters of text returned across all pages (1000-200000, default 50000)
firstPageNoFirst page to read (default 1)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses the 10 MB download cap, the 200-page and maxChars ceilings, which inputs fail, that failures are uncharged, the $0.005/call price with 25 free calls, and — crucially — why repeats are not free, which explains the idempotentHint=false flag rather than just restating it. The 'reads or computes only and changes nothing' line is consistent with readOnlyHint=true and adds the cost-relevant caveat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the operation and output, then constraints, then pricing — the ordering an agent needs. It is dense and a few clauses duplicate structured data (the maxChars cap, the read-only reassurance), but the example URL and failure list both earn their space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields (text per page, title, author, page count, character counts), and it covers size limits, failure modes, and billing. An agent has everything needed to decide to call it and to predict the result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter already carries its own description and ranges. The description restates firstPage/pages/maxChars behavior ('cap the output with maxChars') without adding format, ordering, or edge-case semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Download a public PDF and return its text page by page') and enumerates exactly what comes back, which separates it from HTML-oriented siblings like extract, extract_rendered, and contents. The arXiv note further pins down an ambiguous input case that an agent could otherwise misroute to papers or search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to read papers, invoices, reports and manuals into an agent's context' gives concrete positive guidance, and the failure list (scanned PDFs without text layer, encrypted files, non-PDF URLs) sets hard exclusions. It stops short of naming a sibling alternative for HTML pages, so no explicit routing rule between pdf_text and extract is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

phone_validatePhone number validation: valid, E.164 format, country and line typeA
Read-only
Inspect

Validate and format a phone number with the libphonenumber rules: whether it is valid and possible, the E.164 form, international and national formatting, country, calling code and line type (mobile, fixed-line, toll-free, VoIP…). Give +country code, or a national number and a two-letter country. Offline: nothing is sent and it does not say the line is in service. Use to clean contact lists or check a number before an SMS. Example: number=+1 650-253-0000. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberYesPhone number, ideally with +country code
countryNoTwo-letter country for national numbers without +code (US, GB, SE…)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/idempotent, and the description adds matters the agent genuinely cannot infer: the operation is fully offline with nothing transmitted, it does not confirm the line is in service, and every call is billed so repeats are not free — which concretely explains the idempotentHint=false. The pricing model (first 25 free, failed calls free, x402/card key) is real operational context. Minor tension with openWorldHint=true, since the description emphasizes offline behaviour, but it does not contradict any safety hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return fields, then input rule, then caveats, example and cost. Sentences are dense but each carries distinct information; nothing repeats the schema or annotations verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry the return shape — and it does, listing every field the caller gets. Inputs, caveats, example and cost are all covered, so an agent can call this correctly without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds the relational rule between the two parameters — country is only needed for national numbers lacking a +code — which the per-field schema text does not express. The worked example ('number=+1 650-253-0000') further pins down the expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Validate and format a phone number') and enumerates exactly what comes back: validity, possible, E.164, international/national formatting, country, calling code and line type. That output list cleanly separates it from the other validators in the sibling set (validate_iban, validate_isbn, validate_luhn, vin).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to clean contact lists or check a number before an SMS' gives concrete selection contexts, and 'Give +country code, or a national number and a two-letter country' states the input rule. It also bounds expectations ('it does not say the line is in service'), which effectively rules out carrier-lookup use cases. No explicit naming of alternatives, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingPing, x402 payment test: a minimal paid call to test that an x402 payment settlesA
Read-only
Inspect

A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses pricing ($0.01/call via USDC or card key), a 25-call free tier, that failed calls are not charged, and that each call is billed so repeats are not free. That last point usefully explains the idempotentHint=false annotation rather than contradicting it, and 'reads or computes only and changes nothing' aligns with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the return behavior and then the use case and billing. There is minor repetition around payment ('paid round-trip', 'each call is charged'), but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter diagnostic tool with no output schema, it covers return values, billing, and side-effect freedom. The only gap is that the 'only' filter is left entirely to the schema, which is acceptable given full coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single optional 'only' filter is fully documented in the schema, so the baseline of 3 applies. The description adds no extra detail about the parameter or typical key values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('paid round-trip check: returns pong and the server time') and immediately frames the tool as a payment-settlement test, which separates it from the free 'echo' sibling in the list. An agent knows both what comes back and why this tool exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it 'to test that an x402 wallet, client or MCP setup can pay and receive a result', which is a clear usage trigger. It never names the obvious alternative (the free 'echo' tool) or says when not to spend money, so the routing guidance is implied rather than complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_allowanceToken allowance, Polygon ERC-20A
Read-only
Inspect

ERC-20 token allowance on Polygon PoS: how much a spender may move from an owner's wallet (allowance), raw and in token units, and whether the approval is unlimited. Use to check an approval before a swap or to audit risky open approvals; for the owner's balance use polygon_token_balance. Token is a ticker (USDC, USDT, WETH…) or a 0x contract; a missing contract is 404 and a non-ERC-20 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ownerYes0x wallet that gave the approval
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address
spenderYes0x contract or wallet allowed to spend (the example is Uniswap Permit2)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false; the description usefully explains the idempotent=false consequence (each call is charged, repeats are not free) and adds pricing/auth detail (x402 USDC, card key via /credits, first 25 free) plus error semantics (404 missing contract, 422 non-ERC-20, both uncharged). That is real added behavioral context. The 3 reflects only minor gaps, such as pagination/return shape detail, but the charge-and-error disclosure is close to a 4 against annotated safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The primary purpose and the sibling disambiguation are front-loaded, and pricing/error notes follow in a compact block. The pricing and payment sentence is dense but every clause (charge per call, free failures) changes agent behavior, so nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what is returned (raw and token-unit allowance plus an unlimited flag), how errors surface, and what a call costs. That is complete enough to invoke correctly for a 3-required-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning on top: token accepts a ticker or a 0x contract and the failure modes for each (404 vs 422). Owner/spender distinctions are left to schema descriptions, which already cover them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('ERC-20 token allowance on Polygon PoS') and names exactly what is returned (raw and human units plus unlimited flag). It explicitly distinguishes itself from the sibling polygon_token_balance, so an agent can differentiate 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use cases ('check an approval before a swap', 'audit risky open approvals') and routes the balance question to polygon_token_balance. Exclusions and the sibling alternative are both named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_balancePolygon PoS native balanceA
Read-only
Inspect

Native POL balance (eth_getBalance) of any 0x wallet address on Polygon PoS at the latest block, in wei and in POL. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use polygon_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet or contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and destructive annotations, the description discloses that the balance is read at the latest block, returned in wei and POL, malformed input costs nothing, each successful call is charged including repeats, and the first 25 calls are free. The billing note is consistent with idempotentHint=false, since repeated reads incur repeated charges.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key scope, alternatives, and output format are front-loaded, and most sentences earn their place. The pricing details are useful but slightly repetitive: 'each call is charged, so repeats are not free' restates the earlier per-call price and free-call terms.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only balance tool with no output schema, the description covers scope, alternatives, return units, error behavior, and cost model. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single address parameter is already documented. The description adds useful meaning with the 'any 0x wallet address' phrasing, a concrete example address, and the malformed-address rejection behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: returns the native POL balance (eth_getBalance) of a 0x wallet on Polygon PoS at the latest block, in wei and POL. It explicitly distinguishes itself from polygon_token_balance for ERC-20 tokens and wallet_portfolio for all holdings, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says exactly when to use the tool: checking whether a wallet can pay gas or a transfer. It also names the alternatives for ERC-20 balances and aggregate holdings, and clarifies that malformed addresses are rejected with 400 and uncharged.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_blockBlock number, Polygon PoSA
Read-only
Inspect

Latest block number and block details on Polygon PoS, or any block by decimal number: hash, timestamp, transaction count, gas used and limit, base fee in gwei and producer. Use for timestamps and confirmation counts; for current fees use polygon_gas. A block that does not exist yet returns 404, uncharged. Example: number=latest. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberNoBlock number, or 'latest' (default)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, but the description adds substantial billing and error behavior: $0.01/call via x402 or card key, first 25 free, failed calls free, and that repeats are not free (consistent with idempotentHint=false). For a paid, open-world tool this is exactly the extra context an agent needs before invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return fields, followed by routing, error, and pricing details. Slightly dense and includes some reinforcement of annotation semantics ('Reads or computes only and changes nothing'), but no sentence is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description covers what data is returned, how to request a specific block, the not-found behavior, pricing, and the alternative for gas fees. Nothing an agent needs to call it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents 'Block number, or "latest" (default)'. The description still adds some value by clarifying 'any block by decimal number' and giving a concrete example ('number=latest'), though it does not go much beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Latest block number and block details on Polygon PoS') and enumerates the exact fields returned (hash, timestamp, tx count, gas used/limit, base fee, producer). It also names the sibling it is not ('for current fees use polygon_gas'), so an agent can distinguish it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the use cases ('timestamps and confirmation counts') and the alternative for a competing need ('for current fees use polygon_gas'). It also documents the not-found case ('A block that does not exist yet returns 404, uncharged'), which is the kind of edge guidance that prevents bad calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_callEth call, Polygon contract callA
Read-only
Inspect

Read-only contract call on Polygon PoS (eth_call): send ABI-encoded calldata to a contract at the latest block and get the raw return data, without a transaction or gas. Use to read any view function that has no dedicated tool (the example reads USDC totalSupply, selector 0x18160ddd); decode the result with the function's ABI. Calldata up to 8 KB; a call that reverts is 422 with the reason, uncharged. Example: to=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359, data=0x18160ddd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x contract address to call
dataYes0x ABI-encoded calldata: 4-byte selector plus arguments
fromNoOptional 0x sender address for calls that check msg.sender

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: calldata capped at 8 KB, reverting calls return 422 with the reason and are uncharged, pricing is $0.01/call via x402 USDC or card key with the first 25 free, and repeated calls are billed (matching idempotentHint=false). These are exactly the cost and failure-mode facts an agent needs before calling a paid endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what it does and who it is for, then limits, error behavior, and pricing in a logical order. The pricing/auth sentence is long and could be tightened, but every clause carries information an agent needs (cost is the key differentiator for a paid tool).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, no-output-schema tool this covers the full picture: input format, size limit, revert semantics, output being raw undecoded bytes requiring ABI decoding, and billing behavior. Nothing material is missing that would cause a misinvocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns an extra point by adding a real constraint not in the schema (calldata up to 8 KB) plus a concrete to/data pair showing the expected format. It does not explain the optional 'from' parameter's msg.sender use case, which the schema already covers, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — read-only eth_call on Polygon PoS that returns raw return data without a transaction or gas — and clearly separates it from the many polygon_* dedicated-tool siblings by framing it as the generic escape hatch. An agent immediately knows this is the low-level contract-read primitive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing rule: 'Use to read any view function that has no dedicated tool', which both selects this tool and excludes cases where polygon_token_balance, polygon_nonce, etc. should be used instead. The worked example (USDC totalSupply, selector 0x18160ddd) and the 'decode the result with the function's ABI' follow-up step make the intended invocation pattern concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_estimate_gasEstimate gas, PolygonA
Read-only
Inspect

Estimate the gas a transaction would use on Polygon PoS (eth_estimateGas) and what it would cost at the current gas price, in gas units, gwei and POL. Give to, plus value in POL and calldata for a contract call, and the sender when the call depends on it. Use before sending a transaction or to price a batch; for the gas price alone use polygon_gas. A transaction that would revert is 422 with the reason, uncharged. Example: to=0x000000000000000000000000000000000000dEaD. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYes0x recipient or contract address
dataNoOptional 0x calldata for a contract call
fromNo0x sender address (default: an empty address)
valueNoAmount of POL to send, in POL (default 0)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses failure semantics (a reverting transaction returns 422 with the reason, uncharged), the billing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), and that repeats are charged. That last point also explains why idempotentHint=false holds for an otherwise read-only tool, which is a genuinely useful reconciliation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return units, then arguments, then the sibling alternative, then failure and billing behavior. Nearly every sentence carries information, though the example address and the pricing boilerplate add length that a caller only needs once.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the full burden of describing the return value — and it does, naming all three units. Combined with failure semantics and cost model, an agent has everything needed to call this correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters and the 3 baseline is met. The description adds real nuance by noting value is denominated in POL and that 'from' matters only 'when the call depends on it' — meaning sender-dependent estimation — which the schema's '(default: an empty address)' does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (estimate gas for a transaction on Polygon PoS), names the underlying RPC method, and specifies the three units returned (gas units, gwei, POL). It explicitly distinguishes itself from polygon_gas, the gas-price-only sibling, so an agent can route correctly 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives both when to use ('before sending a transaction or to price a batch') and when not to ('for the gas price alone use polygon_gas'), plus the argument requirements for a contract call vs a plain transfer. This is explicit routing guidance, not implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_gasPolygon PoS gas priceA
Read-only
Inspect

Current gas price on Polygon PoS (eth_gasPrice): gas price, base fee and suggested priority fee in gwei, plus what a plain POL transfer (21,000 gas) costs right now. Takes no input. Use before sending a transaction or to decide whether to wait; for the fee a past transaction actually paid use polygon_receipt. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false, so safety is covered; the description adds genuinely new context the annotations cannot express: the $0.01/call x402 pricing, the 25-free-call allowance, and that failed calls are free. It also reinforces the non-idempotent nature by warning that repeats are charged. Minor gap: no mention of latency or freshness of the quoted price.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and return shape, then usage, then pricing. Dense but efficient; the pricing/free-tier clause is crammed into one long sentence but every clause carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by specifying the returned fields and the concrete 21,000-gas transfer cost. Combined with the cost/no-input disclosure, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the single optional 'only' filter is already documented, so baseline 3 applies. The description adds no semantics for it and in fact says 'Takes no input', which mildly understates the optional projection parameter an agent could use to shrink the response.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Current gas price on Polygon PoS'), names the underlying RPC (eth_gasPrice), and enumerates the returned fields (gas price, base fee, suggested priority fee, 21,000-gas transfer cost). This distinguishes it cleanly from polygon_estimate_gas and polygon_receipt 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use ('before sending a transaction or to decide whether to wait') and names the alternative plus the condition that selects it ('for the fee a past transaction actually paid use polygon_receipt'). The routing decision is fully determined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_gas_historyGas history, Polygon gas priceA
Read-only
Inspect

Gas price history on Polygon PoS (eth_feeHistory): base fee in gwei for each of the last N blocks (5-100, default 20), how full each block was, and the 10th, 50th and 90th percentile priority fees, with the low, average and high base fee over the window. Use to judge whether fees are rising, pick a priority fee or time a transaction; for the current price alone use polygon_gas. Example: blocks=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks, 5-100 (default 20)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: it names the underlying RPC method (eth_feeHistory), discloses billing ($0.01/call, first 25 free, failed calls free), and explains why repeats are not free, which directly motivates idempotentHint=false. Missing only deeper operational detail such as rate limits or latency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is returned, then usage, then pricing; every clause is relevant, including the billing note since calls are charged. The final billing sentence is slightly long relative to the rest, keeping it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden and does so: it enumerates base fee per block, block fullness, 10th/50th/90th percentile priority fees, and window-level low/average/high. Combined with the usage and pricing context, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter already carries the 5-100 range and default 20, so the description's restatement is redundant. The 'Example: blocks=20' adds a small amount of practical guidance but no new constraint semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (returns historical gas prices) and resource (Polygon PoS fees via eth_feeHistory), and explicitly contrasts with sibling polygon_gas for the current price alone. Its output content (base fee per block, block fullness, priority fee percentiles, window low/average/high) is concrete enough to distinguish it from every other gas tool in the family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases ('judge whether fees are rising, pick a priority fee or time a transaction') and an explicit exclusion with the alternative named ('for the current price alone use polygon_gas'). Nothing is left to inference about when to pick this over the sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_is_contractPolygon PoS contract checkA
Read-only
Inspect

Check whether a 0x address on Polygon PoS is a smart contract or a plain wallet: bytecode size, and whether it is an EIP-1167 minimal proxy and which implementation it points to. Use before sending funds or approving a spender; for a fuller risk verdict use check_counterparty. A malformed address is rejected with 400, uncharged. Example: address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (readOnlyHint, openWorldHint, idempotentHint=false, destructiveHint=false) by disclosing pricing ($0.01/call via x402 USDC or card key), the 25-free-call allowance, that failed calls are free, that malformed addresses return 400 uncharged, and that repeats are charged — the latter actively reinforcing idempotentHint=false. Also restates the no-side-effect guarantee in plain language.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core operation and outputs, then usage, then error/pricing terms — each sentence carries distinct information. The closing 'reads or computes only and changes nothing' partially repeats the safety point implied earlier, but it is short and the pricing detail (repeats cost money) is non-obvious and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description enumerates the return values (bytecode size, proxy status, implementation) so the agent knows what it gets. With annotations covering safety, the addition of pricing, error handling, and an example makes this complete for a one-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single address parameter, and the description adds real value beyond it: a concrete example address, the '0x address' format expectation, and the failure behavior (400, uncharged) for malformed input. It does not specify accepted casing or checksum requirements, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (check whether a 0x address on Polygon PoS is a contract or wallet) and lists exactly what comes back: bytecode size, EIP-1167 minimal-proxy status, and implementation address. The polygon_ prefix plus the explicit sibling reference (check_counterparty) makes it distinguishable from the ~100 other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ('before sending funds or approving a spender') and names the alternative with the condition that selects it ('for a fuller risk verdict use check_counterparty'). It also notes which sibling covers the combined proxy+contract question, so the agent need not infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_logsPolygon PoS recent event logsA
Read-only
Inspect

Recent contract event logs on Polygon PoS (eth_getLogs): the events a contract emitted over the last N blocks (1-1,000, default 50), optionally filtered by topic0 (the 0x 32-byte event signature hash). Returns up to 100 logs with block, transaction hash and topics. Use to watch transfers or contract events; for one transaction's outcome use polygon_receipt. Example: address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
blocksNoHow many recent blocks to scan (1-1000, default 50)
topic0NoOptional 0x event signature hash to filter by
addressYes0x contract address

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false), and the description correctly reinforces read-only semantics while adding genuinely non-structured facts: cost per call, first 25 free, failed calls free, and that repeats are billed. It stops short of covering pagination or whether results are returned newest-first, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and the sibling routing are front-loaded, and every sentence carries information. The pricing/example tail is somewhat dense but earns its place for an agent that must budget calls.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully describes the return shape ('up to 100 logs with block, transaction hash and topics') and the block cap, which is what an agent needs to interpret results. Missing only ordering/pagination details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so blocks and topic0 are already documented. The description restates the ranges and clarifies topic0 as a '0x 32-byte event signature hash', which is marginal added meaning rather than new semantics. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Recent contract event logs on Polygon PoS (eth_getLogs)'), including the underlying RPC method and the scope (events emitted over the last N blocks). It explicitly distinguishes itself from polygon_receipt, so an agent can route correctly without comparing schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives positive use cases ('watch transfers or contract events') and an explicit exclusionary alternative ('for one transaction's outcome use polygon_receipt'). The example address further grounds invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_nft_balanceNFT balance, PolygonA
Read-only
Inspect

How many NFTs of one ERC-721 collection a wallet holds on Polygon PoS (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use polygon_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address
contractYes0x ERC-721 collection contract address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/no-destroy, but the description adds real context they don't: 404 on a missing contract, 422 on a non-ERC-721 contract, both uncharged, and $0.01/call with 25 free calls and repeats being billed. This also explains the idempotentHint=false annotation (each call costs money), which the annotation alone leaves ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what the tool returns and the sibling it is not, then errors, then pricing — a sensible order. It is dense and the billing/free-tier sentence runs long, but no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still says what comes back (count plus collection name and symbol) and covers failure modes and cost, which is everything an agent needs to decide to call it and interpret the result. Nothing material is missing 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameter descriptions already say '0x wallet address' and '0x ERC-721 collection contract address'. The description's 'Both inputs are 0x addresses' and its ERC-721 framing restate that rather than adding format, checksum, or validation guidance, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: counts NFTs of one ERC-721 collection held by a wallet on Polygon PoS, names the underlying call (balanceOf) and the extra fields returned (name, symbol). It explicitly distinguishes itself from polygon_nft_owner, so an agent can pick between them 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases (gate a holder before a token-gated action, check whether a wallet still holds a collection) and the explicit alternative for the other question ('for who holds one token id use polygon_nft_owner'). When-to-use and when-to-use-something-else are both present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_nft_metadataNFT metadata, PolygonA
Read-only
Inspect

NFT metadata on Polygon PoS: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use polygon_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: data: URI / https / ipfs.io resolution paths, truncation of strings over 1,000 characters, 422 (uncharged) for a nonexistent token, and metadataError for unreachable metadata. The note that each call is charged also explains why idempotentHint is false, which the annotation alone would leave opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and identity are front-loaded in the first clause, and the pricing/error details arrive after. It is dense but nearly every sentence carries actionable information; the billing tail is slightly long for a read-only lookup.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still spells out what is returned (tokenURI and the parsed JSON fields), plus error and truncation semantics. Nothing an agent needs to call it or interpret a response is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already defines both parameters, giving a baseline of 3. The description adds a concrete worked example (contract=0xC364...FE88, tokenId=1) and clarifies tokenId refers to a single ERC-721 token, which reduces format guesswork.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes)'. It also names the sibling it is not (polygon_nft_owner), so an agent can route 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States explicitly 'Use to show or check what an NFT is; for its owner use polygon_nft_owner', giving both the use case and the alternative. It also flags cost per call and that repeats are not free, which informs when to avoid redundant calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_nft_ownerNFT owner, PolygonA
Read-only
Inspect

Owner of an NFT on Polygon PoS: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use polygon_nft_balance, for the token's metadata polygon_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged. Example: contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88, tokenId=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenIdYesToken id, a whole number
contractYes0x ERC-721 collection contract address

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true and destructiveHint=false, but the description adds meaningful context beyond them: a missing contract returns 404, a nonexistent token returns 422, both failed cases are uncharged, and each successful call costs $0.01 with the first 25 free. It also clarifies that repeated calls are not free because every call is charged, which directly supports the non-idempotent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded: purpose first, then usage guidance, alternatives, error behavior, an example, pricing, and safety. Every sentence adds operational value, and none of the detail repeats structured fields without adding context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description explains what is returned: the current owner plus collection name and symbol. It also covers prerequisites, error outcomes, billing behavior, and the read-only nature of the call, 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.

Parameters3/5

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 the required contract address and numeric tokenId. The description provides a concrete example using both parameters, but it does not add format or edge-case semantics beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it returns the wallet that currently holds one ERC-721 token id (ownerOf), plus the collection name and symbol. It clearly distinguishes the tool from polygon_nft_balance and polygon_nft_metadata, so an agent can identify its exact scope without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage contexts: verifying who holds an NFT before a trade, a mint gate, or an airdrop. It also names the alternative tools and the conditions that select them: polygon_nft_balance for counts and polygon_nft_metadata for metadata.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_noncePolygon PoS account nonceA
Read-only
Inspect

Read the transaction count (nonce) of a 0x address on Polygon PoS, both confirmed and including pending transactions. Use to build the next transaction or to tell whether an address has ever sent anything; for its balance use polygon_balance. A malformed address is rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x address

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this ('reads or computes only and changes nothing') while adding non-annotation context: pending vs confirmed inclusion, malformed address → 400 with no charge, and cost/pricing with first 25 free and failed calls free. The one gap is that it never names the returned fields, which matters for a 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and resource, then usage, then safety/cost — a sane information hierarchy. It is dense but slightly overstuffed, and 'failed calls free' and 'each call is charged, so repeats are not free' partially restate the same billing point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, redirection, validation behavior, billing, and the destroyed/non-destroyed nature of the call — enough to invoke correctly. With no output schema, however, it leaves the return shape underspecified: 'both confirmed and including pending' implies either two fields or one, and the agent cannot tell which.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'address' parameter, so the baseline is 3. The description adds only an example value and the validation consequence (400 on malformed input), which is useful but does not deepen semantics beyond the schema's '0x address'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read the transaction count (nonce) of a 0x address on Polygon PoS') and immediately disambiguates the obvious sibling by redirecting balance lookups to polygon_balance. The chain is stated explicitly, so it is distinguishable from eth_nonce/arb_nonce/base_nonce 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases ('build the next transaction', 'tell whether an address has ever sent anything') and names the alternative for the adjacent case ('for its balance use polygon_balance'). The condition selecting the sibling is explicit rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_proxyProxy implementation, PolygonA
Read-only
Inspect

Find the implementation behind a proxy contract on Polygon PoS: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged. Example: address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x contract address

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only/non-destructive, and the description adds genuinely new behavioral facts: 400 on malformed address, 404 on address without code, both uncharged, and that every successful call is billed so repeats are not free — which explains the idempotentHint=false. Pricing (x402 USDC, card key, first 25 free) and the 'reads or computes only and changes nothing' guarantee round out the contract with the caller.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and standards, then usage, then error/pricing semantics in descending importance — no sentence is filler. The billing tail is somewhat dense and could be split, but each clause carries usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a one-parameter read tool: it covers what is resolved, when to use it, error outcomes and cost. What is under-specified is the shape of the result — which of implementation/beacon/admin addresses come back and in what form — though with no output schema and a simple return, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is fully documented in the schema (100% coverage), so the baseline is 3; the description adds value with a concrete worked example address (0x3c49…3359) and an explicit validation rule (malformed address → 400). It does not describe address formatting constraints beyond the example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find the implementation behind a proxy contract on Polygon PoS') and enumerates exactly which standards it resolves (EIP-1967 impl/beacon/admin slots, EIP-1822/UUPS, legacy OZ layout, EIP-1167 minimal proxy) plus that it names the proxy kind. This is far more specific than the sibling chain-family names (eth_proxy, arb_proxy, base_proxy) and lets an agent pick correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear trigger ('use before trusting or decoding a contract whose code can be swapped by its admin') and names the escalation path ('for a fuller risk verdict use contract_risk'). It stops short of an explicit when-not (e.g. for non-proxy or EOA addresses, or how it differs from polygon_storage/polygon_is_contract), so it falls just below the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_receiptPolygon PoS transaction receiptA
Read-only
Inspect

Transaction receipt on Polygon PoS (eth_getTransactionReceipt): success or reverted, gas used, effective gas price, fee paid in POL, number of event logs and any contract created. Use to confirm a payment or call went through; for sender, value and calldata use polygon_tx. Input is a 0x-prefixed 64-hex hash; a pending or unknown hash returns 404, uncharged. Example: hash=0x23e86c30c46638b2e9798692fe89327a66aa8569a5d4a566125f655aeb8f80c7. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, non-destructive behavior, but the description adds meaningful operational context: it lists receipt fields, says pending or unknown hashes return 404 and are uncharged, explains pricing and payment methods, and notes that repeated calls are charged. That is substantial context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, return fields, and the sibling distinction, then follows with usage, input format, example, and pricing. It is longer than typical but most sentences carry useful information; the pricing and payment details are relevant but make it somewhat dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with complete schema coverage and no output schema, the description supplies the missing context: what receipt fields are returned, what happens on pending or unknown hashes, pricing behavior, and the alternative tool for transaction details. It is complete enough for an agent to call it correctly and interpret common edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value by restating the required input format, supplying a concrete example hash, and explaining the 404 behavior when the hash is pending or unknown. The schema already carries the core parameter description, so this is an enhancement rather than the sole source of semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: fetches a Polygon PoS transaction receipt via eth_getTransactionReceipt. It enumerates the returned facts and explicitly distinguishes itself from polygon_tx for sender, value, and calldata, so an agent can choose between the two siblings immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete use case—confirming whether a payment or call went through—and names the alternative tool plus the exact condition that selects it: use polygon_tx for sender, value, and calldata. This is explicit when-to-use and when-to-use-another guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_storageStorage slot read, PolygonA
Read-only
Inspect

Read one raw storage slot of a contract on Polygon PoS (eth_getStorageAt): the 32-byte word, as a number and, when it holds one, as an address. Slot is a decimal index or a 0x 32-byte key (mapping and proxy slots). Use to inspect contract state that has no getter, owners or implementation pointers; for proxies use polygon_proxy. A malformed address or slot is rejected with 400, uncharged. Example: address=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
slotNoSlot: a decimal index (0, 1, 2…) or a 0x 32-byte key
addressYes0x contract address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely non-obvious behavior beyond the annotations: malformed address/slot returns 400 and is uncharged, pricing is $0.01/call with the first 25 free and failed calls free, and each repeat call is billed. That last point explains the otherwise puzzling idempotentHint=false on a pure read, which the annotations alone would not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation and the return shape, then routes to the alternative and closes with error/pricing facts. Dense and mostly waste-free, though the charging point is restated ('first 25 free; failed calls free' then 'each call is charged, so repeats are not free').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema, the description still explains what comes back (number and optional address decoding), what errors to expect, and cost implications. Nothing an agent needs to call it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, but the description adds meaning the schema does not: that the slot argument accepts mapping and proxy slots and that the address form is a 0x 32-byte key, plus a worked address example. Marginal but real value over the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('read one raw storage slot ... eth_getStorageAt') and details the return form (32-byte word as number, and as address when applicable). It explicitly distinguishes itself from the sibling polygon_proxy, so an agent can pick between them 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('inspect contract state that has no getter, owners or implementation pointers') and names the alternative for proxy slots (polygon_proxy). The inverse case - use polygon_call for state that does have a getter - is only implied, so not quite a full when/when-not/alternatives statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_token_balancePolygon PoS ERC-20 balanceA
Read-only
Inspect

ERC-20 token balance of a wallet on Polygon PoS (USDC, USDT, WETH or any token, via balanceOf): raw amount, decimals, symbol and the human-readable amount, live from the token contract. Use to check stablecoin or token holdings before a transfer or trade; for the native coin use polygon_balance. Both inputs are 0x addresses (40 hex characters); no contract returns 404 and a non-ERC-20 contract 422, both uncharged. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC, USDT, WETH or DAI, or the 0x ERC-20 contract address
addressYes0x wallet address

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, non-destructive, and non-idempotent hints. The description adds substantial context beyond them: live contract read, no state changes, charged repeats, $0.01/call pricing, first 25 free, failed calls free, and specific 404/422 error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and routing, followed by operational details. It is dense but mostly justified because there is no output schema and pricing/error behavior matters; minor redundancy around charging and repeats slightly weakens concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries return-value responsibility and does so: raw amount, decimals, symbol, and human-readable amount. It also covers input format, failure modes, and charging, making it complete for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already explains that token may be a ticker or a 0x ERC-20 contract address. The description adds useful error details, but its claim that 'both inputs are 0x addresses' conflicts with the schema's ticker option and can mislead an agent about valid token inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and operation: ERC-20 token balance of a wallet on Polygon PoS, with token symbol/contract detail and the balanceOf mechanism. It also explicitly differentiates from the native coin case by pointing to polygon_balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use case: check stablecoin or token holdings before a transfer or trade. It also names the alternative for the native coin via polygon_balance, which is the key sibling distinction for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_token_infoPolygon PoS ERC-20 token infoA
Read-only
Inspect

Look up the name, symbol, decimals and total supply of an ERC-20 token contract on Polygon PoS, live from the contract. Use to identify an unknown token address or to format raw amounts; for a holder's balance use polygon_token_balance. Input is a ticker (USDC, WETH…) or the token's 0x contract address; an address that is not an ERC-20 contract returns 422, uncharged. Example: token=0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken: a ticker such as USDC or WETH, or the 0x ERC-20 contract address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/destructive, but the description adds material context: pricing ($0.01/call, first 25 free, failed calls free), the 422-uncharged failure mode, and the non-idempotent cost implication ('repeats are not free'). That is behavior an agent cannot infer from the hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the sibling redirect, then input format and example. The pricing/billing sentence is dense and slightly tacked on, but every clause carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return burden — and it does, enumerating name, symbol, decimals, and total supply. With the error behavior and cost model also disclosed, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the ticker-vs-address input is already documented. The description goes beyond it with a concrete example address and the error semantics for a non-contract address, adding real value on top of the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (look up name/symbol/decimals/total supply of an ERC-20 contract on Polygon PoS) and returns it is live from the contract. It explicitly distinguishes itself from the sibling polygon_token_balance, so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases (identifying an unknown token address, formatting raw amounts) and names the alternative for the other need ('for a holder's balance use polygon_token_balance'). The when-not condition (non-ERC-20 address returns 422) is also spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_token_transfersToken transfers, Polygon PoSA
Read-only
Inspect

List a wallet's recent transfers of one ERC-20 token (default USDC) on Polygon PoS, in and out, over the last N blocks (1-2,000, default 1,000): direction, counterparty, amount and transaction, newest first, up to 50. Use to confirm a payment arrived or see what was sent; for the current balance use polygon_token_balance. Malformed addresses are rejected with 400, uncharged. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenNoToken: a ticker such as USDT or WETH, or the 0x ERC-20 contract (default: USDC on this network)
blocksNoHow many recent blocks to scan (1-2000, default 1000; 2,000 blocks is about 67 minutes on Polygon PoS)
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/openWorld/idempotent, but the description adds substantial context beyond them: cost model ($0.01/call via x402 or card key, first 25 free, failed calls free), the 400 rejection for malformed addresses being uncharged, and the warning that repeats are not free because each call is billed. That billing/repeat-charge nuance is exactly the kind of behavior an agent needs and cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, scope, alternative, then pricing; the example address earns its place as a format anchor. Slightly redundant on cost, which is mentioned twice ('first 25 free; failed calls free' and 'each call is charged, so repeats are not free'), but the density is justified for a paid tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by naming the returned fields (direction, counterparty, amount, transaction), ordering (newest first) and row cap (up to 50). No output schema leaves nothing critical unspecified for an agent to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters including defaults and ranges are already documented in structured form. The description restates the USDC default and the 1–2,000 block window, and adds a concrete example address, but adds no semantics (e.g. how block window interacts with the 50-result cap) beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('recent transfers of one ERC-20 token ... on Polygon PoS') with scope details (in/out, block window, default USDC, cap of 50, sort order). It explicitly contrasts itself with polygon_token_balance, so an agent can separate it from the balance 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage scenarios ('confirm a payment arrived or see what was sent') and names the alternative tool with the condition that selects it ('for the current balance use polygon_token_balance'). The when-to-use and when-to-use-something-else paths are both explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polygon_txPolygon PoS transactionA
Read-only
Inspect

Look up a Polygon PoS transaction by hash: sender, recipient, value in POL, nonce, gas limit, the 4-byte function selector and its block. Use to see what was sent or whether it exists; for success or failure and fees paid use polygon_receipt, for emitted events polygon_logs. Input is a 0x-prefixed 64-hex hash; an unknown hash returns 404, uncharged. Example: hash=0x23e86c30c46638b2e9798692fe89327a66aa8569a5d4a566125f655aeb8f80c7. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hashYes0x-prefixed transaction hash (64 hex characters)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: unknown hash returns 404 uncharged, failed calls are free, each call is charged so repeats are not free, and pricing via x402 USDC or card key with 25 free calls — which usefully explains the idempotentHint=false. The closing 'reads or computes only and changes nothing' mostly restates readOnlyHint/destructiveHint=false, which is the only redundant part.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then alternatives, then input format, example, and pricing in a compact block with no wasted sentences. The trailing safety/pricing sentence is dense and partly duplicates annotation semantics, keeping it just short of ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description covers the return fields, input format with example, error/404 behavior, and cost model. Combined with annotations already declaring the safety profile, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the 0x-prefixed 64-hex format, so the baseline is 3. The description goes slightly further by supplying a concrete example hash and stating the 404 behavior for unknown hashes, adding marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up a Polygon PoS transaction by hash') and enumerates the returned fields (sender, recipient, value in POL, nonce, gas limit, function selector, block), so the agent knows exactly what it gets. It also distinguishes itself from polygon_receipt and polygon_logs by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance ('Use to see what was sent or whether it exists') and names the two alternative tools with the conditions that select them (success/failure and fees → polygon_receipt; emitted events → polygon_logs). Nothing 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.

price_tokenCrypto price and token price: USD price of a token from Uniswap v3 poolsA
Read-only
Inspect

Crypto token USD price by ticker (ETH, BTC, USDC, AERO, ARB, OP, LINK…) or by any ERC-20 0x address on Base, Ethereum, Arbitrum or Optimism, from the deepest Uniswap v3 pool against USDC or WETH, read live from the chain. Returns the pool, its fee tier, the quote reserve and a thin-liquidity flag. Spot price, not a time average. No pool returns 404, uncharged. Use to value a token or check a quote before a swap or payment. Example: symbol=ETH. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork: base (default), eth, arb or op
symbolNoTicker such as ETH, BTC, USDC, AERO, ARB, OP or LINK (instead of address; ETH and BTC mean the wrapped tokens)
addressNo0x ERC-20 token contract address (instead of symbol)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the read-only/safe profile, and the description adds substantive behavior beyond them: per-call cost ($0.01, first 25 free, failed calls free), that repeats are charged despite idempotentHint=false, that a missing pool yields a free 404, and what the response contains (pool, fee tier, quote reserve, thin-liquidity flag). That is exactly the payment and failure context 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and data source are front-loaded, and the example is compact and useful. It is dense but several clauses (payment rails, free-tier counts) crowd the middle, slightly blurring the scan order for an agent skimming for when-to-use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the returned fields and the 404 failure mode, and it covers cost and side effects. The one real hole is the zero-required-parameter contract: it does not say what is returned or errored if neither symbol nor address is passed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents that address is used "instead of symbol" and that ETH/BTC mean wrapped tokens. The description adds only a light gloss (full chain names for the base/eth/arb/op enum abbreviations) and never addresses what happens when neither symbol nor address is supplied, notable given zero required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource (USD price of a crypto token by ticker or ERC-20 address), the chains supported, and the exact source (deepest Uniswap v3 pool vs USDC/WETH). It also pins down that this is spot, not a time average. It never mentions the near-identical sibling price_tokens, so an agent gets no explicit disambiguation between the two.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to value a token or check a quote before a swap or payment" plus a concrete example (symbol=ETH) gives a clear use context, and "Spot price, not a time average" implicitly rules out historical/TWAP use cases. It stops short of naming an alternative tool or stating exclusions vs btc_price / price_tokens / fx.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

price_tokensCrypto prices in USD for up to 20 tokens in one call: get USD prices for several crypto tokens or coins in one callA
Read-only
Inspect

USD prices for up to 20 crypto tokens in one call, by ticker (ETH, BTC, USDC, AERO…) or ERC-20 0x address, on Base, Ethereum, Arbitrum or Optimism, each from its deepest Uniswap v3 pool against USDC or WETH, read live from the chain, with pool, reserve and a thin-liquidity flag. Tokens without a pool are listed under unpriced instead of failing the call. Spot prices. Use to value a basket of tokens or refresh a watchlist in one paid call. Example: symbols=ETH,BTC,AERO. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork: base (default), eth, arb or op
symbolsNoComma-separated tickers such as ETH,BTC,AERO (with or instead of addresses; 1-20 tokens in all)
addressesNoComma-separated 0x ERC-20 token addresses (with or instead of symbols; 1-20 tokens in all)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/destructiveHint annotations, it discloses the pricing model ($0.005/call, first 25 free, failed calls free), that repeats are not free (consistent with idempotentHint=false), the on-chain data provenance (deepest Uniswap v3 pool vs USDC/WETH), and the graceful-degradation behavior (unpriced list instead of failing). That is unusually rich context an agent cannot get from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with scope and covered chains, then pricing and safety, so the most decision-relevant facts come first. It is dense and long for one paragraph, but nearly every clause (chains, pool source, unpriced fallback, cost, free retries) carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by naming what comes back: price, pool, reserve, and a thin-liquidity flag, plus the unpriced fallback list. Combined with the billing and safety notes, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented, including the enum values and the 1-20 token limit. The description mostly restates the accepted formats (tickers, 0x addresses, chain names) and adds no syntax or mixing rules beyond what the schema already says, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource-scope statement: USD prices for up to 20 tokens in one call, by ticker or ERC-20 address, across four named chains. It clearly distinguishes itself from the singular sibling price_token by emphasizing the batch/basket nature and the 'one call' framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a concrete usage context ('value a basket of tokens or refresh a watchlist in one paid call') and gives a worked example (symbols=ETH,BTC,AERO), which is enough to pick this over the single-token sibling. It stops short of an explicit 'use price_token instead when you only need one token' exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pypiPyPI package info: latest version, summary and licence of a Python package on PyPIA
Read-only
Inspect

Latest version, summary, licence, required Python version, home page, release date and number of releases of a Python package on PyPI. Use to check a dependency before installing it. Example: package=requests. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
packageYesPyPI package name

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important behavioral details: pricing per call, first 25 free, failed calls free, and that repeated calls are charged. It also explicitly confirms the tool only reads or computes and changes nothing, consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with what the tool returns, followed by usage, example, and billing details. It is reasonably concise, though the pricing and repeat-charge information is somewhat verbose and partially restates the cost point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-parameter read-only lookup with no output schema, the description lists the returned fields, gives usage context, an example, and billing/side-effect behavior. Nothing essential for correct invocation appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is fully described in the schema as the PyPI package name. The description adds a concrete example (package=requests), which helps clarify the expected value format beyond the schema's terse description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (a Python package on PyPI) and enumerates the returned information: latest version, summary, licence, required Python version, home page, release date and release count. The example and 'Use to check a dependency before installing it' make the tool's purpose unambiguous and distinguish it from sibling data tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context: check a dependency before installing it, with an example call. It does not mention alternatives or when not to use it, but there is no obvious overlapping sibling for PyPI package metadata.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qrQR code generator: a QR code as SVG for any text or URLA
Read-only
Inspect

Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q or H. Use to put a link, Wi-Fi string or payment request on a page, label or ticket. Example: text=https://agent-data-tools.revmesh2074.workers.dev. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
eccNoError correction: L, M (default), Q or H
sizeNoPixels per module, 1-20 (default 4)
textYesThe text or URL to encode
marginNoQuiet zone in modules, 0-10 (default 4)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: pricing ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), output format, and an explicit 'reads or computes only and changes nothing' that corroborates readOnlyHint. 'Each call is charged, so repeats are not free' also explains the idempotentHint=false annotation in billing terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then usage, then example, then pricing. Dense but every clause carries information; the pricing/billing sentence is long but justified since cost affects repeat-call decisions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming both return artifacts (SVG and data URL). Combined with the input character cap, ECC options, and billing behavior, 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.

Parameters4/5

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 adds a real constraint not in the schema — the 1,000-character UTF-8 limit — and restates the ECC option set with the M default. It does not add detail on size/margin beyond the schema, which is already well documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (generate) and resource (QR code), the accepted input (URL or any UTF-8 text up to 1,000 chars), the output form (scalable SVG plus ready-to-embed data URL), and supported ECC levels. No sibling tool does anything similar, so an agent can route this unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('put a link, Wi-Fi string or payment request on a page, label or ticket') and a literal example call with text=... No exclusions or alternatives are named, but no sibling overlaps this capability, 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.

random_colorRandom colourA
Read-only
Inspect

One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toneNoany (default), pastel or dark
countNoHow many (1-50, default 1)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, non-idempotent and non-destructive, but the description adds genuinely new operational context: per-call cost ($0.01 via x402 USDC or card key), the first 25 calls free, and that failed calls are not charged. That reinforces the idempotentHint=false consequence in a way annotations cannot.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and formats come first, then use cases, then billing — a sensible front-loading order with no wasted clauses. The billing sentence is long and packs several facts (price, payment rails, free tier, refunds), slightly weighing down an otherwise tight definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the return formats (hex, RGB, HSL), and it covers cost and safety behavior. The only minor gap is that the count range and default are left entirely to the schema, but that is acceptable given full schema coverage and simple annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema (tone: any/pastel/dark; count: 1-50, default 1). The description only restates the tone restriction and shows an example call, adding little beyond the structured fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (generate random colours) plus the output formats (hex, RGB, HSL) and the tone restriction, which is more precise than the sibling 'color' or 'color_contrast' converters. It does not explicitly say how it differs from those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for placeholders, avatars and design ideas" gives implied usage contexts, and the "Example: count=3" shows invocation. There is no explicit when-not guidance and no pointer to alternatives like 'color' or 'color_contrast', so the agent must infer the boundary itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_numberRandom numberA
Read-only
Inspect

One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Example: min=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
maxNoHighest value (default 100)
minNoLowest value (default 1)
countNoHow many (1-1000, default 1)
uniqueNotrue for no repeats

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: a cryptographic source, inclusive bounds, a metered cost model ($0.01/call, first 25 free, failed calls free) and that repeats are billed again, which reinforces idempotentHint=false. The "reads or computes only and changes nothing" clause largely restates readOnlyHint, so it earns no extra credit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and range semantics are front-loaded in the opening clause, and the pricing sentence carries genuinely useful agent-facing information. The dangling "Example: min=1." is a truncated fragment that wastes a slot without illustrating anything.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, all-optional, non-destructive compute tool with a fully described schema, this covers range semantics, uniqueness, randomness quality and cost. The only real gap is the shape of the return value when count > 1, which no output schema fills in.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, and the description goes further by clarifying that ranges are inclusive and that `unique` means "all different" — details the schema does not spell out. It still does not describe what `count` returns (single value vs array).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: generating one or more random whole numbers within an inclusive range, from a cryptographic source. The resource is clearly narrower than random_pick or random_shuffle, but siblings are never named, so the 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for draws, sampling and games" gives a clear positive context for when this tool applies. It stops short of exclusions or pointing at alternatives like random_pick (list-based) or dice, which would have made routing unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_passwordPassword generator: generate a strong random passwordA
Read-only
Inspect

Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing is stored or logged. Use when creating accounts or secrets. Example: length=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many (1-20, default 1)
lengthNo8-128 characters (default 20)
symbolsNofalse to leave out symbols

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/destructive hints, but the description adds genuinely new behavioral facts: cryptographic entropy source, no storage or logging of results, and a per-call pricing model with the first 25 calls free and failed calls free. It also flags that repeat calls incur cost, which reinforces the non-idempotent hint with a practical consequence an agent would otherwise miss.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then mechanism, then usage, then cost — a sensible order. It is slightly padded: "Reads or computes only and changes nothing" restates readOnlyHint, and "repeats are not free" repeats the cost sentence immediately preceding it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with annotations and no output schema, the description covers purpose, safety, and cost well. The one gap is the return shape — with no output schema, the description should say whether count>1 yields an array of strings, which an agent needs to parse the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the three parameters are already fully documented. The description only gestures at 'choose length and character sets' and offers 'Example: length=20', adding no constraints or semantics beyond the schema, and never mentions the count parameter. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate strong random passwords or passphrase-style strings') plus the mechanism (cryptographic random source) and the tunable dimensions (length, character sets). This clearly separates it from neighbor tools like random_number, random_pick, or uuid, which produce different artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when creating accounts or secrets" gives a concrete triggering context, and "repeats are not free" warns against reflexive retry. It stops short of naming an alternative (e.g., uuid for identifiers), so the routing guidance is contextual rather than exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_pickPick at random from a listA
Read-only
Inspect

Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Example: items=Ada,Alan,Grace,Linus. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many to pick (default 1)
itemsYesComma-separated items

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing cost and auth mechanics ('Price $0.01/call via x402 USDC or a card key', 'first 25 free; failed calls free') and explaining the practical consequence of idempotentHint=false ('each call is charged, so repeats are not free'). Still silent on the return shape, which matters for a 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then example, then pricing caveat — a sensible order with little waste. 'Reads or computes only and changes nothing' partly duplicates readOnlyHint/destructiveHint and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema tool, the description covers action, format, use cases, and billing — enough to call it correctly and safely. The one real gap is that nothing says what the response contains (picked items only, or the remainder as well), which the agent must discover by calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The example 'items=Ada,Alan,Grace,Linus' demonstrates the accepted list format concretely, but nothing is added about count semantics such as whether it must be ≤ list length or what happens when count exceeds the list size.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Pick one or more items at random (without repeats) from a comma- or line-separated list'), which is precise enough to separate it from random_number and random_color. It never names the near-neighbors random_shuffle or random_teams, so the agent must infer that those reorder/partition rather than sample.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete usage contexts are given ('raffles, choosing who goes first, or breaking ties fairly'), which clearly frames when to reach for this tool. There are no exclusions or named alternatives, so the agent gets positive guidance but no routing rules against siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_shuffleShuffle a listA
Read-only
Inspect

Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Example: items=1,2,3,4,5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
itemsYesComma-separated items

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: the underlying Fisher-Yates algorithm with a cryptographic random source, the billing model ($0.01/call, 25 free, failed calls free), and the cost consequence of non-idempotency ('each call is charged, so repeats are not free'). It also restates 'changes nothing', consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and algorithm are front-loaded, and each sentence carries information. The pricing is somewhat overstated across two sentences ('Price $0.01/call ... first 25 free' and 'each call is charged, so repeats are not free'), a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema utility, the description covers input format, example, algorithm, safety and cost — enough to call it correctly. The one gap is return shape: it doesn't say whether output is comma-separated, line-separated, or an array, which the absent output schema leaves undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already says 'Comma-separated items', so the baseline is 3. The description goes beyond it by accepting line-separated input as well and showing a filled-in example, which resolves the main ambiguity about the delimiter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Shuffle a comma- or line-separated list into a random order') and names the algorithm, which pins down semantics precisely. The use cases (draw orders, seating, playlists) implicitly separate it from random_pick and random_teams, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for draw orders, seating and playlists' gives clear positive context plus a concrete example (items=1,2,3,4,5). It stops short of naming an alternative or stating when NOT to use it (e.g. picking one winner → random_pick).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_teamsSplit people into teamsA
Read-only
Inspect

Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,Tim. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
itemsYesComma-separated names
teamsNoNumber of teams (default 2)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false. The description adds important cost and billing behavior ('Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free') and emphasizes that repeats are charged, which is not in annotations. It also reiterates the read-only nature, aligning with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then adds use cases, an example, and pricing details. It is mostly efficient, though the pricing and billing sentences could be seen as slightly verbose for a tool selection description, but they are relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers purpose, use cases, example, cost, and behavior. However, it does not describe the return format (e.g., how teams are presented), which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents both parameters. The description provides an example for 'items' that reinforces the comma-separated format, but adds no new semantic constraints or meaning beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('split') and resource ('list of names') and clarifies the outcome ('random, evenly sized teams'). This distinguishes it from sibling tools like random_shuffle or random_pick, which do not divide into teams.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear use cases ('games, workshops and classrooms') but does not explicitly say when to use this versus alternatives like random_shuffle, or mention prerequisites or exclusions. The context is helpful but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommendAPI recommendation: which API to call for a taskA
Read-only
Inspect

Describe a task in plain words and get the best-matching paid API calls for it from a catalog of 320 tools (web search and page reading, LLM chat, token prices and chain reads on 5 networks, sanctions and company checks, weather, finance and utilities): each pick with the exact call URL, required inputs, price, MCP tool name and whether it is in the free calls. Use when an agent needs to find which API to call before paying for one. Example: need=current gas price on Base. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
needYesThe task in plain words, up to 300 characters
countNoHow many picks, 1 to 5 (default 3)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost model: $0.002/call via x402 USDC or a card key, first 25 free, failed calls free, and that each call is charged so repeats are not free. This is exactly the kind of economic and auth context annotations cannot express, and the 'repeats are not free' note is consistent with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the catalog scope, with pricing and the example trailing correctly. The body is a dense multi-clause sentence with a parenthetical category list that slows reading, but no clause is genuinely dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter discovery tool with no output schema, the description covers catalog breadth, the shape of each recommendation, cost and free tier, and the read-only nature of the call. An agent has everything needed to invoke it and interpret the result without opening anything else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented; the baseline is 3. The description adds value by showing a real 'need' value, illustrating the expected phrasing and specificity, though it says nothing about the count parameter beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: turn a plain-language task into best-matching paid API calls from a 320-item catalog, and enumerates the return fields (call URL, required inputs, price, MCP tool name, free-call status). It is unmistakably distinct from the utility siblings (base64_encode, calc_tip, uuid), which do work rather than recommend tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit triggering condition: 'Use when an agent needs to find which API to call before paying for one', which also implies the ordering constraint (recommend first, then pay). A concrete worked example ('need=current gas price on Base') removes ambiguity about the granularity of a 'task'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regex_testRegex tester, test a regular expression: test a regular expression against a text and get every match with its groupsA
Read-only
Inspect

Run a JavaScript regular expression against a text and return every match with its index and capture groups (named groups included). Pattern up to 300 characters, text up to 5,000; patterns with nested quantifiers such as (a+)+ are refused as unsafe, uncharged. Use to check a pattern before using it in code. Example: pattern=(\d{4})-(\d{2}), text=2026-10 and 2027-01. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to search
flagsNoFlags such as g, i, m, s, u (g is always added)
patternYesThe pattern without slashes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: hard input limits (300-char pattern, 5,000-char text), refusal of unsafe nested quantifiers like (a+)+, per-call pricing through x402 USDC or card key, 25 free calls, and the explicit note that repeats are not free. These details complement readOnlyHint=true and idempotentHint=false rather than contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core behavior and limits, then the example, then pricing. It is dense and every sentence carries information, though the billing clauses are slightly compressed and could be split for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description still explains the return shape (matches with index and capture groups, including named ones). Input limits and safety refusals are covered, so 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.

Parameters4/5

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 with the pattern length cap and a concrete pattern/text example. It does not elaborate on flags beyond what the schema states (e.g., precedence, the always-on g flag), leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a precise verb+resource (run a JavaScript regex against text) and states exactly what is returned: every match with index and capture groups, named groups included. An agent can immediately distinguish this from sibling utilities such as text_extract or text_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to check a pattern before using it in code' gives a clear usage context, and a concrete worked example follows. It does not name an alternative or state when not to use it, but the use case is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robotsRobots.txt check: may this crawler fetch this URL?A
Read-only
Inspect

Read a site's robots.txt and say whether a crawler may fetch a URL, by RFC 9309 rules as Google applies them (most specific user-agent group, longest matching Allow or Disallow, Allow on ties, * and $ wildcards). Returns the deciding rule, the group used, the rule count and the sitemaps listed. A missing robots.txt (4xx) allows everything. Use before scraping or crawling a site politely; for the sitemap URLs themselves use sitemap. Example: url=https://www.google.com/search. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe page URL to check (its site's /robots.txt is read)
agentNoCrawler user agent or product token (default *)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, open-world, non-destructive behavior, but the description adds useful operational context: the 4xx missing-file behavior, the returned fields, pricing, failed-call charging, and repeat-call cost. This goes well beyond what the annotations provide and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the purpose, rule semantics, return values, and usage guidance. It is mostly efficient, though the pricing sentence and the later 'each call is charged' clause are somewhat redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still explains the return fields and the missing-robots.txt edge case. Combined with the fully documented two-parameter schema and the annotations, an agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both 'url' and 'agent' are already documented in the input schema. The description provides an example URL and mentions crawler/user-agent rules, but it does not add much parameter meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read a site's robots.txt and say whether a crawler may fetch a URL.' It also distinguishes the tool from the related sitemap use case, so an agent can identify it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to 'Use before scraping or crawling a site politely' and routes sitemap URL exploration to the separate sitemap tool. The missing-robots.txt behavior is also stated, giving clear context for when the tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sanctions_checkSanctions check (OFAC screening): SDN screening for a crypto wallet or nameA
Read-only
Inspect

OFAC sanctions screen for a crypto wallet before you pay it: checks an address (BTC, ETH, USDT, TRX and more) or a person or company name against the US Treasury SDN list, aliases included. Returns a verdict (block on a listed address, review on a name match, pass), each match with SDN ID, programs and match strength, and the list date. A screening aid, not legal advice. Use before paying; full verdict with wallet risk: check_counterparty. Example: address=0x098B716B8Aaf21512996dC57EB0615e2383E2f96. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
nameNoPerson or company name; matches when every word appears in a listed name or alias
addressNoCrypto address to check (give address, name or both)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: the verdict taxonomy (block/review/pass), what each match carries (SDN ID, programs, match strength), the list date, and that each call is charged so repeats are not free — which explains the idempotentHint=false. Pricing via x402 USDC or card key and 'failed calls free' are disclosed. Not a 5 only because the matching thresholds behind 'match strength' remain opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded in the first clause, and the alternative tool and pricing trail behind it. Dense but nearly every clause carries decision-relevant information; the pricing/billing sentence is the longest and the least essential to tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully covers the return shape (verdict, per-match SDN ID/programs/match strength, list date). Combined with the pricing and safety framing, an agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by naming supported chains (BTC, ETH, USDT, TRX 'and more') and giving a concrete example address format. It still doesn't say what happens when both name and address are supplied (OR vs AND semantics).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('OFAC sanctions screen for a crypto wallet') plus the accepted input types (address on BTC/ETH/USDT/TRX, or a person/company name) against a named list (US Treasury SDN, aliases included). It also distinguishes itself from the sibling check_counterparty by scoping that tool to the fuller wallet-risk verdict.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when: 'Use before paying'. Explicit alternative: 'full verdict with wallet risk: check_counterparty'. It also frames its own limits ('a screening aid, not legal advice'), so an agent knows both the trigger and the escalation path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screenshotWebsite screenshot: capture a web page as an imageA
Read-only
Inspect

Render any public web page in a real headless Chrome browser, with JavaScript executed, and get a JPEG screenshot (1280 px wide, base64) plus the final URL, HTTP status and page title. Set fullPage=true to capture up to 4000 px of page height. Use for visual checks, page previews, monitoring and feeding pages to vision models. Example: url=https://example.com. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page to capture
fullPageNoSet to true to capture the full page height (max 4000 px) instead of the 1280x800 viewport

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnly/openWorld/idempotent=false, the description earns extra credit by disclosing JavaScript execution, output format and dimensions, fullPage's 4000 px cap, and the per-call pricing rationale that explains why repeats aren't free. It also states failed calls are free and that the tool changes nothing, matching the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core render-and-return behavior, then output shape, fullPage semantics, use cases, example, and pricing. Dense but nearly every clause is useful; payment details are slightly long but relevant given idempotent=false.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully explains the return payload (JPEG base64, final URL, HTTP status, title), sizing, and cost behavior. An agent has everything needed to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented there, including the 4000 px cap and 1280x800 viewport. The description adds only a sample URL value, so the schema largely carries this dimension — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — rendering a public page in headless Chrome and returning a JPEG screenshot — plus the returned metadata. This clearly differentiates it from metadata siblings like url_meta or url_favicon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Lists concrete use cases (visual checks, page previews, monitoring, feeding vision models) and an example call, which indicates when it's appropriate. It does not explicitly name alternatives or exclusions, 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.

sec_13f13F holdings, fund holdings: what an institution ownsA
Read-only
Inspect

The latest 13F-HR holdings of an institutional investment manager (hedge fund, mutual fund family, bank) from SEC EDGAR: each position's issuer, class, CUSIP, value in USD, shares and portfolio weight, largest first, plus the report period, total value and position count. Give the filer by name (e.g. Berkshire Hathaway) or CIK. Public SEC data, filed quarterly up to 45 days after the quarter. Use to see what a fund owns. Example: filer=Berkshire Hathaway. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
cikNoThe filer's SEC CIK, e.g. 1067983 (instead of filer)
filerNoFund manager's name, e.g. Berkshire Hathaway (or give cik)
limitNoPositions to return, 1-200 (default 25)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: ordering (largest first), recency semantics of 13F filings, and an unusually explicit cost model (first 25 free, $0.01/call via x402 or card key, failed calls free, repeats are not free). The annotations already declare readOnly/non-destructive, and the description reinforces 'reads or computes only and changes nothing'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool returns and how to identify the filer, then pricing at the end where it belongs. The final billing sentence is a long run-on that packs in several clauses, but each sentence carries information the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must cover return shape, and it does: issuer, class, CUSIP, USD value, shares, portfolio weight, report period, total value and position count. Combined with the pricing and freshness notes, 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.

Parameters3/5

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 restates the filer-vs-CIK choice already documented in the schema and omits the limit parameter entirely, adding no syntax or format detail beyond what structured fields provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'latest 13F-HR holdings of an institutional investment manager ... from SEC EDGAR', and enumerates the returned fields. Naming the 13F-HR form cleanly separates it from sibling tools like sec_filings, sec_8k and sec_insider without the agent having to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to see what a fund owns' plus a worked example (filer=Berkshire Hathaway) gives a clear trigger. It also supplies timing context (filed quarterly, up to 45 days after quarter end) that tells the agent when data may be stale. It never names an alternative or an exclusion, 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.

sec_8k8-K filings, SEC material events: by companyA
Read-only
Inspect

Latest Form 8-K current reports for a US-listed company by ticker, name or CIK: filing date, the reported items with their meaning (results of operations, executive departures, material agreements, cybersecurity incidents, bankruptcy and others), accession number and a direct link, newest first. Public SEC EDGAR data. Use to watch a company's material events or check what it disclosed recently. Example: ticker=AAPL. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193 (instead of ticker)
limitNoFilings to return, 1-40 (default 10)
tickerNoStock ticker or company name, e.g. AAPL (or give cik)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, destructiveHint=false, and idempotentHint=false. The description reinforces this with 'reads or computes only and changes nothing' and explains the idempotent=false consequence in practical terms ('each call is charged, so repeats are not free'), plus pricing, free-trial, and failed-call-fee details. That is meaningful added value, though it stops short of covering rate limits or pagination beyond the limit param.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with purpose and returned fields before pricing caveats, and every sentence carries information (contents, data source, usage, pricing, safety). It is slightly dense with pricing mechanics but no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the return fields and ordering ('newest first'), and it discloses the billing model and safety profile. It is essentially complete; only edge details like error behavior or pagination limits are left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each param is already documented. The description reinforces that ticker also accepts a company name and that CIK is an alternative key, but adds no syntax or range detail beyond the schema (e.g., limit 1-40 lives in the schema). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Latest Form 8-K current reports'), specifies the lookup keys (ticker, name, or CIK), and enumerates the returned contents (filing date, reported items with their meaning, accession number, direct link, newest first). This clearly distinguishes it from general siblings like sec_filings or sec_13f.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit use case ('watch a company's material events or check what it disclosed recently') and an invocation example (ticker=AAPL). However, it never names an alternative such as sec_filings or states when NOT to use it, so context is clear but exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_filingsSEC filings (EDGAR) by ticker: 10-K, 10-Q, 8-K and Form 4 for a US public companyA
Read-only
Inspect

Latest SEC EDGAR filings for a US-listed company by stock ticker or CIK: form (10-K, 10-Q, 8-K, 4, S-1…), filing and report dates, accession number, document description and a direct link, newest first, optionally only one form type. Plus company name, CIK and industry (SIC). Public SEC data. Use to check a company's latest annual or quarterly report, insider trades (form 4) or material events (8-K). Example: ticker=AAPL. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193 (instead of ticker)
formNoOnly this form type, e.g. 10-K, 10-Q, 8-K or 4 (default: all)
limitNoFilings to return, 1-50 (default 10)
tickerNoStock ticker such as AAPL (or give cik)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, and the description adds genuinely new context: results are newest-first, the source is public SEC data, and each call is billed ($0.01/call, first 25 free, failures free) with repeats not free — consistent with idempotentHint=false. It does not cover rate limits or truncation behavior for large results, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and returned fields are front-loaded before pricing and safety notes, which is the right ordering. The pricing/credits sentence runs long and reads partly as marketing, but it carries information an agent needs before calling a metered endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description enumerates the returned fields (form, filing/report dates, accession number, document description, link, plus company name, CIK, SIC), which is what an agent needs to judge result usefulness. Ordering (newest first) and the form filter are covered; only pagination/truncation semantics for large limits are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (cik, form, limit, ticker) are already documented, including defaults and ranges. The description only reinforces that form filtering is optional and that ticker or CIK is acceptable, adding little beyond the schema — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (retrieve latest SEC EDGAR filings) and pins the scope to a US-listed company by ticker or CIK, enumerating the form types covered and the fields returned. No sibling tool touches SEC filings, so there is no ambiguity about which tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says what it is for: checking a company's latest annual/quarterly report, insider trades (Form 4), or material events (8-K), and gives a concrete example (ticker=AAPL). It does not state any exclusion or point to an alternative, but no 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.

sec_insiderInsider trading, SEC Form 4: trades by companyA
Read-only
Inspect

Recent insider trades in a US-listed company from its SEC Form 4 filings: who traded (name and role: director, officer title, 10% owner), date, buy or sell (open-market purchase, sale, award, option exercise, tax withholding), shares, price, dollar value, holding afterwards and whether it was under a 10b5-1 plan. Up to 10 filings, newest first. Public SEC EDGAR data. Use to see whether insiders are buying or selling. Example: ticker=AAPL. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
cikNoSEC Central Index Key of the company (instead of ticker)
limitNoForm 4 filings to read, 1-10 (default 5)
tickerNoStock ticker or company name, e.g. AAPL (or give cik)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and warning that repeats are charged, which reinforces the non-idempotent hint. It also names the data source (public SEC EDGAR). Some space is spent restating the readOnly/destructive-free behavior already in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause and the pricing caveat closes it out usefully. The mid-sentence enumeration of returned fields is dense but earns its place since there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing what each trade record contains (who, role, date, transaction type, shares, price, value, post-holding, 10b5-1 flag). Cost, source, ordering and limits are all covered; only the ticker-vs-cik precedence is left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so ticker/cik/limit are already documented, including the 1-10 default. The description only echoes the 10-filing cap and adds a ticker example, adding no new semantics about how cik and ticker interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource: insider trades from SEC Form 4 filings of a US-listed company, with the exact scope (up to 10 filings, newest first). This is clearly distinguishable from siblings like sec_13f (institutional holdings), sec_8k (material events) and sec_filings (generic filing lookup).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ("Use to see whether insiders are buying or selling") and a concrete example (ticker=AAPL). It never names an alternative sibling tool or states when NOT to use it, so the routing guidance is clear but not exclusive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semverCompare semantic versions: compare two version numbers and say which is newerA
Read-only
Inspect

Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch versions of the first. Use to decide whether an upgrade is a major change. Example: a=1.10.0, b=1.9.3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
aYesFirst version
bYesSecond version

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/not-destructive, but the description adds genuinely new context: per-call pricing, first 25 free, failed calls free, and the crucial clarification that 'each call is charged, so repeats are not free', which explains why idempotentHint is false. It does not describe the return shape beyond naming the values, keeping 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core comparison, then the bonus outputs, then the example, then pricing. Every sentence carries information, though the pricing clause is verbose ('Price $0.01/call via x402 USDC or a card key (/credits)') and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey the return values, and it does name all four outputs. It stops short of specifying the exact result format (e.g., a comparison sign or structured object), which is a minor residual gap for a two-param utility.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the worked example (a=1.10.0, b=1.9.3) and the phrase 'next ... versions of the first' clarify that the derived versions are computed from parameter a specifically — meaning the schema alone does not supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Compare two semantic versions') and goes further to specify the exact output: which is newer plus the next major, minor and patch versions of the first. Pre-release handling (2.0.0-rc.1) is called out, so the agent knows this is full SemVer, not naive string comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use case — 'Use to decide whether an upgrade is a major change' — and a worked example (a=1.10.0, b=1.9.3) that illustrates the non-obvious numeric ordering. No explicit when-not or alternative tools are named, 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.

seo_auditSEO audit, on-page: title, meta, headings, links and issuesA
Read-only
Inspect

On-page SEO audit of one URL: title and meta description with their lengths, canonical, meta robots, H1s and H2 count, images without alt text, lang and viewport, Open Graph and Twitter card tags, JSON-LD blocks, internal and external link counts and word count, plus a list of issues and a 0-100 score. Reads the server's HTML (no JavaScript), up to 1 MB. Use to check a page before publishing or to compare competitors. Example: url=https://www.wikipedia.org/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: it reads the server's raw HTML with no JavaScript, caps at 1 MB, changes nothing, and explains the charged-per-call pricing (x402 USDC or card key, first 25 free, failed calls free). That pricing note also explains why idempotentHint is false, which the annotations alone would leave confusing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and every clause adds a distinct fact. The first sentence is very long and the pricing tail is dense, but none of it is filler for an agent that must weigh cost before calling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must describe return contents — and it does so exhaustively, including the issue list and score. Input constraints (1 MB, no JS) and cost model are also covered, leaving nothing an agent needs to call correctly unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already described as an absolute http(s) URL, so the schema carries most of the load (baseline 3). The description contributes a concrete example (url=https://www.wikipedia.org/), which is a modest but real addition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('on-page SEO audit of one URL') and then enumerates the exact fields returned (title/meta lengths, canonical, H1/H2, alt-text gaps, OG/Twitter, JSON-LD, link counts, word count, issues, 0-100 score). That enumeration cleanly separates it from adjacent siblings like url_meta, domain_report and pack_seo_toolkit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('check a page before publishing or to compare competitors') and a worked example with a real URL. It does not name an explicit alternative or state when NOT to use it (e.g. vs. pack_seo_toolkit or url_meta), 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.

sitemapSitemap parser, URL extractor: documentation URLs from a bounded XML sitemapA
Read-only
Inspect

Read one public XML sitemap or sitemap index as structured URLs and source-reported dates. Supports gzip, substring filtering and pagination. Larger sitemaps are read from the start: the first 512 KiB and at most 1000 entries, with a warning. Does not crawl pages or follow child sitemaps. Invalid XML and execution errors are not charged; a valid empty match is charged. Use to find which pages of a docs site to read before calling /extract. Example: url=https://www.sitemaps.org/sitemap.xml. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public HTTP(S) XML sitemap URL; child sitemaps are not fetched automatically
offsetNoOffset into distinct reported matching locations (0-1000, default 0); use nextOffset to continue
maxUrlsNoReported matching locations examined in one page (1-100, default 25); invalid/nonpublic locations may reduce returned entries
containsNoOptional case-insensitive URL substring, at most 200 characters

Output Schema

NameRequiredDescription
urlYes
kindYes
textYes
formatYes
offsetYes
entriesYes
hasMoreYes
containsYes
finalUrlYes
warningsYes
fetchedAtYes
hashFormatYes
nextOffsetYes
sourceHashYes
contentHashYes
reportedEntriesYes
rejectedLocationsInPageYes
uniqueReportedLocationsYes
matchingReportedLocationsYesDistinct reported locations matching contains, before public-URL validation of the selected page.
missingOrInvalidLocationsYes
duplicateReportedLocationsYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, destructiveHint=false, openWorld), but the description adds substantial context beyond them: the 512 KiB / 1000-entry read cap with a warning, gzip support, the fact that invalid XML and execution errors are not charged while a valid empty match is, and the pricing model. The idempotentHint=false is consistent with the explicit per-call charge note.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scoping, then limits, charging, and an example URL. Dense but each clause carries information; the pricing/credits sentence is slightly mechanical but relevant to cost-aware agents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained. Given this, the description covers the remaining gaps an agent needs: read limits, no child-sitemap traversal, charging semantics, and a concrete example URL. 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.

Parameters4/5

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 meaning the schema lacks: substring filtering is case-insensitive, pagination continues from the start with a hard truncation limit, and the read cap explains why offset/maxUrls behavior matters. It stops short of tying each parameter name to its role, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one public XML sitemap or sitemap index as structured URLs and source-reported dates') and draws a hard boundary against crawling and sibling tools. An agent can distinguish it from contents/extract/robots without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the intended use ('find which pages of a docs site to read before calling /extract') and the exclusions ('Does not crawl pages or follow child sitemaps'). The empty-match-is-charged note further clarifies what counts as a useful call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slugSlugify, make a URL slug: turn a title into a clean URL slugA
Read-only
Inspect

Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, URLs and IDs. Example: text=Crème Brûlée & Straße!. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text
separatorNo- (default) or _

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/openWorld/destructive safety, and the description adds genuinely new behavior: per-call billing via x402 USDC or card key, 25 free calls, failed calls free. That also explains the meaning of idempotentHint=false ('repeats are not free'). It omits nothing critical, though the return shape is only implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability is front-loaded in the first sentence with a concrete example right after. The pricing sentence is slightly padded — 'each call is charged, so repeats are not free' restates the earlier 'Price $0.01/call' — costing a bit of tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, full schema coverage, and annotations carrying the safety profile, the description covers what an agent needs to call it. The only gap is that it never states the response is a single slug string, which is easy to infer but not explicit and there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real semantics: the separator defaults to '-' and replaces non-alphanumerics, and the example demonstrates the text input's transformation rules. It adds value beyond the schema's terse 'The text' and '- (default) or _'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('turn any text into a URL-friendly slug') and details the exact transformations: accent folding (é→e, ß→ss), lower-casing, and non-alphanumeric replacement. The worked example (Crème Brûlée & Straße!) makes the output unambiguous and separates it from siblings like url_encode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear intended uses ('file names, URLs and IDs'), which tells the agent when to reach for it. It stops short of naming alternatives or exclusions — e.g., it never says why to prefer this over url_encode or case — so the routing decision is only partly covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solana_balanceSolana balance: SOL balance of a walletA
Read-only
Inspect

SOL balance of a Solana wallet, read live from mainnet in lamports and SOL, plus its SPL token accounts (mint, symbol for well-known tokens, decimals, amount) when the public node serves them; otherwise tokens is null with a note. Use to check a Solana wallet before a payment. An address that is not 32-byte base58 is 400, uncharged. Example: address=vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesSolana wallet address (base58)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and non-destructive annotations, the description discloses mainnet sourcing, lamports/SOL output, conditional SPL token accounts, null tokens with a note when unavailable, invalid-address 400 behavior, and pricing. It also clarifies that failed calls are free while successful calls are charged, which is important operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads the core purpose before output behavior, validation, and pricing. It is appropriately sized for a paid, single-parameter API, though the charging/repeat-call point is mentioned twice in slightly different words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and only one parameter, the description supplies what an agent needs: what is read, what is returned, the fallback when token accounts are unavailable, invalid-address handling, and cost behavior. No important calling detail is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the single 'address' parameter as a base58 Solana wallet address. The description adds a concrete example and a validation constraint: addresses that are not 32-byte base58 return 400 and are uncharged.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise resource and scope: the SOL balance of a Solana wallet, read live from mainnet in lamports and SOL, plus SPL token accounts when available. It is clearly distinguishable from sibling chain-balance tools and from solana_token/solana_tx by its wallet-balance focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete usage context: 'Use to check a Solana wallet before a payment.' It also notes that the tool is read-only and that each call is charged, but it does not explicitly name when to use a sibling alternative instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solana_tokenSolana token info: supply, decimals, mint and freeze authorityA
Read-only
Inspect

Look up a Solana SPL token by its mint address, live from mainnet: decimals, total supply, whether a mint authority can still create more and whether a freeze authority can freeze holders (two common rug-pull risks), the token program, and, on request, the largest holder accounts with their share of supply. Use before buying or accepting an unknown Solana token. A mint that does not exist is 404, uncharged. Example: mint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
mintYesSPL token mint address (base58)
holdersNoLargest holder accounts to list, 0-20 (default 0; best effort, the public node rate-limits this lookup)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses pricing ($0.01/call via x402 USDC or card key), first 25 free, failed calls free, 404 uncharged for a nonexistent mint, no caching (repeats are not free), and that the holder lookup is best-effort due to public node rate limits. Annotations already cover read-only/non-destructive, and the description adds substantive operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb, resource and returned fields, and the safety/usage note follows immediately. The closing sentence ('each call is charged, so repeats are not free') partially restates the pricing already given, a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by enumerating every returned field plus the optional holders list. Error behavior (404 uncharged) and rate-limit caveat round out what an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds value: a concrete example mint address and the framing of `holders` as 'largest holder accounts with their share of supply' on request, which clarifies the intent of the optional param beyond the schema's terse wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('look up a Solana SPL token by its mint address') and enumerates exactly what is returned: decimals, supply, mint/freeze authority, token program, optional top holders. This clearly separates it from siblings like solana_balance (native SOL balance) or the EVM *_token_info tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case: 'Use before buying or accepting an unknown Solana token.' It does not name a specific sibling alternative or a when-not-to-use condition, but the trigger context is unambiguous for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stablecoin_supplyStablecoin supply: USDC and USDT on 5 networksA
Read-only
Inspect

Live total supply of USDC and USDT on Ethereum, Base, Arbitrum, Optimism and Polygon, read from each token contract (totalSupply), per network and summed per token, plus the grand total. A network whose nodes do not answer is listed with an error instead of failing the call. Use to track stablecoin issuance, liquidity on a chain or mints and burns over time. Example: token=both. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenNoUSDC, USDT or both (default both)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent=false, and the description goes well beyond them: it explains partial-failure semantics (a non-responding network is reported as an error entry rather than failing the whole call), states the billing model and free tier, and explains why repeats are not free — which directly accounts for idempotentHint=false. It also restates the no-side-effects guarantee in operational terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and network scope are front-loaded, and structure moves cleanly from what it returns to when to use it to cost. The only waste is mild redundancy between the cost sentence and the closing 'each call is charged, so repeats are not free', which partially restates the pricing clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what comes back (per-network figures, per-token sums, a grand total), how failures surface, and what the call costs. For a one-parameter read-only aggregation tool this is everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'token' parameter already documents the USDC/USDT/both options and the 'both' default. The description's example (token=both) merely illustrates a value the schema already defines, adding no new semantics such as case sensitivity or invalid-value behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names the exact resource (total supply of USDC and USDT), the exact scope (five named networks), the data source (each token contract's totalSupply) and the aggregation shape (per network, per token, grand total). This is clearly distinct from the per-chain siblings like polygon_token_info or eth_token_balance, which return token metadata or a single wallet's balance rather than an issuance aggregate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases — tracking issuance, chain liquidity, mints and burns over time — plus a worked example (token=both), which is enough for an agent to know when this is the right tool. It does not, however, name an alternative or state when not to use it (e.g. for a single wallet's USDC balance use polygon_token_balance), so it stops short of explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarizeSummarize a web page from its URL: fetch a web page by URL and summarize what it saysA
Read-only
Inspect

Give a URL, get a short summary of the page plus three to six key points, ready to drop into an agent's context. Fetches the page, strips navigation and boilerplate, and summarizes the main text with an LLM. HTML pages only; for a PDF use pdf_text, then ai_summarize_text. Use for research, news triage, link previews and deciding whether a page is worth reading in full. For the full text use extract. Example: url=https://en.wikipedia.org/wiki/HTTP_402. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page to summarize

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false; the description adds meaningful behavioral context beyond them. It discloses HTML-only scope, LLM processing, navigation/boilerplate stripping, pricing at $0.01/call, failed calls being free, and that repeated calls are charged. These are exactly the operational details an agent needs before invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core behavior and keeps alternatives, cost, and example close at hand. It is somewhat dense with pricing and operational notes, but nearly every sentence contributes useful context for invocation. Minor redundancy exists in restating the read-only nature already covered by annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description is complete: it defines the output shape (short summary plus key points), scope (HTML only), alternatives for PDFs and full text, cost model, and an example. Nothing essential for correct invocation appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single url parameter is already documented as an absolute http(s) URL. The description adds value with an example URL and the important constraint that only HTML pages are handled, pointing PDFs elsewhere. This goes beyond the schema, though it does not add more URL formatting rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: fetch a web page and summarize it into a short summary plus three to six key points. It distinguishes itself from siblings by naming pdf_text and extract as alternatives for PDFs and full text. An agent can identify exactly what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states clear use cases: research, news triage, link previews, and deciding whether a page is worth reading. It also explicitly routes agents elsewhere for PDFs (pdf_text, then ai_summarize_text) and full text (extract). This is explicit when-to-use and when-to-use-alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sunSunrise sunset times, day length: sunrise and sunset times and day length for a place and dateA
Read-only
Inspect

Sunrise, sunset, solar noon, civil dawn and dusk (UTC) and day length for any place and date, computed with the standard solar equations; handles polar day and night. No outside service. Use for photography, events and outdoor planning. Example: lat=59.33, lon=18.07. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
latYesLatitude (-90 to 90)
lonYesLongitude (-180 to 180)
dateNoDate (default today)

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contains a clear annotation contradiction: annotations declare openWorldHint=true, but the description says 'No outside service' and 'reads or computes only.' The read-only and destructive hints are consistent, and the pricing/repeat-charge note is useful, but the openWorld conflict is a serious inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, and the description is generally dense with useful details such as polar handling, billing, and output fields. It is somewhat long for a three-parameter computation tool, and the pricing sentence could be tightened, but there is little pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only computation tool with a fully documented schema and no output schema, the description is complete. It lists the computed values, notes UTC, covers polar edge cases, and explains billing behavior, so 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter meanings are already documented in the schema. The description adds a useful coordinate example (lat=59.33, lon=18.07) and notes UTC output, but it does not add date-format guidance beyond what the schema implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-and-resource combination: it computes sunrise, sunset, solar noon, civil dawn/dusk, and day length for a place and date. It also distinguishes the scope by mentioning UTC output and polar day/night handling, which makes the tool's purpose unambiguous relative to generic date/time or weather siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit use cases: photography, events, and outdoor planning. It does not name alternatives such as weather or moon tools or state when not to use this tool, so it falls short of the top score, but the intended context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tech_stackTech stack detection: CMS, frameworks, analytics and hostingA
Read-only
Inspect

Detect the technologies behind a website from its home page HTML and response headers: CMS or site builder (WordPress, Shopify, Webflow…), JavaScript framework (Next.js, Nuxt, React…), analytics and ad pixels, support widgets, payments, captcha, CDN and hosting, web server and backend language, each with the evidence that matched. About 110 public fingerprints, server HTML only. Use for lead research, competitor analysis or sales prospecting. Example: url=https://vercel.com/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesWebsite or page URL

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: ~110 fingerprints, 'server HTML only' (a real limitation given rendered siblings), per-call pricing with 25 free and failed-calls-free, and an explicit note that repeat calls are charged. It also restates the read-only/non-mutating profile in operational terms ('reads or computes only and changes nothing'), consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core capability and category list, then limitations, then use cases and pricing. Dense but every clause carries information; the pricing sentence is somewhat packed and could be split for scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only detection tool with no output schema, it covers what is returned ('each with the evidence that matched'), the data source, the fingerprint library size, and cost behavior. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, and the schema already documents it at 100% coverage ('Website or page URL'). The example (url=https://vercel.com/) reinforces the expected format, which is a modest but real addition over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('detect') and resource ('technologies behind a website') and enumerates the exact categories returned (CMS, JS framework, analytics, CDN, hosting, backend). This clearly separates it from siblings like url_meta or seo_audit, which do not fingerprint a stack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases ('lead research, competitor analysis or sales prospecting') and a worked example URL, which tells the agent when to reach for it. It stops short of naming alternatives or exclusions (e.g., when to prefer extract_rendered for JS-heavy sites), so a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_caesarCaesar cipher, ROT13: shift letters by any amountA
Read-only
Inspect

Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. decode=true shifts back. Use for puzzles, spoiler hiding and teaching; it is not encryption. Example: text=Hello, World!. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text
shiftNoPlaces to shift, -25 to 25 (default 13 = ROT13)
decodeNotrue to shift back

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint=false, but the description adds real context beyond them: pricing model, first 25 free, failed calls free, and that each call is charged so repeats are not free. That last point usefully explains the non-idempotent cost profile. Return format is not described, but no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the transformation, then semantics, use cases, and finally billing constraints. Dense but nearly every sentence carries distinct information; the billing sentences are slightly long relative to the core task.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter transform tool with full schema coverage and annotations, the description covers behavior, edge cases (case, punctuation), usage and cost. The only minor omissions are explicit sibling routing and any hint of output shape, which is acceptable without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description does add meaning: it clarifies that the default shift of 13 is ROT13, that case is preserved, digits and punctuation are untouched, and that decode=true reverses the shift. It adds an example invocation, though it does not reconcile the schema's -25..25 range with 'shifted by 1-25 places'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Encode or decode text with a Caesar cipher') plus the exact transformation semantics (A-Z, 1-25 shifts, default 13 = ROT13). It doesn't name the closest siblings (base64_encode/decode, text_morse, hash), but 'it is not encryption' does steer an agent away from misusing it as a crypto tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases (puzzles, spoiler hiding, teaching) and an explicit exclusion ('it is not encryption'). It stops short of pointing to the alternative tools an agent should pick instead, e.g. base64_encode or text_morse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_diffText diff, compare two texts: compare two texts line by line and show what was added and removedA
Read-only
Inspect

Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a document, config or prompt. Example: a=one two three, b=one 2 three four. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
aYesThe original text
bYesThe new text

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds real context beyond that: pricing ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and the warning that repeated calls are charged. That billing note also explains the otherwise puzzling idempotentHint=false for a pure computation, so the description and annotations are consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, followed by usage, an example, and pricing. The multi-line example inflates the text slightly, but every segment carries distinct information; nothing is redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys the return format (per-line markers plus counts) and the cost/safety profile. Only minor gaps remain, such as output ordering or handling of empty/trailing newline cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 'a' = original and 'b' = new are already documented. The worked example (a with newlines, b with a changed and added line) adds meaning the schema does not: that inputs are newline-delimited text compared line by line.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('line-by-line difference between two texts') and states the output shape (each line marked unchanged/removed/added, with counts). This clearly separates it from neighbors like text_stats, text_extract, or regex_test, which don't compare two inputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use framing: 'Use to see what changed between two versions of a document, config or prompt.' No explicit exclusions or named alternatives, but the intended scenario is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_extractExtract emails, URLs and more: find email addresses, URLs, phone numbers and other items in a textA
Read-only
Inspect

Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links out of scraped pages or messages. Example: text=Mail ada@example.com or see https://example.com #news @ada +46 70 123 45 67. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful context beyond annotations: deduplicated lists, pricing model ($0.01/call, first 25 free, failed calls free), and an explicit 'reads or computes only and changes nothing' safety statement. It also explains why idempotentHint=false matters ('each call is charged, so repeats are not free'), which the annotation alone doesn't convey; only the exact return shape remains unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the extraction list and use case, then example, then billing. Slightly dense on pricing detail and mildly redundant ('changes nothing' / 'each call is charged'), but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema tool, the description covers inputs, output de-duplication behavior, and cost, which is enough to invoke it correctly. The precise output structure (list keys per category) is only implied by 'each list de-duplicated.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'text' parameter, so the schema already documents it. The description's inline example (text=Mail ada@example.com ...) usefully shows accepted input form but adds no syntax or format rules beyond that; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find/extract) and enumerates the exact resource types (emails, URLs, phone-like strings, hashtags, @mentions, numbers), each de-duplicated. This clearly distinguishes it from nearby siblings like text_keyword_density or text_stats without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case: 'pull contacts and links out of scraped pages or messages.' That sets clear context for when to reach for it, but it names no alternatives or exclusions (e.g., vs. regex_test or text_stats) for an agent choosing among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_keyword_densityKeyword density: top keywords and phrases of a text or pageA
Read-only
Inspect

Keyword density of a text or a web page: the most frequent words and two-word phrases (English stop words removed), each with its count and share of all words, plus total and unique word counts. Give text, or a URL whose readable text is used (HTML, up to 1 MB). Use for SEO copy checks, comparing a page against a target keyword, or summarising what a page is about; for readability use text_stats. Example: text=Agents pay per call. Agents pay with USDC. Pay per call tools for agents.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
topNoHow many keywords and phrases to return, 1-50 (default 15)
urlNoA page URL to analyse instead of text
textNoThe text (up to 50,000 characters); or give url instead

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, destructiveHint, openWorldHint), but the description adds real context beyond them: HTML fetched up to 1 MB, English stop words removed, and pay-per-call billing where repeats are not free — which meaningfully explains the idempotentHint=false. The 'reads or computes only and changes nothing' clause largely restates readOnlyHint, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is front-loaded and information-dense, but the description runs on into an example plus a long pricing/payment sentence that mixes billing detail with the tool's function. Every element is arguably relevant, yet the block is harder to scan than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description fully describes the return shape (keywords and phrases with counts and shares, plus total and unique word counts), so an agent knows exactly what comes back. Input modes, limits, and cost model are all covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents `top` (1-50, default 15), `url`, and `text` (50,000 chars). The description adds the 1 MB HTML limit for URL mode and clarifies the text/url exclusivity, but says nothing about `top` or output shaping — baseline 3 is right.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computation (keyword density), the exact outputs (most frequent words and two-word phrases, each with count and share of all words, plus total/unique word counts), and the accepted inputs (text or URL). It is clearly distinguishable from sibling text tools and explicitly routes readability work to text_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (SEO copy checks, comparing a page against a target keyword, summarising what a page is about) and explicitly names the alternative to use for a different need (text_stats for readability). The input-mode choice (give text, or a URL whose readable text is used) is also spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_languageLanguage detection: detect the language of a textA
Read-only
Inspect

Detect which language a text is written in: the most likely language with its ISO 639-3 and 639-1 codes and English name, plus the next candidates with relative scores, using trigram statistics for 82 major languages (franc-min). Works best above about 20 characters; very short or mixed text returns und (undetermined). Local, no outside service. Use to route messages, pick a translation target or filter content by language. Example: text=Det här är en mening skriven på svenska om väder och resor.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text (up to 10,000 characters)

TDQS

A3.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Local, no outside service,' which directly contradicts the annotation openWorldHint=true. Although it otherwise adds useful behavioral context such as pricing, short-text limitations, and non-mutating behavior, the explicit contradiction with a structured annotation triggers a score of 1.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and return format, then moves to limitations, usage, example, and pricing. It is somewhat long for a one-parameter tool, and the final sentence partially repeats pricing/read-only information, but most sentences carry useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description explains the return shape in detail: most likely language, ISO codes, English name, and ranked candidates with relative scores. It also covers input-length caveats and the 'und' outcome, leaving no major gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds practical semantic guidance beyond the schema by noting that detection works best above about 20 characters and that very short or mixed text returns 'und,' which helps an agent interpret the single text parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Detect which language a text is written in.' It also explains the exact return content (most likely language, ISO 639-3/639-1 codes, English name, candidates with relative scores) and the underlying engine, making it clearly distinguishable from sibling text utilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases: routing messages, picking a translation target, and filtering content by language. It also warns that very short or mixed text returns 'und,' but it does not name alternative tools or state explicit when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_loremLorem ipsum generator: placeholder paragraphsA
Read-only
Inspect

Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic "Lorem ipsum dolor sit amet". The same seed always gives the same text. Use to fill mock-ups, templates and test data. Example: paragraphs=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
seedNoSeed for the word order (default 1)
sentencesNoSentences per paragraph, 1-10 (default 4)
paragraphsNoParagraphs, 1-20 (default 1)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: the pricing model ($0.01/call, 25 free, failed calls free) and the seed-stability guarantee. Slight tension: "the same seed always gives the same text" reads as deterministic while idempotentHint=false, though "each call is charged, so repeats are not free" explains the non-idempotency as billing cost rather than output variation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool produces and its bounds in the first clause, then uses the remainder for usage, example, and cost. The pricing sentences are dense but earn their place; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description makes clear what comes back (paragraphs of classic lorem text). Combined with annotations covering the safety profile and a fully documented schema, an agent has enough to call it correctly; only the exact return format (plain string vs. array) is unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented with defaults and ranges. The description restates the same 1-20/1-10 bounds and adds only the seed's reproducibility meaning, not much beyond what the schema already carries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb-equivalent artifact (Lorem ipsum placeholder text), states the exact output shape (1-20 paragraphs of 1-10 sentences) and the fixed opening words. Nothing in the sibling list is close, and the description makes the distinction from random_password/random_pick style generators unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says "Use to fill mock-ups, templates and test data," giving a clear use context, and the example (paragraphs=1) anchors invocation. It doesn't state when NOT to use it, but no sibling overlaps enough to require an exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_morseMorse code translator: text to Morse and backA
Read-only
Inspect

Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set with mode. Letters, digits and common punctuation are supported; anything else is reported, not guessed. Use for puzzles, radio practice and fun messages. Example: text=SOS help. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
modeNoauto (default), encode or decode
textYesText, or Morse code made of . - spaces and /

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond annotations: supported character set, that unsupported characters are reported rather than guessed, payment/credits behavior, free first calls, and failed-call billing. These details align with the readOnly and destructive annotations and materially help an agent understand cost and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core behavior and formats, then adds usage, an example, and billing context. It is somewhat denser than a minimal description, but every section is relevant to correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety profile and schema covering parameters, the description fills remaining gaps: auto direction, supported characters, error behavior, examples, and payment model. No output schema is present, but the transformation result is sufficiently implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description still adds useful semantics: mode auto-detection/default behavior, Morse formatting with spaces and '/', supported characters, and a concrete example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific bidirectional transformation: text to international Morse and Morse back to text. It also clarifies automatic direction detection versus explicit mode selection, which distinguishes it from sibling text tools such as text_caesar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage contexts such as puzzles, radio practice, and fun messages, and explains that direction is auto-detected or set with mode. It does not explicitly name alternatives or when not to use this tool, 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.

text_piiPII detection and redaction: emails, phones, cards, IBANsA
Read-only
Inspect

Find personal data in a text and get it back redacted: emails, phone numbers, card numbers (Luhn-checked), IBANs (mod-97), US SSNs, IP and crypto wallet addresses, each with its position, plus the text with every hit replaced by a label such as [EMAIL]. Hits are shown masked. Up to 20,000 characters; names and street addresses are not detected. Use before logging, storing or sending text to a model. Example: text=Contact Anna at anna.berg@example.com or +46 70 123 45 67; card 4111 1111 1111 1111.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to scan (up to 20,000 characters)
typesNoOptional comma-separated types to look for: email, iban, credit_card, us_ssn, crypto_address, ip_address, phone (default all)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavioral context beyond annotations: cost model ('$0.01/call via x402 USDC or a card key, first 25 free; failed calls free'), repeat-call charging ('each call is charged, so repeats are not free'), output masking ('hits are shown masked'), and input limit ('up to 20,000 characters'). These details complement the readOnlyHint and openWorldHint annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and detection capabilities, then adds practical details. It is dense but mostly earns its space; the pricing sentence is slightly tangential to the scanning purpose but relevant for cost-aware agents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, two parameters, no output schema, and annotation coverage, the description is complete. It explains output shape ('each with its position, plus the text with every hit replaced by a label such as [EMAIL]'), input limits, detection scope, masking, and cost/auth requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already defines both parameters. The description adds an illustrative example ('text=Contact Anna at anna.berg@example.com...') and restates the detectable types, giving useful usage context even though it largely mirrors the schema's 'types' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Find personal data... and get it back redacted') and enumerates the detected entity types (emails, phones, Luhn-checked cards, IBANs, SSNs, IPs, crypto addresses), clearly distinguishing this text-scanning/redaction tool from sibling tools like text_prompt_injection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use guidance: 'Use before logging, storing or sending text to a model.' Also states a key limitation ('names and street addresses are not detected'). No explicit alternatives or when-not-to-use conditions are named, keeping this 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.

text_prompt_injectionPrompt injection detection: scan text for injection attemptsA
Read-only
Inspect

Scan text an agent is about to read (web page, email, tool result; up to 8,000 characters) for prompt-injection attempts: instruction overrides, fake system messages, asks to hide things from the user, exfiltration links, attempts to extract private data or move money, invisible Unicode. Returns a risk level, score and findings with excerpts. Heuristic, not a guarantee. Use before acting on untrusted content. Example: text=Thanks for the update. The signed invoice is attached and payment is due on Friday.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to scan (up to 8,000 characters)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the 8,000-character limit, the return shape (risk level, score, findings with excerpts), and critically the "heuristic, not a guarantee" caveat so the agent doesn't over-trust a clean result. It also explains the cost model ($0.01/call, first 25 free, failed calls free, repeats not free), which is consistent with idempotentHint=false and readOnlyHint=true rather than contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and threat list, then the return contract, then caveat and usage trigger. Dense but almost every clause earns its place; the billing sentence runs long and slightly crowds out the detection semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description specifies exactly what comes back (risk level, score, findings with excerpts). Combined with the input limit, the heuristic caveat, and the cost model, an agent has everything needed to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100% and there is only one parameter, so the baseline is 3; the description adds value by restating the 8,000-character cap as a hard constraint and giving a worked example of the `text` value. It stops short of describing truncation or rejection behavior when the input exceeds the limit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — scan text for prompt-injection attempts — and enumerates the exact threat categories it covers (instruction overrides, fake system messages, exfiltration links, invisible Unicode). This is clearly distinct from every sibling (domain, sanctions_check, sec_filings, etc.), so an agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use before acting on untrusted content" gives a concrete trigger condition, and the enumeration of sources (web page, email, tool result) scopes the intended input. There are no explicit exclusions or named alternatives, but no sibling overlaps, 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.

text_statsWord count and readability: count words, characters and sentences and estimate reading time and readabilityA
Read-only
Inspect

Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English text. Use to check the length and readability of a draft. Example: text=The quick brown fox jumps over the lazy dog. It was not amused.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false and openWorldHint=true. The description adds genuinely new context: it confirms nothing is changed, discloses the $0.01 x402/card-key cost, the first-25-free allowance, that failed calls are free, and that repeats are charged — consistent with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability list, then usage, then example, then cost. Every clause carries information, though the pricing sentence is dense and the inline example is slightly clunky.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey return values — and it lists every metric produced (counts, reading/speaking time, Flesch ease, grade level). Combined with the cost and read-only disclosures, an agent has what it needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single required parameter at 100% schema coverage, so the schema baseline applies. The description still adds value by stating the text must be English (relevant because Flesch scoring is language-specific) and by supplying a concrete example value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb set and resource: counts characters, words, sentences, paragraphs, estimates reading/speaking time, and computes Flesch reading-ease and grade level. The scope is precisely bounded to English text, which separates it from generic stats siblings like math_stats or pack_text_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to check the length and readability of a draft" gives clear situational context, and the worked example anchors the input. It stops short of naming an alternative (e.g., text_keyword_density for keyword analysis), so it is clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timeTimezone converter, current time: time zone conversionA
Read-only
Inspect

The exact current date and time in any IANA time zone (UTC when none is given), with UTC offset, weekday, abbreviation and Unix timestamp, daylight saving time handled. Optionally convert a given moment into up to 10 other time zones in the same call. Use when an agent needs to know what time it is, to schedule across time zones or to turn a timestamp into local time. A bare GET is the smallest paid end-to-end test of an x402 or MPP client. Example: zone=Europe/Stockholm. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
atNoOptional moment to convert, as ISO 8601 with an offset (default: now)
toNoOptional comma-separated time zones to convert the same moment into (max 10)
zoneNoIANA time zone name, e.g. Europe/Stockholm or America/New_York (default UTC)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses pricing, that failed calls are free, that repeats are charged, that DST is handled, and that the tool only reads or computes without changing anything. These details add material behavioral context for a paid, read-only utility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose and usage are front-loaded and the paragraph is dense but mostly efficient. Pricing and the 'bare GET' payment-test detail are useful but make it slightly longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately explains the return fields: UTC offset, weekday, abbreviation, Unix timestamp, DST handling, and optional multi-zone conversions. An agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the optional moment, target zones, and default IANA zone. The description repeats the UTC default and max-10 conversion limit and gives one example, but adds little beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: getting the exact current date and time in any IANA time zone, with optional conversion into other zones. It clearly distinguishes this utility from the sibling data tools, none of which provide current time or timezone conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage contexts: knowing the current time, scheduling across time zones, and converting a timestamp into local time. It does not name an alternative sibling or state when not to use it, but no sibling overlaps directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tokenBase ERC-20 token facts and risk flags: check a Base ERC-20 token's supply, owner and risk flags before buyingA
Read-only
Inspect

Base only (other chains: _token_info). Live on-chain facts for an ERC-20 token on Base: name, symbol, decimals, total supply, owner and whether ownership is renounced, paused state, proxy detection (EIP-1967, minimal proxy) with implementation and admin, and bytecode heuristics for mint, pause, blacklist and fee-setter functions. Use for token due diligence and rug-pull or honeypot screening before a swap. Example: address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesToken contract address on Base (0x...)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond admitting it reads and changes nothing, it discloses billing behavior the annotations don't express: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and repeats are not free (matching idempotentHint=false). It also enumerates detection methods (EIP-1967, minimal proxy) and bytecode heuristics, so the agent knows what evidence it gets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the hard constraint (Base only) and the core payload, then usage, then pricing. Dense but nearly every clause carries information; the example address and pricing tail add length that is useful rather than decorative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must enumerate results, and it does: identity fields, supply, owner, renounced/paused state, proxy implementation and admin, and heuristic function detection. Coverage of the return surface is strong, though it doesn't describe response shape or how flags are reported.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and schema coverage is 100%, so the schema already defines it. The description adds a concrete example address, which helps, but no format or validation guidance beyond what the schema states. Baseline applies given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: live on-chain ERC-20 facts on Base (name, symbol, supply, owner, proxy, bytecode heuristics). It also names the cross-chain convention for other chains. However, it does not differentiate itself from near siblings such as token_supply, contract_risk, token_report, or pack_token_analysis, so an agent must infer the split.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for token due diligence and rug-pull or honeypot screening before a swap" gives a clear usage context, and "Base only (other chains: <chain>_token_info)" gives an explicit routing rule. It stops short of naming alternatives like contract_risk or token_report and when those would be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

token_reportHoneypot token check, token risk: red flags plus live DEX liquidity for a Base token before a swapA
Read-only
Inspect

Check a Base token before you swap into it: a high/medium/low risk verdict with named red flags (paused transfers, blacklist, owner-set fees or tax, a mint selector with a live owner, upgradeable proxy, no or thin liquidity, a pair under 7 days old, buys but no sells as a honeypot sign) plus live DexScreener price, liquidity, volume and FDV. Heuristic screening, not a safety guarantee. Use before swapping into an unfamiliar Base token. Example: address=0x4200000000000000000000000000000000000006. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesToken contract address on Base (0x...)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses the heuristic nature ('not a safety guarantee'), the billing model ($0.01/call, first 25 free, failed calls free), and warns that repeats are not free — behavior an agent cannot derive from annotations. Nothing contradicts the declared readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The verdict and red-flag taxonomy are front-loaded, which is the right ordering. It is dense but nearly every clause carries information; the only waste is mild repetition of 'before swapping into a Base token,' stated both early and late.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden and does so: it specifies the verdict tiers, enumerates the red-flag categories, and names the market fields returned (price, liquidity, volume, FDV). An agent knows both what it gets and how much it costs before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single address parameter, and the description reinforces that the address must be a Base token contract with a worked example (0x4200...0006). It adds small value over the schema's 'Token contract address on Base (0x...)' but nothing about address normalization or non-token addresses.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource — 'Check a Base token before you swap into it' — and enumerates the exact output (risk verdict plus named red flags and live DexScreener metrics). This clearly distinguishes it from siblings like token_info, contract_risk, or price_token, which each cover only part of the picture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the trigger condition explicitly ('Use before swapping into an unfamiliar Base token') and supplies a concrete example address. It doesn't name which sibling to use instead for plain metadata or price-only lookups, so an agent must infer the boundary against token_info/price_token, keeping it 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.

token_supplyToken supply, total supply: any ERC-20A
Read-only
Inspect

Total supply of any ERC-20 token on Ethereum, Base, Arbitrum, Optimism or Polygon, read live from the contract: raw and decimal-adjusted supply, decimals, name and symbol. Give a 0x address or a known ticker (USDC, USDT, WETH, DAI…). Use to check a token's circulating maximum or compare supply across chains. Example: token=USDC. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoethereum (default), base, arbitrum, optimism or polygon
tokenYesToken 0x address or ticker

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/openWorld, so the safety profile is covered; the description still adds real value by disclosing the cost model ($0.01/call via x402 or card key, first 25 free, failed calls free, repeats are not free), which explains why idempotentHint is false. It also states data is read live from the contract. It does not cover rate limits or what happens for an unrecognized ticker.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler: scope/returns first, then inputs and use case, then cost and safety. It is dense but each sentence carries distinct information; the 'Example: token=USDC' fragment is the only near-redundant piece.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only tool with no output schema, the description covers inputs (address or ticker, chain choices), return contents, cost implications and side-effect profile. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the chain enum-like list is documented there, so the baseline is 3. The description adds meaning by naming accepted ticker forms (USDC, USDT, WETH, DAI…) and giving a concrete call example, which reduces malformed input more than the schema alone would.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (total supply of any ERC-20), enumerates the supported chains, and lists exactly what is returned (raw and decimal-adjusted supply, decimals, name, symbol). An agent can distinguish this from price/token-info siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use framing: 'Use to check a token's circulating maximum or compare supply across chains,' plus an input example. It does not name a when-not-to-use case or point at alternatives such as token_info, price_token or stablecoin_supply, which would be needed for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trade_insightSourced token and wallet risk indicators with market facts: sourced risk indicators and market facts for a token or wallet before a tradeA
Read-only
Inspect

Combines the Base token-report risk tier and flags, available DEX market data, and wallet-audit risk tier, flags, account nonce, and native balance. Returns the underlying indicators separately; it does not generate buy/sell recommendations or calibrated confidence, and does not evaluate holder concentration. The account nonce is not full transaction, token-transfer, or trading history. Use as one input before a Base trade. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesToken contract address on Base, 0x-prefixed 20-byte hex
walletYesWallet address to evaluate, 0x-prefixed 20-byte hex

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, destructiveHint, openWorldHint, idempotentHint), the description discloses the pricing model ($0.01/call, first 25 free, failed calls free), that repeated calls are charged, what the tool does not do (buy/sell recommendations, calibrated confidence, holder concentration), and the limitation of account nonce. This provides substantial behavioral context for a paid, composable read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the composition and return behavior, then moves to limitations and pricing. It is appropriately sized for the tool's complexity, though 'Reads or computes only and changes nothing' partially repeats the readOnlyHint annotation, and the pricing sentence is slightly verbose. No sentence is wasted, but minor tightening is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description needs to convey what is returned, and it does: a combination of risk tiers, flags, market data, nonce, and balance. It also covers key limitations and cost. It stops short of describing the output structure (e.g., field names or grouping), which would be helpful, but an agent can still understand what to expect from the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the input schema already documents both 'token' and 'wallet' as 0x-prefixed 20-byte hex addresses on Base. The description mentions 'Base token-report' and 'wallet-audit' but adds no new parameter-level semantics. With the schema doing full documentation, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies exactly what the tool combines: Base token-report risk tier and flags, DEX market data, and wallet-audit risk tier, flags, nonce, and balance. It clearly states it returns these indicators separately and does not generate recommendations. However, it does not explicitly say how it differs from calling the sibling tools token_report and wallet_audit individually, so sibling differentiation is implied 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context: 'Use as one input before a Base trade.' It also clarifies that it is not a standalone decision-maker. Yet it does not name explicit alternatives (e.g., 'use token_report for token-only risk') or state when not to use it, so the guidance is contextual but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribeSpeech to text, transcribe audio: Whisper transcription of an audio fileA
Read-only
Inspect

Transcribe speech from an audio file at a public URL using Whisper large-v3-turbo. Returns the transcript text, detected language, duration and word count. Accepts common formats such as MP3, WAV, M4A and OGG up to 5 MB. Use for voice notes, podcast clips, meeting snippets and voice messages. Example: url=https://commons.wikimedia.org/wiki/Special:FilePath/En-us-hello.ogg. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of an audio file (max 5 MB)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds pricing ($0.01/call), payment methods (x402 USDC or card key), and reinforces that repeats are charged despite being read-only. This extra context about cost and idempotency is valuable beyond the annotations, though it could go further on failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and return values, followed by practical details. Every sentence contributes value, though the inclusion of pricing and payment methods makes it slightly dense for a simple transcription tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description covers all essential aspects: purpose, return values, input constraints, use cases, pricing, and idempotency. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single 'url' parameter, specifying it must be an absolute http(s) URL up to 5 MB. The description adds a concrete example URL and lists accepted audio formats (MP3, WAV, M4A, OGG), which provides useful meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Transcribe speech') and resource ('audio file at a public URL') and names the underlying model (Whisper large-v3-turbo). It clearly distinguishes from siblings like ai_chat or ai_translate by focusing on audio transcription, though it doesn't explicitly name an alternative tool (e.g., ai_speech) for comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage contexts ('voice notes, podcast clips, meeting snippets and voice messages') and defines accepted formats and size limits. However, it lacks explicit when-not-to-use guidance or named alternatives for related tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uniswap_poolUniswap pool, V3 pool: state and priceA
Read-only
Inspect

Uniswap v3 pools for a token pair on Ethereum, Base, Arbitrum, Optimism or Polygon, read live from the factory and each pool: pool address per fee tier (0.01%, 0.05%, 0.3%, 1%), price of each token in the other, current tick, in-range liquidity and both token balances held, deepest pool first. Tokens by 0x address or ticker. Use to find the right pool, check depth before a swap or read a spot price. Example: tokenA=WETH, tokenB=USDC. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoethereum (default), base, arbitrum, optimism or polygon
tokenAYesFirst token: 0x address or ticker
tokenBYesSecond token: 0x address or ticker

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/no-destruct, but the description adds genuinely new context: pricing ($0.01/call via x402 USDC or card key), first 25 free, failed calls free, and the non-obvious billing consequence that repeats are not free. It does not spell out behavior when no pool exists at a fee tier, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and what is returned, then usage, then pricing. Dense but nearly every clause carries information; the billing sentence spills into the same paragraph as the read-only claim, slightly blurring the two ideas.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the heavy lifting by enumerating returned fields and ordering (deepest pool first), which is exactly what an agent needs to interpret results. It omits edge-case behavior (pair not listed, no pools at a fee tier), so not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so chain/tokenA/tokenB are already documented, and the description largely restates them (0x address or ticker, chain list, worked example). It adds no format constraints or validation rules 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (Uniswap v3 pools for a token pair) with concrete verb-like semantics (read live from the factory and each pool) and enumerates exactly what is returned: pool address per fee tier, prices, tick, in-range liquidity, balances, sorted deepest first. No sibling in the list covers Uniswap pool state, so differentiation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases: 'find the right pool, check depth before a swap or read a spot price,' plus a concrete example (tokenA=WETH, tokenB=USDC). It stops short of naming when-not-to-use or an alternative tool, but there is no sibling that competes for this job.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units_convertUnit conversion: convert between units of length, weight, temperature, volume, speed and moreA
Read-only
Inspect

Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure. Example units: km, mi, lb, kg, floz, ml, mph, kn, acre, gib, kwh, psi. Use when exact conversions matter. Example: value=10, from=km, to=mi. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe amount

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces that with "reads or computes only and changes nothing." It adds genuinely non-structured context: per-call pricing ($0.01 via x402 USDC or card key), the first 25 free, failed calls free, and that repeats are billed — which is the practical meaning behind idempotentHint=false. Return format is not described, but a conversion tool's output is self-evident.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the supported categories, then example units, then usage, then pricing. Every sentence carries information, though the trailing pricing/auth sentence is dense and bundles cost, auth method, free tier, and refund policy into one run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, fully-required, deterministic tool with no output schema, the description covers supported domains, unit syntax, an example call, and the payment model. An agent has everything needed to invoke it correctly and to know it will be billed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns above baseline by giving the accepted unit token vocabulary ("km, mi, lb, kg, floz, ml, mph, kn, acre, gib, kwh, psi") and a concrete example mapping value=10, from=km, to=mi. That tells the agent the expected casing/abbreviation form, which the schema's "Unit to convert from/to" strings do not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Convert between units") and enumerates the supported measurement families — length, mass, volume, temperature, speed, area, data size, time, energy, pressure — plus concrete example unit tokens (km, mi, floz, gib, psi). No sibling tool in the list 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when exact conversions matter" gives a positive selection condition, and the worked example shows the call shape. However, there is no exclusion guidance — nothing about when to prefer math_evaluate for arithmetic, and no stated limits on supported units beyond the examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unixUnix timestamp converter: convert a Unix timestamp to a date and time, or a date to a timestampA
Read-only
Inspect

Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the current time in both forms. Use to read timestamps in logs and APIs. Example: value=1792281600. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
valueNoUnix seconds/milliseconds or an ISO date (default now)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-destructive/non-idempotent, and the description usefully adds that unit detection is automatic, that omitting input returns now, and that every call is billed (failed ones free) — which explains the non-idempotent hint. It stops short of describing output shape or precision/timezone handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Conversion semantics and the no-input default are front-loaded, then usage, then an example. The pricing sentence is somewhat promotional but is genuinely decision-relevant since calls cost money.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter pure-compute tool with no output schema, the description covers input forms, defaults, unit detection, and cost. Minor gaps remain around output format details and timezone assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter at 100% schema coverage, the schema already carries the baseline. The description still adds real meaning: seconds vs milliseconds are auto-detected, ISO date strings are accepted, and a concrete example (value=1792281600) is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with both directions spelled out (timestamp→ISO date, ISO date→timestamp) plus the no-input default, so the operation is unambiguous. It never names the nearby siblings (date_info, date_add, date_diff), 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to read timestamps in logs and APIs" gives concrete invocation context, and the no-input case is explicitly defined. There is no when-not guidance and no explicit alternative named for date arithmetic versus simple conversion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_decodeURL decode: decode percent-encoded URL textA
Read-only
Inspect

Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
plusNotrue to read + as space
textYesThe encoded text

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost model ($0.01/call, first 25 free, failed calls free) and explaining why repeated calls are not free, which accounts for idempotentHint=false. 'Reads or computes only and changes nothing' largely restates readOnlyHint/destructiveHint=false, so part of the text is redundant with structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and the plus rule are front-loaded, and the example is placed before the commercial details. The pricing sentence is dense and slightly promotional, but each clause (free tier, failed calls free, repeats charged) carries real decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema decode utility this covers purpose, the tricky parameter case, an input example, and cost/safety behavior. The only minor gap is that the return shape (plain decoded string) is left implicit, which is acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds value by naming the form-encoding semantics of plus=true and giving a concrete example (text=a%20b%26c) that shows how reserved characters are escaped. It does not add anything about the accepted type flexibility (string/number/boolean) for plus.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Decode percent-encoded text') and clarifies the form-encoding variant. It is distinguishable from url_encode/url_parse by implication rather than by naming them, so it falls short of the explicit sibling differentiation a 5 requires.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to read encoded links and form data' gives clear usage context for when this tool applies. It stops short of naming the inverse tool (url_encode) or stating when not to use it, so no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_encodeURL encode: percent-encode text for use in a URLA
Read-only
Inspect

Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to encode

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/openWorld, and the description adds non-obvious operational context: it is billed per call, first 25 free, failed calls free, and repeats are not free. That cost/idempotency information is exactly the kind of trait annotations cannot express and it is consistent with idempotentHint=false (repeated calls incur charge). It does not describe the return format, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded: purpose and use case come first, example second, pricing last. The billing sentence is long but decision-relevant for an agent that must weigh cost; minor verbosity in "first 25 free; failed calls free" is acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema, read-only tool this covers safety, cost, and a usage cue. It is still missing the output shape (string returned vs. wrapped) and does not resolve the encode vs. full-URL behavior gap, which is the main thing an agent could get wrong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the single `text` parameter is already documented; the example (`text=a b&c=d/é`) usefully shows what characters get encoded. However it never clarifies whether `text` is treated as a query value or as a whole URL, which is the one semantic the agent actually needs and which the description itself raises.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (percent-encode text for URLs) and names two concrete encoding semantics, encodeURIComponent and encodeURI, which differentiates it from generic string tools. Slight ding: with a single `text` parameter there is no way for the agent to pick between the two modes, so what the tool actually does per call is left partly ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one concrete use case ("Use when building query strings") but no exclusion or alternative, even though the obvious sibling `url_decode` exists and the encodeURI-vs-encodeURIComponent choice is not resolvable from the guidance. A reader knows roughly when, but not precisely which mode applies or when to prefer another tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_faviconFavicon finder: a site's icons and their sizesA
Read-only
Inspect

Find a website's icons: every , shortcut icon, apple-touch-icon and mask-icon on the page with its size and type, the web app manifest link, and whether /favicon.ico exists, all as absolute URLs, with the best icon picked (SVG, then the largest size; mask icons never). Use to show a site's logo next to a link, build bookmarks or enrich a company record. Example: url=https://github.com/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesPage or site URL

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, it discloses pricing ($0.01/call via x402 USDC or card key), free tier (first 25 free, failed calls free), and that each call is charged so repeats are not free – clarifying the non-idempotent hint. It also states it 'reads or computes only and changes nothing,' reinforcing the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with what the tool returns, followed by usage, example, and pricing. It is dense but every sentence contributes relevant information, though the pricing/charging sentence is slightly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description thoroughly explains the return structure (icon list with sizes/types, manifest link, favicon.ico existence, absolute URLs, best-icon selection logic) and the charging behavior. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema already documents the single 'url' parameter. The description adds only an example (url=https://github.com/), which is mildly helpful but not substantive beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Find') and lists exactly what is returned: every <link rel=icon>, shortcut icon, apple-touch-icon, mask-icon with size/type, the web app manifest link, /favicon.ico existence, as absolute URLs, plus the best-icon selection logic. This distinguishes it from siblings like url_meta, image_metadata, or seo_audit without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases: 'Use to show a site's logo next to a link, build bookmarks or enrich a company record.' This makes the intended context explicit, though it does not name a sibling alternative or state 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.

url_metaWebsite metadata, link preview: title, description and images of a pageA
Read-only
Inspect

Fetch a public web page's head and return link-preview metadata: title, description, site name, type, preview image, canonical URL, language, author, published time, favicon, theme colour, and every OpenGraph and Twitter-card field. Reads at most 1 MB and never runs JavaScript. Use to build link previews, label citations or check how a URL will unfurl before sharing it. Example: url=https://github.com/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public http(s) URL of the page

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: 1 MB read cap, no JavaScript execution, no mutations, per-call pricing ($0.01 via x402/card key), first 25 free, failed calls free, and repeats are billed. That pricing detail also explains the idempotentHint=false annotation (repeat calls cost money) rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core behavior and returned fields, then usage, then cost. Mostly tight, though the trailing 'reads or computes only and changes nothing' partially restates the annotations and the charged-per-call point is repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description lists the return fields in detail, and with a single fully documented parameter plus rich annotations, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, and the schema already documents it at 100% coverage (absolute public http(s) URL). The description reinforces the 'public' constraint and supplies a concrete example URL, adding modest value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (fetch a public web page's head, return link-preview metadata) and enumerates the returned fields. Clearly distinct from siblings like extract, extract_rendered, or url_favicon, which do different jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete use cases (build link previews, label citations, preview how a URL unfurls) and an example call. It does not, however, say when to prefer a sibling such as extract or seo_audit, so the routing decision is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_parseURL parser, parse a URL: split a URL into scheme, host, port, path, query parameters and fragmentA
Read-only
Inspect

Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query parameters or check a link's host. Example: url=https://example.com:8080/a/b?x=1&y=2#top. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe URL to parse

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses commercial/access behavior an agent cannot infer: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and repeats are charged (consistent with idempotentHint=false). The 'reads or computes only and changes nothing' clause largely restates readOnlyHint=true and destructiveHint=false, so that part is redundant rather than additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by usage, an example, then pricing and safety. Every sentence is functional, though the pricing/payment sentence is long and the 'changes nothing' clause partly duplicates the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by listing the returned fields explicitly, including the query-parameters-as-object detail and the IP-address flag. Combined with the payment note, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is only one parameter, so the schema already carries the semantics. The description still adds a worked example ('url=https://example.com:8080/a/b?x=1&y=2#top') that shows the accepted full-URL format including port, query and fragment, which is mild but real added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Split') and resource ('a URL') and then enumerates exactly what is returned: protocol, host, port, path, query parameters as an object, hash, origin, plus an IP-host flag. That level of output detail makes it unmistakably distinct from the encode/decode siblings in the same family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage contexts: 'Use to read query parameters or check a link's host.' That tells an agent when the tool is the right pick, but it does not name alternatives or exclusions (e.g., use url_decode for a single encoded value), 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.

url_redirectsRedirect checker, URL unshortener: the full redirect chainA
Read-only
Inspect

Follow a URL's redirects hop by hop (up to 10) and return every hop's status code and Location, the final URL, total hops, timing and whether it loops. Expands short links (bit.ly, t.co…) to their destination without loading the page. Every hop is checked before it is requested; redirects to private addresses are reported, not followed. Use to unshorten a link, check an HTTPS or www redirect, or debug SEO redirect chains. Example: url=http://github.com. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: 10-hop cap, loop detection, SSRF protection ('every hop is checked before it is requested; redirects to private addresses are reported, not followed'), page not loaded, and per-call pricing with repeats not free. These details matter because idempotentHint=false is otherwise unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and safety behavior are front-loaded, use cases and an example follow, and pricing is last. Slightly heavy on billing detail ('x402 USDC or a card key (/credits)') for a tool description, but nothing is buried or wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description fully specifies the return shape: every hop's status code and Location, final URL, total hops, timing, loop flag. Combined with the hop limit and private-address handling, an agent has everything needed to call it and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single url parameter ('Absolute http(s) URL'), so the schema already carries the semantics. The description only adds an example (url=http://github.com) and no format or edge-case guidance beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Follow a URL's redirects hop by hop ... return every hop's status code and Location' and explicitly covers short-link expansion. An agent can distinguish it from sibling url_meta (metadata), url_uptime (availability), and extract (page content) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases: unshorten a link, check an HTTPS or www redirect, debug SEO redirect chains. It does not name a sibling alternative or an explicit when-not-to-use condition, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_uptimeUptime check, website status: is it up and how fastA
Read-only
Inspect

Check whether a website is up right now: one live request (following redirects) with the HTTP status, up or down, response time in ms, the final URL, content type, server header and page size, and optionally whether the page contains a given text. Timeouts and connection failures come back as down with the reason, not as an error. Use for uptime monitoring, health checks before calling an API, or to confirm a deploy. Example: url=https://www.wikipedia.org/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL
containsNoOptional text that must appear in the page (first 500 KB)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key traits beyond the annotations: timeouts and connection failures are returned as 'down with the reason, not as an error,' redirects are followed, and each call costs $0.01 with 25 free and failed calls free. These details clarify error semantics, cost, and the idempotentHint=false behavior (repeats are charged), which the annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and output list are front-loaded in the first sentence, and the usage cases follow. The pricing and billing sentences are relevant but make the description slightly dense; it remains efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully covers the return contract: status, up/down, response time, final URL, content type, server header, page size, and optional text match. It also explains failure semantics and billing, so 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters ('url', 'contains') are already documented in the input schema. The description restates the optional text check and gives an example URL, but adds no new syntax or constraint information beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb and resource: 'Check whether a website is up right now,' then enumerates the exact outputs (HTTP status, up/down, response time, final URL, content type, server header, page size). It clearly distinguishes itself from sibling url_meta and url_redirects by framing the call as a live uptime probe with a specific diagnostic payload.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists concrete use cases: 'uptime monitoring, health checks before calling an API, or to confirm a deploy,' which gives an agent clear selection context. It does not explicitly state when not to use it or name a sibling as the alternative, so it falls short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

useragent_parseUser agent parser: browser, OS, device and botsA
Read-only
Inspect

Parse a User-Agent string into browser and version, operating system and version, device type (desktop, mobile, tablet or bot) and, for crawlers, which bot it is: Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, social previewers, SEO crawlers and HTTP libraries such as curl or python-requests. Local rules, no outside service. Use to read access logs, segment traffic or spot AI crawlers. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
uaYesThe User-Agent string

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, destructive=false and idempotent=false, so the safety profile is covered. The description adds genuinely new behavioral context: local rules with no external service, per-call pricing via x402/card key, first 25 free, and failed calls free – none of which the annotations convey. The 'repeats are not free' note usefully explains why idempotentHint is false in billing terms, though it could confuse slightly since parsing is deterministic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what gets parsed before moving to usage and pricing. The second half is dense – pricing, free tier, failure policy and mutation semantics packed into one sentence – 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.

Completeness4/5

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 carry return-value information; it does by enumerating the parsed fields and bot categories. Combined with the safety annotations and explicit cost model, an agent has what it needs to call the tool correctly, though exact field names/shape are not given.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter ('ua') and schema coverage is 100%, so the schema already fully documents it. The description's detail is about output rather than adding input syntax or format guidance beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (parse) and resource (User-Agent string) and enumerates exactly what it extracts: browser/version, OS/version, device type, and bot identity. It names concrete bot families and HTTP libraries, so an agent can tell it apart from generic siblings like url_parse or text_extract without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage contexts: reading access logs, segmenting traffic, spotting AI crawlers. It does not name an alternative tool or state when not to use it, but for a single-purpose parser the selection context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uuidUUID generator, ID generator: generate random UUIDs (v4) for IDsA
Read-only
Inspect

Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many (1-100, default 1)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile, and the description goes further with real cost/auth context: $0.01/call via x402 USDC or a card key, first 25 free, failed calls free. 'Each call is charged, so repeats are not free' usefully gives the practical consequence of idempotentHint=false rather than just restating it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with capability, then use cases, then cost. Slight redundancy in 'reads or computes only and changes nothing', which repeats readOnlyHint/destructiveHint, but the pricing sentences earn their space for a per-call-billed tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter and no output schema, the description covers capability, quantity, safety and billing adequately. It could still say whether the result is an array or newline-delimited list, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the count parameter is already documented as 'How many (1-100, default 1)'. The description reinforces the effective 1-100 ceiling, which matters because the raw schema min/max bounds are far wider, and the count=3 example makes the unit concrete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate ... random version-4 UUIDs'), plus the generation source ('cryptographic random source') and quantity range. That is specific enough to separate it from nearby siblings such as random_password, random_number and pack_id_toolbox without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases ('IDs, idempotency keys and test data') and gives a worked example (count=3), so an agent knows when this is the right tool. It stops short of naming alternatives or stating when-not to use it, so it does not reach the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ibanIBAN validation: validate an IBANA
Read-only
Inspect

Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or paying out. Example: iban=SE45 5000 0000 0583 9825 7466. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ibanYesThe IBAN, spaces allowed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by disclosing billing ($0.01/call via x402 USDC or card key), the free tier (first 25 free, failed calls free), and explaining why idempotentHint=false — repeats are charged. Annotations already cover read-only and non-destructive, but the cost model is genuinely new and important context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and checks; example and pricing follow logically. Every sentence is informative, though the pricing sentence is dense and could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description explains the return (IBAN formatted in groups of four) and hints failures are handled (failed calls free). Adequate for a single-param validator, though success/failure response shape isn't fully spelled out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already states spaces are allowed, so the schema carries most weight. The description reinforces this with a concrete spaced-IBAN example (SE45 5000 ...), giving a usable format sample beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check) and the exact checks performed — format, country-specific length, mod-97 check digits — plus the formatting output. Clearly distinct from siblings like validate_isbn and validate_luhn.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it: "Use before saving bank details or paying out." There's no sibling alternative for IBAN validation, so no exclusions are needed, but the timing guidance is concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_isbnISBN check, validate an ISBN: check whether an ISBN-10 or ISBN-13 book number is validA
Read-only
Inspect

Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example: isbn=0-306-40615-2. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
isbnYesThe ISBN

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing input normalization (hyphens and spaces ignored), a transformation behavior (ISBN-10 to ISBN-13 conversion), and the billing model including free failures and the first 25 calls. It also explains why repeated calls cost money, which reconciles with idempotentHint=false in a way raw annotations cannot. It does not describe the shape of the response (validity flag, normalized ISBN), which is the one gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by usage context, an example, and then commercial terms. Every sentence contributes, though the final sentence packs read-only reassurance, per-call charging, and repeat-call semantics into one dense line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema tool, the description covers accepted input forms, normalization, conversion behavior, and cost, which is most of what an agent needs. What it lacks is any indication of what a response contains — e.g. whether an invalid checksum returns false versus an error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the single parameter only as "The ISBN," so the description carries real weight: it specifies that both ISBN-10 and ISBN-13 are accepted, that hyphens and spaces are ignored, and supplies a concrete example (0-306-40615-2). That is meaningful clarification beyond the schema's near-empty text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: validate an ISBN-10 or ISBN-13 check digit, plus the side benefit of converting valid ISBN-10s to ISBN-13. This clearly separates it from sibling validators like validate_luhn, validate_iban, and bic_validate, which operate on entirely different identifiers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use before cataloguing or ordering books" gives a concrete trigger context, and the tool's domain makes the alternative tools obvious. It stops short of naming an explicit alternative or stating when-not-to-use, so it lands 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.

validate_luhnCredit card validation (Luhn): check a card or ID number's Luhn checksumA
Read-only
Inspect

Check whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append. Only the format is checked; nothing is looked up. Use to catch typos in card or ID numbers. Example: number=79927398713. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberYesDigits, spaces and hyphens allowed

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover readOnlyHint=true and destructiveHint=false, and the description adds real value beyond them: it discloses that calls are charged ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and that repeats are not free because of the per-call charge. It correctly notes nothing is looked up (pure computation) and changes nothing, which complements the openWorldHint annotation. It doesn't disclose the return shape, but there's no output schema, so that is a minor gap rather than a major one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core check behavior and the example, which is good. But it packs multiple concerns (pricing/billing, safety, repeats) into the closing sentences, making the tail dense and slightly repetitive ('each call is charged, so repeats are not free' restates the pricing). Some sentences could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, no-output-schema validation tool, the description covers what it does, an example, the format-only nature, and the billing model. An agent has enough to call it correctly. The missing piece is return-value shape (pass/fail + computed check digit), which would help, but with no output schema the description could be more explicit about what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents the 'number' parameter ('Digits, spaces and hyphens allowed'). The description adds a concrete example value, which helps but doesn't add much semantic depth beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: check whether a number passes the Luhn (mod 10) algorithm, and also compute the check digit to append. The scope ('only the format is checked; nothing is looked up') distinguishes it from sibling validators like validate_iban, validate_isbn and bic_validate, each of which validates a different format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to catch typos in card or ID numbers' and gives a concrete example (number=79927398713), which is clear usage context. However, it doesn't explicitly say when NOT to use it or name an alternative sibling for card-number checking, so it stops short of the 5-level 'when-not/alternatives' bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vinVIN decoder: make, model, year, engine and plant from a VINA
Read-only
Inspect

Decode a 17-character vehicle identification number (VIN) with the US NHTSA vPIC database: make, manufacturer, model, model year, trim, body class, vehicle type, doors, drive, fuel and electrification, engine cylinders, displacement and horsepower, transmission, weight class and assembly plant, plus the check-digit test. Best for North American vehicles. Use for listings, insurance and fleet records. A malformed VIN is a 400, uncharged. Example: vin=1HGCM82633A004352. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
vinYes17-character VIN (letters I, O and Q never appear)
yearNoOptional model year, which helps decode older or partial VINs

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: malformed VIN returns 400 and is uncharged, failed calls are free, each successful call costs $0.01 (first 25 free), and repeats are not free despite being a read. That last point resolves what the idempotentHint=false flag leaves ambiguous, and the billing model with an auth path (x402 USDC or card key) is disclosed up front.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the decode scope and fields, then follows with caveats, example and pricing. Dense but every clause is functional; the pricing/charging sentence is slightly chatty and runs long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return set explicitly, plus cost model, error behavior and the read-only guarantee. An agent has everything needed to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented, and the description reinforces the 17-character constraint with a concrete example VIN. The optional year parameter and its purpose for older/partial VINs are covered only by the schema, but the example adds real value over the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (decode a 17-character VIN) and enumerates exactly what comes back (make, model year, engine, plant, check digit). Nothing in the sibling list overlaps, and the NHTSA vPIC attribution tells the agent which data source it is querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Best for North American vehicles. Use for listings, insurance and fleet records" gives clear usage context and a scope limitation. It stops short of naming a when-not or an alternative for non-North-American VINs, so no explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

walletBase wallet balances and account nonce snapshot: see a Base wallet's ETH and token balances and its transaction countA
Read-only
Inspect

Base only (all 5 chains: wallet_balances; USD values: wallet_portfolio). An address on Base: ETH and major token balances (USDC, WETH, cbBTC, DAI, USDbC, cbETH, AERO, EURC) plus up to 20 token addresses you pass, the account nonce, and whether it is an EOA, a contract or an EIP-7702 account. The nonce counts outgoing transactions only; not transfer or trading history. Use to check a counterparty's holdings. Example: address=0x4200000000000000000000000000000000000006. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokensNoOptional comma-separated extra ERC-20 addresses to check (max 20)
addressYesWallet or contract address on Base (0x...)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false and openWorldHint=true, and the description reinforces this ('reads or computes only and changes nothing') while explaining why repeats are not free, which accounts for the idempotent hint. It adds cost/permission context ($0.005/call via x402 USDC or card key, first 25 free, failed calls free) and the account-type determination. However, it says nothing about the shape or completeness of the returned token list (e.g. missing balances, decimals, or partial-failure behavior on extra token addresses).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The chain scope and sibling routing are front-loaded in the first clause, and every subsequent sentence carries operational information (coverage, nonce meaning, pricing). It is dense with parentheticals and semicolons, which makes it slightly harder to parse than it needs to be, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two fully documented parameters, an existing annotation set, and no output schema, the description covers everything an agent needs to call correctly: chain restriction, default coverage, extra-token cap, nonce semantics, account-type output, and cost/access model. Nothing material is missing for a read-only snapshot tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description nevertheless adds meaning by listing the default token set (USDC, WETH, cbBTC, DAI, USDbC, cbETH, AERO, EURC) versus the user-supplied 'tokens' addresses, so an agent knows the extra addresses are additive rather than a replacement. It also supplies a concrete example address and confirms the address must be on Base. It does not state what happens if a passed token address is invalid or non-ERC-20.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb-set and resource (ETH/token balances, account nonce, account type) scoped to Base, and explicitly distinguishes itself from wallet_balances (all chains) and wallet_portfolio (USD values). An agent can tell it apart from the per-chain base_balance/base_nonce siblings because it bundles balances, nonce, and EOA/contract/EIP-7702 classification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with the exclusions and the alternatives that cover them ('Base only (all 5 chains: wallet_balances; USD values: wallet_portfolio)'), then names the intended use case ('check a counterparty's holdings'). It also bounds expectations: the nonce is not transfer or trading history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallet_auditWallet risk check: fresh-wallet risk tier, flags, balances and nonce for a Base addressA
Read-only
Inspect

Screen a Base address for fresh or throwaway-wallet signals: a high/medium/low heuristic risk tier with named flags (no or one outgoing transaction, a near-empty balance with few transactions), plus ETH, USDC, WETH, cbBTC and DAI balances and the account nonce. Address type is reported separately and does not affect the tier; token contracts are not audited. Use to screen a Base address; OFAC and other chains: check_counterparty. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYesBase chain wallet address, 0x-prefixed 20-byte hex

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=false. The description adds important context beyond those annotations: pricing, first 25 free, failed calls free, repeats not free, read/compute-only behavior, and scope limitations around token contracts and address type. Nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with what the tool does and is generally efficient. It includes useful routing, limitations, example, and pricing details, though it is somewhat dense and has minor repetition around screening and call charging.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still explains the return contents sufficiently: risk tier, named flags, balances, nonce, and separate address type. It also covers scope limits, alternatives, and billing behavior. An agent has enough information to decide whether and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter, and schema description coverage is 100%, so the schema already documents the address format. The description adds an example address and clarifies Base chain screening scope, but it does not materially expand parameter semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: screen a Base address for fresh/throwaway-wallet signals, returning a risk tier, named flags, balances, and nonce. It also distinguishes scope from check_counterparty and clarifies that token contracts are not audited, so an agent can differentiate it from sibling wallet tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this for screening a Base address, names check_counterparty for OFAC and other chains, and gives a concrete address example. It also states limitations: address type does not affect tier and token contracts are not audited. This is strong when-to-use and alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wallet_balancesWallet balance, USDC balance: native and USDC balances on 5 networksA
Read-only
Inspect

Read a wallet's native coin and USDC balances on Base, Ethereum, Arbitrum, Optimism and Polygon in one call, live from each network, plus the USDC total. Use to find where a wallet's funds are before a payment or bridge; for one token on one network use _token_balance, for all tokens on Base use wallet_portfolio. A network whose nodes do not answer is listed with an error instead of failing the call. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
addressYes0x wallet address

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/destructive annotations it discloses the partial-failure contract (an unresponsive network is listed with an error rather than failing the whole call), the pricing model ($0.005/call via x402 or card key, first 25 free, failed calls free), and that repeat calls are billed — which explains the non-idempotent hint. It also affirms the tool changes nothing, consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool does and the network list, then alternatives, failure behavior, and cost — every sentence carries payload. It is a dense single block, though; splitting pricing and example into tighter sentences would improve scanability without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must signal the return shape, and it does: native plus USDC balances per network and an aggregate USDC total, with per-network errors surfaced inline. For a one-parameter read tool with rich annotations, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter and 100% schema coverage, the schema already carries most of the semantics; the description adds marginal value by supplying a concrete example address that demonstrates the expected format. It does not state whether ENS names or checksummed vs lowercase addresses are accepted, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (native coin and USDC balances) with explicit scope: five named networks in one call plus a USDC total. It also names the sibling tools it is not (<chain>_token_balance, wallet_portfolio), so an agent can distinguish it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case (locating a wallet's funds before a payment or bridge) and two named alternatives with the exact condition that selects each: one token on one network, or all tokens on Base. Nothing 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.

wallet_portfolioWallet portfolio value: holdings valued in USDA
Read-only
Inspect

USD value of a wallet on Base, Ethereum, Arbitrum or Optimism: native ETH plus major tokens (USDC and WETH everywhere, the common Base tokens on Base) and up to 20 tokens you add, each priced from its deepest Uniswap v3 pool, read live from the chain. Returns holdings, total and anything that could not be priced. Not a full token inventory. Use to check what a wallet is worth before trading, lending or paying. Example: address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
chainNoNetwork: base (default), eth, arb or op
tokensNoOptional extra comma-separated 0x token addresses (up to 20)
addressYes0x wallet address

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, openWorld, destructive=false), the description discloses the pricing source (deepest Uniswap v3 pool), that reads are live from the chain, that unpriceable assets are returned rather than silently dropped, and a full cost model ($0.005/call, 25 free, failed calls free, every call charged). The per-call charge also explains the idempotentHint=false in practical terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded in the first sentence, and the exclusion and usage guidance follow. The closing pricing/billing sentence is long and carries some duplication ('charged, so repeats are not free'), but the cost information does affect agent behavior, so it largely earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return contract itself: holdings, a total, and anything that could not be priced. Combined with chain coverage, token limits, pricing source and cost model, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters and their defaults are already documented; the description adds a realistic example address illustrating the expected format and restates chain coverage and the 20-token cap, which is partly redundant with the schema. Baseline-plus-example is the right level here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (USD value of a wallet) and pins down scope precisely: four chains, native ETH plus named major tokens, up to 20 user-supplied tokens, priced from Uniswap v3. It explicitly rules out being a full token inventory, which separates it from siblings like wallet_audit, token_report and price_tokens.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the concrete decision context ('Use to check what a wallet is worth before trading, lending or paying') and a negative bound ('Not a full token inventory'), which tells the agent when this tool is the wrong choice. It does not, however, name the alternative tool to use for a full inventory, so the routing is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weatherWeather forecast: current weather and 48-hour hourly forecast for any city or coordinatesA
Read-only
Inspect

Weather for any city or point on Earth (city name, or latitude and longitude): current temperature in Celsius, conditions (clear, cloudy, rain, snow), precipitation in mm, wind, humidity, cloud cover and air pressure, plus an hourly forecast for up to 48 hours. Data from the Norwegian Meteorological Institute; city names resolve via Wikidata. Use for travel and event planning, logistics, agriculture and any agent that needs the weather. Example: city=London. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
latNoLatitude in decimal degrees, -90 to 90 (with lon, instead of city)
lonNoLongitude in decimal degrees, -180 to 180 (with lat, instead of city)
cityNoCity or place name, e.g. London or Uppsala (used when lat and lon are not given)
hoursNoHours of hourly forecast to return, 1-48 (default 12; 48 covers tomorrow)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the upstream data source (Norwegian Meteorological Institute), that city names resolve via Wikidata, per-call pricing ($0.01 via x402 USDC or card key, first 25 free, failed calls free), and that repeats are charged — which explains the non-idempotent hint. The 'reads or computes only and changes nothing' line reinforces the read-only profile with concrete detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the capability, then data source, then use cases, then commercial terms — a sensible ordering with no wasted sentences overall. Mild bloat in 'any agent that needs the weather', which restates the obvious, and the pricing clause is dense but earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by enumerating the fields and units (Celsius, mm). Remaining gaps are minor: no mention of the response shape (flat vs. nested current/hourly arrays) or what happens when a city name is ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so lat/lon/city/hours are already documented with ranges and defaults. The description only adds the mutual exclusivity of city vs. lat/lon (already implied by the schema) and an example (city=London); it adds no new syntax, precedence, or ambiguity-resolution guidance for the hours or coordinate parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource and return set: current temperature in Celsius, conditions, precipitation in mm, wind, humidity, cloud cover, pressure, plus up to 48 hours of hourly forecast. It also names both input modes (city name or lat/lon), which cleanly separates it from siblings like sun, moon, time, and geocode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes usage: 'travel and event planning, logistics, agriculture and any agent that needs the weather', plus a concrete example (city=London). It gives clear context for when to reach for it but never states exclusions or points to a sibling alternative (e.g., geocode for resolving ambiguous place names).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_transfersWhale alert, large transfers: big USDC and USDT moves on 5 networksA
Read-only
Inspect

Large stablecoin transfers in the last minutes, read live from the network: every USDC and USDT transfer of at least min USD (default 100,000) on Ethereum, Base, Arbitrum, Optimism or Polygon, largest first, with sender, receiver, transaction and block, mints and burns marked. Covers up to 15 minutes on Ethereum and 3 on Base (busiest). Addresses are not labelled. Use to watch whale flows, treasury moves or stablecoin mints. Example: chain=ethereum. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
minNoSmallest transfer in USD, 10000 or more (default 100000)
chainNoethereum (default), base, arbitrum, optimism or polygon
tokenNoUSDC, USDT or stablecoins (both, default)
minutesNoHow far back, 1 to 15 minutes (default 5; Base covers at most 3)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses data windows (15 min Ethereum vs 3 min Base), that addresses are unlabelled, output fields (sender, receiver, tx, block, mints/burns), and a detailed pricing model ($0.01/call, first 25 free, failed calls free, repeats not free). These are operational traits an agent cannot get from readOnlyHint/openWorldHint alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded, then filters, then usage and pricing. Information density is high, but the closing pricing/reads-only sentences are somewhat verbose and partly restate the annotations' safety profile.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param, no-output-schema tool, the description supplies ordering, defaults, coverage windows, labelling caveat, and pricing, which is enough to call it correctly. Return structure is only partially described, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters with defaults and ranges. The description adds only the default min (100,000), the five chain names, and the 'largest first' ordering, which is marginal beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read large stablecoin transfers), the exact resources (USDC/USDT on Ethereum, Base, Arbitrum, Optimism, Polygon), and the filter (>= min USD, largest first). It distinguishes itself from the per-chain *_token_transfers siblings by being a cross-chain whale thresholded feed, though it 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to watch whale flows, treasury moves or stablecoin mints" plus a concrete example (chain=ethereum) gives clear usage context. It does not, however, state when NOT to use it or point to the per-chain token_transfers alternatives for lower-threshold/general queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikipediaWikipedia article summary: get the summary of a Wikipedia article on a topicA
Read-only
Inspect

Short summary of a Wikipedia article in any language edition: title, one-paragraph extract, description, thumbnail and page URL. Use to ground an agent's answer in a quick, citable fact sheet. Example: title=Stockholm. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
langNoLanguage code (default en)
titleYesArticle title

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: pricing ($0.01/call via x402 USDC or card key), free tier (first 25 free, failed calls free), and cost implications of repeated calls. It also reiterates the read-only, non-destructive nature, aligning with the annotations while adding useful billing semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and return fields, followed by usage, example, pricing, and safety notes. It is compact and every sentence contributes, though the pricing and safety sentences could be slightly tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple two-parameter tool with no output schema, the description covers what the tool returns, how to use it, cost structure, and safety profile. An agent has everything needed to call it correctly and understand the billing implications.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (lang and title) are already documented in the schema. The description adds only an example (title=Stockholm) and mentions 'any language edition,' which is marginal beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get a short summary of a Wikipedia article. It also lists the return fields (title, extract, description, thumbnail, URL), making the purpose concrete. However, it does not explicitly differentiate this tool from similar siblings like search, extract, or summarize.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case: 'Use to ground an agent's answer in a quick, citable fact sheet,' plus an example (title=Stockholm). It does not, however, specify when not to use this tool or name alternatives such as search or extract.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_checkx402 endpoint check: decode an endpoint's payment terms and listing quality without payingA
Read-only
Inspect

Check an x402 seller before you pay it: decode any public endpoint's 402 payment requirements without paying (v1 body or v2 header) into USD price for native USDC, network, asset, recipient, scheme and timeout, plus a listing-quality score for https resource URL, atomic amount, facilitator minimum, description, Bazaar metadata and output schema. Never signs. Use before buying from an unfamiliar seller or to audit your own x402 listing. Example: url=https://agent-data-tools.revmesh2074.workers.dev/btc-fees. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesAbsolute public https URL of the paid endpoint, with any query it needs

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and non-destructive behavior, but the description adds important context: it never signs, changes nothing, and each call is charged (not idempotent), clarifying that 'without paying' refers to the seller, not the tool itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the detailed fields, example, and pricing information are relevant. The description is dense but each sentence contributes to understanding the tool's function and cost model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description lists the decoded fields and the listing-quality criteria, which is sufficient for an agent to understand what to expect. It could be slightly more explicit about output format but is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the single url parameter is fully documented. The description adds an example URL but no extra syntax or constraints beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (decode) and resources (402 payment requirements and listing-quality score), making the tool's function clear. However, it does not differentiate itself from the sibling tool check_x402_seller, which likely serves a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage context: 'Use before buying from an unfamiliar seller or to audit your own x402 listing.' There are no when-not conditions or alternative tool recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xml_to_jsonXML to JSON converter: convert an XML document into JSONA
Read-only
Inspect

Convert an XML document to JSON: attributes become "@name" keys, text becomes "#text" (or the value itself when an element only holds text), and repeated child elements become arrays. DOCTYPEs and external entities are refused, so nothing outside the document is ever loaded. Up to 100,000 characters. Use to read XML feeds, SOAP responses and config files in an agent. Example: xml=PenInk. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
xmlYesThe XML document

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/destructive/openWorld/idempotent flags; the description adds substantive behavior the agent cannot infer: DOCTYPEs and external entities are refused (XXE safety), a 100,000-character input cap, and a per-call charge with failed calls free. It also explains *why* idempotentHint=false — each call is billed, so repeats are not free — turning an opaque annotation into an actionable constraint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core semantics and constraints are front-loaded before the example, and every early sentence carries information. The trailing sentence is slightly wasteful — "Reads or computes only and changes nothing" restates readOnlyHint/destructiveHint already present in annotations — but the billing note that follows it still earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter conversion tool with no output schema, the description covers everything an agent needs: input format, output shape conventions, size ceiling, security refusal behavior, and cost model. Nothing about successful or failed invocation is left ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single `xml` parameter is fully documented in the schema (100% coverage), so baseline 3 applies. The inline example `<order id="7"><item sku="a1">Pen</item>…</order>` is a modest value-add because it shows how the documented mapping rules play out, but no additional syntax, encoding, or formatting constraints are offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause names a specific verb and resource ("Convert an XML document to JSON") and immediately specifies the output mapping conventions (attributes → "@name", text → "#text", repeated children → arrays). This is enough to distinguish it from siblings like json_format, yaml_to_json, or json_repair without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to read XML feeds, SOAP responses and config files in an agent" gives concrete usage contexts, and the worked example anchors an expected call shape. There is no explicit when-not or named alternative (e.g. use yaml_to_json for YAML), 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.

yaml_to_jsonYAML to JSON: convert a YAML document into JSONA
Read-only
Inspect

Convert a YAML document (config files, Kubernetes manifests, OpenAPI specs, front matter) into JSON, parsed by the yaml library with anchors and aliases resolved (alias expansion capped against billion-laughs documents) and duplicate keys refused. Up to 100 KB. Use before feeding YAML into a JSON-only tool or schema check; for the reverse use json_to_yaml. Invalid YAML is a 400 with the parser's message, uncharged. Example: yaml=name: agent ports:

  • 80

  • 443 enabled: true. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yamlYesThe YAML text (up to 100 KB)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile, yet the description still adds substantial non-obvious behavior: the yaml library's anchor/alias resolution, an alias-expansion cap against billion-laughs documents, duplicate keys refused, a 100 KB ceiling, and 400-with-parser-message for invalid input. It also explains the billing model (uncharged failures, first 25 free, repeats not free), which is exactly the kind of context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and the reverse-tool pointer are front-loaded, and most sentences carry real information. The inline example is wedged mid-paragraph and slightly disrupts flow, but nothing is truly extraneous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers the meaningful output concerns: JSON as the result, error behavior (400 with parser message), and size limits. It stops short of describing output formatting details (indentation, key ordering, number/string fidelity), which an agent producing downstream comparisons might want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage the baseline is 3, but the description supplies a concrete multi-line example exercising a list and booleans, which clarifies the accepted input shape beyond the schema's terse 'The YAML text'. It doesn't add anything else parameter-specific, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Convert a YAML document ... into JSON') and enumerates the concrete input classes it handles (config files, Kubernetes manifests, OpenAPI specs, front matter). It also names the sibling that does the inverse (json_to_yaml), so the agent can distinguish the pair instantly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the use case ('Use before feeding YAML into a JSON-only tool or schema check') and routes the reverse case to json_to_yaml. The only mild gap is the absence of an explicit when-not condition, but the reverse-tool pointer effectively covers it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yes_noYes or noA
Read-only
Inspect

A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing cost ($0.01/call), the payment routes (x402 USDC or card key via /credits), the 25-call free tier, that failed calls are free, and that repeats are not free — the latter giving concrete meaning to idempotentHint=false. The 'reads or computes only and changes nothing' clause reinforces readOnlyHint rather than contradicting it, so the annotation profile is consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and decision framing are front-loaded, and the cost/auth caveats are packed into a single trailing clause. There is minor redundancy — 'each call is charged, so repeats are not free' restates the per-call price — and the billing sentence is dense enough that a reader may need a second pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter, no-output-schema tool, the description covers purpose, selection context, and the commercially important cost/auth model. It never indicates what an answer actually looks like (a bare yes/no, a structured object the `only` filter implies), which is the one real gap given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter and the schema documents it fully (100% coverage) with an example, so the baseline expectation is met without description help. The description mentions no parameter behavior of its own, but there is essentially nothing it could have added that the schema does not already say.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('A fair random yes or no, with a cryptographic random source'), which is concrete enough for an agent to know exactly what this returns. It implies but never names the nearest siblings (coin, dice, magic_8_ball), so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For quick decisions when the options are equally good. Use to break ties' gives a clear situational trigger for use. It stops short of exclusions or naming alternatives (e.g. coin for heads/tails, magic_8_ball for a whimsical answer), so an agent must infer which random-answer sibling to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Removedsolana_tx
  2. 3 tool updates
    • Addedsolana_balance
    • Addedsolana_token
    • Addedsolana_tx
  3. 1 tool update
    • Changedbtc_price2 fields changed
      • addedInput schema / properties / currency
        Added value: +{
        +  "description": "Optional: also price BTC in this currency; the seven listed ones come from the source, others (SEK, NOK, INR, BRL and about 25 more) are converted from USD at the ECB reference rate",
        +  "type": "string"
        +}
      • removedInput schema / properties / only
        Removed value: -{
        -  "description": "Optional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result",
        -  "type": "string"
        -}
  4. 9 tool updates
    • Addedcontract_abi
    • Addedgov_clinical_trials
    • Addedgov_federal_register
    • Addedsec_13f
    • Addedsec_8k
    • Addedsec_insider
    • Addedstablecoin_supply
    • Addedtoken_supply
    • Addeduniswap_pool

Publisher details

Operator
SpellzCode
Vendor relationship
First-party
Trust center
Not available
Restrictions
Every tool call is paid per call in USDC via x402 (from $0.001; Base, Polygon, Arbitrum or Monad). Listing tools is free; no account, API key or subscription. Failed calls are not charged.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    62 real-time data tools for AI agents via MCP. Finance, crypto, FMCSA, sanctions, courts, weather, vehicles, cybersecurity. One bearer token, one bill. Free tier available.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    100+ agent-payable C-suite expertises with x402 micro-payments — competitive intel, SEC filings, sanctions, KYC, clinical evidence, real estate, ESG. 183 tools, free tier 100 calls/month.
    1
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.