agentsvc-mcp
Provides web search capabilities through DuckDuckGo, allowing AI agents to search the web and retrieve factual summaries with links.
Provides web search capabilities through Wikipedia, allowing AI agents to search and retrieve information from Wikipedia as part of web search results.
agentsvc-mcp
agentsvc.io MCP Server — gives AI agents access to 20 pay-per-call utility services via the x402 micropayment protocol. Agents pay automatically in USDC on Base mainnet — no accounts, no API keys, no subscriptions.
What this is
A single MCP server that exposes 20 useful tools to any MCP-compatible AI agent. Each tool call costs $0.001–$0.008 USDC, paid automatically from your agent's wallet.
Related MCP server: Santos Automation
Available Tools (20)
Tool | Cost | What it does |
| $0.001 | IP address → country, city, ISP, ASN, timezone |
| $0.001 | Domain → DNS records (A, AAAA, MX, TXT, CNAME, NS) |
| $0.001 | Text/URL → QR code (base64 PNG) |
| $0.001 | Live forex rates from ECB (30+ currencies, hourly) |
| $0.001 | Email → format + MX + disposable check |
| $0.001 | Domain SSL cert → issuer, expiry, days remaining |
| $0.001 | Phone number → E.164 format, country, line type |
| $0.002 | City/GPS → current weather + 3-day forecast |
| $0.002 | Text → translated text (100+ languages) |
| $0.002 | Domain → registrar, created/expires, nameservers |
| $0.002 | Crypto IDs → live price, market cap, 24h change |
| $0.002 | Ticker symbols → price, P/E ratio, 52w range |
| $0.002 | Address → lat/lon or lat/lon → address |
| $0.003 | Query → factual summary + links (DuckDuckGo + Wikipedia) |
| $0.003 | Query → recent news articles (HackerNews + BBC) |
| $0.004 | PDF (base64) → full text + per-page breakdown |
| $0.005 | URL → PNG screenshot (base64, full JS rendering) |
| $0.006 | URL → clean readable text + title + links |
| $0.008 | URL or HTML → PDF (base64) |
| $0.008 | Image (base64) → extracted text (40+ languages) |
Installation
Requirements
Node.js 18+
npm install viem x402(for payment signing)A wallet private key with USDC on Base mainnet
Claude Desktop
curl -O https://agentsvc.io/mcp-server.mjs
npm install viem x402Add to claude_desktop_config.json:
{
"mcpServers": {
"agentsvc": {
"command": "node",
"args": ["/path/to/mcp-server.mjs"],
"env": {
"X402_PRIVATE_KEY": "0x..."
}
}
}
}Any MCP-compatible agent
The MCP server auto-discovers all 20 tools from the live catalog at startup. Tools are dynamically loaded — new services appear automatically without updating the server.
How payments work
Each tool call uses the x402 protocol:
Agent calls a tool
Server probes the service (HTTP 402 response with payment requirements)
MCP server signs USDC payment on Base mainnet using your private key
Service executes and returns result
Payments are atomic per call — you only pay when a call succeeds. The wallet needs USDC on Base mainnet.
Get USDC on Base:
Bridge from Ethereum: bridge.base.org
Buy on Coinbase → withdraw to Base
Swap on Uniswap/Aerodrome (Base)
Cost examples
Usage | Daily cost |
100 calls/day (avg $0.003) | $0.30 |
1,000 calls/day | $3.00 |
10,000 calls/day | $30.00 |
REST API
All tools are also available as a direct REST API without MCP:
# Step 1: probe (get payment requirements)
curl -X POST https://agentsvc.io/api/v1/proxy/ip-lookup \
-H "Content-Type: application/json" \
-d '{"ip": "8.8.8.8"}'
# → HTTP 402 with accepts[] payment requirements
# Step 2: sign + retry with X-Payment header
# See: https://agentsvc.io/docsEndpoints:
GET /api/v1/services— full catalog with schemas + pricesGET /api/openapi.json— OpenAPI 3.1 specGET /.well-known/agent-services.json— machine-readable manifest
Links
Live: agentsvc.io
MCP Server download: agentsvc.io/mcp-server.mjs
Service catalog: agentsvc.io/api/v1/services
OpenAPI spec: agentsvc.io/api/openapi.json
Agent manifest: agentsvc.io/.well-known/agent-services.json
Docs: agentsvc.io/docs
Payment details
Protocol: x402 exact scheme
Network: Base mainnet (chain ID: 8453)
Currency: USDC
USDC contract:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Atomic units: 1 USDC = 1,000,000 units
License
MIT
Available Tools
127 toolsaccessibility_checkA
Accessibility Check (WCAG, BFSG, EAA) — Automated web accessibility audit of a page in a real browser with axe-core: every WCAG 2.2 level A and AA rule that can be tested automatically (missing alt text, unlabeled buttons and form fields, color contrast, keyboard traps, ARIA errors, missing page language, touch target size). Returns a grade A to F, violations sorted by impact (critical, serious, moderate, minor) with the WCAG criteria, number of affected elements, example selectors and HTML, and a fix hint, plus whether the page links an accessibility statement. For the EU Accessibility Act (EAA), the German BFSG (in force since 28 June 2025) and Austrian BaFG, which build on EN 301 549 and WCAG 2.1 AA. Option mobile for a 390 px phone viewport. Automated rules catch about a third of barriers; this is a screening, not a certification and not legal advice. Not charged when the page cannot be loaded. Cost: $0.015 USDC per call. Latency p99: 20000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page to audit, e.g. https://example.com | |
| mobile | No | Audit at phone width (390x844) instead of desktop (1280x800) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses pricing ($0.015 USDC), p99 latency (20s), a partial-refund rule ('Not charged when the page cannot be loaded'), the automated-coverage limit (~a third of barriers), and a detailed picture of the returned grade, impact ordering, selectors and fix hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then tiers of detail. The long parenthetical rule list and the standards sentence are dense but each carries selection-relevant information; nothing is padding, though the description is on the verbose side.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fully picks up the slack: it explains what the audit returns, how results are graded and sorted, the coverage limitation, billing conditions 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description restates the mobile mode as a '390 px phone viewport', adding marginal colour beyond the schema's '390x844 vs 1280x800'. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Automated web accessibility audit of a page in a real browser with axe-core') and grounds it in named standards (WCAG 2.2 AA, EN 301 549, EAA, BFSG, BaFG). This clearly distinguishes it from neighbours like seo_meta, site_audit, privacy_check and image_alt_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong when-to-use framing ('For the EU Accessibility Act (EAA), the German BFSG ... and Austrian BaFG') and an explicit scope caveat ('a screening, not a certification and not legal advice'). It stops short of naming an alternative sibling or a when-not-to-use condition, so it is clear context without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_inboxA
Agent Inbox (Messages Between Agents) — A mailbox for AI agents, no account: create an inbox and get a public address (inbox_...) plus a secret. Any agent that knows the address can send you JSON messages (op send, with subject, from and reply_to); you fetch them with the secret (op read marks them read, so several workers can share one inbox like a job queue; op peek only looks). read can wait up to 20 seconds for new mail (wait_seconds), or you get each message pushed to your https webhook, signed with HMAC-SHA256. Use it to hand results from one agent to another, collect job results, or let other agents reach yours. Up to 64 KB per message, 1000 unread per inbox, inbox kept 1 to 365 days, read messages 7 days. Cost: $0.003 USDC per call. Latency p99: 25000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | Default: send if to is given, read if secret is given, else create | |
| to | No | send: inbox address (inbox_...) | |
| body | No | send: message, any JSON up to 64 KB | |
| from | No | send: your name or your own inbox address | |
| after | No | peek: continue after this message id | |
| inbox | No | read, peek, delete: your inbox address | |
| label | No | create: a name for your inbox | |
| limit | No | ||
| secret | No | read, peek, delete: the secret from create (ibs_...) | |
| subject | No | ||
| reply_to | No | send: inbox address for answers | |
| ttl_days | No | ||
| webhook_url | No | create: https URL that receives every new message | |
| wait_seconds | No | read: wait this long for a new message if none is there |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so richly: read marks messages read (a state-mutating side effect), peek is non-destructive, read can block up to 20s, webhook delivery is HMAC-SHA256 signed, plus limits (64 KB, 1000 unread), retention (1–365 days, 7 days for read), cost ($0.003/call) and p99 latency (25000ms).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core identity and address/secret concept before behavioral rules, and almost every clause (limits, retention, cost, latency) carries operational value. It is dense enough that the op semantics are somewhat compressed, but nothing is truly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, no-annotation, no-output-schema tool, the description covers the critical operational traits an agent needs to call it correctly. It stops short of describing the actual return payloads (e.g. what read/peek/create return), which an agent would need since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 79% (high), so the baseline is 3; the description adds genuine meaning beyond schema by explaining op semantics, the create/read/peek/send selection logic, and the inbox_/ibs_ identifier formats. It does not add detail on limit, ttl_days, or after beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource (a mailbox for AI agents) and enumerates its operations (op send, read, peek, create, delete) with the resulting artifacts (inbox_... address, ibs_... secret). An agent can immediately distinguish this from siblings like agent_memory or agent_run without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit use cases (hand results between agents, collect job results, let other agents reach yours) and explains the read-vs-peek distinction for shared-queue usage plus the op defaulting rule. It lacks an explicit when-not-to-use or a named alternative sibling, 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.
agent_memoryA
Agent Memory (Key-Value Store) — Persistent memory for AI agents without an account: store JSON under a key and read it back in a later run, or share it with other agents. Your first write creates a store and returns its secret (mem_...); pass it as store on every later call. Operations: set (with optional if_version for safe concurrent updates), get, get_many, delete, list (prefix, tag, paging), search (words in keys and values), append (rolling list such as a log or task queue, oldest items drop off), incr (atomic counter). Up to 64 KB per value, 1000 keys and 5 MB per store, kept 1 to 365 days (default 30, renewed on every write). One price per operation. Cost: $0.002 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | incr step, default 1 | |
| op | No | Default: set if value is given, get if key is given, else list | |
| key | No | ||
| tag | No | ||
| keys | No | For get_many and delete | |
| tags | No | ||
| after | No | list: continue after this key | |
| limit | No | ||
| query | No | search: words that must all appear in key or value | |
| store | No | Store secret from an earlier call (mem_...). Omit on your first write to create a store | |
| value | No | Any JSON value, up to 64 KB (set, append) | |
| prefix | No | ||
| ttl_days | No | ||
| max_items | No | append: keep at most this many items, default 100, max 1000 | |
| if_version | No | set only if the current version matches (0 = key must not exist) | |
| with_values | No | list: include values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely succeeds: it discloses the store-secret model, no-account access, value/key/store size limits (64 KB, 1000 keys, 5 MB), TTL semantics (1–365 days, default 30, renewed on every write), pricing, and p99 latency. Gaps remain around error/concurrency-failure behavior and what delete permanently removes, but the operational profile is unusually rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core concept and store flow before the operation enumeration and limits, so the most important content comes first. It is dense and information-rich with almost no filler, though the separate 'One price per operation' and 'Cost: $0.002 USDC per call' sentences are mildly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter, zero-required tool with no output schema and no annotations, the description covers the operational model, per-op semantics, limits, TTL, cost, and latency well. It stops short of explaining return shapes for get/list/search, which is a 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 63%, so some meaning must come from the description, and it adds real value: if_version for safe concurrent updates (0 = must not exist), append's oldest-items-drop behavior and max_items, incr as an atomic counter, and search matching words in keys and values. Several params (tag, prefix, limit, ttl_days, tags, with_values) get only list-level or no explicit meaning, keeping this below a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Key-Value Store', 'Persistent memory for AI agents') and enumerates the concrete operations (set/get/get_many/delete/list/search/append/incr), so an agent knows exactly what the tool does. It is clearly distinguishable from siblings like agent_run and agent_inbox, which are unrelated capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the intended usage flow well: store JSON under a key and read it back in a later run or share between agents, with the first-write-creates-store lifecycle spelled out. It tells the agent which op to pick for each need (e.g. append for a rolling log/task queue, incr for counters), but offers no explicit when-not-to-use or named alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_runA
Task Agent with Tools (AI) — Hand off a whole research or lookup task in one call: a Claude Haiku 5.5 agent plans the steps, calls up to 38 agentsvc.io tools in parallel (web and news search, page reading, papers, GitHub and npm, company registers and sanctions, crypto prices, token checks, DeFi TVL and yields, wallets, FX and macro data, weather, DNS, WHOIS, SSL, CVEs) and returns a Markdown answer with sources and the list of tool calls it made. Up to 12 steps and about 90 seconds. Read only: it cannot spend money or send anything. Example: compare two DeFi protocols, check a company and its domain, or summarize what changed this week on a topic. AI-written, check the sources. Cost: $0.5 USDC per call. Latency p99: 60000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What to find out or do, in plain words, max 4000 characters | |
| max_steps | No | Upper limit of model rounds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it states read-only behavior ('cannot spend money or send anything'), the step cap (~12) and time budget (~90s), the output shape (Markdown with sources plus the list of tool calls made), cost ($0.5 USDC per call), and p99 latency (60000ms). These are exactly the operational traits an agent needs before committing a paid, slow call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense paragraph, but it is front-loaded with what the tool does before diving into tool categories, examples, cost, and latency. Every clause is information-bearing, though the long parenthetical tool enumeration is slightly heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a slow, paid, multi-tool agent with no output schema and no annotations, the description covers purpose, safety profile, cost, latency, step limits, and return format. An agent has everything needed to decide whether to call it and what to expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters, setting the baseline at 3. The description mostly restates what the schema provides ('Up to 12 steps' maps to max_steps' 1–12 range) and adds no new syntax or format guidance for 'task' or 'max_steps' beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource: it hands off a whole research/lookup task to an agent that plans steps and calls many tools, returning a Markdown answer. The nature of the tool (a meta-agent spanning many single-purpose siblings) makes its function unmistakable. It doesn't explicitly contrast itself with close siblings like research_report or answer_with_sources, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Concrete examples clarify when to reach for it ('compare two DeFi protocols, check a company and its domain, or summarize what changed this week'). This gives clear usage context, but no explicit when-not conditions or named alternatives among the many single-purpose sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
airport_statusA
US Airport Status (FAA) — Live US airport disruptions from the FAA National Airspace System status: ground stops, ground delay programs (average and max delay), arrival and departure delays with trend, and closures. Pass airports (IATA like JFK or ICAO like KJFK) for a per-airport status (normal, delays, disrupted; general-aviation-only closures are listed as notices) or omit them to get all current events. US airports only. Params: airports (optional list). Cost: $0.0045 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| airports | No | US airport codes, e.g. ['JFK','SFO'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses read-only scope implicitly via "status", a per-call cost ($0.0045 USDC), p99 latency (1500ms), and the edge case that general-aviation-only closures are surfaced as notices rather than active disruptions. It does not mention error behavior for invalid or non-US codes, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a dense but front-loaded single paragraph: purpose and outputs first, then parameter behavior, then scope, then cost/latency. Every clause carries information, though the parameter-recap sentence is mildly redundant with the schema and the run-on structure could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by enumerating the returned data (ground stops, GDP delays, trend-bearing arrival/departure delays, closures, per-airport status values normal/delays/disrupted). Combined with scope, cost, and latency, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is optional, so the baseline is already 3. The description adds meaning beyond the schema's bare "US airport codes" example by specifying that both IATA (JFK) and ICAO (KJFK) forms are accepted and that supplying the parameter changes the shape of the response from all-events to per-airport status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: live US airport disruptions sourced from the FAA National Airspace System, and enumerates the exact disruption types (ground stops, GDPs with average/max delay, arrival/departure delays, closures). No sibling tool in the list overlaps with airport status, so the function is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the two operating modes: pass airport codes for a per-airport status, or omit them to return all current events. It also sets a hard scope boundary ("US airports only"). It stops short of naming alternatives or explaining what happens with an unknown/non-US code, so it is strong context rather than fully explicit 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.
answer_with_sourcesA
Answer with Sources (AI) — Ask a question, get a short answer with numbered citations [1], [2] and the source list. Searches Wikipedia and our own news index (GDELT and Hacker News, last 7 days), reads the top 3 pages and answers only from them with Claude Haiku 5.5; when the sources do not answer the question it says so. source auto (current events go to news first), news or web (Wikipedia); optional answer language. Not a general web index: niche or very new topics may have no sources, then the call is not charged. Cost: $0.008 USDC per call. Latency p99: 20000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | auto | |
| language | No | Answer language, e.g. German; default English | |
| question | Yes | The question, max 400 chars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the source scope, that only the top 3 pages are read, the answering model, the abstain behavior ('when the sources do not answer the question it says so'), the no-charge-on-abstain policy, cost ($0.008 USDC), and p99 latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and packed with high-value operational facts, so nearly every clause earns its place. It is one dense run-on block though, and the parenthetical asides make it slower to scan than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description covers everything an agent needs: what comes back (answer plus citation list), when sources fail and what that costs, per-value behavior of the source selector, and cost/latency budgets for decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (question max 400 chars and language are documented; source only via enum/default). The description adds genuine meaning the enum cannot convey: what 'auto' actually resolves to and that 'news' vs 'web' map to news-first vs Wikipedia, plus confirmation that language is optional. Only the absence of explicit per-value notes for 'news'/'web' keeps it off a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and output artifact: 'Ask a question, get a short answer with numbered citations [1], [2] and the source list.' It names the exact corpus (Wikipedia, GDELT, Hacker News last 7 days) and the reading strategy, which makes it trivially distinguishable from siblings like web_search, news_search, or search_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real routing guidance: 'source auto (current events go to news first), news or web (Wikipedia)' and a clear when-not: 'Not a general web index: niche or very new topics may have no sources.' It never names the sibling tool to use instead (e.g., web_search) for general queries, so 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.
audio_transcribeA
Speech to Text (Whisper Transcription) — Speech to text for agents: transcribe a voice note, meeting, podcast or call recording into text with timestamps, in about 100 languages with automatic language detection. Runs OpenAI Whisper (small by default, base for speed) on agentsvc.io itself, the audio is deleted after the call. Send audio_url or audio_base64 (mp3, mp4, m4a, wav, ogg, webm, flac), up to 10 minutes and 24 MB per call. Returns text, detected language, duration and segments with start and end seconds. Also available OpenAI-compatible at POST /v1/audio/transcriptions (multipart file, model whisper-1). Cost: $0.01 USDC per call. Latency p99: 60000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | small is more accurate, base about twice as fast | small |
| language | No | ISO 639-1 code like en or de, default auto-detect | |
| audio_url | No | Public URL of the audio file | |
| timestamps | No | Include segments with start and end seconds | |
| audio_base64 | No | Audio file as base64; or use audio_url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses data handling ('the audio is deleted after the call'), hard limits (10 minutes / 24 MB per call), pricing ($0.01 USDC per call), latency (p99 60000ms), and the default/speed model tradeoff. These are exactly the traits an agent needs and cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and packs limits, cost, and return shape into a compact block. The opening 'Speech to Text (Whisper Transcription) — Speech to text for agents' restates the same idea twice, which is minor waste but the only real redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the return payload (text, detected language, duration, segments with start/end seconds). Combined with formats, limits, model options, cost and latency, 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.
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 meaning beyond it: the language auto-detect behavior (~100 languages), the mutual-exclusivity framing of audio_url vs audio_base64, and the supported container formats (mp3, mp4, m4a, wav, ogg, webm, flac). It stops short of richer per-parameter detail, so not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('transcribe ... into text with timestamps') and names the concrete input types (voice note, meeting, podcast, call recording) and the engine (OpenAI Whisper). It is unmistakably distinct from siblings like tts (opposite direction) or language_detect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use ('Speech to text for agents') and names an alternative access path (OpenAI-compatible POST /v1/audio/transcriptions). It does not, however, state when NOT to use it or route the agent to a sibling tool, so it falls short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
barcodeA
Barcode Generator — Generate a barcode as PNG (base64): code128 (default), ean13, ean8, upca, upce, code39, itf14, gs1_128, isbn, datamatrix, pdf417, aztec or qr. Validates check digits for EAN/UPC. Use for labels, shipping, inventory, tickets or invoices. Params: text (required), type, scale (1-8, default 3), include_text boolean (human-readable text under the bars). Cost: $0.0025 USDC per call. Latency p99: 300ms.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Data to encode | |
| type | No | code128 | |
| scale | No | ||
| include_text | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it delivers real operational context: output format (PNG base64), check-digit validation for EAN/UPC, cost ($0.0025 USDC per call) and p99 latency (300ms). It stops short of describing error behavior for invalid input or the maxLength constraint's failure mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense, front-loaded paragraph: purpose first, then formats, then validation, use cases, params, cost and latency. No filler sentences, though the packed enumeration makes it read as a spec dump rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly states the return form (base64 PNG) plus cost and latency, and it covers all four parameters, so an agent can invoke it correctly. Minor gaps remain around input-length limits and failure modes for invalid check digits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only 'text' is documented in the schema), so the description must compensate and largely does: it names all four params, marks text as required, gives scale's range and default, and explains include_text as 'human-readable text under the bars' — semantics absent from the schema. It adds no format examples for type-specific inputs (e.g. EAN-13 length rules).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Generate a barcode as PNG (base64)') and enumerates the supported symbologies, so the agent knows exactly what comes back. It does not differentiate from the sibling 'qr_code' tool even though qr is listed as one of its types, leaving a small overlap ambiguity unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for labels, shipping, inventory, tickets or invoices' gives concrete usage contexts rather than a bare restatement of the name. There is no exclusion or routing guidance, however, so the agent is not told when to prefer qr_code over this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_addressA
Bitcoin Address Balance — Bitcoin address lookup for agents: confirmed and pending balance in BTC and USD, total received and sent, transaction count and the latest transactions with net amount, confirmations and fee. Works for bc1 (SegWit, Taproot), 1 and 3 addresses on Bitcoin mainnet. Use to check a payment, a treasury or a counterparty wallet. Cost: $0.003 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Recent transactions, 0 to 25 | |
| address | Yes | Bitcoin address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.003 USDC per call), latency (p99 3000ms), the scope restriction to Bitcoin mainnet, and the supported address types (bc1/SegWit/Taproot, 1, 3). It does not explicitly state read-only semantics or error behavior for an invalid/non-mainnet address, which keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and output inventory are front-loaded, followed by practical metadata (cost, latency). It reads as a dense run-on sentence, but nearly every clause (output fields, network scope, price, latency) carries real decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must compensate — and it does by enumerating the returned fields in detail plus cost, latency, and network scope. Remaining gaps (failure modes for bad addresses, whether results are paginated beyond the limit param) are minor for a simple two-parameter lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the limit range (0–25) and default. The description mentions 'the latest transactions' and the address types but adds no syntax, format, or constraints beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Bitcoin address lookup') and enumerates the exact outputs (confirmed/pending balance in BTC and USD, total received/sent, tx count, latest transactions with net amount, confirmations, fee). That resource-and-output framing cleanly separates it from siblings like btc_tx (a single transaction), btc_fees, btc_watch (monitoring) and evm_balance (different chain).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context: 'Use to check a payment, a treasury or a counterparty wallet.' That is clear when-to-use guidance, but it names no alternative or exclusion (e.g., use btc_watch instead for ongoing monitoring), so it stops short of a full when/when-not routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_feesA
Bitcoin Fee Estimate — Bitcoin fees right now: recommended sat/vB for the next block, 30 minutes, 1 hour and economy, what a typical payment costs in USD, mempool size, tip height, next difficulty adjustment and the BTC price in USD and EUR. Call before sending a Bitcoin transaction. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the cost ($0.002 USDC per call) and p99 latency (2000ms), which are behavioral facts not available anywhere else. It stops short of stating authentication requirements or rate limits, and read-only status is only implied rather than declared.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the cost/latency facts are appended usefully. The opening 'Bitcoin Fee Estimate — Bitcoin fees right now' is slightly redundant, and the return-value list is a dense run-on sentence, but overall it is appropriately sized for a no-parameter data tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the return fields explicitly, and it adds cost and latency metadata. For a zero-parameter, annotation-free data fetch, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify about inputs. Baseline 4 applies; no parameter-level gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (Bitcoin fee estimate) and enumerates exactly what it returns: recommended sat/vB for next block, 30 min, 1 hour, economy, USD payment cost, mempool size, tip height, difficulty adjustment, and BTC price in USD/EUR. The explicit 'Bitcoin' scoping naturally separates it from the sibling gas_price (EVM). An agent can tell what this tool delivers without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use trigger: 'Call before sending a Bitcoin transaction.' That is actionable context. However, it names no when-not conditions and no alternatives (e.g., gas_price for EVM chains, crypto_prices for spot prices), so 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.
btc_timestampA
Bitcoin Timestamp (OpenTimestamps) — Timestamp anything on Bitcoin with OpenTimestamps: send text, a SHA-256 hash or a URL and get a standard .ots proof (base64). Only a salted hash leaves our server. The public calendars anchor it in a Bitcoin block within hours; then btc-timestamp-verify returns the block and the complete proof, which anyone can check with the open-source ots tool. For contracts, AI outputs, datasets, invoices and web evidence. Cost: $0.005 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Timestamp the exact bytes this URL returns now | |
| hash | No | SHA-256 hex, alternative to text | |
| text | No | Content to timestamp (hashed with SHA-256) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the privacy model ('only a salted hash leaves our server'), the asynchronous anchoring behavior ('within hours'), cost ($0.005 USDC per call), and p99 latency (5000ms). It also explains the return artifact (standard .ots proof) and that it is verifiable with the open-source ots tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense but front-loaded paragraph: the core action and inputs come first, with cost and latency correctly deferred to the end. It is slightly packed with operational facts, but every clause (privacy, cost, latency, companion tool) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain the return value, and it does (a base64 .ots proof, plus the block/proof via the verify tool). Cost, latency, privacy, and the verification workflow are all covered, so 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all three parameters individually documented, so the schema already does the heavy lifting. The description restates the accepted input types (text, SHA-256 hash, URL) but adds no syntax, format, or precedence details beyond it, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Timestamp anything on Bitcoin with OpenTimestamps') and enumerates accepted inputs (text, SHA-256 hash, URL) plus the output artifact (.ots proof, base64). It also explicitly distinguishes itself from the sibling btc_timestamp_verify by describing that tool's role, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases (contracts, AI outputs, datasets, invoices, web evidence) and names the downstream companion tool (btc-timestamp-verify) for the verification step. It does not, however, state when to prefer a different notarization sibling such as iota_notarize, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_timestamp_verifyA
Bitcoin Timestamp Verify — Verify an OpenTimestamps proof (.ots as base64, from btc-timestamp or any ots client): upgrades pending proofs from the calendars, checks each Bitcoin attestation against the real block's merkle root and returns status (confirmed, pending), block height and time, the upgraded proof, and whether your text, hash or URL matches. Cost: $0.003 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL whose current bytes to compare | |
| hash | No | SHA-256 hex to compare | |
| text | No | Original content to compare | |
| ots_base64 | Yes | .ots file as base64 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the upgrade-from-calendars side effect, the merkle-root attestation check against the real block, the returned statuses (confirmed/pending), and — unusually — cost ($0.003 USDC per call) and p99 latency (5000ms). These are exactly the operational facts an agent needs and cannot infer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads purpose and input source, then adds the upgrade/check behavior, return values, and cost/latency at the end. Every clause earns its place, though the run-on construction is heavier than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by enumerating the return payload (status, block height/time, upgraded proof, match result). Combined with the disclosed cost and latency and full parameter coverage, 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.
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 genuine meaning by explaining that text, hash, and url exist to check whether the caller's content 'matches' the timestamped proof. That ties the optional comparison params to their purpose rather than restating their types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify) and resource (OpenTimestamps proof / Bitcoin attestation) and explicitly scopes the input source ('from btc-timestamp or any ots client'), which cleanly separates it from the sibling btc_timestamp that creates proofs. An agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is the verification counterpart to btc-timestamp and accepts any ots client's proof, giving strong context for when to reach for it. It stops short of explicit when-not guidance (e.g. what to do with an already-confirmed proof or non-ots input), so it 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.
btc_txA
Bitcoin Transaction Lookup — Bitcoin transaction by txid: confirmed or in the mempool, confirmations, block, fee in sats and sat/vB, RBF signal, inputs and outputs with addresses and amounts, USD value. Use to confirm a payment arrived or to check why a transaction is stuck. Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes | Transaction id, 64 hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does well: it discloses a per-call cost ($0.002 USDC) and p99 latency (3000ms), and enumerates the result contents including mempool vs confirmed status and RBF signal. It stops short of stating read-only/safety semantics explicitly, but a lookup verb plus billed read is unambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then result fields, then use cases, then cost/latency in a compact block with no filler. The return-field enumeration is dense but each item 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, when to use, return contents, pricing and latency for a single-parameter tool with no output schema. Missing only an explicit note on error behavior for unknown txids or mempool-only transactions, which is minor given the field list already implies those states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents txid as a 64-char hex string. The description only restates 'by txid', adding no format, validation, or edge-case guidance (e.g. what happens if the txid is unknown). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lookup) plus resource (Bitcoin transaction by txid) and lists the exact data returned. The 'Bitcoin' qualifier cleanly separates it from evm_tx, sui_tx, iota_tx and tron siblings in the tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete triggers: confirming a payment arrived, and diagnosing a stuck transaction. It does not name the adjacent alternatives (e.g. btc_address for address-level balance), so an agent must still infer which sibling to pick, but the usage context is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_watchA
Bitcoin Wallet Watch — Watch a Bitcoin address in a loop and get only new transactions since your last call, with direction, net BTC, confirmations and time, plus the balance. First call returns recent transactions and a cursor; pass it back next time. For deposit detection and treasury or whale watching. Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | Cursor from the previous call | |
| address | Yes | Bitcoin address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers well: cursor round-trip semantics, first-call behavior, returned fields, per-call cost, and p99 latency. It omits failure modes, rate limits, and any auth requirements, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with zero filler: purpose and return shape first, usage next, cost/latency last. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must carry the entire burden, and it does: it names the returned fields, explains the streaming/cursor model, and quantifies cost and latency. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (address and cursor documented, limit has only a default). The description adds real meaning for cursor beyond the schema's one-liner by explaining the first-call/next-call handoff. The limit parameter remains unexplained in both places, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (watch), resource (Bitcoin address), and an unusual scope qualifier (loop, only new transactions since last call). This clearly distinguishes it from siblings like btc_address, btc_tx, and wallet_watch, which do not do incremental polling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases (deposit detection, treasury/whale watching) that tell the agent when this tool fits. It does not explicitly name a sibling alternative or state when not to use it (e.g., versus btc_address for a one-off balance check), 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.
chart_renderA
Chart Rendering (Chart.js) — Render a chart to PNG from JSON: bar, line, pie, doughnut, scatter, radar, polarArea or bubble. Pass a full Chart.js config (config) or the shortcut type + labels + datasets [{label, data}] + title. Rendered with Chart.js in headless Chromium, no external requests. Params: config or type/labels/datasets, title, width and height (100 to 2000 px, default 800x500), background (CSS color, default white). Returns image_base64 (PNG). Cost: $0.009 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| title | No | ||
| width | No | ||
| config | No | Full Chart.js configuration {type, data, options} | |
| height | No | ||
| labels | No | ||
| datasets | No | ||
| background | No | white |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the rendering environment (headless Chromium), a security-relevant guarantee (no external requests), the return payload (image_base64 PNG), per-call cost ($0.009 USDC) and p99 latency (6000ms). These are exactly the traits an agent cannot infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then formats, then input modes, then params, then cost/latency — a sensible ordering with little waste. It is dense and mostly one long paragraph, but every clause (cost, latency, no external requests) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with nested objects and no output schema, the description covers all inputs, the two usage modes, the return format, and the operational cost/latency 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13%, so the description must compensate, and it does: it explains the config-vs-shortcut relationship and the datasets [{label, data}] shape that the schema leaves opaque. It partly repeats the width/height ranges and defaults already visible in the schema, keeping it from a top score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Render a chart to PNG from JSON') and enumerates the supported chart types, which immediately separates it from generic siblings like diagram_render or satellite_image. An agent knows exactly what it produces (a PNG chart) without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear invocation context by spelling out the two modes: a full Chart.js 'config' or the shortcut 'type + labels + datasets + title'. It does not, however, state when NOT to use it or name an alternative sibling (e.g. diagram_render), 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.
citation_checkA
Citation Check (Hallucinated and Retracted References) — Verify references before you publish or rely on them: up to 10 citations per call, as reference strings in any style, DOIs, or {title, authors, year, doi}. For each: status verified, mismatch (the work exists but authors, year or DOI are wrong, e.g. a real DOI that points to a different paper), uncertain or not_found (likely invented), the matched record with authors, year, venue, DOI and open-access link, the corrected issues, an APA-formatted reference, and a retraction flag with the notice date from Retraction Watch. Built for agents that write reports, papers or answers with sources. Sources: Crossref, OpenAlex, DataCite. Cost: $0.005 USDC per call. Latency p99: 10000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | No | Single DOI (alternative to citations) | |
| year | No | ||
| title | No | Single title (alternative to citations), optionally with authors and year | |
| authors | No | ||
| citations | No | 1 to 10 references: strings, or {title, authors, year, doi}; or one string with one reference per line |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so: it discloses cost ($0.005 USDC per call), latency (p99 10000ms), upstream sources (Crossref, OpenAlex, DataCite), the retraction data source (Retraction Watch), and the full set of status outcomes returned. This is unusually rich disclosure for a read-only verification tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded before the long em-dash run of return fields, so the essential information lands first. The middle section is dense and run-on, packing output statuses into a single sprawling sentence, but nearly all of it is load-bearing given the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description still explains what comes back per citation (matched record, corrected issues, APA reference, retraction flag with notice date), plus cost, latency and source provenance. Nothing an agent needs to decide to call it or interpret results is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, so the description must add meaning, and it does: it clarifies the citations cap ('up to 10 citations per call'), the accepted input formats (reference strings in any style, DOIs, or {title, authors, year, doi}), and the alternative single-doi/single-title path. It adds concrete format semantics beyond the schema's type declarations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause states a specific verb and resource ('Citation Check ... Verify references'), and the parenthetical 'Hallucinated and Retracted References' scopes it tightly. This clearly distinguishes it from siblings like paper_search or answer_with_sources, which discover or cite sources rather than validate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use condition ('before you publish or rely on them') and a target audience ('agents that write reports, papers or answers with sources'). It does not name a specific alternative sibling or state 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.
company_briefA
Company Brief (KYB in one call) — Company check (KYB) and company enrichment in one call, built from six official or primary sources: legal entity from the Global LEI Index (legal name, LEI, status, register number, founding date, legal and HQ address, other candidates), EU VAT number check against VIES, sanctions screening against the OFAC SDN, EU and UN lists, domain registration and email security (RDAP, MX, SPF, DMARC grade), website technology stack, and recent news. Returns key_facts as plain sentences plus every section in full, and a checks map that says which parts ran, were skipped or failed. For supplier and customer onboarding, lead qualification, due diligence and sales research, especially for European companies. Cheaper than calling company-lookup, vat-validate, sanctions-screen, domain-check, tech-stack and news-search one by one. Send at least one of name, vat_number, lei or domain; name plus domain gives the fullest brief. Not charged when nothing is found. Cost: $0.03 USDC per call. Latency p99: 15000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | 20-character LEI, skips the name search | |
| name | No | Company name, e.g. "Siemens". Matched against GLEIF; exact names rank first | |
| domain | No | Company domain or website URL, e.g. siemens.com | |
| country | No | ISO2 country of the legal address to narrow the name search, e.g. DE | |
| news_limit | No | Number of news articles, 0 to skip | |
| vat_number | No | EU VAT number with country prefix, e.g. DE129274202. VIES returns no name for some countries (e.g. DE), so send name too |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden and does so unusually well: it discloses return structure (key_facts as plain sentences, every section in full, plus a checks map reporting ran/skipped/failed), billing ($0.03 USDC per call), the no-charge-on-empty-result rule, and p99 latency of 15s. Those are exactly the non-obvious traits an agent needs to decide whether to call and how to interpret partial results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first clause identifies the tool and its one-call value immediately, and the source enumeration, audience, routing rationale, and cost/latency tail each carry information. It is dense and a bit long, but no sentence is filler; only the six-source list borders on over-enumeration given sections are described later.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain returns — and it does, describing key_facts, full sections, and the checks map. All six optional parameters are covered, the entry requirement is stated, and pricing/latency plus partial-failure semantics round out everything needed to call and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so per-parameter meaning is already handled, but the description still adds cross-parameter guidance the schema cannot express: at least one identifier is required, name+domain produces the fullest brief, and the VIES caveat about countries like DE returning no name explains why name should be sent alongside vat_number. That is genuine semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (company check/KYB plus enrichment) and enumerates exactly what the brief contains — LEI legal entity data, VIES VAT, OFAC/EU/UN sanctions, RDAP/MX/SPF/DMARC, tech stack, news. It explicitly positions itself against six named siblings (company-lookup, vat-validate, sanctions-screen, domain-check, tech-stack, news-search), so an agent can tell what it aggregates without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases (supplier/customer onboarding, lead qualification, due diligence, sales research, European companies) and states the entry condition — at least one of name, vat_number, lei or domain, with name+domain giving the fullest brief. The cost-based routing note against single-purpose siblings is a clear alternative signal. It does not, however, distinguish itself from the closely related kyb_check and company_enrich siblings, which is the remaining gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_enrichA
Company Enrichment by Domain (DE, AT, CH) — Company enrichment from a website domain for German, Austrian and Swiss companies: reads the legally required imprint (Impressum) and returns the legal company name and legal form, postal address, phone, contact email, commercial register (HRB/HRA with court, Austrian FN, Swiss UID) and VAT ID, then checks the VAT ID live in EU VIES and matches the company in the Global LEI Index (LEI only on an exact name match). For lead enrichment, CRM cleanup, supplier onboarding and KYB. Finds the imprint link on the homepage, also on JavaScript-rendered sites. Names of natural persons (managing directors, owners) are left out on purpose. Send domain, e.g. zalando.de. Not charged when no imprint or no company data is found. Cost: $0.01 USDC per call. Latency p99: 20000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain or website URL, e.g. zalando.de |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: per-call cost ($0.01 USDC), p99 latency (20000ms), a billing exception (not charged when no imprint or company data found), live VIES and LEI/Global LEI Index checks with exact-name-match caveat, and a deliberate data omission (names of natural persons). This is unusually rich operational disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph with essentially every clause carrying information, and purpose is front-loaded. It would be easier to scan with light segmentation (returns, billing, constraints), but there is little true filler to cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description enumerates the returned fields (legal name and form, address, phone, email, HRB/HRA with court, FN, UID, VAT ID, LEI status), so an agent knows what comes back. Cost, timing, scope, and data-handling caveats are all covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents 'Company domain or website URL, e.g. zalando.de'. The description's 'Send domain, e.g. zalando.de' reinforces but adds no meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (enrichment) and resource (company) with an explicit geographic scope (DE, AT, CH) and enumerates the exact returned fields. It reads the imprint/Impressum, which is a distinctive mechanism that separates it from generic siblings like company_lookup or company_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete use cases (lead enrichment, CRM cleanup, supplier onboarding, KYB) and the geographic boundary acts as an implicit when-to-use constraint. However, it never routes the agent to siblings such as company_lookup (non-DACH), vat_validate, or kyb_check, so the alternative-selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_lookupA
Company Lookup (LEI) — Find companies worldwide in the Global LEI Index (GLEIF): legal name, LEI, jurisdiction, legal form, register number and authority, legal and headquarters address, status and founding date. Search by name (optionally filtered by country) or fetch one LEI. Params: name or lei (one required), country (ISO2), limit (1 to 20, default 5). Cost: $0.009 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | 20-character LEI | |
| name | No | Company name to search | |
| limit | No | ||
| country | No | ISO2 country of the legal address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.009 USDC per call), p99 latency (3000ms), the read-only lookup nature, and the mutual requirement of name/lei. It doesn't mention rate limits, auth/payment prerequisites, or pagination behavior, which keeps it out of the top tier.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and data source, then search modes, then params, then cost/latency in a compact trailing clause. Every sentence carries actionable information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description covers what it returns, how to invoke it, and the operational cost/latency profile. The main residual gap is that payment/auth mechanics for a paid endpoint ($0.009 USDC) aren't explained, but overall it is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds real value on top: it states 'name or lei (one required)' — a constraint the schema does not encode since zero parameters are marked required — and documents country as ISO2 and limit as 1–20 with default 5. It adds meaning beyond the raw schema rather than merely restating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (find/fetch) and resource (companies in the Global LEI Index), plus the exact fields returned (legal name, LEI, jurisdiction, register number, addresses, status, founding date). It's a highly concrete purpose, but it never names or contrasts with adjacent siblings like company_brief, company_enrich, or kyb_check, so sibling differentiation is left to the agent to infer from the 'LEI/GLEIF' framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains the two operating modes — 'Search by name (optionally filtered by country) or fetch one LEI' — with the constraint that name or lei is required, which is genuinely useful routing info. However, it offers no explicit when-not-to-use or alternative-tool guidance, so it stops short of the 5 tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_newsA
Crypto News (ranked) — Latest crypto news from CoinDesk, Cointelegraph, Decrypt, The Block and Bitcoin Magazine, merged and ranked: the same story covered by several outlets is grouped and ranked higher, newer stories rank higher. Each article has title, source, URL, publish time, 300-character summary, mentioned tickers and which outlets covered it. Filter by coins (tickers) or keywords. Params: coins (e.g. ['BTC','ETH']), query (keywords), hours (lookback 1 to 168, default 48), limit (1 to 50, default 20), sources. Cost: $0.0025 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| coins | No | Tickers to filter by | |
| hours | No | ||
| limit | No | ||
| query | No | Keywords to filter by | |
| sources | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does well: it discloses the cost ($0.0025 USDC per call), p99 latency (3000ms), the ranking/merging logic, and the exact fields returned per article. It stops short of saying whether results are paginated or what happens on an empty match, but the pricing and latency disclosure is genuinely useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then output shape, then parameters, then cost/latency – a sensible ordering. It is dense but not padded, with the minor inefficiency of listing the source outlets twice (once in prose, once in the params line).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does the heavy lifting: it enumerates returned fields, filtering options, defaults, cost, and latency. Only minor gaps remain (pagination/empty-result behavior). Adequate for a 5-parameter, zero-required read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% (hours, limit, and sources carry no schema description), and the description compensates by naming all five parameters with example values (['BTC','ETH']), lookback range 1-168 default 48, limit 1-50 default 20, and the source list. It adds real meaning beyond the bare schema, though it largely restates the enum and bounds already present in structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Latest crypto news'), names the five upstream outlets, and explains the distinguishing feature: merged and ranked with duplicate stories grouped and boosted. An agent can tell this apart from news_search, news_sentiment, or rss_fetch without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Filter by coins (tickers) or keywords,' which implies how to scope a call, but never states when to use this versus the many sibling news tools (news_search, rss_fetch, discussion_search, news_sentiment). Usage is inferable but there are no explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_pricesA
Crypto Price Lookup — Crypto price and token price lookup: live spot price and 24h change for BTC, ETH, SOL and other coins by ticker, or for any DEX-traded token by chain:address, in USD and other currencies. Data from DefiLlama. Three modes: (1) coins as CoinGecko-style IDs or tickers (up to 50) for live price and 24h change, converted to the requested currencies; (2) tokens as chain:address (e.g. base:0x833589fC…, ethereum:0x6982…) for any DEX-traded token; (3) at (past ISO date or unix seconds) for historical USD prices of coins and tokens. Params: coins, tokens, currencies (default ['usd']), at. Cost: $0.002 USDC per call. Latency p99: 500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Past ISO date or unix seconds for historical USD prices | |
| coins | No | List of coin IDs or ticker symbols. Accepts CoinGecko IDs (e.g. 'bitcoin', 'ethereum') or common tickers (e.g. 'BTC', 'ETH', 'SOL'). Max 25 coins per call. | |
| tokens | No | Tokens as chain:address, e.g. base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | |
| currencies | No | Target currencies. Default: ['usd']. Supported: usd, btc, eth and every ECB currency (eur, gbp, jpy, chf, aud, cad, ...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the data source (DefiLlama), the cost ($0.002 USDC per call), and p99 latency (500ms), which are exactly the operational traits an agent needs before invoking. It omits failure behavior and whether a payment/auth precondition is required to spend USDC.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded summary followed by a numbered mode list and a compact params/cost/latency line; nearly every clause carries information. It is dense and slightly repetitive ('Crypto Price Lookup — Crypto price and token price lookup') but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations exist, so the description must stand alone; it covers input modes, accepted identifier formats, target currencies, source, cost, and latency. The main omissions are response shape and error/empty-result behavior, plus the unresolved 50-vs-25 limit conflict.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the schema documents all four parameters with examples and defaults; the description correctly recaps currencies default and the chain:address format. However it states 'up to 50' coins while the schema caps at 'Max 25 coins per call', a direct numeric conflict that could cause an agent to build an over-limit request, so no credit above the schema-driven baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('crypto price and token price lookup', live spot price and 24h change) and enumerates the three input modes (coins, tokens, historical via `at`) with concrete examples. An agent can distinguish this from siblings like exchange_rates, crypto_news, or defi_tvl without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The three modes are clearly stated with the condition that selects each (coingecko IDs/tickers for coins, chain:address for any DEX-traded token, `at` for historical USD prices), which is strong routing guidance. It stops short of naming when NOT to use it (e.g. fx-rate conversion vs exchange_rates, or token safety vs token_security/token_verdict).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_lookupA
CVE and Package Vulnerability Lookup — Look up a vulnerability by CVE or GHSA id (NVD: description, CVSS score and vector, CWE, CISA known-exploited flag; OSV: affected packages and fixed versions) or check a package version for known vulnerabilities via OSV.dev (npm, PyPI, Maven, Go, crates.io, RubyGems, NuGet, Packagist, Debian ...). Params: cve_id, or package + ecosystem (+ version, recommended), limit (default 20). Cost: $0.009 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cve_id | No | CVE-2021-44228 or GHSA-xxxx-xxxx-xxxx | |
| package | No | ||
| version | No | ||
| ecosystem | No | OSV ecosystem name, case sensitive: npm, PyPI, Maven, Go, crates.io, RubyGems, NuGet, Packagist |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and does well: it discloses data sources (NVD, OSV), the shape of returned fields (description, CVSS score/vector, CWE, CISA known-exploited flag; affected packages, fixed versions), plus cost ($0.009 USDC/call) and p99 latency (4000ms). It omits auth requirements and error/failure behavior, which for a paid external-API tool would be valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense paragraph that is front-loaded with the purpose and mode split, then parameters, then cost/latency. Nearly every clause earns its place; the parenthetical data-source inventory and ecosystem list are dense but informative rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description appropriately explains returned data for both modes, and it covers the two most commonly missing metadata classes (cost and latency). Gaps remain around auth/quota requirements and exact error semantics for a paid third-party-backed call, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40% (package and version are undocumented in the schema), so the description must compensate and largely does: it names all five parameters, defines the two usage modes, and adds the meaningful hint that version is 'recommended'. It does not clarify flag precedence or that limit applies only to the package-check mode, but it adds real value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource and clearly enumerates two distinct modes: lookup by CVE/GHSA id and package-version vulnerability check, naming data sources (NVD, OSV). However, it does nothing to differentiate from the sibling 'package_check', which appears to overlap with the package-vulnerability mode, leaving an agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'cve_id, or package + ecosystem (+ version, recommended)' phrasing implies which parameter combination to use for each mode, which is useful. But it offers no explicit when-to-use vs when-not, no prerequisites, and no routing against the overlapping 'package_check' sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defi_tvlA
DeFi TVL and DEX Volume — DeFi data from DefiLlama in four modes. protocol: TVL, 1d/7d change, category, market cap and chain breakdown of a protocol (slug or name, e.g. aave, uniswap, lido). top: largest protocols by TVL, optional category (e.g. Lending, Dexs, Liquid Staking) and chain filter. chains: chains ranked by TVL with share. dex_volume: 24h/7d/30d DEX volume and top DEXes, optionally for one chain. Params: mode (protocol, top, chains, dex_volume; default top, or protocol if protocol is given), protocol, category, chain, limit (1 to 50, default 10). Cost: $0.002 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| chain | No | Chain name, e.g. Base, Ethereum (modes top, dex_volume) | |
| limit | No | ||
| category | No | DefiLlama category (mode top) | |
| protocol | No | Protocol slug or name (mode protocol) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two high-value traits: per-call cost ($0.002 USDC) and p99 latency (4000ms), plus a rough sketch of what each mode returns. It omits error behavior, caching/rate limits, and result pagination shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded paragraph organized as mode: meaning, followed by a compact params and cost/latency line. Every sentence carries information; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param read tool with no output schema or annotations, the description supplies mode semantics, defaults, cost and latency, which is close to self-sufficient. Return-value structure, error cases, and any per-mode limit behavior are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 60%, and the description compensates by explaining every parameter, including the non-obvious conditional default ('default top, or protocol if protocol is given') that appears nowhere in the schema. Chain, category, protocol and limit constraints largely repeat what the schema already states, keeping this short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource (DeFi TVL / DEX volume from DefiLlama) and decomposes it into four named modes with the exact metrics each returns. An agent can tell this apart from siblings like defi_yields or crypto_prices without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each mode is paired with the question it answers (protocol breakdown, top rankings, chain rankings, DEX volume), and it documents the default-selection rule for mode. It stops short of naming alternatives (e.g. defi_yields for yield data) 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.
defi_yieldsA
DeFi Yields — Find DeFi yield pools across 400+ protocols and 100+ chains (DefiLlama data): APY split into base and reward, 30-day mean APY, 7-day APY change, TVL, stablecoin flag, impermanent-loss risk. Filter by chain (e.g. 'Base', 'Ethereum'), project (e.g. 'aave'), token symbol (e.g. 'USDC'), stablecoin_only, min_tvl_usd (default 1,000,000); sort by 'apy' (default) or 'tvl'. Outliers (flagged by DefiLlama or above 500% APY) are excluded unless include_outliers is true. Cost: $0.0055 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | apy | |
| chain | No | Chain name as on DefiLlama, e.g. Base, Ethereum, Arbitrum, Solana | |
| limit | No | ||
| symbol | No | Token symbol contained in the pool, e.g. USDC, ETH | |
| project | No | Protocol slug or part of it, e.g. aave, morpho, aerodrome | |
| min_tvl_usd | No | ||
| stablecoin_only | No | ||
| include_outliers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses outlier exclusion behavior (DefiLlama flags or >500% APY), the include_outliers override, per-call cost ($0.0055 USDC), and p99 latency (4000ms). It stops short of stating read-only/non-destructive status, rate limits, or result ordering/pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph, front-loaded with the purpose and data source before filters, defaults, and cost. Nearly every clause earns its place, though the run-on filter list is slightly hard to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-param tool with no output schema and no annotations, the description is strong: it enumerates return fields (base/reward APY, 30-day mean, 7-day change, TVL, stablecoin flag, IL risk) and covers almost all inputs. Missing only limit behavior and result ordering, which an agent would need to predict result count.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 38%, so the description must compensate, and it does for 7 of 8 params: chain, project, symbol examples, stablecoin_only, min_tvl_usd default, sort enum values, and include_outliers. The 'limit' parameter (default 10, max 50) is never mentioned, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Find DeFi yield pools') plus concrete scope (400+ protocols, 100+ chains, DefiLlama data), which cleanly separates it from neighbors like defi_tvl, token_liquidity, or crypto_prices. An agent can tell what it returns (APY split, TVL, IL risk) without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: available filters, sort default ('apy'), min_tvl_usd default (1,000,000), and outlier exclusion rules. However, it never names an alternative sibling or states when NOT to use this tool (e.g., vs defi_tvl for protocol-level TVL), so routing guidance 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.
dev_searchA
Developer Search — Search developer sources in one call: Hacker News stories (Algolia), GitHub repositories (by stars), npm packages (with weekly downloads), PyPI (exact package lookup, PyPI has no search API) and Stack Overflow questions. Each source returns its own list; a source that is rate limited reports an error without failing the call. Params: query (required), sources (default all: hackernews, github, npm, pypi, stackoverflow), limit per source (1 to 20, default 5). Cost: $0.0045 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| sources | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses per-source isolation ('each source returns its own list'), graceful degradation ('a source that is rate limited reports an error without failing the call'), cost ($0.0045 USDC per call), and p99 latency (5000ms). These are exactly the traits an agent needs for planning and budgeting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then sources, then failure semantics, then params, then cost/latency. Dense but nearly every clause earns its place; only minor tightening of the source list prose would help.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema, no-annotation aggregation tool, the description covers params, per-source result shape ('its own list'), failure behavior, cost, and latency. Return-field granularity is not described, but that is largely outside a description's remit here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it fully does: it names query as required, enumerates the sources default set, and gives limit's range (1-20) and default (5). Every parameter's meaning and defaults are recoverable from the text alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (developer sources) and enumerates exactly which sources are queried: Hacker News, GitHub, npm, PyPI, Stack Overflow. This clearly distinguishes it from generic siblings like web_search, news_search, and discussion_search without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies the aggregation value over single-source tools, and the PyPI note explains a source-specific limitation, but the description never states when to choose this over siblings such as web_search, package_check, or discussion_search, nor when to exclude a source. Usage is implied, not prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagram_renderA
Diagram Rendering (Mermaid) — Render Mermaid diagram code to SVG and/or PNG: flowchart, sequence, class, state, ER, gantt, pie, mindmap, timeline and more. Invalid syntax returns HTTP 400 with the Mermaid parse error (not charged), so an agent can fix and retry. Params: code (Mermaid source, required), format (svg default, png or both), theme (default, dark, neutral, forest, base), width (200 to 4000, default 1200), background. Cost: $0.01 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Mermaid diagram source | |
| theme | No | default | |
| width | No | ||
| format | No | svg | |
| background | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does well: it states the failure mode (HTTP 400 + Mermaid parse error), that failed calls are not charged, the cost ($0.01 USDC/call), and p99 latency (6000ms). What it omits — return payload shape, whether results expire or are hosted — keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose in the first clause, then errors, params, and operational facts in terse colon-delimited fragments. No sentence is wasted and nothing redundant is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema render tool, this covers the essentials an agent needs: supported input language, error semantics, cost, latency, and all meaningful parameters. The only real gap is the undocumented 'background' parameter and unspecified return/URL handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate, and it largely does: code (required), format (svg default, png or both), theme (five named options), width (200–4000, default 1200) are all restated with meaning. Only 'background' is left unexplained in both schema and description, holding it back from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Render Mermaid diagram code to SVG and/or PNG') immediately, and enumerates the concrete diagram types supported (flowchart, sequence, class, state, ER, gantt, pie, mindmap, timeline). This clearly distinguishes it from near-siblings like chart_render and html_to_pdf without the reader opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful operative guidance — invalid syntax returns HTTP 400 with the parse error and is not charged, so an agent can fix and retry — which shapes retry behavior. However, it never states when to choose this over chart_render or doc_convert, so the sibling 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.
discussion_searchA
Discussion Search (HN, Bluesky, Lemmy) — Find out what people say about a topic or a specific link. Searches Hacker News (stories with their top-ranked comments), Bluesky posts and Lemmy threads (with top comments) in one call, by keywords or by URL (finds every thread that shared that link, useful for product launches, articles and competitors). Each thread has title, text snippet, linked URL, discussion URL, author, points, comment count, date and up to 5 top comments; a summary gives total threads, points, comments and the most discussed thread. A source that is down reports an error without failing the call. Reddit and X are not included. Params: query or url (one required), sources (default all: hackernews, bluesky, lemmy), sort ('top' default or 'recent'), days (lookback 1 to 3650, optional), limit per source (1 to 20, default 5), comments per thread (0 to 5, default 2). Cost: $0.006 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Find discussions that shared this link, e.g. https://blog.cloudflare.com/monetization-gateway/ | |
| days | No | Only threads from the last N days | |
| sort | No | top | |
| limit | No | ||
| query | No | Keywords, e.g. 'x402' or 'rust async'. Required unless url is given. | |
| sources | No | ||
| comments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses partial-failure semantics ('A source that is down reports an error without failing the call'), the exact return shape (title, snippet, linked URL, discussion URL, author, points, comment count, date, up to 5 top comments, plus an aggregate summary), the per-call cost ($0.006 USDC) and p99 latency (6000ms). These are the operationally relevant facts an agent needs and none are derivable from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose, scope exclusions, return shape, parameters, cost and latency are all packed into one dense paragraph with the most important information front-loaded and zero filler sentences. It reads as a wall of text rather than being broken into scannable clauses, which costs it a point but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter federated-search tool with no annotations and no output schema, the description covers everything an agent needs: what it searches, how to call it, the one-of requirement on query/url, per-source limits, failure behavior, and the fields returned including the aggregate summary. Nothing material is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43% and the schema lists zero required parameters, yet the description supplies the missing semantics: it states that query or url is required (one of the two) — a constraint the schema does not express — and enumerates defaults and ranges for sources, sort, days (1–3650), limit (1–20, default 5) and comments (0–5, default 2). This is a genuine compensation for the coverage gap rather than a restatement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Find out what people say about a topic or a specific link') and immediately names the three sources it federates (HN, Bluesky, Lemmy) plus the two search modes (keywords or URL). It distinguishes itself from the many other search siblings (news_search, web_search, dev_search, search_read) by scoping to social-discussion sources and by explicitly excluding Reddit and X.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases ('product launches, articles and competitors') and states the URL mode 'finds every thread that shared that link', which tells the agent when URL input beats keyword input. It also rules out Reddit and X, which prevents mis-selection. It stops short of naming an alternative sibling to use instead, so it is clear context without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_lookupA
DNS Lookup — Resolve DNS records for any domain. Supports A, AAAA, MX, TXT, CNAME, NS. Returns records object with array per type. Default: A records only. Use to verify mail server setup (MX), check domain ownership (TXT), or debug DNS propagation. Cost: $0.002 USDC per call. Latency p99: 300ms.
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | DNS record types to resolve. Default: ["A"]. Supported: A, AAAA, MX, TXT, CNAME, NS | |
| domain | Yes | Domain name to look up (e.g. 'example.com', 'mail.google.com') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does well: it states the return shape ('records object with array per type'), the default type, supported types, cost, and p99 latency. It omits auth requirements, broader rate-limit behavior, and failure modes, so it is not fully complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and supported record types, then adds operational details—return shape, cost, latency—without filler. The few repeated schema details are useful for quick scanning and do not make it verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool with no output schema, the description supplies the key return shape, default behavior, supported types, cost, and latency. Exact response field structure and error behavior are not detailed, but the definition is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents both 'domain' and 'types' with the enum and default. The description reinforces the default and supported types but adds no syntax or semantic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Resolve DNS records for any domain.' It enumerates the supported DNS record types, making its domain-record focus distinct from adjacent tools like whois, ssl_check, and domain_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit positive triggers: verify mail server setup with MX, check domain ownership with TXT, and debug DNS propagation. It does not provide when-not-use guidance or name alternative sibling tools such as whois or domain_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_convertA
Document Conversion (pandoc) — Convert documents between formats with pandoc: Markdown, HTML, DOCX, ODT, EPUB, RST, LaTeX, RTF, plain text and PDF. Input as text (content), file (file_base64, max 10 MB: docx, odt, epub, rtf) or url. Input format is detected automatically or set with from. Text outputs come back as content, binary outputs (docx, odt, epub, pdf) as file_base64. Local file includes and remote images are not loaded. Params: to (required), content or file_base64 or url, from, title. Cost: $0.01 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| url | No | URL of the document (max 10 MB) | |
| from | No | Input format, e.g. markdown, html, docx, rst, latex; detected if omitted | |
| title | No | ||
| content | No | Document text (markdown, html, rst, latex, org, csv ...) | |
| file_base64 | No | Binary document (docx, odt, epub, rtf), base64 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses cost ($0.01 USDC/call), p99 latency (8000ms), a 10 MB size cap, the output representation (text as content, binary as file_base64), and a real limitation ('Local file includes and remote images are not loaded'). It stops short of describing auth/payment mechanics or failure modes, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose and format list come first, then input modes, output behavior, limitations, params, and cost/latency. Every clause carries information, though the trailing 'Params:' enumeration partially restates the schema rather than only adding to it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description explains the return shape (content for text outputs, file_base64 for binary outputs), which is exactly the missing piece. Combined with cost, latency, size limits, and format coverage, an agent has what it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description compensates by listing to (required), the mutually exclusive input options (content OR file_base64 OR url), from, and title, and by clarifying which formats file_base64 accepts (docx, odt, epub, rtf) plus the 10 MB limit. The mutually-exclusive input pattern is documented in prose only, which adds genuine value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Convert documents between formats with pandoc') and enumerates the supported formats and input modes. An agent can tell this apart from extraction siblings like doc_parse or pdf_extract, which take a document and return one form rather than converting between arbitrary formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on how to invoke it: choose text (content), binary file (file_base64), or url, and the input format is detected automatically or forced via from. It does not, however, name alternatives or state when NOT to use it (e.g. vs doc_parse or html_to_pdf), so routing guidance 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.
doc_parseA
Document to Markdown (parse) — Document parser: turn a document into clean, agent-ready Markdown with metadata: DOCX, ODT, EPUB, RTF, HTML, RST, LaTeX and more. Returns title, author, date, language, word count, heading outline, table and image counts and the Markdown (headings and tables preserved). For PDF use pdf-extract; PPTX and XLSX are not supported. Params: file_base64 or url or content (one required), from (optional), max_chars (1000 to 200000, default 50000). Cost: $0.009 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| from | No | ||
| content | No | ||
| max_chars | No | ||
| file_base64 | No | Document as base64 (max 10 MB) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and delivers well: it discloses cost ($0.009 USDC per call), p99 latency (6000ms), the 10 MB input cap, and the exact shape of the returned metadata and Markdown. It stops short of auth/permission requirements and error behavior, keeping it out of the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then formats, return shape, alternatives, params, and cost/latency in a tight sequence. Dense but every clause — format list, exclusions, one-of constraint, pricing — earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly enumerates the return fields (title, author, date, language, word count, outline, table/image counts, Markdown). Combined with formats, limits, cost, and latency, an agent has everything needed to invoke and interpret the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just the base64 10 MB note), so the description must compensate, and it does: it states that file_base64/url/content are mutually exclusive with one required, and gives max_chars bounds and default. The 'from' parameter is named but never explained, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('turn a document into clean, agent-ready Markdown with metadata') and enumerates the exact formats accepted. It actively differentiates from siblings by naming pdf-extract as the PDF route and declaring PPTX/XLSX out of scope, so an agent can route correctly without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes PDFs to pdf-extract and rules out PPTX/XLSX, which is precisely the when-not-to-use guidance an agent needs among a large sibling set. Usage is unambiguous for the formats it does support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_checkA
Domain and Email Security Check — Check a domain in one call: registration via RDAP (registered or likely available, registrar, created and expiry dates, status, nameservers; DNS fallback for TLDs without RDAP), DNS (A, NS, MX, CAA, DNSSEC) and email security (SPF, DMARC policy, DKIM on common selectors) with a 0 to 100 score, grade and findings. Params: domain (required). Cost: $0.009 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real operational context: explicit cost ($0.009 USDC per call), p99 latency (5000ms), and the DNS-fallback behavior for TLDs without RDAP. It does not touch auth, rate limits, or failure modes, but the cost/latency disclosure is substantive beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Everything fits in a tight, front-loaded block: purpose and scope first, then the parameter, then cost and latency. No filler sentences and each clause carries a distinct fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly describes the return surface (0–100 score, grade, findings) along with the input and the composite scope. For a one-parameter tool this is nearly complete, missing only explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single required 'domain' parameter, so the schema already documents the input. The description only restates 'domain (required)' and adds no format or syntax detail beyond the schema's 'e.g. example.com'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (check a domain) and enumerates the concrete sub-checks it aggregates: RDAP registration data, DNS records, and email security (SPF/DMARC/DKIM). This implicitly distinguishes it from single-purpose siblings like whois or dns_lookup by framing it as a one-call composite, though it never names those alternatives outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies this is the preferred bundle over running individual lookups, but there is no explicit when-to-use/when-not guidance and no mention of alternatives (whois, dns_lookup, email_validate). Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_complianceA
Domain to Company Compliance Check — Takes a website domain, reads the imprint to find the legal entity (DACH sites), then runs the KYB check on it: grade A to F, ALLOW, CAUTION or BLOCK, reasons, sanctions, VAT and domain security. Use to vet a counterparty from its website. Needs an imprint on the site (Germany, Austria, Switzerland); otherwise errors with Not charged, then use kyb-check with the company name. Cost: $0.06 USDC per call. Latency p99: 40000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Website domain, e.g. example.de |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses pricing ($0.06 USDC per call), worst-case latency (p99 40000ms), the geographic constraint that limits applicability, the non-billing behavior on a failed lookup ('Not charged'), and the shape of what comes back. An agent knows cost, risk, and outcome before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, all front-loaded with the highest-value information first (what it does, then when to use it, then the failure/fallback path, then cost and latency). No filler, no restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe return values, and it does: grade A–F, verdict, reasons, sanctions, VAT, domain security. Combined with the documented precondition, error path, price, and latency, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the single 'domain' param is documented with an example, e.g. example.de). The description adds the implicit constraint that the domain must belong to a site with a DACH imprint, which is useful context, but no format or syntax 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource (domain to company compliance check) and spells out the exact mechanism: read the imprint, resolve the legal entity, run a KYB check. It also names the distinct output artifacts (grade A–F, ALLOW/CAUTION/BLOCK, sanctions, VAT, domain security), which separates it from siblings like company_lookup and kyb_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the use case ('vet a counterparty from its website'), the precondition (imprint required, DACH only: Germany, Austria, Switzerland), the failure mode when that precondition is unmet ('errors with Not charged'), and the exact fallback ('then use kyb-check with the company name'). This is the full when/when-not/alternative triad.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_validateA
Email Validation — Validate an email address: RFC 5322 format check, domain MX record lookup, disposable provider detection, and role address detection (e.g. info@, admin@). Returns is_valid boolean and granular checks object. Use before storing or sending to email addresses to prevent bounces. Cost: $0.0035 USDC per call. Latency p99: 400ms.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The email address to validate (e.g. 'user@example.com') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose useful non-schema traits: the return contract (is_valid boolean plus granular checks), per-call cost ($0.0035 USDC), and p99 latency (400ms). It does not cover auth/payment mechanics for the paid call, rate limits, or error behavior, so it falls short of fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense paragraph, front-loaded with the purpose, then returns, then usage, then cost/latency — a sensible order. The leading 'Email Validation —' restates the tool name and is the only mildly wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description correctly compensates by naming the return fields. Cost and latency round out the picture for a simple one-parameter tool. The main omission is disambiguation from email_verify.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter at 100% schema description coverage, so the schema already defines 'email' fully. The description adds no format, normalization, or edge-case guidance beyond what the schema states, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource and enumerates the four concrete checks performed (RFC 5322, MX lookup, disposable provider, role address) plus the return shape. However, it never addresses the near-identical sibling 'email_verify', so an agent cannot tell from the description alone which of the two to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case ('before storing or sending to email addresses to prevent bounces'), which is genuine context. But with a sibling literally named email_verify in the toolset, the absence of any when-to-use-this-vs-that guidance is a material gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_verifyA
Email Deliverability Verification (SMTP) — Email verification: checks whether an email address really exists by asking its mail server (SMTP RCPT TO probe; no email is sent), on top of syntax, MX, disposable and role checks. Returns status deliverable, undeliverable (mailbox does not exist), catch_all (domain accepts any address), risky (disposable or mailbox full) or unknown (greylisting, server refused the check), plus the raw SMTP reply. Use it before sending outreach, to clean lead lists or to block fake sign-ups. Results are cached 6 hours. Params: email (required). Cost: $0.0025 USDC per call. Latency p99: 15000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to verify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it states no email is sent (safety), that results are cached 6 hours, the exact cost ($0.0025 USDC) and p99 latency (15000ms). This is unusually rich behavioral disclosure that goes well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but well front-loaded: purpose first, then statuses, then use cases, then operational facts (cache/cost/latency). Every clause carries information the agent needs, with only mild redundancy in the title-like opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the full return vocabulary (deliverable, undeliverable, catch_all, risky, unknown) with definitions for each. Cost, caching and latency round out everything an agent needs before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'email' parameter is already documented as 'Email address to verify.' The description's 'Params: email (required)' repeats the schema without adding format or syntax detail; 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('checks whether an email address really exists') and the mechanism (SMTP RCPT TO probe), so the agent knows exactly what the call does. It does not explicitly differentiate from the sibling email_validate, which is the main ambiguity for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use contexts: 'before sending outreach, to clean lead lists or to block fake sign-ups.' However it names no alternative or exclusion, and the sibling email_validate is never mentioned, so the choice between the two 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.
erc20_infoA
ERC20 Token Info — Read an ERC20 token contract on Base, Ethereum or IOTA EVM mainnet: name, symbol, decimals, total supply, and optionally the balance of one holder address. Verifies that the address is a contract. Params: token (contract address, required), chain ('base' default, 'ethereum' or 'iota-evm'), holder (optional address). Cost: $0.0045 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base | |
| token | Yes | ERC20 contract address | |
| holder | No | Optional address whose token balance to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose cost ($0.0045 USDC per call), latency (p99 2000ms), and a real behavioral trait (verifies the target is a contract). It omits error/failure behavior when the address is not a contract, so it falls short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded block: purpose, then params, then cost/latency. Every clause carries information and nothing is redundant, though the embedded 'Params:' recital is somewhat schema-repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description compensates by enumerating the returned fields and covering all three parameters plus cost and latency. Only failure semantics and multi-chain caveats are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the description mostly restates the schema (token required, chain default 'base', holder optional). It adds no format or semantics beyond the enum/default/pattern already present, so it sits at the baseline for a well-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read an ERC20 token contract') and enumerates exactly what it returns (name, symbol, decimals, total supply, optional holder balance), which implicitly separates it from evm_balance or erc20_transfers. It never names a sibling tool, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the reading-metadata use case and notes the address is contract-verified, but gives no explicit when-to-use/when-not guidance and does not route the agent away from overlapping siblings like evm_balance, erc20_transfers, or token_security. Usage 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.
erc20_transfersA
ERC-20 Transfer History — Recent Transfer events of an ERC-20 token (newest first, up to 50): tx, time, from, to, amount in token units. Optional holder filters to transfers from or to one wallet. Reads up to the last 12000 blocks (fewer on very busy tokens) via RPC, so it is cheap but not a full history; the response says what range was searched. Use for quick wallet or token activity checks. Cost: $0.004 USDC per call. Latency p99: 12000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base (default), ethereum, bsc, arbitrum, polygon, avalanche or optimism | |
| limit | No | 1 to 50 | |
| token | Yes | Token contract address (0x...) | |
| holder | No | Optional wallet address to filter by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers unusually rich context: ordering (newest first), cap (up to 50), data window (last ~12000 blocks, fewer on busy tokens), cheap-but-partial caveat, cost ($0.004 USDC), and p99 latency (12000ms). These are exactly the operational facts an agent needs and none are available from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense paragraph that front-loads the core purpose before scoping, cost, and latency. Every sentence carries information (range limitation, cost, p99), though the volume of trailing clauses is slightly heavy for one sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by naming the returned fields (tx, time, from, to, amount) and how the searched range is reported. All 4 params are documented and the read-only, range-limited nature is clear, making it essentially complete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: 'amount in token units' clarifies the value scale and the holder parameter is explained as filtering 'from or to one wallet'. That extra semantics on top of full schema coverage justifies the bump.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a specific verb and resource ('ERC-20 Transfer History — Recent Transfer events of an ERC-20 token') and even enumerates the returned fields. It is unmistakably distinct from a metadata tool like erc20_info, but it never names a sibling to route the agent explicitly, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers implied usage context ('Use for quick wallet or token activity checks') and flags a limitation ('not a full history'), which helps scope the decision. However, it names no alternatives and gives no explicit when-not condition, leaving the agent to infer the boundary against tools like evm_tx or token_flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_balanceA
Wallet Balance on Base — Read the ETH and USDC balance of any address on Base mainnet (chain 8453) straight from the chain, plus transaction count and how many x402 calls the USDC covers. Use it to check your own agent wallet before a paid workflow, to verify a counterparty was paid, or to monitor treasury addresses. Params: address (required, 0x...). Cost: $0.002 USDC per call. Latency p99: 900ms.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM address on Base |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure and delivers: read-only access straight from chain, chain id 8453, per-call price ($0.002 USDC), and p99 latency (900ms). These cost/latency/authorization-relevant facts are exactly what an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph front-loads the resource and chain, then use cases, then param and cost/latency facts. Every clause earns its place; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by enumerating what is returned (ETH balance, USDC balance, transaction count, x402 call coverage). Combined with cost, latency, and chain 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single required param whose pattern is already documented in the schema. The description repeats 'address (required, 0x...)' without adding format or semantic meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (read ETH/USDC balance of any address on Base mainnet, chain 8453) and expands scope to tx count and x402 call coverage. An agent can distinguish it from evm_tx, wallet_portfolio, or erc20_transfers without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives three concrete when-to-use scenarios (pre-paid-workflow self-check, counterparty payment verification, treasury monitoring), which is strong context. It stops short of naming an alternative tool or a when-not-to-use condition, 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.
evm_txA
EVM Transaction Status — Look up a transaction on Base, Ethereum or IOTA EVM mainnet: status (success, failed, pending or not_found), block, confirmations, timestamp, from, to, ETH value, gas used, fee, method id and decoded ERC20 transfers with symbols and amounts. Useful to confirm that a payment arrived. Params: hash (0x transaction hash, required), chain ('base' default, 'ethereum' or 'iota-evm'). Cost: $0.002 USDC per call. Latency p99: 2500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Transaction hash | |
| chain | No | base |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does much of it: it discloses the possible status values (success, failed, pending, not_found), the cost ($0.002 USDC per call), and p99 latency of 2500ms — all non-obvious operational traits. It omits auth requirements and error/quota behavior, but for a read-only chain lookup this is strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope, then return fields, then a compact 'Params:' and 'Cost:/Latency:' block — no filler sentences. The return-field enumeration is long but earns its place given there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the return contract by listing status, block, confirmations, timestamp, addresses, value, gas, fee, method id and decoded ERC20 transfers. Combined with parameter defaults and cost/latency, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only 'hash' is documented in-schema; 'chain' has just an enum and default). The description compensates by restating that hash is a required 0x transaction hash and that chain defaults to 'base' with the two alternatives, adding meaning beyond the bare enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Look up a transaction') plus the exact scope (Base, Ethereum, IOTA EVM mainnet), which cleanly separates it from the non-EVM chain siblings like btc_tx, tron_tx, sui_tx and iota_tx. It also enumerates the returned fields, so an agent knows precisely what question this tool answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage context — 'Useful to confirm that a payment arrived' — which tells the agent when to reach for it. It stops short of naming alternatives (evm_balance, erc20_transfers, token_flows) or stating when not to use it, 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.
exchange_ratesA
Currency Exchange Rates — Currency exchange rates (forex): official ECB reference rates for about 30 currencies (USD, GBP, CHF, JPY, CNY, ...), published every working day around 16:00 CET, cross rates for any base among them. Returns rates object mapping currency codes to rates relative to base. Pass symbols array to filter (e.g. ['USD','CHF','GBP']). Empty symbols = all supported currencies. Use for currency conversion in invoices, pricing, or financial calculations. Cost: $0.0045 USDC per call. Latency p99: 300ms.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency (e.g. USD, EUR, GBP) | EUR |
| symbols | No | Target currencies to return. Empty = all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does well: it names the authoritative source (ECB), publication cadence (every working day ~16:00 CET), return shape, cost ($0.0045 USDC per call) and p99 latency (300ms). Those are exactly the traits an agent needs to decide whether to call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Densely front-loaded with the identity and source first, then usage, then cost/latency — a sensible ordering. Minor redundancy in the opening ('Currency Exchange Rates — Currency exchange rates (forex)') that repeats the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by describing the return as a rates object keyed by currency code relative to base. Cost, latency, cadence, and coverage are all present; only error/edge-case behavior (e.g. unsupported symbol) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema, including the 'empty = all' semantics. The description restates the symbols filtering and the concept of a base currency but adds no format, validation, or unsupported-currency behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (official ECB forex reference rates), scope (~30 currencies including USD/GBP/CHF/JPY/CNY) and capability (cross rates for any base). It does not explicitly distinguish itself from the nearby crypto_prices sibling, which the agent could plausibly confuse for currency conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use for currency conversion in invoices, pricing, or financial calculations" gives concrete usage context, and it explains the symbols filter (empty = all supported). It lacks any when-not guidance or alternative routing, but the domain is narrow enough that this is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feed_watchA
RSS/Atom Feed Monitor (only new items) — RSS and Atom feed monitoring for agents: returns only the items that are new since your last call, never the same item twice. First call saves a baseline and returns a cursor; pass it on the next call. Works with news feeds, blogs, GitHub releases (.atom), YouTube channel feeds, subreddit .rss, podcasts, job feeds. Params: url (feed URL), cursor, limit (max new items returned, 1 to 50, default 20). Cost: $0.003 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | RSS or Atom feed URL | |
| limit | No | ||
| cursor | No | Cursor from your previous call; omit on the first call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses dedupe semantics, the baseline/cursor lifecycle, per-call cost ($0.003 USDC), and p99 latency (5000ms). It omits error/rate-limit behavior and auth expectations, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the delta-only behavior in the first clause, then workflow, then feed types, then params, then cost/latency. The feed-type enumeration is slightly padded but each block earns its place for an agent deciding whether this tool fits.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description must cover return semantics, and it does: it tells the agent it gets only new items plus a cursor to persist. Error handling and what happens on cursor expiry are unaddressed, leaving a minor gap for a stateful tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the description documents all three params, adding meaning the schema lacks (e.g. 'limit = max NEW items returned' versus a plain integer, and cursor as 'from your previous call'). The range/default details it repeats are already in the schema, so this is additive but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource ('RSS/Atom Feed Monitor') and immediately scopes it as delta-only ('only new items... never the same item twice'). This distinguishes it from the rss_fetch sibling, which will not track state across calls. An agent can pick the right one without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the when: monitoring for new items rather than one-shot retrieval, and gives concrete use cases (news, GitHub releases, YouTube, subreddits, podcasts, jobs). It also spells out the first-call-then-cursor workflow. It does not explicitly name an alternative sibling (e.g. rss_fetch) to contrast against, keeping 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.
gas_priceA
Gas Prices (multi-chain) — Current gas prices on Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain and Avalanche: gas price, base fee, low/medium/high priority fee in gwei, native token USD price and estimated USD cost of an ETH transfer, ERC20 transfer and swap. Params: chains (optional list, default all). Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does so well by disclosing pricing ($0.002 USDC per call) and p99 latency (3000ms) upfront along with the exact data returned. It stops short of mentioning auth requirements or rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then payload details, params, cost, and latency in a single dense but organized block. Every clause earns its place, though the run-on structure is slightly heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fully shoulders the burden by enumerating the return fields, the cost, the latency, and the parameter default. An agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it names 'chains' as optional with a default of all chains. The allowed chain values are already enumerated in the schema enum, so no further explanation is needed for a single well-covered parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Current gas prices' across a named set of chains, plus a precise enumeration of the returned metrics (gas price, base fee, priority fees, native token USD, transfer cost estimates). An agent can distinguish this from crypto_prices or btc_fees immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Current' implies fresh gas data and the default-all chains behavior is stated, giving implied usage. However, there is no explicit when-to-use/when-not guidance or routing to alternatives such as btc_fees or exchange_rates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocodeA
Geocoding — Geocoding and reverse geocoding from GeoNames: city, town or postal code to lat/lon, and lat/lon to the nearest place and postal code. Covers 170,000 places with 1000+ inhabitants and 1.8 million postal codes worldwide, answered from our own database in milliseconds. Not street level: house numbers and streets are skipped and reported in ignored_parts. Provide address (e.g. 'Paris, Texas', '10115 Berlin') or lat + lon. Cost: $0.003 USDC per call. Latency p99: 300ms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses data source, coverage size, cost per call, p99 latency, and the fact that non-geocodable parts are reported in ignored_parts. It omits auth requirements, rate limits, and error behavior, but otherwise provides rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and scope, then moves to limitations, inputs, cost, and latency. It is slightly verbose with coverage statistics and duplication in the opening phrase, but each sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a utility geocoder with no annotations and no output schema, the description covers purpose, inputs, limitations, cost, and latency well enough to invoke correctly. It does not detail return fields beyond ignored_parts, but the absence of an output schema lowers the burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents parameters with examples and the oneOf address vs lat+lon structure. The description adds example addresses but no meaningful semantics beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states forward and reverse geocoding from city/town/postal code to lat/lon and vice versa, with explicit scope and examples. It does not, however, name or differentiate against sibling tools such as postal_code, so it falls short of the full sibling-differentiation criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage conditions for the two modes (provide address for forward geocoding, or lat + lon for reverse geocoding) and an explicit exclusion: not street level, with house numbers and streets skipped. It does not name alternative tools to use when street-level or other needs arise.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holidaysA
Public Holidays — Public and bank holidays for 200+ countries and their regions (states, cantons) for any year, with local names. Optionally check whether a given date is a holiday. Params: country (ISO 3166-1 alpha-2, required, e.g. DE, US, CH, JP), region (e.g. BY, CA, ZH), year (default current), date (YYYY-MM-DD to check), language (e.g. en), include_observances (default false). Cost: $0.003 USDC per call. Latency p99: 300ms.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD to check | |
| year | No | ||
| region | No | State/region code, e.g. BY, CA, ZH | |
| country | Yes | ISO 3166-1 alpha-2 country code | |
| language | No | Language for holiday names, e.g. en | |
| include_observances | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.003 USDC per call), p99 latency (300ms), geographic coverage, and default values for year and include_observances. It omits auth requirements and return shape, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability, then a compact parameter digest. The param list partly restates the schema, but the examples earn their place; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param read-only lookup with no output schema, the definition covers scope, modes, examples, cost and latency. The only gap is the shape of the returned holiday records, which the agent must discover empirically.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description supplements it with concrete examples for country (DE, US, CH, JP), region (BY, CA, ZH), language (en) and date format (YYYY-MM-DD), plus explicit default semantics. It adds real value beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (public/bank holidays) with scope (200+ countries and their regions, any year) and a secondary capability (check a date). No sibling in the list overlaps, so the agent can select it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the two usage modes explicit: bulk listing by country/region/year, and 'optionally check whether a given date is a holiday.' It doesn't state when NOT to use it or name alternatives, but the tool is unique among siblings so that omission costs little.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
html_to_pdfA
HTML to PDF — Render a URL or raw HTML string to PDF. Returns pdf_base64 (base64 PDF; decode to get raw bytes) and page_count. Provide url OR html, never both. Supports format (A4/Letter/Legal), landscape boolean, and margin settings (top/bottom/left/right in CSS units). Use for invoices, reports, or printable document generation. Cost: $0.0045 USDC per call. Latency p99: 3500ms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses return shape (pdf_base64 decoded to bytes, page_count), mutual exclusivity of inputs, cost ($0.0045 USDC/call), and p99 latency (3500ms). It omits auth requirements, error behavior, and rate limits, so not exhaustive, but strong behavioral context for a paid tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return shape, then constraints, parameters, use cases, and operational cost/latency. Dense but every clause carries information; minor redundancy with the schema's parameter docs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description usefully explains return values (pdf_base64, page_count). Between this and the 100%-covered input schema, an agent has enough to invoke correctly; only ambient concerns like auth and failure modes are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents url/html, format enum, landscape, and margin units. The description largely restates these; it adds no syntax or edge-case guidance 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Render a URL or raw HTML string to PDF') and immediately scopes what it accepts. It is easily distinguished from sibling rendering/conversion tools like screenshot, doc_convert, chart_render, and pdf_extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear use cases ('invoices, reports, or printable document generation') and an explicit constraint ('Provide url OR html, never both'). It does not name which sibling to prefer for adjacent tasks (doc_convert, screenshot), so it stops short of full when/when-not routing, but the context is solid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hyperliquidA
Hyperliquid Perps Data — Hyperliquid perpetual futures market data: mark and oracle price, 24h change, hourly funding rate and funding APR, open interest (coins and USD), 24h volume, max leverage. Pass coins (e.g. ['BTC','ETH','SOL']) or omit them to get the top markets by open interest. Params: coins (optional, max 50), limit (1 to 50, default 10, used without coins). Cost: $0.0045 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| coins | No | Coin tickers as listed on Hyperliquid, e.g. BTC, ETH, SOL, HYPE | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well: it discloses cost ($0.0045 USDC per call), p99 latency (1500ms), and the default-return behavior when coins is omitted. It stops short of stating rate limits, retry/failure behavior, or whether unknown tickers are silently dropped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and dense with no filler sentences; every clause carries information. The opening repeats itself slightly ('Hyperliquid Perps Data — Hyperliquid perpetual futures market data'), a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description steps in by enumerating returned fields and stating cost/latency, which is the right allocation of effort for a read-only market-data tool. It does not explain the response shape (per-coin array, ordering, units) or behavior on invalid tickers, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% — only 'coins' is documented in the schema — but the description compensates by covering both params and, crucially, the interaction rule that limit is 'used without coins', which the schema does not express. Valid ranges (max 50; 1–50, default 10) are restated, which is redundant but harmless.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific resource and scope ('Hyperliquid perpetual futures market data') and enumerates the exact fields returned — mark/oracle price, 24h change, funding rate and APR, open interest, volume, max leverage. It is distinguishable from generic siblings like crypto_prices, though it never explicitly positions itself against perp_funding, which overlaps on funding-rate data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives conditional usage for the parameters ('Pass coins ... or omit them to get the top markets by open interest'), which is genuinely helpful. However there is no tool-level when-to-use guidance telling the agent when to reach for this instead of perp_funding or crypto_prices, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iban_validateA
IBAN Validation — Validate an IBAN (checksum, country length and structure), split it into bank code, branch and account number, report SEPA membership, and for DE, AT, CH, NL, BE, LU and LI add bank name, BIC and city. Params: iban (required, spaces allowed). Cost: $0.0025 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | IBAN, spaces allowed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses what is computed, which countries get enrichment (DE, AT, CH, NL, BE, LU, LI), and gives cost ($0.0025 USDC/call) and p99 latency (1500ms) — useful operational context rarely stated elsewhere. It stops short of describing failure behavior for an invalid IBAN or any auth/rate-limit details, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the validation scope before the enrichment clauses, and the trailing cost/latency note is compact and actionable. Nothing is redundant, though the sentence is long enough that the enrichment detail slightly crowds the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates by naming the returned fields (bank code, branch, account number, SEPA flag, bank name/BIC/city for supported countries), which is exactly what an agent needs to call it correctly. Error/edge-case behavior is the one notable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single parameter at 100% coverage ("IBAN, spaces allowed"), and the description merely restates it as "iban (required, spaces allowed)" with no format examples, country-length constraints, or normalization rules added. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (validate) and resource (IBAN) and enumerates exactly what validation covers: checksum, country length, structure, split into bank code/branch/account, SEPA membership, plus country-specific enrichment for seven countries. An agent can distinguish this from the many other *_validate siblings (vat_validate, email_validate, phone_validate) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource name — use it when you have an IBAN to check — but there is no explicit when-to-use/when-not-to-use statement and no routing to or away from sibling validators. Adequate but leaves the agent to infer the calling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_alt_textA
Image Alt Text Generator (AI) — Alt text for images, for web accessibility (WCAG 1.1.1, BFSG, European Accessibility Act) and SEO: send image_url or image_base64, get alt text under 125 characters that describes purpose and content, a longer description for complex images such as charts, whether the image is decorative (then alt=""), all readable text in the image, and a ready alt="..." attribute. Optional language (e.g. German) and context (where the image is used). The image is scaled to at most 800 x 800 px first, then described by Claude Haiku 5.5. Pairs with accessibility-check, which finds images without alt text. Cost: $0.005 USDC per call. Latency p99: 10000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Where the image is used, max 500 chars | |
| language | No | Language of the alt text, default English | |
| image_url | No | Public image URL (max 15 MB) | |
| image_base64 | No | Base64 image instead of a URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it delivers: it discloses cost ($0.005 USDC/call), latency (p99 10000ms), the internal pipeline (scaled to 800x800, described by Claude Haiku 5.5), and output-shaping behavior (under 125 chars, decorative handling). It stops short of auth requirements or error/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and the output contract before the operational details, and every clause is informative. It is a dense single block, but no sentence is pure filler, so it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe returns, and it does thoroughly (short alt text, longer complex-image description, decorative flag, readable text, ready alt="..." attribute). Combined with cost, latency, and processing 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.
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, making 3 the baseline. The description adds only marginal value ('send image_url or image_base64' hints at alternation; 'optional language (e.g. German)'), without new format, size, or constraint details beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (generate alt text for images) and immediately scopes the purpose (WCAG 1.1.1, BFSG, EAA, SEO). It also distinguishes itself from siblings by naming accessibility-check as its complement, so an agent can tell it apart from ocr, image_resize, or accessibility_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when to reach for it (web accessibility/SEO, and explicitly 'pairs with accessibility-check, which finds images without alt text'), which is a strong routing signal. However, it offers no explicit when-not-to-use guidance against near neighbors like ocr or image_resize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_resizeA
Image Resize & Convert — Resize, crop-fit and convert images (PNG, JPEG, WebP, AVIF, GIF, TIFF, SVG input) to webp, png, jpeg or avif. Auto-rotates by EXIF. Use to shrink screenshots before sending them to a vision model, create thumbnails, or convert formats. Params: image_base64 or image_url (one required), width, height (max 4096), fit (inside default | cover | contain | fill), format (webp default), quality (1-100, default 80). Cost: $0.0045 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | inside | |
| width | No | ||
| format | No | webp | |
| height | No | ||
| quality | No | ||
| image_url | No | Public URL of the image (max 15 MB) | |
| image_base64 | No | Base64 image data (data: URI prefix allowed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose useful traits: EXIF auto-rotation, the 4096px ceiling, per-call cost ($0.0045 USDC) and p99 latency. It omits whether the tool persists files or returns inline data, and no auth/rate-limit info is given, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then use cases, then a compact parameter digest, then cost/latency. Every clause earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 0% annotation coverage, no output schema, and thin schema descriptions, the definition supplies most of what an agent needs. The remaining gap is the return shape (base64 vs. URL vs. file reference) and the semantics of the fit modes, neither of which is recoverable elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, so the description must compensate, and it largely does: it declares that exactly one of image_base64/image_url is required (the schema's required list is empty, so this is genuinely new information), plus defaults and ranges for width, height, fit, format, and quality. It stops short of explaining what inside/cover/contain/fill actually do.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb triad (resize, crop-fit, convert) and resource (images), plus the exact supported input and output formats. An agent can distinguish this from image_alt_text, satellite_image, or screenshot without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete motivating scenarios: shrink screenshots before sending to a vision model, create thumbnails, or convert formats. That is clear when-to-use guidance, but it names no alternatives or exclusions (e.g., when to prefer screenshot or image_alt_text instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_extractA
Invoice Data Extraction (EU e-invoice) — Invoice data extraction for accounting agents: PDF, photo or XRechnung / ZUGFeRD / Factur-X XML to JSON (number, dates, seller and buyer with VAT ID, line items, tax per rate, totals, IBAN, payment terms). E-invoices are read exactly from the embedded XML, without AI; plain PDFs and photos by Claude Haiku 5.5. Every result is checked: totals add up, seller VAT ID in EU VIES, IBAN and BIC. Says whether the file is a real EN 16931 e-invoice. Up to 15 MB. Cost: $0.02 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| xml | No | XRechnung/ZUGFeRD XML text | |
| pdf_url | No | PDF URL; or send one of the other inputs | |
| xml_url | No | XML URL | |
| validate | No | Check VAT ID and IBAN | |
| image_url | No | Photo or scan URL | |
| pdf_base64 | No | PDF as base64 | |
| image_base64 | No | Photo as base64 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the two processing paths (deterministic XML parsing vs. Claude Haiku for PDFs/photos), the validation performed (totals, EU VIES VAT ID, IBAN/BIC), the EN 16931 authenticity check, the 15 MB size limit, the $0.02 USDC per-call cost, and p99 latency of 8000ms. This is unusually rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and supported formats are front-loaded, followed by method, validation, limits, and cost — a logical order. It is dense and slightly run-on with em-dash chains, but nearly every clause (output fields, processing method, cost, latency) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe returns — and it does, enumerating number, dates, seller/buyer with VAT ID, line items, tax per rate, totals, IBAN, and payment terms. Combined with size, cost, latency, and validation disclosures, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, establishing the baseline of 3. The description corroborates the input formats and the validate behavior but adds no syntax, precedence, or mutual-exclusion detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Invoice data extraction' — plus the exact input formats (PDF, photo, XRechnung/ZUGFeRD/Factur-X XML) and the JSON fields returned. It is clearly distinguishable from generic siblings like pdf_extract, ocr, and doc_parse because it is scoped to structured invoice data with accounting-specific output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when it applies: EU e-invoices, PDFs, and photos are all supported, and it explains that e-invoices are parsed deterministically while plain PDFs/photos go through a model. However, it never names an alternative sibling (e.g. ocr or pdf_extract) or states when NOT to use it, so routing is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iota_addressA
IOTA Address and Names — Everything about an IOTA mainnet address or IOTA name (alice.iota): IOTA balance and every other coin with symbol, staked IOTA per validator with estimated rewards, USD value, the IOTA name pointing to it and its latest outgoing transactions. Resolves names to addresses and back. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | IOTA address (0x + 64 hex) or IOTA name like alice.iota |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose two genuinely useful operating traits: cost ($0.002 USDC per call) and latency (p99 2000ms). It also clarifies the aggregation scope (balance, staking, USD, names, outgoing txs). It stops short of stating auth requirements or rate limits, but the cost/latency disclosure is valuable context an agent cannot get elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Effectively one dense sentence front-loading the resource, followed by a short resolution clause and cost/latency tail. Every element (data inventory, cost, latency) earns its place, though the enumeration is heavy enough to border on clustering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey return contents — and it thoroughly enumerates the fields (balance, all coins with symbol, staked IOTA per validator with rewards, USD value, pointed name, latest outgoing transactions). Combined with cost/latency and the accepted address forms, an agent has enough to invoke it correctly, though nothing is said about output shape or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'address' parameter is already documented with its 0x+64-hex format and name form. The description largely echoes this ('alice.iota', name resolution), adding only modest context ('resolves names to addresses and back') 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource (IOTA mainnet address or IOTA name) and enumerates the specific data returned — IOTA balance, other coins, staked IOTA per validator, USD value, name pointers, and latest outgoing transactions. This scope is clearly distinguishable from siblings like iota_tx, iota_network, and iota_watch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the enumeration of what the tool returns and by 'Resolves names to addresses and back', which signals the name-lookup use case. However, no explicit when-to-use, when-not, or named alternative sibling is provided, so an agent must infer routing from the content list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iota_networkA
IOTA Network and Staking — IOTA mainnet in one call: epoch, latest checkpoint, reference gas price and the fee of a simple transfer, total and circulating supply, IOTA price and market cap, total stake and every active validator with staking APY, commission and stake, sorted by APY. Use to pick a validator or to show network health. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the two traits that matter most for an agent: explicit cost ($0.002 USDC per call) and p99 latency (2000ms). Read-only, no-argument behavior is implied by the payload it returns. It does not mention auth prerequisites, rate limits, or failure modes, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool subject, then the payload, then usage, then cost/latency — a sensible priority order. The middle sentence is a dense run-on list of returned fields, but every item earns its place given there is no output schema to carry that information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates by enumerating the returned fields, price, and call economics, which is what an agent needs to decide and call. It is nearly complete for a zero-parameter snapshot tool; only auth/rate-limit and error behavior are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 by rule. The description correctly frames it as a single no-argument call ('mainnet in one call'), leaving nothing for the agent to supply or misconfigure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource ('IOTA mainnet in one call') and then enumerates the exact payload: epoch, checkpoint, gas price and transfer fee, supply, price/market cap, and per-validator staking data sorted by APY. This clearly separates it from sibling snapshot tools like sui_network and gas_price, and from transactional IOTA siblings (iota_tx, iota_notarize) by being a read-only aggregate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Two concrete use cases are named ('Use to pick a validator or to show network health'), which gives an agent clear context for selection. It stops short of naming alternatives or exclusions (e.g. when to prefer gas_price, crypto_prices, or iota_watch instead), so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iota_notarizeA
IOTA Notarization (Proof of Existence) — Proof of existence on the IOTA mainnet: send text, a SHA-256 hash or a URL and get a tamper-proof timestamp. We store only the SHA-256 (never your content) in a locked notarization of the official IOTA Notarization package: it cannot be changed or transferred and its deletion is locked until 2106. Returns object id, transaction digest, ledger time and explorer links. Use for contracts, invoices, AI outputs, datasets, web page evidence or audit logs. Check later with iota-verify. Network fee included. Cost: $0.01 USDC per call. Latency p99: 12000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Notarize the exact bytes this URL returns now (max 20 MB) | |
| hash | No | SHA-256 hex of your file, alternative to text | |
| text | No | Content to notarize (hashed with SHA-256, max 1 MB) | |
| label | No | Optional public label stored with the proof, max 120 chars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so richly: it discloses that only the SHA-256 is stored (never the content), that the notarization is locked, non-transferable, and undeletable until 2106, the exact return payload (object id, transaction digest, ledger time, explorer links), that network fees are included, the $0.01 USDC cost, and a p99 latency of 12000ms. These are exactly the behavioral traits an agent needs before committing an irreversible write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that is well front-loaded: purpose first, then storage semantics, return values, use cases, verification path, and finally cost/latency. Every clause carries information, though the em-dash-heavy sentence is long enough that splitting cost/latency into its own line would improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates the return fields, and it covers immutability, storage guarantees, pricing, and latency for what is an irreversible mainnet write. Nothing an agent needs to decide whether and how to call this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters, setting a baseline of 3. The description adds a little by framing the three input modes as mutually exclusive alternatives ('send text, a SHA-256 hash or a URL'), a relationship the schema only partially states (only hash is labeled 'alternative to text'). It does not add syntax or format detail beyond the schema, so it stays near the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('IOTA Notarization (Proof of Existence) ... on the IOTA mainnet') and distinguishes itself from the verify sibling by describing the create-side operation ('send text, a SHA-256 hash or a URL and get a tamper-proof timestamp'). An agent can tell it apart from iota_verify or btc_timestamp without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage contexts ('contracts, invoices, AI outputs, datasets, web page evidence or audit logs') and routes the agent to the follow-up alternative ('Check later with iota-verify'), which is explicit alternative naming. It does not, however, state any when-not condition or explain why this chain is preferable to btc_timestamp, so it falls short of full 5-level guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iota_txA
IOTA Transaction Lookup — Look up an IOTA mainnet transaction by digest in plain JSON: status and error, time, checkpoint, sender, Move calls, gas fee in IOTA, balance changes per address with coin symbols, created, changed and deleted objects, and events. Use to confirm a payment or contract call on IOTA. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | Transaction digest (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two behavioral facts an agent can act on: a $0.002 USDC per-call cost and p99 latency of 2000ms. It also implies a read-only single-record fetch. It omits auth requirements and what happens on an unknown digest, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then return contents, then cost and latency — a sensible ordering. The return-field enumeration is long but justified because no output schema exists. It reads as one dense run-on rather than cleanly separated clauses, which is a minor structural weakness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with no output schema and no annotations, the description does real work: it itemizes the response contents and discloses cost and latency. Missing only error/empty-result behavior and any auth or rate-limit framing, which prevents a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is already 100% described in the schema ('Transaction digest (base58)'), which sets the baseline at 3. The description reinforces that lookup is 'by digest' and pinned to IOTA mainnet, but adds no format or validation detail beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Look up an IOTA mainnet transaction by digest') and even scopes it to the chain and network. It enumerates exactly what comes back (status, checkpoint, sender, Move calls, gas fee, balance changes, objects, events), which cleanly separates it from sibling lookups like evm_tx, btc_tx, sui_tx and from iota_watch/iota_verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers a clear triggering context: 'Use to confirm a payment or contract call on IOTA.' That tells the agent when this tool is the right choice. It stops short of naming alternatives or exclusions (e.g., use iota_watch for live monitoring, iota_verify for notarized proofs), so it lacks the explicit when-not guidance of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iota_verifyA
IOTA Notarization Verify — Verify an IOTA notarization: give the object id or transaction digest of any notarization on the IOTA mainnet (ours or anyone's, official IOTA Notarization package) and optionally the text, SHA-256 or URL to check. Returns the stored hash or data, creation time from the ledger, lock status (can it be changed or deleted), owner, and matches true or false for your content. Read-only, no wallet needed. Cost: $0.003 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL whose current bytes to compare | |
| hash | No | SHA-256 hex to compare | |
| text | No | Content to compare | |
| object_id | No | Notarization object id (0x + 64 hex) | |
| transaction | No | Or the digest of the transaction that created it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: read-only, no wallet needed, $0.003 USDC per call, p99 latency 3000ms, plus what is returned (stored hash/data, ledger creation time, lock status indicating mutability, owner, and a matches boolean). Cost, latency, safety profile and mutability semantics are all disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight paragraph: purpose and inputs first, then return values, then read-only/cost/latency. No sentence is filler and the most decision-relevant facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields, and it covers the cost/latency/safety envelope. The remaining gap is failure behavior: all five parameters are optional, yet the description never says what happens if neither object_id nor transaction is given, nor what a not-found result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it frames object_id and transaction as mutually alternative identifiers for the same target, and clarifies that text/SHA-256/URL are the content-to-compare options. That said, it doesn't state whether a content parameter is optional or what 'matches' resolves to when none is supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Verify) and resource (an IOTA notarization), and immediately scopes it to any notarization on IOTA mainnet, official package, ours or anyone's. This clearly separates it from the sibling iota_notarize (the write counterpart) without the agent needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the invocation condition well: supply an object id OR a transaction digest, and optionally content to compare. It does not explicitly name the alternative (e.g. 'to create a notarization use iota_notarize') or state when verification is unnecessary, 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.
iota_watchA
IOTA Wallet Watch — Watch an IOTA mainnet address or IOTA name in a loop and get only new transactions since your last call: direction, IOTA amount, status, time and explorer link, plus the current balance. First call returns recent transactions and a cursor; pass the cursor back on the next call. For deposit detection, treasury and whale watching. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max transactions, 1 to 50 | |
| cursor | No | Cursor from the previous call | |
| address | Yes | IOTA address or IOTA name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does well: cursor-based incremental returns, response fields (direction, amount, status, time, explorer link, balance), cost ($0.002 USDC per call) and p99 latency (2000ms). It omits auth/permission requirements and rate-limit or error behavior, keeping it out of the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope before the pagination mechanics, then cost/latency. Dense but every clause carries useful information; the only slight excess is the stacked return-field list, which could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return fields and the balance, and it covers the stateful cursor workflow plus cost/latency. Nothing critical to correct invocation is missing, though auth and failure modes are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description earns more by explaining cursor semantics beyond the schema's terse "Cursor from the previous call" — clarifying the first call returns a cursor and that only new transactions arrive on subsequent calls. The limit param is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("Watch an IOTA mainnet address or IOTA name") with the polling semantics stated. It clearly distinguishes a continuous watcher from one-shot siblings like iota_tx or iota_address, and enumerates the exact return payload. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States intended use cases explicitly ("For deposit detection, treasury and whale watching") and explains the incremental-call workflow (first call returns recent tx + cursor, pass cursor back). It stops short of naming when NOT to use it (e.g. one-off lookups should use iota_tx) or an explicit alternative, so it isn't a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_lookupA
IP Geolocation — IP lookup and geolocation: resolve any public IPv4 or IPv6 address to location and network data from a local database (no third-party call, answers in milliseconds): country, country_code, region, city, lat/lon, IANA timezone, continent, is_eu, ASN with organization (isp, org, asn). Use for fraud and bot checks, geo-routing, analytics, or tagging traffic. Invalid, private and reserved addresses are rejected for free. Params: ip (defaults to the caller's IP). IP Geolocation by DB-IP (https://db-ip.com), CC BY 4.0. Cost: $0.0055 USDC per call. Latency p99: 150ms.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address to look up (e.g. '8.8.8.8' or '2001:4860:4860::8888') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the data source (local DB-IP database, no third-party call), latency (p99 150ms), rejection behavior for invalid/private/reserved addresses, pricing, licensing, and the caller-IP default. This is unusually rich behavioral context for a lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the operation and its scope, then the returned fields, then use cases, then operational metadata in a compact colon-delimited list. Dense but every clause is substantive; only the license/cost/latency footer is arguably padding, though it is genuinely useful for cost-aware selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description enumerates the returned fields (country, city, lat/lon, timezone, is_eu, ASN/isp/org), sources, latency, and rejection rules, so an agent has everything needed to call and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single parameter is fully documented in the schema, which sets the baseline at 3. The description adds one piece of context ('defaults to the caller's IP'), but this mildly conflicts with the schema marking 'ip' as required, so it does not clearly add reliable value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('resolve any public IPv4 or IPv6 address to location and network data from a local database') and enumerates the exact fields returned. This clearly distinguishes it from sibling lookups like dns_lookup, whois, and geocode without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases ('fraud and bot checks, geo-routing, analytics, or tagging traffic') and notes invalid/private/reserved addresses are rejected, which gives the agent a clear sense of valid context. It stops short of naming which sibling to prefer for related lookups (dns_lookup, whois), so there is no 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.
kyb_checkA
KYB Company Check (Score A to F) — Full EU company check in one call: LEI entity status, VAT validation (VIES), sanctions screening, domain age and email security, website, optional IBAN. Returns grade A to F, score 0 to 100, ALLOW, CAUTION or BLOCK, the reasons, a confidence level and the underlying sections. Pass name and at least one of vat_number, lei, domain. Use for onboarding and payment checks. Not legal advice; a sanctions match is a hint to verify by hand. Cost: $0.12 USDC per call. Latency p99: 30000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | ||
| iban | No | Optional IBAN to validate | |
| name | No | Company name | |
| domain | No | ||
| country | No | ISO code, e.g. DE | |
| vat_number | No | EU VAT number with country prefix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses cost ($0.12 USDC per call), p99 latency (30000ms), the full output shape (grade, score, verdict, reasons, confidence, sections), and caveats about it not being legal advice and sanctions matches needing manual verification. It omits auth/error behavior, but that is a minor gap relative to the disclosure provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool identity and verdict scale, then ordered contents, return values, input rule, usage, caveats, and cost/latency. It is dense but nearly every clause carries information; the em-dash run-on in the opening sentence pushes it just below maximal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity aggregation tool with no output schema and no annotations, the description explains return values, cost, latency, and the key input precondition, which is close to what an agent needs. It lacks detail on failure handling or how partial sections are reported, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the schema lists zero required params, so the description's constraint 'Pass name and at least one of vat_number, lei, domain' adds genuinely necessary semantics the schema lacks. It also flags IBAN as optional, though it adds no format guidance for LEI/VAT beyond what the schema shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (KYB company check) and enumerates exactly what is aggregated: LEI entity status, VAT/VIES, sanctions, domain age, email security, website, optional IBAN. This clearly positions it against granular siblings like vat_validate, sanctions_screen, company_lookup and domain_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage context ('Use for onboarding and payment checks') plus the input precondition ('Pass name and at least one of vat_number, lei, domain'). It does not explicitly name the sibling alternatives it replaces, so an agent must infer that it supersedes single-purpose checks, 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.
language_detectA
Language Detection — Detect the language of a text (80+ languages) with ISO 639-1 and 639-3 codes, confidence, a reliability flag and the top candidates. Runs locally, nothing is stored. Params: text (required, up to 20,000 characters), top (number of candidates, default 3). Cost: $0.0025 USDC per call. Latency p99: 300ms.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a solid job: it discloses local execution, that nothing is stored, the per-call cost ($0.0025 USDC), and p99 latency of 300ms. What it omits is auth/payment prerequisites (does a wallet need funding?), error behavior, and any rate limit — the remaining behavioral gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact paragraph, front-loaded with purpose before params, cost and latency. The 'Language Detection —' prefix mildly restates the name, and the parameter facts are compressed into a run-on clause, but almost every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully describes the return payload (codes, confidence, reliability flag, candidates), covers both parameters, and supplies cost/latency for planning. What is missing is edge-case behavior — mixed-language or empty input, and what the 'reliability' flag actually signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it marks 'text' as required with a 20,000-character ceiling that appears nowhere in the schema, and explains 'top' as the number of candidates with its default. It fails to mention the schema's 1-10 range for 'top', and the 20,000-character limit has no stated consequence (truncation vs. error).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Detect the language of a text') and goes further by enumerating the output shape — ISO 639-1/639-3 codes, confidence, reliability flag, top candidates — and a scope of 80+ languages. It is unambiguous on its own, but it never names a sibling (e.g. translate or text_classify) to disambiguate the boundary, which is what separates a 5 from a 4 in this crowded toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-routing guidance at all. An agent must infer the use case purely from the tool name. The cost and latency figures incidentally help with a cost/benefit decision, but that is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_dataA
Macroeconomic Data — Macroeconomic indicators per country from World Bank Open Data with yearly history: inflation, GDP, GDP growth, GDP per capita, unemployment, population, government debt, current account, exports, lending rate. Optionally current ECB policy rates. Params: country (ISO2 or ISO3, required), indicators (default inflation, gdp, gdp_growth, unemployment, population), years (1 to 20, default 5), include_ecb_rates (default false). Cost: $0.006 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | ||
| country | Yes | ||
| indicators | No | ||
| include_ecb_rates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does well: it discloses the data source, yearly granularity, the paid cost ($0.006 USDC per call), and p99 latency (5000ms). It stops short of auth requirements, rate limits beyond pricing, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph that front-loads the resource and data source, then the params, then cost and latency. The indicator enumeration is long but each item is load-bearing; there is little filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with no output schema and no annotations, the description covers source, scope, parameter semantics, cost, and latency. What it lacks is any note on the shape of the returned yearly series, which the missing output schema leaves unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must do all the work — and it does. It documents every parameter: country format (ISO2/ISO3, required), the indicator list and default set, years range (1-20, default 5), and include_ecb_rates (default false).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific domain (macroeconomic indicators per country) and the exact data source (World Bank Open Data) and enumerates the indicators returned. This clearly separates it from adjacent siblings such as exchange_rates, crypto_prices, or company_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scope statement (country-level macro indicators), but there is no explicit when-to-use/when-not guidance and no alternative tool is named. An agent can infer the fit, but nothing routes it explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_searchA
News Search — News search API: recent news articles by keyword with title, url, source and published_at from our own index of about 100,000 English web articles a day (built from the GDELT Project, thousands of outlets, last 7 days, updated every 15 minutes) plus Hacker News. Category (business, tech, health, science, politics) filters by GDELT topic. Use for current events and topic monitoring. For crypto news use crypto-news, for what people say about a topic discussion-search, and for full article text pass the URLs to web-read-batch. Params: query (required), limit (max 30), category. Cost: $0.0065 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of articles to return (default: 10, max: 30) | |
| query | Yes | Search query (e.g. 'artificial intelligence', 'climate change 2026', 'Apple earnings') | |
| category | No | Topic filter. 'tech' puts Hacker News first; the others narrow the GDELT search to that topic. | general |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does most of it: it discloses data provenance and freshness (GDELT, last 7 days, refreshed every 15 minutes), the returned fields (title, url, source, published_at), per-call cost ($0.0065 USDC) and p99 latency (2000ms). It stops short of auth requirements, rate limits, or failure behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability and data scope before branching into alternatives; every clause carries information. The heavy nested parentheses ('(built from the GDELT Project, thousands of outlets, last 7 days, updated every 15 minutes)') make it denser than necessary, costing it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter search tool with no output schema, the description covers what is searched, the index bounds, the freshness guarantee, category semantics, returned fields, cost, and where to go for adjacent needs. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates query/limit/category and adds little beyond the schema — the max-30 limit and the 'tech puts Hacker News first, others narrow GDELT' behavior are already documented in the property descriptions, so this is largely duplication rather than added semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (recent news articles) and immediately scopes it: keyword search over a defined index (GDELT ~100k English articles/day, last 7 days, updated every 15 min) plus Hacker News. It explicitly differentiates from siblings by naming crypto-news, discussion-search, and web-read-batch, so an agent can place it without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an affirmative use case ('current events and topic monitoring') and then routes three adjacent cases away with named alternatives: crypto news -> crypto-news, opinion/discussion -> discussion-search, full article text -> pass URLs to web-read-batch. When/when-not and alternatives are all explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_sentimentA
News Sentiment Analysis — News sentiment for a company, token, person or topic: finds up to 25 recent articles in our own news index (GDELT and Hacker News, last 7 days) and rates how the coverage reflects on the topic: overall label (very negative to very positive), a -1 to 1 score, positive, neutral and negative counts, 3 to 5 themes, a two-sentence summary and every article with its own sentiment, title, source, date and URL. For trading signals, brand monitoring and research agents. Rated by Claude Haiku 5.5 from headlines and snippets only. Not charged when fewer than 2 articles are found. Cost: $0.006 USDC per call. Latency p99: 12000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| topic | Yes | Company, token, person or topic, e.g. Bitcoin or Siemens | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: source index (GDELT, Hacker News), a 7-day recency window, a 25-article cap, the fact that scoring is done by Claude Haiku 5.5 from headlines and snippets only (a meaningful limitation), the billing rule (free when fewer than 2 articles are found), the cost ($0.006 USDC per call) and p99 latency of 12000ms. These are exactly the operational facts an agent needs before invoking a paid, potentially slow call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single dense paragraph that front-loads the purpose and then layers scope, output shape, audience and operational facts, so every clause carries information. It is long and somewhat wall-of-text, but there is little genuine padding to cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe the return value — and it enumerates the full payload: overall label, -1 to 1 score, positive/neutral/negative counts, 3-5 themes, a two-sentence summary, and per-article sentiment, title, source, date and URL. Combined with the source/recency/cost/latency details, an agent has everything required to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (topic is documented, limit and category are not), so the description should compensate but only partly does. It explains the upper bound of the limit ('up to 25 recent articles') but not the default of 15 or the minimum of 5, and it says nothing about what the category enum selects. The 25 cap is the only real parameter insight added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (analyze/rate) and resource (news sentiment for a company, token, person or topic) and fully describes the pipeline: finds up to 25 recent articles from its own GDELT/Hacker News index over the last 7 days and rates how coverage reflects on the topic. This is clearly distinguishable from sibling search tools like news_search, crypto_news and discussion_search, which return articles but do not score sentiment. An agent can tell exactly what this returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context — 'For trading signals, brand monitoring and research agents' — which tells the agent which kinds of tasks this fits. However, it names no alternatives and states no when-not condition, so an agent choosing between this and news_search or crypto_news must infer the difference itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ocrA
OCR: Image to Text — Extract text from images using Tesseract OCR. Send image as image_base64 (PNG/JPEG/WebP/TIFF/BMP, max 10 MB decoded). Returns text and confidence (0-100, where 80+ is reliable). Set language to Tesseract code: 'eng' (default), 'deu' (German), 'fra' (French), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic). Use for invoices, receipts, scanned documents, or screenshots with text. Cost: $0.009 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| psm | No | Page Segmentation Mode. 3 = fully automatic (default, best for most images). 6 = single uniform block of text. 7 = single text line. 11 = sparse text (find text anywhere). 13 = raw line (no line ordering). Use 6 or 7 for forms/labels. | |
| language | No | Tesseract language code. Default: 'eng' (English). Other supported: 'deu' (German), 'fra' (French), 'spa' (Spanish), 'ita' (Italian), 'por' (Portuguese), 'rus' (Russian), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic), 'kor' (Korean), 'nld' (Dutch), 'pol' (Polish). Use '+' to combine: 'eng+deu'. | eng |
| image_base64 | Yes | Base64-encoded image. Supported formats: PNG, JPEG, WebP, TIFF, BMP. Max 10 MB decoded. For best results use high-contrast images with clear text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses formats, the 10 MB limit, that output is text plus a 0-100 confidence score, plus cost ($0.009 USDC/call) and p99 latency (4000ms). It does not mention auth requirements, rate limits, or failure behavior, holding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose first, then input constraints, then output, then language, then use cases, then cost/latency. The enumerations are long but each carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by explaining the return values (text plus confidence with an 80+ reliability threshold), along with cost and latency. For a single-purpose extraction tool this is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters fully (including psm modes and the full language list). The description largely restates these codes and adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract text from images using Tesseract OCR') with the enabling technology named. It is trivially distinguishable from siblings like image_alt_text or pdf_extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases ('invoices, receipts, scanned documents, or screenshots with text'), which is clear contextual guidance. It stops short of an explicit when-not or routing rule to siblings such as pdf_extract for PDF-native sources, so it does not reach 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
package_checkA
Package Check Before Install — Check dependencies before your coding agent installs them: up to 20 packages per call (npm, PyPI, crates.io, Go, Maven, NuGet, RubyGems), one decision each: ALLOW, CAUTION or BLOCK with reasons. Catches hallucinated package names that do not exist (slopsquatting), known malware (OSV malicious-package feed, including versions already removed from the registry), typosquats one typo away from a popular package, critical and high vulnerabilities in the exact version with a safe upgrade, deprecated or yanked versions, brand-new packages, npm install scripts and low usage. npm version ranges are resolved like npm does. Pass packages as strings ("express@4.17.1", "pypi:requests==2.31.0", "cargo:serde") or objects, or paste a package.json or requirements.txt as manifest. Sources: deps.dev, OSV.dev, the registries. Cost: $0.004 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| manifest | No | Contents of a package.json or requirements.txt (alternative to packages) | |
| packages | No | Strings like "express@4.17.1", "pypi:requests==2.31.0", "go:github.com/gin-gonic/gin", "maven:org.apache.logging.log4j:log4j-core:2.14.1", or {name, ecosystem, version} | |
| ecosystem | No | Default for entries without a prefix: npm, pypi, cargo, go, maven, nuget or rubygems. Default npm |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well. It discloses decision outcomes, detection categories such as slopsquatting and typosquatting, data sources, cost, p99 latency, npm range resolution, and supported input forms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and dense with relevant information for a security-checking tool. It is long but mostly earns its length through concrete capabilities, though it could be slightly easier to scan with tighter grouping.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex three-parameter tool with no output schema, the description is largely complete: it explains inputs, decisions, reasons, and sources. It does not fully specify the exact response structure beyond per-package decisions with reasons, leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3. The description adds some useful semantics beyond the schema, especially that npm version ranges are resolved like npm does and that packages may be passed as strings, objects, or a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: checking package dependencies before installation. It clearly scopes the tool to up to 20 packages across multiple ecosystems and to ALLOW/CAUTION/BLOCK decisions, making its role distinct from general vulnerability or domain-check siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when to use it: before a coding agent installs dependencies. It does not name alternatives or exclusions, such as when to prefer cve_lookup for deeper vulnerability research, so it falls 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.
page_extractA
Structured Data Extraction (AI) — Extract structured JSON from a web page or text with fields you define: send url (or text) and fields like {"price": "price in EUR as number", "in_stock": {"type": "boolean"}}, get back exactly those fields, typed and validated against a JSON schema. Types: string, number, integer, boolean, string[], number[]. Fields the content does not state come back as null instead of being guessed. Up to 25 fields; optional instructions for extra rules. For product data, prices, contact and company details, job postings, event data, specs. Uses Claude Haiku 5.5 with structured outputs; page content is treated as data, instructions inside it are ignored. Not charged when the page cannot be read. Cost: $0.007 USDC per call. Latency p99: 12000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Page to extract from (or send text) | |
| text | No | Raw text instead of a URL, max 60,000 chars | |
| fields | Yes | Field name -> description string, or {type, description}. Types: string, number, integer, boolean, string[], number[] | |
| instructions | No | Optional extra rules, max 500 chars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses null-for-unstated-fields semantics, the 25-field cap, the underlying model, prompt-injection handling ('page content is treated as data, instructions inside it are ignored'), the no-charge condition, cost, and p99 latency. These are exactly the behavioral traits an agent needs and cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, mechanism, and output contract before the operational details (model, cost, latency). It is dense but every clause carries information; it reads as one long paragraph rather than cleanly separated sections, which keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations exist, yet the description specifies the return contract (exactly the requested fields, typed and validated against a JSON schema, null when unstated) plus billing and latency behavior. Nothing material is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: a concrete field-definition example, the supported type list, and the 'up to 25 fields' limit that the schema does not state. It exceeds the schema without fully replacing it for every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Extract structured JSON from a web page or text') and immediately names the distinguishing mechanism: caller-defined fields. An agent can separate this from siblings like page_summarize, webpage_reader, and pdf_extract without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases ('product data, prices, contact and company details, job postings, event data, specs') and the input modes (url or text), which is clear context for when to reach for it. It stops short of naming alternatives or stating when NOT to use it (e.g., use pdf_extract for PDFs), so it does not reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_summarizeA
Web Page Summary (AI) — Summarize any web page: send a URL, get a factual summary that starts with what the page is, followed by the key facts, numbers and conclusions as bullet points. Reads the page (HTML to Markdown) and summarizes it with Claude Haiku 5.5. Options: length short (60 to 90 words), medium (150 to 220) or long (350 to 450); language for the summary (default: the page language, e.g. German); focus to steer it (e.g. "pricing and plans"). Page content is treated as data, instructions inside the page are ignored. Long pages are cut at about 25,000 characters (input_truncated says so). Not charged when the page cannot be read. Cost: $0.005 USDC per call. Latency p99: 12000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page to summarize | |
| focus | No | Optional topic to focus on, max 200 chars | |
| length | No | medium | |
| language | No | Language of the summary, e.g. English or de; default the page language |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly: model used (Claude Haiku 5.5), HTML-to-Markdown reading, prompt-injection handling ('page content is treated as data, instructions inside the page are ignored'), truncation at ~25,000 chars with an input_truncated signal, no charge on unreadable pages, $0.005 USDC cost, and p99 latency of 12s. This is exactly the behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every clause carries information — cost, latency, truncation, charge policy all earn their place. The single dense block with stacked parentheticals is slightly heavy to scan, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must cover return semantics, and it does: the summary opens with what the page is, then bullet-pointed facts/numbers/conclusions, plus the input_truncated flag. Combined with the failure-mode, cost and latency disclosure, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds real meaning beyond it: concrete word ranges for each length enum (60-90 / 150-220 / 350-450), the language default being the page language with a worked example (German, de), and what 'focus' is for. This is more than the schema alone conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a precise verb and resource — 'Summarize any web page: send a URL, get a factual summary' — and even nails the output shape (opening statement plus bullet points), which functionally separates it from raw-content siblings like webpage_reader, page_extract and web_scrape. It never names an alternative sibling explicitly, so it falls just short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is clear: pass a URL, choose a length, optionally steer with 'focus'. The focus example ('pricing and plans') gives concrete guidance on how to use the tool well. However, there is no explicit when-to-use-this-over-X statement or exclusion (e.g. when to prefer raw extraction), leaving the routing decision somewhat to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_watchA
Web Page Change Monitor (diff since last check) — Website change monitoring for agents that check in a loop: send a URL and get only what changed since your last call (added and removed lines of the page text), plus optional keyword alerts. First call saves a baseline and returns a cursor; pass the cursor on the next call. The cursor only advances when a change is reported, so nothing slips through between polls. Good for price pages, docs and changelogs, job boards, status pages, competitor sites, government notices. Params: url, cursor, keywords (list, alert when a keyword newly appears), ignore (list of substrings; lines containing them are ignored, e.g. timestamps or ads), render (true for JavaScript pages). Cost: $0.003 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page to watch (http or https) | |
| cursor | No | Cursor from your previous call; omit on the first call | |
| ignore | No | Ignore lines containing any of these substrings | |
| render | No | Render JavaScript before reading | |
| keywords | No | Alert when one of these appears in newly added text (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it explains the baseline/cursor lifecycle, the key guarantee that the cursor only advances when a change is reported, cost ($0.003 USDC per call), and p99 latency (8000ms). These are non-obvious operational traits an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then mechanics, then use cases, then params, cost, and latency. Dense but nearly every sentence earns its place; the trailing cost/latency line is compact. Slightly long, but well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain returns, and it does: added and removed lines plus optional keyword alerts, and the cursor returned on the first call. Combined with the cost/latency disclosure, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: keywords alert only when a keyword 'newly appears', ignore filters lines containing substrings with examples (timestamps, ads), and render is for JavaScript pages. This goes beyond the schema's terse parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Web Page Change Monitor') and the exact scope of output ('diff since last check' — added and removed lines of page text). This clearly differentiates it from one-shot siblings like webpage_reader, web_scrape, and site_crawl.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the use case as 'agents that check in a loop' and enumerates concrete scenarios (price pages, docs, changelogs, job boards, status pages, competitor sites, government notices). It doesn't name an alternative sibling or state 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.
paper_searchA
Scientific Paper Search — Search scientific papers across OpenAlex (250M works, all fields), arXiv (preprints) and PubMed (biomedicine) in one call. Returns title, up to 5 authors, year, venue, DOI, landing URL, open-access PDF URL, citation count and abstract (up to 600 chars), merged and deduplicated by DOI. Params: query (required), source ('all' default, 'openalex', 'arxiv', 'pubmed'), limit (1 to 25, default 10), year_from, open_access_only (default false). Cost: $0.01 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| source | No | all | |
| year_from | No | Only papers published in or after this year | |
| open_access_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely succeeds: it discloses the exact return fields, the DOI-based merge/dedup behavior, the $0.01 USDC cost, and a p99 latency of 6000ms. It omits auth/payment mechanics and any rate-limit or failure behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded, leading with what it is and what it returns before parameters, cost and latency. It is a bit long, but nearly every clause carries operational information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately enumerates the return shape, and it adds cost and latency context for a 5-parameter tool. Combined with the parameter coverage, an agent has enough to call it correctly, though explicit alternative-routing guidance is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate, and it does: it documents query as required, enumerates the source values with the 'all' default, states the limit range (1-25) and default (10), and notes year_from and open_access_only defaults. Only minor format detail (e.g. year_from semantics) is left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (scientific papers) and names the three upstream corpora it federates (OpenAlex, arXiv, PubMed). It clearly distinguishes itself from generic siblings like web_search, news_search and dev_search by scoping to scientific literature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource type and the 'in one call' federation framing, so an agent can infer this is for academic literature queries. However, there is no explicit when-to-use/when-not-to-use guidance or comparison against nearby siblings such as web_search or citation_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_extractA
PDF Text Extraction — Extract all text from a PDF. Send as pdf_base64 (base64-encoded PDF, max ~10 MB decoded). Returns text (full concatenated text), pages array (per-page text + char_count), page_count, and metadata (title, author, creator). Encode with: Buffer.from(pdfBytes).toString('base64'). Ideal for RAG pipelines, document QA, or LLM ingestion. Cost: $0.0055 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| max_pages | No | Maximum number of pages to extract. Default: 50. Use to limit processing time for large PDFs. | |
| pdf_base64 | Yes | Base64-encoded PDF file content. Decode a PDF file to base64 and pass it here. Max ~10 MB (unencoded). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.0055 USDC per call), p99 latency (1500ms), the ~10 MB decoded size ceiling, and the exact return shape. Auth requirements and failure/error behavior remain unstated, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the sentences are dense with payoffs (return shape, cost, latency). The Buffer.from(...).toString('base64') snippet is arguably redundant given the schema's own base64 description, a minor bit of bloat against an otherwise tight entry.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly summarizes the return fields (text, pages, page_count, metadata) along with cost, latency, and size limits – enough for an agent to invoke and anticipate the response. Error cases and truncation behavior for the default max_pages=50 are not covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates both parameters (pdf_base64 and its size limit) and adds a concrete encoding recipe, but that content largely duplicates what the schema already documents rather than adding new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract all text from a PDF') and names the exact input mechanism (pdf_base64), making it distinguishable from siblings like ocr, doc_parse, or webpage_reader without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives intended use cases ('Ideal for RAG pipelines, document QA, or LLM ingestion'), which implies when to reach for it, but never contrasts with the many adjacent siblings (ocr, doc_parse, page_extract). No when-not guidance and 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.
perp_fundingA
Perp Funding Rates (multi-venue) — Perpetual futures funding rates for up to 10 coins across Binance, Bybit, OKX and Hyperliquid in one call: funding rate per interval, interval hours, annualized APR, mark price, open interest in USD and next funding time per venue, plus average APR, total open interest, max/min venue and the funding spread as an arbitrage hint. Venues that are unreachable or do not list a coin are reported per venue. Params: coins (default BTC, ETH, SOL), venues (default all). Cost: $0.0025 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| coins | No | Tickers, e.g. BTC, ETH, SOL, HYPE | |
| venues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses cost ($0.0025 USDC per call), p99 latency (3000ms), zero-required-parameter defaults, and per-venue error handling for unreachable or unlisted coins. Auth/payment mechanics are not explained, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is front-loaded with the core purpose, then output fields, then params/cost/latency. It is dense but every clause is load-bearing given the absence of an output schema; the output-field enumeration is long but necessary rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fully specifies the return payload per venue (funding rate, interval hours, APR, mark price, OI USD, next funding time) plus aggregates and error reporting, and adds cost and latency. An agent has everything needed to invoke and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (the venues enum has no description), so the description compensates: it states both parameters, gives their defaults (coins=BTC,ETH,SOL; venues=all) and restates the 10-coin cap. These defaults are genuinely additive beyond the schema, though no format or per-venue notes are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (perpetual futures funding rates) with clear scope: up to 10 coins across Binance, Bybit, OKX and Hyperliquid in a single call. An agent can tell this apart from crypto_prices or defi_yields from the content, but the description never explicitly names or contrasts with any sibling, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — the arbitrage spread hint suggests a use case and the defaults (BTC, ETH, SOL / all venues) make zero-arg invocation possible, but there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance relative to the many sibling market-data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phone_validateA
Phone Number Validation — Parse and validate any phone number worldwide using libphonenumber. Returns is_valid, e164 (canonical international format e.g. '+4917612345678'), national_format, country_code (ISO alpha-2), and line_type (MOBILE/FIXED_LINE/VOIP/TOLL_FREE). Provide country_code hint (e.g. 'DE') for local numbers without country prefix. Cost: $0.0045 USDC per call. Latency p99: 50ms.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number to validate. Can be in any format: E.164 ('+4915123456789'), national ('015123456789'), or international ('0049 151 23456789'). Include country code (+ prefix) for best results. | |
| country_code | No | ISO 3166-1 alpha-2 country code hint for parsing national numbers without country prefix (e.g. 'DE' for Germany, 'US' for United States). Optional if number includes country code (+...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does so well: it discloses the exact cost ($0.0045 USDC per call) and p99 latency (50ms), plus enumerates return fields and line_type values. It stops short of describing error/failure behavior or auth requirements, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that is well front-loaded: purpose first, then return shape, then the country_code hint, then cost/latency. Every clause earns its place, though the return-field enumeration is somewhat lengthy for a short description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description compensates by explaining the return fields (is_valid, e164, national_format, country_code, line_type), cost, and latency. It is nearly complete for a simple validation tool; only error-case behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented in the schema, making 3 the baseline. The description's country_code hint ('for local numbers without country prefix') largely restates the schema wording rather than adding new syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('parse and validate') and resource ('any phone number worldwide'), and names the underlying engine (libphonenumber). An agent can distinguish it at a glance from the many other validation siblings (email_validate, vat_validate, iban_validate) since it is unambiguously phone-specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear conditional instruction: 'Provide country_code hint (e.g. DE) for local numbers without country prefix,' which tells the agent when the optional parameter matters. It lacks explicit when-to-use/when-not-to-use framing versus alternatives, but no competing phone tool exists among the siblings, 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.
pii_redactA
PII Redaction — PII redaction for agent pipelines: remove personal data from text before it goes to another model, a log, a ticket system or a dataset. Emails, IBANs (checksum verified), card numbers (Luhn verified), phone numbers and IP addresses are found by exact patterns; names of people, street addresses, birth dates and ID numbers by Claude Haiku 5.5. Every value gets a stable placeholder like [PERSON_1] so the text stays readable, and the mapping comes back so you can restore it later (or mode mask or remove). Up to 8,000 characters, any language, the rest of the text stays unchanged. Instructions inside the text are ignored. Cost: $0.003 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No | Values to leave in place, e.g. your own support address | |
| mode | No | placeholder: [EMAIL_1]; mask: ████; remove: delete | placeholder |
| text | Yes | Text to redact, max 8,000 chars | |
| types | No | Which kinds to redact. Default all except ORGANIZATION and URL | |
| return_mapping | No | Return placeholder to original value mapping |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so richly: it splits deterministic detection (emails, checksum-verified IBANs, Luhn-verified cards, phones, IPs) from LLM detection (names, addresses, birth dates, IDs), discloses stable placeholders plus a restorable mapping, the 8,000-char cap, language scope, injection resistance, cost, and p99 latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph, but it is front-loaded with the core purpose and every clause (limits, cost, latency, injection note) carries operational value. Slightly run-on, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter transformation tool with no output schema, the description covers the return (mapping), the modes, the size limit, and detection behavior; the input schema already documents each parameter, so nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: the mapping exists so you can restore values later, and mode supports mask/remove alongside the default placeholder. keep, types, and the default exclusion of ORGANIZATION/URL are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('PII redaction... remove personal data from text') and immediately frames the concrete contexts (model input, logs, tickets, datasets). It is clearly distinct from neighbors like privacy_check or prompt_injection_check, which audit rather than transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'before it goes to another model, a log, a ticket system or a dataset' clause gives a clear when-to-use context. It stops short of naming alternatives or explicit when-not-to-use conditions (e.g., vs. privacy_check), so it is clear context without routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postal_codeA
Postal Code Lookup — Postal codes for 70 countries (GeoNames via zippopotam.us): postal code to place names, state and coordinates, or city + state to all its postal codes. For GB, CA and IE only the outward part (e.g. SW1A) is resolved. Params: country (ISO2, required), postal_code, or city + state (state abbreviation, e.g. CA, BY). Cost: $0.0025 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| state | No | State abbreviation, required with city | |
| country | Yes | ISO 3166-1 alpha-2 | |
| postal_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers real operational context: pricing ($0.0025 USDC per call), p99 latency (1500ms), coverage scope (70 countries), and a resolution limitation for GB, CA and IE. It does not describe error behavior, auth requirements, or rate limiting, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well front-loaded: identity and modes first, then the GB/CA/IE caveat, then a compact Params/Cost/Latency block. The Params sentence partially restates the schema, but the cost and latency details justify their space in a paid API context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, single-purpose lookup with no output schema and no annotations, the entry covers identifiers, both modes, the required parameter, the partial-resolution caveat, price and latency. The main gap is a brief indication of the response shape (fields returned per mode), which the description only implies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, so the description must compensate, and it does: it labels country as ISO2 and required, notes state is a state abbreviation with examples (CA, BY), and clarifies that city pairs with state. This adds meaning beyond the partially documented schema, though it never states that postal_code and city/state are mutually exclusive alternatives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Postal Code Lookup') and immediately defines both operating modes: postal code → place names/state/coordinates, and city + state → all postal codes. It also names the data source (GeoNames via zippopotam.us) and coverage (70 countries), so an agent can distinguish it from siblings like geocode without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains which parameter combinations drive which mode (country + postal_code, or city + state) and states the GB/CA/IE outward-only restriction, which is genuine when-to-expect-limits guidance. It does not, however, contrast itself with sibling geo tools such as geocode or timezone, so there is no 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.
prediction_marketsA
Prediction Markets (Polymarket) — Live Polymarket prediction markets: outcome probabilities, 24h volume, liquidity, 24h price change and end date. Search by topic (query, e.g. 'bitcoin', 'election', 'fed rate') or omit query to get the markets with the highest 24h volume. Only open markets. Params: query (optional), limit (1 to 25, default 10). Cost: $0.009 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Topic to search, e.g. 'bitcoin' or 'election'. Omit for top markets by 24h volume. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose non-obvious traits: a per-call cost of $0.009 USDC, a p99 latency of 3000ms, and the filter that only open markets are returned. It could say more about rate limits or result stability, but the cost/latency/scope disclosures are genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and return fields, then usage, then constraints, then cost/latency. The 'Params:' sentence largely duplicates schema metadata, which is minor waste, but the overall structure is tight and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param, zero-required read tool with no output schema, the description covers purpose, usage modes, return fields, cost, latency and the open-markets constraint. An agent has enough to invoke it correctly; only edge cases like empty-result behavior are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the query parameter is already documented in the schema, while limit has only structured min/max/default. The description restates limit's range and default (redundant with the schema) and adds little on query beyond the schema's own example. Baseline 3 is appropriate given the partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (live search/listing of Polymarket prediction markets) and enumerates exactly what is returned: outcome probabilities, 24h volume, liquidity, 24h price change and end date. No sibling tool covers prediction markets, so 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states two usage modes: pass a topic query (with examples like 'bitcoin', 'election', 'fed rate') or omit query to get the highest-volume markets. It also flags that only open markets are returned. It does not name a competing alternative, but none exists among siblings, so this is strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
privacy_checkA
Privacy and Imprint Check (GDPR, DE/AT/CH) — GDPR and imprint check of a website as a first-time visitor who has not clicked anything: which third parties load before consent (Google Analytics, Meta Pixel, Hotjar, Google Fonts, YouTube and Maps embeds and about 30 more), which cookies are set and which of them are known tracking cookies, whether a consent banner is shown, which tool runs it and whether it has a reject button on the first layer. Then reads the imprint (Impressum) and checks the fields required in Germany (§ 5 DDG), Austria and Switzerland: name and legal form, postal address, email, phone or contact form, managing director, commercial register, VAT ID; and checks whether the privacy policy names the third parties found. Returns a grade A to F with findings by severity. For agencies, compliance teams and lead qualification. Not legal advice. Not charged when the page cannot be loaded. Cost: $0.015 USDC per call. Latency p99: 25000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website to check, e.g. https://example.de |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses pricing ($0.015 USDC/call), latency (p99 25000ms), billing behavior ('not charged when the page cannot be loaded'), that it returns a graded result with findings by severity, and it issues a 'not legal advice' caveat. This is unusually rich behavioral disclosure for a check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and then logically sequenced (what is checked → imprint fields → return format → audience → disclaimers → cost/latency). It is dense and long, but nearly every clause conveys actionable detail rather than filler, so it stays efficient despite its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complex tool with no annotations and no output schema, yet the description explains inputs implicitly, the full inspection scope, the return shape (A–F grade with severity-ranked findings), cost, latency, and billing edge 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'url' parameter is fully documented in the schema (100% coverage) with an example, and the description adds nothing beyond restating that a website is checked. Baseline 3 for a fully-specified single-parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (GDPR and imprint check of a website) and precisely enumerates the scope: third parties loading before consent, cookies/tracking cookies, consent banner and reject button, and imprint fields per § 5 DDG / AT / CH. It is clearly distinguishable from siblings like domain_compliance, site_audit, seo_meta or accessibility_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the target audience (agencies, compliance teams, lead qualification) and the inspecting stance ('first-time visitor who has not clicked anything'), which frames when the tool is relevant. It does not explicitly contrast against alternatives such as domain_compliance or site_audit, nor state 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.
product_lookupA
Product Lookup by Barcode — Look up a product by EAN/UPC barcode in Open Food Facts, Open Beauty Facts and Open Products Facts: name, brand, quantity, categories, ingredients, allergens, labels, nutrition per 100 g, Nutri-Score, NOVA group and image URL. Params: barcode (8 to 14 digits, required). Cost: $0.005 USDC per call. Latency p99: 2500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes | EAN-13, EAN-8 or UPC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present the description carries the full burden, and it does disclose two high-value operational traits: a per-call cost of $0.005 USDC and a p99 latency of 2500ms. It stops short of describing failure/not-found behavior or coverage limits across the three databases, which a lookup tool with no annotations should ideally state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence opens with the tool's identity and purpose, then enumerates sources, outputs, the parameter constraint, and cost/latency. The em-dash chain is dense but every clause carries information; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the inline enumeration of returned fields (name, brand, quantity, categories, ingredients, allergens, labels, nutrition, Nutri-Score, NOVA, image URL) usefully compensates. Cost and latency are also covered. Only the not-found/no-data path is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds the explicit 8-to-14-digit constraint and marks the parameter required, which the schema only implies via 'EAN-13, EAN-8 or UPC'. That is a genuine, if modest, semantic addition over the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Look up a product by EAN/UPC barcode') and names the three concrete data sources plus the exact fields returned, so the agent knows precisely what it gets back. It does not explicitly differentiate itself from the sibling 'barcode' tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the framing (you have a barcode and want product data), but there is no explicit when-to-use/when-not guidance, no mention of what happens when a barcode is not found in any of the three databases, and no routing away from the sibling 'barcode' tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_injection_checkA
Prompt Injection Detection — Prompt injection detection for AI agents: check untrusted text (a web page, email, tool result or user message) before your agent reads it. Returns a verdict safe, suspicious or malicious, a 0 to 100 risk score, the techniques found (instruction override, role hijack, system prompt extraction, requests to move funds or reveal secrets, fake chat-template tags, hidden unicode, command execution) with exact quotes as evidence, and advice. Combines fixed pattern checks, which can only raise the verdict, with a Claude Haiku 5.5 classifier, so text that tries to talk the classifier into "safe" still gets flagged. Quoted examples in articles about prompt injection are not counted as attacks. Up to 20,000 characters; optional context (what your agent is doing). Cost: $0.004 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Untrusted text to check, max 20,000 chars | |
| context | No | Optional: what the agent is doing, max 300 chars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so richly: it discloses the verdict scale (safe/suspicious/malicious), the 0-100 risk score, the detection techniques, the dual pattern+classifier architecture and its adversarial resistance, the quoted-example exclusion, the 20,000-char limit, per-call cost ($0.004 USDC), and p99 latency (8000ms). This is exactly the operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the core purpose leads, then return shape, then internals, then limits/cost/latency. The parenthetical technique list is long but each item adds discriminative value. Minor density cost, no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns — and it does precisely (verdict, risk score, techniques with quotes, advice). Combined with cost, latency, and input constraints, an agent has everything needed 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.
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 'text' and 'context' including the max lengths. The description restates the character limit and characterizes 'context' as 'what your agent is doing', matching the schema rather than adding new semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('check untrusted text... for prompt injection') with the exact scope of inputs (web page, email, tool result, user message). It is clearly distinguishable from nearby siblings like scam_message_check, text_classify, or pii_redact because it names the threat class and the agent-facing use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it ('before your agent reads it') and enumerates the untrusted sources that qualify. It does not name alternative tools or state when NOT to use it (e.g., versus scam_message_check or pii_redact), 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.
qr_codeA
QR Code Generator — Generate a QR code for any text or URL. Returns image_base64 (base64 PNG; decode to get raw bytes). Params: text (required), size in px (64-1024, default 256), error_correction (L/M/Q/H, default M). H = highest redundancy, survives up to 30% damage. Cost: $0.004 USDC per call. Latency p99: 100ms.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Output image size in pixels (width and height). Min: 64, Max: 1024. | |
| text | Yes | The text or URL to encode in the QR code | |
| error_correction | No | Error correction level: L=7%, M=15%, Q=25%, H=30% data recovery. Higher = bigger QR code. | M |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses the return shape (image_base64, base64 PNG), the per-call cost ($0.004 USDC), and p99 latency (100ms). It does not mention auth/payment prerequisites or failure modes, which keeps it just short of complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then return value, then parameters, then cost/latency. Every sentence earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param generator with no output schema, the definition covers purpose, return format, defaults, ranges, cost and latency — enough for an agent to invoke it correctly and reason about tradeoffs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both size and error_correction are already fully documented with ranges and defaults. The description restates them and its 'H survives up to 30% damage' note duplicates the schema's own 'H=30%' text, adding no new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Generate a QR code for any text or URL') and immediately distinguishes itself from siblings like barcode and image_resize by naming the encodable input. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope ('any text or URL') implies when it applies, but there is no explicit when-not guidance or named alternative (e.g. barcode for 1D codes). Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_reportA
Research Report with Citations — An AI-written Markdown report (about 500 to 900 words, 1200 to 1800 with length long) on a topic, company or token, built from Wikipedia, recent news, Hacker News, Bluesky and Lemmy discussions and, for kind company or token, our structured checks. Every claim cites a numbered source; the sources list is returned. Use for due diligence and briefings. kind: topic (default), company or token. language: en or de. Errors with Not charged when fewer than 2 relevant sources are found. Cost: $0.6 USDC per call. Latency p99: 90000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | topic, company or token | |
| chain | No | ||
| token | No | token kind: contract address | |
| topic | Yes | What to research, or company name | |
| domain | No | company kind: domain | |
| length | No | standard or long | |
| language | No | en or de |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and delivers unusually rich detail: output format and length, citation model, sources list returned, error/no-charge threshold, cost per call, and p99 latency. This is strong disclosure for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: artifact, source mix, usage, parameters, error behavior, cost, and latency all appear in one paragraph. It is not wasteful, but could be more scannable with structured segments.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 7 parameters, the description covers output, source acquisition, error/cost/latency, and core options well. Missing chain details and deeper token/domain semantics keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, so baseline is 3; the description adds default kind and length-dependent word count beyond the schema. However, chain remains undocumented in both the schema and description, which is a remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific artifact: an AI-written Markdown report on a topic, company, or token, with word counts and a named source set. It distinguishes itself as a cited report generator, but does not explicitly contrast with similar siblings such as company_brief or answer_with_sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says 'Use for due diligence and briefings' and gives kind/language options, which is clear contextual guidance. It does not name when-not to use it or route the agent to alternative sibling tools, 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.
rss_fetchA
RSS / Atom Feed to JSON — Fetch an RSS 2.0, RSS 1.0 or Atom feed and return normalized JSON items (title, link, published_at ISO 8601, summary without HTML, author, guid). Use for monitoring blogs, news sites, GitHub releases, podcasts or any feed URL without writing an XML parser. Params: url (required), limit (default 20, max 100). Cost: $0.0025 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Feed URL (RSS or Atom) | |
| limit | No | Maximum number of items to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does unusually well: it discloses cost ($0.0025 USDC per call), p99 latency (1500ms), the normalization/HTML-stripping behavior, and the supported feed dialects. Missing only auth/payment mechanics and error behavior, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability, then output shape, then usage, then params/cost/latency in one dense block. Every clause earns its place, though the param recap is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates the returned item fields (title, link, published_at ISO 8601, summary without HTML, author, guid), so an agent knows exactly what comes back. Cost and latency round out the operational picture for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so url and limit are already fully documented in the schema; the description's restatement ('url (required), limit (default 20, max 100)') adds no new semantics. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Fetch an RSS 2.0, RSS 1.0 or Atom feed and return normalized JSON items') and enumerates the output fields, which cleanly separates it from siblings such as feed_watch, news_search and webpage_reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use context ('monitoring blogs, news sites, GitHub releases, podcasts or any feed URL without writing an XML parser'), which orients the agent well. It does not, however, name an alternative or state when NOT to use it (e.g. feed_watch for recurring monitoring, news_search for keyword discovery).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screenA
Sanctions Screening (OFAC, EU, UN) — Screen a person or company name against the official OFAC SDN list (with aliases), the EU consolidated financial sanctions list and the UN Security Council consolidated list. Fuzzy, word-order independent matching with scores, list, program and aliases. Lists refresh every 12 hours. A screening aid, not a legal determination. Params: name (required), type ('individual' or 'entity', optional), threshold (0.5 to 1, default 0.85), limit (default 10). Cost: $0.009 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No | ||
| limit | No | ||
| threshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.009 USDC per call), latency (p99 8000ms), list refresh cadence (every 12 hours), fuzzy/word-order-independent matching behavior, and a scope disclaimer. It omits auth requirements and explicit rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and sources, then matching behavior, refresh, disclaimer, params, and finally cost/latency. Dense but every sentence carries operational information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so the description correctly names the return fields (scores, list, program, aliases). Combined with cost, latency, and refresh disclosure, an agent has enough to call it correctly; error behavior and auth expectations are the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it documents name (required), type with both enum values, threshold range (0.5–1, default 0.85), and limit (default 10). Only minor bounds (limit max 25, min 1) are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Screen a person or company name against the official OFAC SDN list... EU consolidated... UN Security Council consolidated list') and names the exact data sources. An agent can distinguish it from siblings like kyb_check or company_lookup purely from this text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the screening context and adds an important caveat ('A screening aid, not a legal determination'), which implies it should not be used as a compliance verdict. However, it never says when to prefer this over adjacent siblings (kyb_check, domain_compliance) or that a name match must still be adjudicated elsewhere — usage 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.
satellite_compareA
Satellite Before/After Comparison (NASA) — Before/after satellite comparison of the same area on two dates from NASA GIBS true-color imagery (MODIS or VIIRS, about 250 m per pixel): one side-by-side JPEG with date labels plus pixel-based change metrics (share of changed pixels, brightness change) and a cloud, haze and snow estimate for each date, with a plain-language reading that says whether the change is likely real or just weather. For floods, wildfires and burn scars, drought and lake levels, snow cover, deforestation or construction at regional scale. Params: place ("Valencia, Spain") or lat + lon + radius_km (5 to 500, default 50) or bbox, date_before (default one year before date_after), date_after (default yesterday), layer, width (64 to 768 per image, default 384), include_separate. Cost: $0.013 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| layer | No | modis_terra | |
| place | No | Place name instead of coordinates, e.g. "Valencia, Spain" (GeoNames, cities and towns) | |
| width | No | Width of each of the two images; the composite is 2 x width + 8 px | |
| radius_km | No | ||
| date_after | No | YYYY-MM-DD, default yesterday | |
| date_before | No | YYYY-MM-DD, default 365 days before date_after | |
| include_separate | No | Also return both images separately as base64 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses cost ($0.013 USDC/call), p99 latency (8000ms), output composition (side-by-side JPEG with date labels plus change metrics and per-date cloud/haze/snow estimates). However it omits error/failure behavior and limits (e.g. what happens if no imagery is available for a date), so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and output shape, then scenarios, then params, then cost/latency. The single dense paragraph is information-rich but a bulleted or sentence-split structure for params would scan faster.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, but the description explains the returned composite image and metrics adequately, and covers defaults for optional params. Missing only edge-case behavior (no imagery, invalid place, out-of-range dates) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, so the description compensates well by enumerating the accepted location modes (place, lat+lon+radius_km 5-500 default 50, or bbox), default dates (before = one year prior to after; after = yesterday), width range 64-768 default 384, and include_separate. It repeats ranges already in schema and doesn't explain the layer enum values, which keeps it below 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('before/after satellite comparison of the same area on two dates') with concrete data source (NASA GIBS MODIS/VIIRS, ~250 m) and output form. An agent can distinguish it from the sibling satellite_image because this one pairs two dates and returns change metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete scenarios (floods, wildfires/burn scars, drought and lake levels, snow cover, deforestation, construction at regional scale) which gives clear positive usage context. It never states when NOT to use it or explicitly routes to satellite_image for single-date imagery, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
satellite_imageA
Satellite Image (NASA) — Daily true-color satellite image of any area from NASA GIBS (MODIS Terra/Aqua or VIIRS, about 250 m per pixel, coastlines overlaid) as base64 JPEG. Useful to see clouds, smoke, snow, floods or fires on a given day. Params: place ("Zurich, Switzerland") or bbox [min_lat, min_lon, max_lat, max_lon] or lat + lon + radius_km (5 to 500, default 50), date (YYYY-MM-DD, default yesterday), layer (modis_terra default, modis_aqua, viirs_snpp, viirs_noaa20), width (64 to 1024, default 512), height (default from aspect). Cost: $0.013 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| date | No | ||
| layer | No | modis_terra | |
| place | No | Place name instead of coordinates, e.g. "Zurich, Switzerland" (GeoNames, cities and towns) | |
| width | No | ||
| height | No | ||
| radius_km | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses cost ($0.013 USDC per call), latency (p99 8000ms), return format (base64 JPEG), and provenance. It doesn't state auth/payment prerequisites or error behavior, but the operational traits it does expose (cost, latency, output) are exactly what an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and source before the dense parameter block, and every clause carries information. The parameter section is a long run-on sentence with heavy parenthetical nesting, which slightly hurts scannability but wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-param, zero-required, no-annotation, no-output-schema tool, the description covers input modes, defaults, output format, cost, and latency — nearly everything an agent needs. It leaves unresolved which location mode wins if more than one is supplied and doesn't guide layer selection, minor gaps against an otherwise thorough definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 11%, so the description must compensate — and it does: it explains the three mutually exclusive location modes (place / bbox / lat+lon+radius_km), the bbox ordering [min_lat, min_lon, max_lat, max_lon], the date format and 'yesterday' default, the layer options, and width/height ranges and defaults. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Daily true-color satellite image of any area from NASA GIBS,' naming the exact data sources (MODIS Terra/Aqua, VIIRS), resolution (~250 m/pixel), and output form (base64 JPEG with coastlines). An agent can distinguish this from sibling satellite_compare by the single-image, single-day scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful to see clouds, smoke, snow, floods or fires on a given day' gives concrete use-case context for when to reach for it. It stops short of naming exclusions or pointing at the sibling satellite_compare for multi-date/compare workflows, so usage routing 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.
scam_message_checkA
Crypto Scam Message Detector — Scam and phishing detection for crypto wallets, trading bots and social agents: check a DM, cast, tweet, email or comment before your agent or user acts on it. Returns a verdict safe, suspicious or scam, a 0 to 100 risk score, the scam type (wallet drainer, fake airdrop, phishing login, impersonation, seed phrase theft, fake support, giveaway doubling, investment fraud, pig butchering, malware), red flags with exact quotes, and advice. Every link is checked for real: domain age and registration via RDAP, look-alike domains of 40 known brands (uniswap-claims.xyz, rnetamask.io), punycode and link shorteners. Fixed checks can only raise the verdict, so a message that tries to talk the classifier into "safe" still gets flagged. Tron addresses in the message (typical for USDT scams) are checked on chain: never activated or created in the last 7 days is a red flag. Claude Haiku 5.5. Up to 8,000 characters; optional sender and channel. Cost: $0.003 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The message to check, max 8,000 chars | |
| sender | No | Optional: sender name or handle as shown, max 200 chars | |
| channel | No | Optional: where it arrived, e.g. X DM, Telegram, Discord, email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does so richly: it discloses the returned fields (verdict, risk score, scam type, red flags, advice), the detection mechanisms (RDAP domain age, 40-brand look-alike detection, punycode, Tron on-chain activation checks), a security-relevant invariant ('fixed checks can only raise the verdict' – anti prompt-injection), plus cost ($0.003 USDC), latency (p99 6000ms) and the underlying model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and use case are front-loaded and most sentences earn their place by conveying return shape, mechanisms, and operational constraints. It is dense and runs long with a few illustrative asides (specific look-alike domains, model name) that border on surplus but do not obscure the core.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fully compensates: it enumerates return values, input limits, detection behavior, cost, and latency. 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.
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 three parameters with types and max lengths. The description only echoes 'Up to 8,000 characters; optional sender and channel' without adding format, syntax, or semantic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Scam and phishing detection... check a DM, cast, tweet, email or comment') and names the consumer (crypto wallets, trading bots, social agents). It is clearly distinguishable from nearby siblings like prompt_injection_check or token_security without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit context and timing ('check ... before your agent or user acts on it') and enumerates the message sources it covers. It does not name an alternative tool or state when NOT to use this one, so it falls 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.
screenshotA
Screenshot API — Capture any URL as a PNG screenshot. Returns image_base64 (base64 PNG; decode to get raw bytes). Full JS rendering via Playwright, works on SPAs and dynamic content. Params: url (required), width px (default 1280), height px (default 800), full_page boolean, wait_ms. Cost: $0.009 USDC per call. Latency p99: 2800ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to capture | |
| width | No | Viewport width in pixels | |
| height | No | Viewport height in pixels | |
| wait_ms | No | Wait time after page load in ms | |
| full_page | No | Capture full page height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the return payload format (image_base64, base64-encoded PNG requiring decode), the rendering engine and its capability envelope, per-call cost ($0.009 USDC), and p99 latency. It omits failure modes, rate limits, and any auth/payment prerequisites implied by the per-call cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five compact sentences, front-loaded with purpose, then return contract, capability, params, and operational cost/latency. No filler and no repetition; each sentence adds a distinct fact an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by explaining exactly what comes back and how to decode it. Combined with the 100%-covered schema, cost, and latency, an agent has everything needed to invoke and interpret this tool without further exploration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, including defaults. The description's param list restates url/width/height/full_page/wait_ms with essentially the same meaning and adds no format or interaction detail (e.g. how wait_ms interacts with full_page). Baseline 3 is correct here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Capture any URL as a PNG screenshot') with an unambiguous output artifact. An agent can distinguish this from near siblings like html_to_pdf, webpage_reader, or chart_render purely from the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear condition for selecting it: 'Full JS rendering via Playwright, works on SPAs and dynamic content', which tells the agent this is the right tool for rendered pages rather than static fetches. However, it never names an explicit alternative or states when NOT to use it (e.g. static text extraction should go to webpage_reader).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_readA
Search and Read — Answer a question when you have no URL yet: searches Wikipedia (source 'web') or recent news articles (source 'news') and returns the top 1 to 5 result pages already read as clean Markdown, with title, URL and snippet. Replaces one search call plus several page reads. Not a general web search engine. If links and a short summary are enough, web-search is cheaper. Charged only if at least one page was read. Params: query (required), source ('web' default or 'news'), count (1 to 5, default 3), max_chars per page (500 to 20000, default 4000). Cost: $0.005 USDC per call. Latency p99: 15000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| query | Yes | ||
| source | No | web | |
| max_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the billing rule ("Charged only if at least one page was read"), the unit price ($0.005 USDC per call), p99 latency of 15000ms, the source restriction to Wikipedia/news, and the return shape. It also explains the value proposition (replaces one search plus several page reads), which tells an agent this is a compound call rather than a raw search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the primary use case and disambiguating alternative before any parameter detail, and each sentence carries information. The trailing parameter enumeration is somewhat dense and partially restates the schema, but it is justified by 0% schema coverage; still, the run-on param list slightly hurts readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description supplies the return format (Markdown pages with title, URL, snippet, 1-5 of them). Combined with cost, latency, source scope, and the count/max_chars controls that shape the response size, an agent has everything needed to call this correctly and predict the payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: query (required), source ('web' default or 'news'), count (1 to 5, default 3), max_chars per page (500 to 20000, default 4000) are all enumerated with their ranges and defaults. Only max_chars' effect is left implicit, but its name and range make the meaning clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb+resource and states exactly what the tool returns: top 1-5 result pages already read as clean Markdown with title, URL and snippet, sourced from Wikipedia or recent news. It distinguishes itself from siblings explicitly ("Not a general web search engine", "If links and a short summary are enough, web-search is cheaper"), so an agent can separate it from web_search, news_search, and webpage_reader without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the triggering condition ("Answer a question when you have no URL yet"), the exclusion (not a general web search engine), and names the cheaper alternative plus the condition that selects it (links + short summary is enough → web-search). This is the when/when-not/alternative triad stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_filingsA
SEC Filings (EDGAR) — US public company data from SEC EDGAR: company profile, recent filings (10-K, 10-Q, 8-K, Form 4 insider trades, S-1 ...) with direct document links, and optionally the latest annual financials (revenue, net income, assets, liabilities, equity, operating cash flow, diluted EPS). Params: ticker or cik (one required), forms (filter, e.g. ['10-K','8-K']), limit (1 to 50, default 10), include_financials (default false). Cost: $0.0025 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | SEC CIK number | |
| forms | No | Form types to include | |
| limit | No | ||
| ticker | No | US ticker, e.g. AAPL | |
| include_financials | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose operational traits beyond the schema: cost ($0.0025 USDC per call) and p99 latency (3000ms), which are genuinely useful for planning. It does not cover error behavior, rate limits beyond latency, or auth, but the cost/latency disclosure is meaningful and absent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and returned content, then parameters, then cost/latency. It is dense but each clause carries information; the parameter recap is slightly redundant with the schema but remains scannable and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description adequately covers return content (profile, filings, financials), parameter semantics, and operational cost/latency. It is complete enough for correct invocation, with only minor omissions like error/edge behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description compensates well: it clarifies that exactly one of ticker/cik is required (the schema lists zero required params, so this is additive), gives a forms example, and restates limit defaults/ranges and include_financials default. Some content duplicates the schema, but the 'one required' constraint and forms example add real meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete resource (US public company data from SEC EDGAR) and enumerates the exact content returned: company profile, recent filings by form type, document links, and optional annual financials. No sibling tool covers EDGAR filings, so it is distinguishable from company_lookup/company_brief without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Scope is implied by 'US public company data from SEC EDGAR' and the form-type examples, giving the agent a sense of the fitting case. However, there is no explicit when-to-use guidance and no mention of alternatives (e.g., company_lookup for general profiles), nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_metaA
SEO Title and Meta Description (AI) — SEO title tag and meta description from a URL: reads the page and returns the current title and meta description with their lengths, a better title (max 60 characters), a meta description of 140 to 155 characters with a reason to click, an H1, 5 to 8 search phrases and the problems found. Optional keyword to build around (e.g. "windows Munich") and language. Written by Claude Haiku 5.5 from the page content only, no claims the page does not make. Not charged when the page cannot be read. Cost: $0.006 USDC per call. Latency p99: 12000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page to optimize | |
| keyword | No | Optional search phrase to target, max 80 chars | |
| language | No | Default: the page language |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses cost ($0.006 USDC/call), p99 latency (12000ms), the model used, the no-charge-on-failure rule, and the grounding constraint ('from the page content only, no claims the page does not make'). These are materially useful traits an agent cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and outputs, then parameters, then cost/latency. Dense but nearly every sentence earns its place; the output enumeration is somewhat list-like and long, but it substitutes for the missing output schema, so it is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param tool with no output schema and no annotations, the description fully covers inputs, the shape of the return values, grounding behavior, failure handling, cost, and latency. An agent has everything needed to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning: it explains that keyword is an optional search phrase to build around (with a concrete example) and that language defaults to the page language. That exceeds what the bare schema descriptions convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (reads a URL and returns SEO title/meta description plus generated improvements) and enumerates the exact output artifacts: current title, meta description with lengths, improved title capped at 60 chars, 140-155 char description, H1, 5-8 search phrases, and problems. That level of specificity cleanly separates it from generic siblings like page_summarize, page_extract, or site_audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the SEO focus and the optional keyword example ('windows Munich'), so an agent can infer intent, but there is no explicit when-to-use/when-not guidance and no named alternative (e.g., page_summarize for plain text, site_audit for broader audits). Minimum-viable context only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
service_finderA
x402 Service Finder (Which API Should I Call?) — Find the right paid API for a task across the whole x402 market, not only agentsvc.io: describe what your agent needs in plain words ("convert a web page to markdown", "token price on Solana", "transcribe audio") and get the best matching x402 endpoints from about 45,000 listed ones, each with provider, URL, method, price in USD, payment networks, an input hint, and whether it answered our own check with a valid 402 (reachable, checked_at, response time). Ranked by text match, repeat purchases and reachability, at most 3 per provider, no boost for agentsvc.io. Filter by max_price_usd and network. Index refreshed daily. Cost: $0.005 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What your agent needs, in plain words | |
| limit | No | ||
| network | No | Only endpoints that accept payment on this network | |
| max_price_usd | No | Only endpoints at or below this price per call | |
| include_unreachable | No | Also return endpoints that failed our last check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: cost ($0.005 USDC per call), latency p99 3000ms, daily index refresh, ranking signals (text match, repeat purchases, reachability), the max-3-per-provider cap, no boost for agentsvc.io, and what 'reachable' means (answered our own check with a valid 402). This is unusually rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense single paragraph, but front-loaded with the purpose and every sentence adds information (scope, outputs, ranking, filters, cost). A bulleted breakdown would improve scanability, and some clauses are packed tight, but there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates the returned fields (provider, URL, method, price, networks, input hint, reachable, checked_at, response time) and the ranking behavior. For a 5-parameter search tool this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3, but the description adds real meaning: it explains the reachability concept behind include_unreachable, confirms task is free-text intent, and ties max_price_usd and network to the filtering behavior. This goes beyond the schema's own parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (find the right paid API for a task) and an explicit scope ('across the whole x402 market, not only agentsvc.io'). It is clearly distinguishable from sibling lookup tools like web_search or product_lookup because it searches a curated market of x402 endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage examples ('convert a web page to markdown', 'token price on Solana') and the condition that selects the tool (you need a paid API for a task). It does not explicitly state when NOT to use it or name alternative tools, 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.
site_auditA
Website Audit (Tech, SSL, Accessibility, GDPR, Domain) — One call audits a site: tech stack, TLS certificate, accessibility (WCAG, grade), GDPR cookies and trackers before consent, domain and email security, optional screenshot. Returns a sorted issue list, grades and each section; a failed section is reported in checks while the others still return. Cheaper than calling the six checks separately. Set screenshot false to skip the image. Cost: $0.055 USDC per call. Latency p99: 60000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL or domain | |
| screenshot | No | Include a 1280x800 screenshot as base64 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: return structure ('sorted issue list, grades and each section'), failure isolation ('a failed section is reported in checks while the others still return'), cost ($0.055 USDC) and latency (p99 60000ms). Missing details on authentication flow or error handling beyond section failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph, front-loaded with purpose and scope, followed by return behavior, failure handling, cost comparison, and cost/latency. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an aggregate audit tool with no output schema, the description adequately covers return values, failure isolation, cost, and latency. It could be more explicit about payment/auth flow and the format of the issue list, but it is largely complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds only 'Set screenshot false to skip the image', which is largely redundant with the schema default and its description 'Include a 1280x800 screenshot as base64'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'audits' and resource 'site', enumerates five audit domains (tech, TLS, accessibility, GDPR, domain), and positions itself against 'the six checks separately'. An agent can immediately tell what it does and how it relates to sibling check tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Cheaper than calling the six checks separately', guiding toward aggregate use. However, it does not state when to favor individual checks (e.g., if only one domain is needed), 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.
site_crawlA
Site Crawl to Markdown — Website crawler: read a whole website or one section of it (for example every page under /docs) as clean Markdown: starts at a URL, follows same-site links breadth-first and returns up to 20 pages with title and description. Use for documentation, product catalogs or company sites. For one page use web-scrape, for a known list of URLs web-read-batch (up to 5) or web-scrape-batch (up to 20). Charged only if at least one page was read. Params: url (required), max_pages (1 to 20, default 5), max_chars per page (500 to 20000, default 4000), path_prefix (e.g. /docs). Cost: $0.005 USDC per call. Latency p99: 60000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_chars | No | ||
| max_pages | No | ||
| path_prefix | No | Only follow links whose path starts with this, e.g. /docs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses crawl strategy (breadth-first, same-site links), the maximum result count, returned fields (title and description), billing condition ('charged only if at least one page was read'), cost ($0.005 USDC) and p99 latency (60000ms). It does not cover failure/partial-crawl edge cases or whether robots.txt is respected, which keeps it just below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and scope, followed by alternatives, billing and parameter summary, then cost/latency. Dense but every sentence carries information; minor repetition of schema values keeps it a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description supplies behavior, return shape (pages with title/description), limits, billing semantics, cost and latency. Reasonably complete, with only edge-case behavior (failed pages, crawl cutoff) missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only path_prefix is described), so the description must compensate, and it does: it lists url (required), max_pages (1–20, default 5), max_chars per page (500–20000, default 4000), and path_prefix with an example. It adds the useful semantic that max_chars applies per page, meaning all four parameters are understandable without opening the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (crawl a website/section) and resource (pages as Markdown), with scope details like breadth-first same-site following and a 20-page cap. It explicitly distinguishes itself from siblings: 'For one page use web-scrape, for a known list of URLs web-read-batch... or web-scrape-batch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete use cases (documentation, product catalogs, company sites) and explicit alternatives with their limits (web-scrape for one page, web-read-batch up to 5, web-scrape-batch up to 20). The agent knows exactly when this tool is the right choice versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_mapA
Site Map (URL discovery) — List the URLs of a website without reading them: robots.txt, sitemaps and sitemap indexes plus homepage links, up to 1,000 same-site URLs with lastmod and source. A cheap first step to decide which pages to read with web-read-batch or site-crawl. Returns no page content. Params: url (site or domain, required), max_urls (1 to 1000, default 200). Cost: $0.0025 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL or domain | |
| max_urls | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it discloses the URL cap (1,000), the returned fields (lastmod, source), the absence of page content, the per-call cost ($0.0025 USDC), and p99 latency (8000ms). These are exactly the operational traits an agent needs to budget and sequence calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose before the operational details (params, cost, latency). Every clause is informative, though the trailing "Params / Cost / Latency" run-on packs several distinct facts into one sentence and could be broken up for faster scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe the return value — and it does (URLs with lastmod and source, no page content). Combined with the cost, latency and cap disclosures, an agent has everything needed to invoke and budget the call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (max_urls has no schema description), and the description compensates by giving max_urls its range (1 to 1000) and default (200), plus clarifying that url accepts "site or domain" and is required. It does not, however, explain what happens when max_urls is hit or ordering of results, so it stops short of full semantic coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list URLs of a website) and immediately qualifies the scope: robots.txt, sitemaps, sitemap indexes and homepage links, capped at 1,000 same-site URLs. It explicitly contrasts with the read-oriented siblings (web-read-batch, site-crawl), so an agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names both when to use it ("a cheap first step to decide which pages to read") and the alternatives it feeds into (web-read-batch, site-crawl). It also states an exclusion — "Returns no page content" — which prevents misuse as a content-fetch tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssl_checkA
SSL Certificate Check — Inspect SSL/TLS certificate for any domain. Returns valid boolean, days_remaining, issuer, valid_from, valid_to, subject_alt_names (SANs), fingerprint_sha256, and protocol version. Default port 443. Use for certificate expiry monitoring, security audits, or HTTPS verification. Cost: $0.009 USDC per call. Latency p99: 800ms.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port to check (default: 443) | |
| domain | Yes | Domain to check SSL for (e.g. 'github.com', 'api.example.com'). Do not include https:// |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the exact return fields, default port, cost ($0.009 USDC per call), and p99 latency (800ms). Cost and latency are unusually valuable behavioral signals. It does not mention auth/payment mechanics or error behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then return fields, then operational metadata (cost, latency). Every sentence carries information and there is no filler. Slightly dense but well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description compensates by enumerating the return values (valid, days_remaining, issuer, validity dates, SANs, fingerprint, protocol). Combined with usage, cost, latency, and port defaults, an agent has everything needed to invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both domain and port are already documented in the schema (including the default 443 and the 'no https://' caveat). The description's 'Default port 443' merely restates the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Inspect SSL/TLS certificate for any domain.' An agent immediately knows this validates certificates, distinguishing it from sibling domain tools like whois or domain_check. However, it never explicitly names or contrasts with 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear use contexts: 'certificate expiry monitoring, security audits, or HTTPS verification.' This tells the agent when to reach for it. It lacks any exclusions or named alternatives (e.g., vs. domain_check or accessibility_check), so it is clear context but not full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sui_addressB
Sui Address and SuiNS — Everything about a Sui mainnet address or SuiNS name (alice.sui): SUI balance and every other coin with symbol, staked SUI per validator with estimated rewards, USD value, its SuiNS name and latest outgoing transactions. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Sui address (0x + 64 hex) or SuiNS name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses per-call cost ($0.002 USDC) and p99 latency (2000ms), which is real operational context, but it never states that this is a read-only lookup, nor any auth, rate-limit, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads what the tool covers, followed by a short cost/latency sentence. No filler, though the payload enumeration is long enough that it reads as a list rather than a crisp summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must describe the return shape — which it does thoroughly by enumerating balances, staking, USD value, SuiNS name, and transactions. Missing only read-only confirmation and any note on error or partial-data behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single required 'address' parameter, including the '0x + 64 hex or SuiNS name' format. The description adds only the concrete SuiNS example (alice.sui), which is largely redundant with 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Sui address or SuiNS name) and enumerates the exact payload it returns: balances, staked SUI per validator, USD value, SuiNS name, and latest outgoing transactions. The chain-specific naming separates it from iota_address/btc_address/tron_address, though it never explicitly distinguishes itself from sui_tx, sui_watch, or sui_network.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no stated preconditions, and no mention of alternative siblings such as sui_tx or sui_watch. The cost and latency lines hint at invocation tradeoffs but never tell the agent when this tool is the right pick over a narrower one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sui_networkA
Sui Network and Staking — Sui mainnet in one call: epoch, latest checkpoint, reference gas price, SUI price, total stake and every active validator with staking APY, commission and stake, sorted by APY. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it discloses genuinely useful operational traits: cost ($0.002 USDC per call) and latency (p99 2000ms), plus a complete inventory of what comes back. It does not state auth requirements or that the operation is read-only, but the cost/latency disclosure is well beyond what most definitions offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded: the subject is named first, the payload list follows, and pricing/latency are compressed into two short trailing sentences. The field enumeration is long but each item carries real information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must define the return surface itself — and it does, listing every returned field including the validator sort order (by APY). With zero params and no annotations, there is nothing an agent needs before calling that is left unsaid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case — there is nothing to misinterpret. The enumerated fields describe output rather than inputs, so they add no parameter semantics but also create no ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Sui Network and Staking — Sui mainnet in one call') and enumerates exactly the payload: epoch, latest checkpoint, reference gas price, SUI price, total stake, and all active validators with APY/commission/stake. An agent immediately knows this is a network-state snapshot rather than an address/tx lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies this is the aggregate snapshot to reach for when you want network-wide state, but the description never names alternatives (sui_watch, sui_tx, sui_address, iota_network) or states when NOT to use it. Usage is inferable from the returned field list rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sui_txA
Sui Transaction Lookup — Sui mainnet transaction by digest in plain JSON: status, time, checkpoint, sender, Move calls, gas fee in SUI, balance changes per address with coin symbols, created and changed objects, events. Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | Transaction digest (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It transparently discloses mainnet scope, plain JSON output, per-call cost, and p99 latency, but omits read-only/idempotency status, not-found error behavior, and authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and identifier, followed by a compact return-field list and two short operational sentences. Every element earns its place, particularly the field enumeration since no output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one required parameter, no output schema, and no annotations, the description supplies the chain, lookup key, returned fields, cost, and latency. It is complete enough for correct invocation, with only minor edge-case/error detail missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole digest parameter is already documented as base58 in the schema. The description adds no format, validation, or alternative beyond what the schema supplies, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lookup) and resource (Sui mainnet transaction) with the required identifier (digest), and enumerates returned fields. This clearly distinguishes it from chain-specific siblings such as evm_tx, iota_tx, and btc_tx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and no named alternatives among sui_address, sui_network, sui_watch, evm_tx, or iota_tx. An agent can infer it looks up a transaction by digest, but must guess the selection criteria relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sui_watchA
Sui Wallet Watch — Watch a Sui address or SuiNS name in a loop and get only new transactions since your last call, with direction, SUI change, status and link, plus the balance. Pass the returned cursor on the next call. Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | Cursor from the previous call | |
| address | Yes | Sui address or SuiNS name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the return fields (direction, SUI change, status, link, balance), the stateful cursor contract, a concrete cost ($0.002 USDC per call) and p99 latency (3000ms). What it omits is error/empty behavior (what happens when there are no new transactions) and any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior before cost/latency metadata, and most clauses carry distinct weight (stream semantics, cursor chaining, output fields, pricing). The leading 'Sui Wallet Watch —' restates the name and is mild overhead, but overall it is dense and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must define the return surface, and it does (direction, SUI change, status, link, balance), plus operational facts (cost, latency). It is nearly complete; the only gap is the undocumented limit parameter and unaddressed empty/error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (address and cursor are described, limit is not), which puts the baseline near a 3. The description reinforces cursor semantics ('Pass the returned cursor on the next call') but adds nothing about limit's role in bounding results per call, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (watch) and resource (Sui address or SuiNS name) and scopes it as an incremental stream ('only new transactions since your last call'). This clearly separates it from sui_address (static lookup), sui_tx (single transaction), and sui_network siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'in a loop' framing and 'Pass the returned cursor on the next call' make the polling workflow explicit, so an agent knows this is a repeated-call tool rather than one-shot. However, it never names an alternative (e.g., sui_tx for one-shot lookups) 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.
tech_stackA
Website Technology Detection — Detect the technologies a website uses (CMS, frameworks, analytics, CDN, web server, ecommerce, tag managers ...) from its HTML, headers, cookies, meta tags and script URLs, matched against 7,600+ open webappanalyzer fingerprints. Returns name, categories, version where visible, confidence and evidence, plus a by-category summary. Params: url (required), min_confidence (0 to 100, default 50). Cost: $0.009 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| min_confidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden and does well: it names the input sources (HTML, headers, cookies, meta tags, script URLs), the matching corpus (7,600+ webappanalyzer fingerprints), the return fields (name, categories, version, confidence, evidence, by-category summary), plus per-call cost ($0.009 USDC) and p99 latency (6000ms). It omits auth/quota and failure behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and detection surface before output shape, params, and cost/latency, with no filler sentences. The parenthetical enumeration is dense but each clause adds selection-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, no-output-schema tool with no annotations, the description supplies the missing pieces an agent needs: return field list, cost, latency, and full parameter semantics. Only auth and error conditions are absent, which is minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: it marks url as required and fully specifies min_confidence as 0-100 with default 50 (the confidence threshold concept is explained). Minor gap: url format (scheme, whether redirects are followed) is undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Detect the technologies a website uses') and enumerates exactly what it detects (CMS, frameworks, analytics, CDN, web server, ecommerce, tag managers). It also states the detection sources and fingerprint database, which distinguishes it clearly from siblings such as seo_meta, site_audit, or url_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use obvious (tech fingerprinting of a live site) but never says when to prefer it over neighbours like seo_meta, site_audit, or accessibility_check, nor any prerequisites. Usage is implied rather than guided, so a 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_classifyA
Text Classification — Text classification with your own labels for agent pipelines: route support tickets, qualify leads, tag feedback, sort emails or moderate comments. Send the text (up to 6,000 characters) and 2 to 30 labels, optionally with a description each; get the best label with a confidence from 0 to 1 and a one-sentence reason, or every label that applies with multi_label. Labels are enforced by a JSON schema, so the answer is always one of yours. Any language. Instructions inside the text are ignored. Claude Haiku 5.5. Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to classify, max 6,000 chars | |
| labels | Yes | 2 to 30 labels: strings, or objects {label, description} | |
| multi_label | No | Return every label that applies (max 5) instead of one | |
| instructions | No | Optional extra rules, max 400 chars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so richly: input limits (6,000 chars), label count bounds (2–30), JSON-schema-enforced outputs guaranteeing answers come from the caller's labels, multi_label capping at 5, prompt-injection resistance, language coverage, model identity, per-call cost ($0.002 USDC), and p99 latency. This is exactly the behavioral disclosure a caller needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and use cases are front-loaded and the paragraph is dense with no filler, but it is a single long block that mixes usage examples, I/O semantics, and operational metadata. A little structure would improve scannability without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description takes responsibility for return values — best label with a 0–1 confidence and one-sentence reason, or all applicable labels under multi_label, always constrained to the caller's own labels. Combined with size, cost, and latency limits, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so a 3 would be defensible, but the description adds meaning beyond the schema: it explains optional per-label descriptions, the multi_label switch semantics (best label + confidence + reason vs. every applicable label), and that label adherence is enforced rather than suggested. It does not clarify the 'instructions' parameter's role, which holds it below 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a clear verb+resource ('Text classification with your own labels') and immediately enumerates concrete agent use cases — route support tickets, qualify leads, tag feedback, sort emails, moderate comments — that make it unmistakably distinct from siblings like language_detect or news_sentiment. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumerated use cases give strong context for when to reach for this tool, and the labels/multi_label framing clarifies the two operating modes. However, it never explicitly names an alternative sibling (e.g., language_detect for raw language ID) or states when NOT to use it, so it stops short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_embedA
Text Embeddings and Rerank — Sentence embeddings (all-MiniLM-L6-v2, 384 dimensions, L2-normalized, multilingual input works best in English) for semantic search, clustering and deduplication, or rerank mode: pass query + documents to get documents sorted by cosine similarity. Runs locally, texts are not stored. Params: texts (1 to 32 strings, max 2000 chars each) for embed mode, or query + documents (up to 64) and top_k for rerank mode. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| texts | No | ||
| top_k | No | ||
| documents | No | ||
| include_embeddings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: local execution, no text storage, exact cost ($0.002 USDC/call), and p99 latency (2000ms). These operational traits are exactly the kind of context annotations would otherwise supply, so this is unusually strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Information is front-loaded with the core capability first, then model details, then params, then cost/latency. It is a dense single block with em-dash clauses rather than cleanly separated sentences, but virtually every clause carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 0% schema coverage, no annotations, and no output schema, the description is nearly self-sufficient: it covers mode selection, limits, cost, latency, and privacy. Gaps remain — 'include_embeddings' is unaddressed and the embed-mode return (the 384-dim vector output) is only implied rather than stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for four of five params: it explains 'texts' (1–32, max 2000 chars — the char limit exceeds the schema, which only sets maxItems), 'query'/'documents' (up to 64), and 'top_k'. It never mentions 'include_embeddings', leaving that parameter undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Text Embeddings and Rerank') and immediately states the underlying model, dimensionality, and normalization. It distinguishes the two operational modes (embed vs rerank) clearly enough that an agent understands exactly what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases (semantic search, clustering, deduplication) and conditionally routes the agent: embed mode with 'texts', rerank mode with 'query + documents' to sort by cosine similarity. It lacks explicit when-not-to-use guidance or sibling comparisons, but the mode-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.
timezoneA
Timezone & Local Time — Resolve a city name or coordinates to its IANA timezone and return the current local time, UTC offset, DST flag and weekday. Use for scheduling across regions, 'what time is it in X', or normalizing timestamps. Params: location (required, e.g. 'Tokyo' or '35.68,139.69'). Cost: $0.002 USDC per call. Latency p99: 200ms.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City name or 'lat,lon' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: it declares the exact return fields, the $0.002 USDC per-call cost, and a p99 latency of 200ms — all behavior an agent cannot infer from the schema. It omits failure behavior for unresolvable locations, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded paragraph: capability first, then use cases, then the parameter, then cost/latency. Every clause carries information an agent can act on, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must name the return values — and it does (IANA timezone, local time, UTC offset, DST flag, weekday). Combined with the usage triggers and the single documented parameter, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'location' parameter, so the schema already documents the type and format. The description's example values ('Tokyo', '35.68,139.69') mirror the schema's 'City name or lat,lon' rather than adding new syntax. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: 'Resolve a city name or coordinates to its IANA timezone and return the current local time, UTC offset, DST flag and weekday.' The scope is narrow enough that an agent won't confuse it with siblings like geocode or holidays. It stops short of naming an adjacent tool it must not be used for, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use triggers: scheduling across regions, 'what time is it in X', normalizing timestamps. That is clear contextual guidance with no misleading claims. No explicit exclusions or named alternatives are given, so it is a solid 4, not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_ai_verdictA
AI Token Verdict (real checks) — AI token verdict built on real on-chain checks: send a token contract address (Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche, Optimism) or a Solana mint and get everything from token-verdict (grade A to F, SAFE to DANGER label, 0 to 100 score, honeypot sell simulation, buy and sell tax, mint, freeze and owner powers, liquidity, shareable verdict card) plus an AI-written take for a trader: a headline, 3 to 4 plain sentences on what the grade means, red flags, green flags and which fact would change the grade. The AI text is written by Claude Haiku 5.5 strictly from the check data: no invented numbers, no price predictions. Not financial advice. Cost: $0.015 USDC per call. Latency p99: 15000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base | |
| token | No | Token contract address (0x...) or Solana mint. Alias: tokenAddress |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and does fairly well: it names the exact output contents (grade A–F, SAFE–DANGER label, 0–100 score, honeypot sell simulation, buy/sell tax, mint/freeze/owner powers, liquidity, verdict card), states the data provenance constraint ('written strictly from the check data: no invented numbers, no price predictions'), and flags 'Not financial advice', cost and latency. Still missing: how the USDC payment is authorized/charged, and whether the call is a pure read with any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single run-on paragraph packed with nested parenthetical enumerations, and its opening clause restates the title ('AI token verdict built on real on-chain checks'). The core intent is front-loaded, but the dense listing of output fields and the absence of any structural breaks make it 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.
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 well by enumerating what comes back and constraining the AI text's provenance. Cost and latency are disclosed. The main gap is the schema's `required: []` versus the description's implication that a token target must be supplied, leaving the agent unsure whether the call can succeed without one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: `token` already documents that it accepts a 0x contract address or Solana mint, and `chain` carries an enum with a default. The description largely repeats the enum values (Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche, Optimism, Solana) without adding format, default, or validation semantics, so it neither compensates for the undocumented `chain` parameter nor exceeds the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: send a token contract address or Solana mint, receive a full token verdict plus an AI-written trader take. It implicitly differentiates from the sibling token_verdict by describing this as 'everything from token-verdict ... plus an AI-written take', but it never names token_verdict (or token_precheck/token_security) as an explicit alternative, so sibling routing is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — supply a contract address or mint and get a verdict — and the cost ($0.015 USDC) and p99 latency (15000ms) give useful call-time context. However there is no explicit when-to-use/when-not guidance, no statement of prerequisites or payment setup, and no direct comparison to the many sibling token tools (token_verdict, token_security, token_simulate), so the agent must guess when this is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_flowsA
Token Buyers and Sellers (Who Bought or Sold) — Who bought and who sold a token in the last hours: buy and sell count and USD volume, net flow, buy/sell ratio, the top buyer and seller wallets with net USD, and the largest trades, read from the swap events of its biggest DEX pools (Uniswap v2/v3 style, Aerodrome, Velodrome, PancakeSwap, Trader Joe and more) on Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche or Optimism. Flags one-sided selling and a single wallet dumping. For trading agents before or after a buy. Window 1 to 24 hours. Cost: $0.006 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base, ethereum, bsc, arbitrum, polygon, avalanche or optimism. Default base | |
| hours | No | Window in hours, 1 to 24 (shortened on very fast chains) | |
| token | Yes | Token contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.006 USDC per call), p99 latency (8000ms), and that it flags one-sided selling and single-wallet dumping. It omits auth requirements but otherwise gives rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the returned metrics, and the operational facts (cost, latency) are placed at the end. It is dense but readable; the chain list and window duplicate the schema slightly, which is the only waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description fully compensates by enumerating the return fields (buy/sell count and USD volume, net flow, ratio, top buyer/seller wallets, largest trades) plus cost and latency. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents token, chain, and hours. The description restates the chain list and the 1-24 hour window ('shortened on very fast chains') but adds no new syntax or format detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('who bought and who sold a token'), names the data computed (buy/sell counts, volume, net flow, ratio, top wallets, largest trades), and the source (swap events of biggest DEX pools). An agent can distinguish this from siblings like token_smart_money or erc20_transfers without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'For trading agents before or after a buy' gives clear usage context, and the 1-24 hour window bounds invocation. It does not, however, name sibling alternatives (e.g. token_smart_money, token_liquidity) or say when this view is the wrong choice, 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.
token_liquidityA
Token Liquidity and Slippage — Pool depth and slippage for a token: per pool (Uniswap, Aerodrome, PancakeSwap, Sushi and more) the liquidity in USD, estimated price impact for each size in sizes_usd and the largest trade at 1% and 5% impact. Use to size a trade or check if an exit is possible. Estimate based on constant product; conservative for concentrated liquidity pools. Errors with Not charged if no pool exists. Cost: $0.008 USDC per call. Latency p99: 10000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base (default), ethereum, bsc, arbitrum, polygon, avalanche or optimism | |
| token | Yes | Token contract address (0x...) | |
| sizes_usd | No | Up to 6 trade sizes in USD, default [100,1000,10000,100000] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses the estimation methodology (constant product, conservative for concentrated liquidity), error behavior ('Errors with Not charged if no pool exists'), per-call cost ($0.008 USDC), and p99 latency (10000ms). It omits only read-only/permission semantics, which are implicit for a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Information is front-loaded with the resource and output shape first, then caveats, error handling, and cost/latency. It is dense but every clause (methodology, error semantics, pricing) carries operational weight; sentence 1 is long but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema and no annotations, the description covers return contents, estimation caveats, failure behavior, cost, and latency. An agent has everything needed to decide whether to call it and how to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining what sizes_usd actually produces (price impact per size, plus the largest trade at 1% and 5% impact), which the bare parameter description does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (pool depth and slippage for a token) and enumerates exactly what is returned: per-pool USD liquidity, price impact per size in sizes_usd, and the largest trade at 1% and 5% impact. This distinguishes it clearly from adjacent crypto tools like token_simulate or evm_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear use context: 'Use to size a trade or check if an exit is possible.' However, it does not name sibling alternatives (e.g. token_simulate, token_precheck) or give explicit when-not conditions, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_precheckA
Token Pre-Trade Check — Honeypot and rug check before a trade, built for trading bots that check every token in a loop: up to 5 token addresses per call (Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche, Optimism or Solana), one decision each: ALLOW, CAUTION or BLOCK, with grade A to F, score, honeypot flag and the main reason. Based on our own on-chain checks (contract code, pools, real buy and sell simulation). Results are cached for 10 minutes, so repeat checks answer in milliseconds. Accepts token, tokenAddress or tokens. Cheaper per token than any single-token verdict. Cost: $0.004 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base, ethereum, bsc, arbitrum, polygon, avalanche, optimism or solana. Default base | |
| token | No | Single address (alternative to tokens) | |
| tokens | No | Up to 5 addresses, strings or {token, chain} | |
| tokenAddress | No | Alias of token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the methodology (own on-chain contract/pool checks plus real buy/sell simulation), 10-minute result caching, cost ($0.004 USDC per call) and p99 latency (8000ms). These are exactly the operational traits an agent needs before invoking a paid, potentially slow call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and scope in the first clause, then progressively less critical operational detail. It is dense and long, and the 'Cheaper per token than any single-token verdict' line is promotional rather than actionable, but nothing is buried badly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, so the description must supply both semantics and behavior — and it does, covering return values, chains, batch limit, cost, latency and caching. 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.
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 chain, token, tokenAddress and tokens. The description adds only a restatement of the three input aliases and the supported chain list, both of which are already in 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — a honeypot/rug pre-trade check on token addresses — and spells out the output vocabulary (ALLOW/CAUTION/BLOCK, grade A–F, score, honeypot flag). It differentiates itself from the single-token verdict family with 'up to 5 token addresses per call' and 'Cheaper per token than any single-token verdict', though it never names the specific sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: 'before a trade' and 'built for trading bots that check every token in a loop.' That is enough for an agent to know when to reach for it, but there are no explicit exclusions or named alternatives (e.g. when to prefer token_security or token_verdict for a single deep check).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_securityA
Token Risk & Honeypot Check — Token security and honeypot check with risk grade A to F for a token before buying or accepting it, on Solana (SPL and Token-2022) and on Base, Ethereum, BNB Chain, Arbitrum, Polygon, Avalanche or Optimism, computed by us directly on the blockchain. Returns a verdict (low, medium, high, critical, or incomplete if the trade simulation could not run), a one-sentence summary ready to show a user, and concrete flags. EVM: buy and sell simulation in the largest pool, including Uniswap v4 pools with hooks (Clanker, Zora and other launchpads) (honeypot, buy and sell tax), owner powers found in the contract code (mint, blacklist, pause, change tax or limits), upgradeable proxy, SELFDESTRUCT, owner share of supply, burned LP, imitation of major token symbols. Solana: freeze authority (the Solana honeypot pattern), mint authority, permanent delegate, transfer hook, transfer fee, non-transferable, frozen default state, mutable metadata, pump.fun bonding curve, top holder share when available. Both: pool liquidity on the major DEXes, token age and price. Params: token (EVM contract address or Solana mint, required), chain (base default, solana, ethereum, bsc, arbitrum, polygon; a base58 mint is detected as Solana automatically). Cost: $0.009 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base | |
| token | Yes | Token contract address (0x..., EVM) or Solana mint address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries full behavioral burden and does so well: it discloses the $0.009 USDC per-call cost, p99 latency of 8000ms, that computation is done directly on-chain, the possible verdict values including the 'incomplete' failure mode when trade simulation cannot run, and the concrete category of flags returned. This is unusually complete 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and cost/latency are front-loaded, which is good, but the body is a single wall of run-on, semicolon-filled sentences listing dozens of individual flags. Much of that flag enumeration could be trimmed without losing routing value, so it is dense and informative but not tightly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, annotation-free tool with no output schema, the description supplies a strong picture: what it returns, the cost/latency, supported chains and token standards, and detection categories. It stops short of full completeness only because the description's chain list and the enum disagree on avalanche/optimism, and no return-shape detail is given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (the chain enum has no schema description), so the description must compensate. It documents the token param's dual form (EVM 0x address or Solana mint, required) and adds genuinely new meaning by stating that a base58 mint is auto-detected as Solana, plus it notes base as the default chain. Minor gap: the param list omits avalanche and optimism even though the enum includes them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (token security / honeypot check with an A-F risk grade) and scopes it precisely to pre-buy due diligence across named chains. It is clear what the tool produces (verdict, summary, flags), but it never differentiates itself from close siblings like token_verdict, token_precheck, or token_ai_verdict, so an agent cannot tell them apart from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Before buying or accepting it" gives an implied use case, which is more than nothing. However, with four or five similar token-evaluation siblings present, the description offers no explicit when-to-use-vs-alternative routing, no exclusions, and no prerequisite guidance, leaving 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.
token_simulateA
Token Buy and Sell Simulation (Honeypot Test) — Replays a real buy and sell of the token on chain state and tells you if you can get out again: buy_succeeded, sell_succeeded, buy and sell tax in percent, honeypot reason, estimated round-trip cost in percent and USD for amount_usd, plus the pools used. Use before buying an unknown token or in a trading bot. EVM chains are simulated; Solana returns status not_simulated with authority and pool checks. No liquidity returns status no_liquidity. Cost excludes LP fees and gas. Cost: $0.012 USDC per call. Latency p99: 15000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base (default), ethereum, bsc, arbitrum, polygon, avalanche or optimism | |
| token | Yes | Token contract address (0x...) | |
| amount_usd | No | Trade size in USD, 1 to 100000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it lists the exact return fields (buy_succeeded, sell_succeeded, taxes, honeypot reason, round-trip cost, pools), discloses chain coverage limits (EVM simulated, Solana not), cost exclusions (LP fees and gas), price ($0.012 USDC) and p99 latency (15000ms).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in the first clause, then packs outputs, usage, edge cases, and cost into a dense but skimmable block. Every sentence carries information, though the run-on list of outputs and caveats is slightly crowded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must enumerate return values and edge-case statuses, which it does comprehensively, along with cost and latency. 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.
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 chain, token, and amount_usd (including enum-like chain list and the 1-100000 range). The description adds only incidental context by referencing amount_usd in the cost output, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (replays a real buy and sell of the token on chain state) plus the goal (honeypot detection / whether you can exit). It clearly differentiates from siblings like token_security, token_precheck, and token_liquidity by being a simulation rather than a static scan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it: 'Use before buying an unknown token or in a trading bot.' It also notes Solana returns not_simulated and no liquidity returns no_liquidity, which bounds applicability. It does not name a specific alternative tool to use instead, 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.
token_smart_moneyA
Token Smart Money and Whale Tracker — Smart money and whale activity for a token, straight from the chain: which large wallets are accumulating or distributing right now (buy/sell USD, net, average buy and sell price, realized profit, what they still hold), who the first buyers after launch were and whether they still hold or sold everything, and how much of the volume is bots. Trades are attributed to the wallet that really received or sent the token, so Coinbase smart wallets and aggregator routes count as the real trader. Wallet types from on-chain data: trader, fresh_wallet (< 10 tx, possible insider), smart_account, high_frequency_bot, contract. Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche, Optimism. For trading agents deciding whether to follow or avoid a token. Cost: $0.015 USDC per call. Latency p99: 25000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base, ethereum, bsc, arbitrum, polygon, avalanche or optimism. Default base | |
| hours | No | Window for current whale activity, 1 to 24 (limited to the most recent blocks the node serves, about 5.5 h on Base) | |
| token | Yes | Token contract address (0x...) | |
| min_usd | No | USD a wallet must have bought or sold to count as large. Default: 5% of the window volume, between 50 and 1000 | |
| early_buyers | No | Also list the first 20 buyers after launch and whether they still hold | |
| include_bots | No | Keep bots and contracts in large_wallets instead of listing them separately |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.015 USDC per call), latency (p99 25000ms), supported chains, the wallet-type taxonomy, the attribution rule (real receiving/sending wallet, aggregator routes), and the data-window limitation (~5.5h on Base). It omits auth requirements, pagination, and error behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and key return fields are front-loaded, and the cost/latency facts are useful. However the body is one very long run-on sentence loaded with parentheticals, which hurts scannability slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a data-fetch tool with no output schema, the description effectively substitutes as the return specification, listing the fields an agent will receive plus cost, latency, and chain coverage. It lacks any note on output shape/ordering or failure modes, but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents chain, hours, token, min_usd, early_buyers, and include_bots; the baseline of 3 applies. The description reinforces chains and wallet categorization but adds no syntax or format detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Smart money and whale activity for a token') and enumerates exactly what the agent gets back: large-wallet buy/sell USD, net, average prices, realized profit, holdings, first buyers, bot volume share. This is clearly distinguishable from siblings like token_flows or wallet_portfolio, which cover different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers a target audience ('For trading agents deciding whether to follow or avoid a token'), which implies usage, but never states when to choose this over token_flows, token_watch, or wallet_portfolio, and gives no exclusions or prerequisites. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_verdictA
Token Verdict (grade A to F) — Instant buy-or-avoid verdict for a token, with a shareable result page and preview card (share_url): send a contract address (Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche, Optimism) or a Solana mint, get a grade A to F, a label (SAFE, CAUTION, RISKY, DANGER), a 0 to 100 score and a one-line reason, built from real checks: honeypot sell simulation, buy and sell tax, mint, freeze and owner powers, owner powers in the contract code, DEX liquidity and token age, all computed by us on the blockchain. Young or illiquid tokens can never grade above C. Also returns key facts and a share_text. Params: token (address; tokenAddress also accepted), chain (default base; solana auto-detected). Cost: $0.009 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base | |
| token | No | Token contract address (0x...) or Solana mint address. Alias: tokenAddress | |
| tokenAddress | No | Alias of token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers unusually rich context: the numeric cost ($0.009 USDC per call), p99 latency (8000ms), the underlying check battery (honeypot sell simulation, taxes, mint/freeze/owner powers, liquidity, age), and the grading rule that young/illiquid tokens cap at C. It stops short of stating auth/payment mechanics or failure behavior, so not quite a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The output (grade, label, score, reason) is front-loaded immediately after the tool name, which is good structure. The single long paragraph is dense and slightly run-on but nearly every clause carries operational information; little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe returns, and it does: grade, label, 0-100 score, one-line reason, key facts, share_text and share_url. It also covers supported chains, cost and latency. Only payment/auth mechanics and error cases are left implicit, keeping it just under fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 67% schema coverage the description still adds meaning: it notes tokenAddress is an accepted alias, that chain defaults to base, that Solana is auto-detected and which chains are supported. This complements the schema's enum rather than repeating it. It doesn't explain the accepted address format beyond the schema, hence not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it produces an 'instant buy-or-avoid verdict' i.e. a grade A-F with label, score and reason for a token. The scope (buy/avoid decision) is unambiguous. However it never distinguishes itself from close siblings like token_security, token_precheck or token_ai_verdict, so an agent can't tell which token-grading tool to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The framing 'instant buy-or-avoid verdict' implies the use case (quick go/no-go on a token), which is clearer than average. But there are no explicit when-to-use rules, no prerequisites, and no mention of the competing token-analysis siblings, so routing decisions are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_watchA
Token Risk and Price Monitor (alerts on change) — Token monitoring for trading agents: re-checks a token on-chain and reports only what changed since your last call: grade downgrade (A to F), honeypot or sell tax appearing, new risk flags (mint, blacklist, owner powers), price and liquidity moves above your threshold (liquidity pulls, rug signals) and holder concentration shifts, with an alert_level (none, medium, high). Same checks as token-verdict and token-security, computed by us on the blockchain. First call saves a baseline and returns a cursor; pass it on the next call. Chains: base, ethereum, bsc, arbitrum, polygon, avalanche, optimism, solana. Params: token, chain (default base, solana auto-detected), price_move_pct (default 10), cursor. Cost: $0.008 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base | |
| token | Yes | Token contract address (0x...) or Solana mint | |
| cursor | No | Cursor from your previous call; omit on the first call | |
| price_move_pct | No | Report price and liquidity moves of at least this percentage (minimum 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does so well: it enumerates what triggers alerts (grade downgrade, honeypot, sell tax, new flags, price/liquidity moves, holder concentration), the alert_level enum, the baseline/cursor state model, supported chains, cost ($0.008 USDC/call) and p99 latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and delta semantics are front-loaded, and every clause (chains, params, cost, latency) carries operational value. It is a dense run-on paragraph with stacked em-dash lists, so slightly less scannable than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful, multi-chain monitoring tool with no output schema, the description supplies the state model (baseline + cursor), alert levels, chain coverage, cost and latency — everything an agent needs to invoke and budget the call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds meaning beyond it: 'chain (default base, solana auto-detected)' documents auto-detection that the enum alone does not reveal, and it recaps token/price_move_pct/cursor roles consistently with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('re-checks a token on-chain and reports only what changed since your last call') and immediately names its sibling equivalents ('Same checks as token-verdict and token-security'), so the agent can tell this is the delta/on-change variant rather than the full-check tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete lifecycle guidance ('First call saves a baseline and returns a cursor; pass it on the next call') and positions it against siblings token-verdict/token-security. It stops short of explicit when-not routing (e.g. 'use token_verdict for a one-shot full assessment'), so a 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.
translateA
Text Translation — Translate text between 21 languages: en, de, fr, es, it, pt, nl, pl, sv, cs, el, ru, uk, tr, ar, hi, id, vi, zh, ja, ko. Runs on our own server (Argos Translate), so the text is not sent to a third party. Max 1000 characters per call. source_lang defaults to auto-detect; confidence is the detection confidence. Pairs without a direct model are translated via English. Cost: $0.009 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to translate (max 1000 characters per call; longer text is truncated) | |
| source_lang | No | Source language code. Default: 'auto' (auto-detect). Use ISO 639-1 codes. | auto |
| target_lang | Yes | Target language, ISO 639-1 code (e.g. 'de', 'fr', 'ja') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses self-hosted processing (no third-party data sharing), truncation behavior for long text, English-pivot fallback for missing model pairs, per-call cost, and p99 latency. These are exactly the behaviors an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded — the language list and privacy model come first, then limits and cost. Slightly overpacked with operational facts, and the dangling confidence remark is the one sentence that doesn't clearly earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema and no annotations, the description covers the important unknowns: limits, cost, latency, fallback routing, and privacy. It only omits the shape of the returned translation/confidence, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: the auto-detect default behavior, truncation semantics, and the English-pivot note for pair coverage. The aside that 'confidence is the detection confidence' is slightly ambiguous since no confidence parameter or output schema is shown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Translate) and resource (text between 21 enumerated languages), so the agent knows exactly what it does. It is clearly distinguishable from siblings like language_detect or text_classify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: 1000-character cap per call, source_lang defaults to auto-detect, and the cost/speed profile, which helps decide whether to call it. It does not explicitly say when to prefer language_detect or another sibling, 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.
trends_hotA
Trending Now (hot lists) — What is trending right now: Hacker News top stories, GitHub trending repositories (stars today/week/month), most-read Wikipedia articles (any language edition), Google News top stories per country, Baidu realtime hot searches and Bilibili popular videos (China). Each item has rank, title, url and a score (points, stars, pageviews, heat, views). Params: sources (default all), limit per source (1 to 50, default 10), language (Wikipedia and Google News, default en), country (Google News, default US), since (GitHub: daily, weekly, monthly). Cost: $0.0155 USDC per call. Latency p99: 5000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | daily | |
| country | No | US | |
| sources | No | ||
| language | No | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does well: it states a per-call cost ($0.0155 USDC), p99 latency (5000ms), and the output item shape (rank, title, url, score). It omits auth/payment mechanics and rate-limit or error behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the purpose, then efficiently packs sources, output shape, parameter semantics, cost, and latency into dense but useful prose. Length is justified by the complete absence of schema descriptions, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, multi-source aggregator with no output schema, no annotations, and 0% schema coverage, the description provides the source list, output fields, parameter defaults, cost, and latency. It still leaves auth/payment mechanics and error behavior unspecified, so it is nearly complete but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents all five parameters, including defaults and ranges, and adds source-specific meaning: language applies to Wikipedia/Google News, country to Google News, since to GitHub. It does not specify country/language code formats beyond defaults, so it is strong but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific purpose: 'What is trending right now' across six named sources, with output fields rank/title/url/score. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools like news_search or web_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trending use case is implied by 'Trending Now (hot lists)' and the source list, so an agent can infer when it applies. However, there is no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as news_search for broader news retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tron_addressA
Tron Address and USDT Balance — Tron address check: TRX balance and staked TRX, USDT and USDC (TRC-20) balances, USD value, when the account was created and last active, bandwidth and energy, and warning signals (never activated, created in the last 7 days, smart contract instead of a wallet). Use before sending USDT on Tron or to check a counterparty; fresh or never-activated receiving addresses are typical for scams. Cost: $0.002 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Tron address starting with T |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses cost ($0.002 USDC per call), p99 latency (2000ms), and the exact warning signals returned. It doesn't state rate limits, auth/quota requirements, or explicitly that it is a read-only operation, leaving minor gaps for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the resource and returned fields, then usage guidance, then cost/latency. Dense but nearly every clause earns its place. Slightly list-heavy, preventing a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description fully covers return values, interpretation of those values, cost, and latency. An agent has everything needed to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage ('Tron address starting with T'), so the schema already documents it. The description adds no format or validation detail beyond the schema, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Tron address) and enumerates exactly what it reports: TRX balance, staked TRX, USDT/USDC TRC-20 balances, USD value, creation/activity dates, bandwidth/energy, and scam warning signals. This is clearly distinguishable from sibling tools like tron_watch or wallet_portfolio without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it: 'before sending USDT on Tron or to check a counterparty,' and explains the interpretation signal (fresh/never-activated addresses are typical for scams). It does not name sibling alternatives (e.g., tron_watch) to route between them, 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.
tron_watchA
Tron USDT Transfer Watch — Watch a Tron address for USDT and USDC (TRC-20) transfers in a loop: each call returns only transfers since your last call with amount, direction, counterparty, time and link, plus the TRX balance. First call covers the last hour (lookback_hours up to 6) and returns a cursor; pass it back next time. For deposit detection and payment confirmation on Tron. Cost: $0.002 USDC per call. Latency p99: 3000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Cursor from the previous call | |
| address | Yes | Tron address starting with T | |
| lookback_hours | No | First call only, 1 to 6 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the incremental/cursor model (each call returns only transfers since the last call, first call covers the last hour), the lookback cap, the returned fields, the TRX balance, the per-call cost ($0.002 USDC) and p99 latency (3000ms). That is materially more than the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph with the purpose and polling model front-loaded, then the usage, cursor mechanics, cost and latency. Every sentence carries information; a small deduction only because cost/latency and the loop mechanics are packed into the same block without visual separation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, yet the description enumerates the return fields (amount, direction, counterparty, time, link, TRX balance), the cursor chaining protocol, cost and latency, which is everything an agent needs to invoke and re-invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the field descriptions: it explains that cursor is the value returned by the previous call, that lookback_hours applies only to the first call and is cap-limited, and that address is a Tron T-prefixed address. This is more than restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Watch a Tron address for USDT and USDC (TRC-20) transfers') and scopes the result set precisely, so it is distinguishable from siblings like tron_address, evm_balance, erc20_transfers or wallet_watch without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit use context ('For deposit detection and payment confirmation on Tron'), which tells the agent when this tool is appropriate. It does not name an alternative or a when-not-to-use condition, so a 5 is not earned, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ttsA
Text to Speech — Convert text to natural speech audio (MP3, WAV or OGG) with neural Piper voices: en-female, en-male (US English) and de-male (German); all voices public domain or CC0, so the audio can be used commercially. Params: text (required, max 2000 characters), voice (default en-female, or picked from language), language (en or de), speed (0.5 to 2, default 1), format (mp3 default, wav, ogg). Returns audio_base64 and duration. Cost: $0.04 USDC per call. Latency p99: 8000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| speed | No | ||
| voice | No | ||
| format | No | mp3 | |
| language | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses cost ($0.04 USDC), p99 latency (8000ms), return fields (audio_base64 and duration), and licensing terms (public domain/CC0, commercial use allowed). These are all valuable behavioral traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, front-loaded with purpose and then parameters. It is efficient and every sentence adds information, but could be slightly better structured with line breaks for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers return values (audio_base64, duration), cost, latency, and licensing. An agent has enough information to decide to use the tool and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: text max 2000 characters, voice default en-female and options, language values, speed range and default, format default and options. Every parameter gains meaning not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (convert) and resource (text to speech audio), plus output formats and voice names. It is immediately distinguishable from sibling tools like audio_transcribe (the reverse operation) and other media tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies natural usage (when you need text-to-speech), but it does not explicitly state when to use this tool versus alternatives or any prerequisites/exclusions. No sibling comparison is given, even though audio_transcribe exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_statusA
URL Status & Redirect Check — Check whether a URL is reachable and what it returns: final status code, full redirect chain, response time, content-type, server header and content length. Use for link validation, uptime checks, canonical URL resolution or before spending money on a scrape/screenshot. Params: url (required), method (GET default, or HEAD). Cost: $0.005 USDC per call. Latency p99: 1200ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to check | |
| method | No | GET |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral load well: it discloses cost ($0.005 USDC per call), p99 latency (1200ms), and the returned payload. It doesn't state auth requirements or rate limits beyond latency, leaving a small gap, but the cost/latency/return disclosure is genuinely useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then return fields, use cases, params, and cost/latency — every sentence earns its place with zero padding. The em-dash structure keeps it scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with no output schema and no annotations, the description is complete: it names the return fields, the cost, and the latency so the agent can make an informed call. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (only 'url' is described). The description restates params — 'url (required), method (GET default, or HEAD)' — but adds no semantics beyond the schema, such as when HEAD is preferable (cheaper, no body). It compensates partially by enumerating both params, but adds little real meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('check whether a URL is reachable') and enumerates exactly what it returns: final status code, redirect chain, response time, content-type, server header, content length. This clearly separates it from siblings like screenshot, web_scrape, and webpage_reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit use cases (link validation, uptime checks, canonical URL resolution) and an alternative-selection rule: run it 'before spending money on a scrape/screenshot.' The agent knows both when to use it and when a costlier sibling is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
useragent_parseA
User-Agent Parser — Parse a User-Agent string into browser, engine, OS, device type/vendor/model and CPU, and flag bots and AI crawlers (GPTBot, ClaudeBot, PerplexityBot ...). Params: user_agent (required). Cost: $0.002 USDC per call. Latency p99: 200ms.
| Name | Required | Description | Default |
|---|---|---|---|
| user_agent | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses important operational traits: cost ($0.002 USDC per call), p99 latency (200ms), and what the response contains (browser, engine, OS, device type/vendor/model, CPU, bot flags). It does not cover auth requirements or error behavior, but for a simple read-only parse utility this is a strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with purpose and output details. Every sentence earns its place: the first defines the operation and return categories, the second specifies the required parameter, the third gives cost and latency. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple 1-parameter schema, no annotations, and no output schema, the description is nearly complete: it explains what the tool returns (parsed fields and bot flags), the required input, and cost/latency. It does not describe the exact output structure or error cases, but for this complexity level those gaps are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (the single parameter has no description in the schema). The description only states 'user_agent (required)', which is redundant with the schema's required field. It adds no format, example, or semantic meaning beyond what the schema already defines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Parse) and resource (User-Agent string), and enumerates the output components (browser, engine, OS, device, CPU) plus bot/AI crawler detection. An agent can immediately distinguish this from all sibling tools, none of which parse user-agent strings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool when you have a User-Agent string and need its parsed components or bot classification. It does not state exclusions or alternatives, but none exist among the siblings, so the context is sufficient without them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vat_validateA
EU VAT Number Validation (VIES) — Validate an EU VAT identification number live against the official EU VIES service, with registered company name and address where the member state discloses them. Checks the national format first. Not charged if the member state service is temporarily unavailable. Params: vat_number (with country prefix, e.g. NL004495445B01, DE811569869) or vat_number + country_code. Cost: $0.0045 USDC per call. Latency p99: 6000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| vat_number | Yes | VAT number, ideally with EU country prefix | |
| country_code | No | Two-letter EU code if the number has no prefix (EL for Greece, XI for Northern Ireland) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the live VIES source, that a national format check runs first, that company name/address are returned only where the member state discloses them, and that the call is not charged when the member state service is unavailable. Pricing ($0.0045) and p99 latency (6000ms) are also given. It still omits error/non-found behavior and any auth or rate-limit notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key facts (what it validates, source, format pre-check, billing behavior, params, cost, latency) are front-loaded into a compact block with no filler. The trailing param/cost/latency list is slightly listy and overlaps the schema, but each item is decision-relevant for an agent weighing the call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter validation tool with no output schema and no annotations, the description covers the source of truth, return fields, partial-disclosure caveat, billing exception, cost, and latency. Only failure modes (invalid format, number not found, timeout) are left unaddressed, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds concrete prefixed examples (NL004495445B01, DE811569869) and spells out the two accepted input shapes ('vat_number with prefix' or 'vat_number + country_code'), which meaningfully clarifies how the two parameters interact beyond the field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Validate an EU VAT identification number live against the official EU VIES service') and scopes it precisely to EU VAT IDs, which cleanly separates it from siblings like iban_validate, email_validate, and phone_validate. An agent can identify the tool's domain without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for invocation: the number may be passed with a country prefix or with a separate country_code, and it notes 'EL for Greece, XI for Northern Ireland' via the schema. There is no explicit when-not or named alternative (e.g. versus iban_validate for bank accounts), 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.
vin_decodeA
VIN Decoder — Decode a 17-character vehicle identification number with NHTSA vPIC: make, model, model year, trim, body, doors, engine (cylinders, displacement, hp, fuel, electrification), drive, transmission, manufacturer and plant. Validates format and the check digit (mandatory for North American VINs). Best coverage for vehicles sold in the US. Params: vin (required). Cost: $0.0035 USDC per call. Latency p99: 2000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | Yes | 17-character VIN |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the data source, the validation behavior (format plus mandatory check digit for North American VINs), the coverage limitation, the per-call cost ($0.0035 USDC), and p99 latency (2000ms). These are exactly the operational facts an agent needs before invoking a paid, network-backed call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the returned fields, then validation, coverage, params, cost, and latency in a compact structured run. The field enumeration is long but each item is informative for an agent deciding whether the tool returns what it needs; no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description enumerates the decoded fields (make, model, year, trim, body, doors, engine specs, drive, transmission, manufacturer, plant), effectively documenting the return payload, and it covers cost, latency, and validation. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as '17-character VIN'. The description only restates 'vin (required)', adding no format, syntax, or normalization guidance 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.
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 vehicle identification number') and names the underlying source (NHTSA vPIC). No sibling tool overlaps this function, and the description immediately distinguishes it as a VIN-specific decoder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when it works well ('Best coverage for vehicles sold in the US') and notes the check-digit requirement for North American VINs, which implies limits for non-NA VINs. It does not name an alternative tool, but no sibling performs a comparable decode, so this is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_portfolioA
Wallet Portfolio Across Chains — Portfolio of any wallet in one call with total USD: for an EVM address the native coin and major tokens on Base, Ethereum, BSC, Arbitrum, Polygon, Avalanche and Optimism at once; for a Solana address SOL and every SPL token with a market price; Bitcoin and Tron addresses too. Per asset amount and USD, totals per chain. For agents that check a counterparty, a treasury or their own funds before acting. Cost: $0.005 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM (0x...), Solana, Bitcoin or Tron address | |
| min_usd | No | Hide assets worth less |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses the two traits an agent most needs to plan a call: cost ($0.005 USDC per call) and p99 latency (4000ms), plus the shape of the result (per-asset amount and USD, totals per chain). It does not mention failure/partial-chain behavior or rate limits, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core value (multi-chain portfolio in one call) before chain detail, then closes with the practical cost/latency facts. The opening sentence is dense and list-heavy but each clause carries distinct information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates by describing chain coverage, per-asset and per-chain output granularity, cost and latency. That is nearly complete for a read-only aggregation tool, missing only edge-case behavior such as unindexed or empty wallets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, which sets the baseline at 3. The description echoes the address families (EVM, Solana, Bitcoin, Tron) but adds no extra semantics for the address format or the min_usd threshold behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (wallet portfolio across chains) and verb-like scope (one call, total USD), then enumerates the exact chains and asset types covered per address family. It clearly separates itself from single-chain siblings like evm_balance, btc_address and tron_address by emphasizing one-call multi-chain aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the situations it serves: 'check a counterparty, a treasury or their own funds before acting.' That gives a clear use context, and 'in one call' implies preference over per-chain tools, but no sibling is named as an alternative or exclusion the way a 5 would require.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_watchA
Wallet Activity Monitor (balance changes, outgoing tx) — Wallet monitoring for agents: watch an EVM address and get only what changed since your last call: native coin and token balance deltas (USDC always included, up to 10 more tokens) and the number of outgoing transactions. Read directly from the blockchain. First call saves a baseline and returns a cursor; pass it on the next call. For treasury and payment tracking, whale and smart-money watching, deposit detection. Chains: base, ethereum, bsc, arbitrum, polygon, avalanche, optimism. Params: address, chain (default base), tokens (list of ERC-20 contracts), min_change_pct (ignore smaller balance moves), cursor. Cost: $0.003 USDC per call. Latency p99: 4000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | base | |
| cursor | No | Cursor from your previous call; omit on the first call | |
| tokens | No | Extra ERC-20 contracts to track (USDC is always included) | |
| address | Yes | EVM address (0x...) | |
| min_change_pct | No | Only report balance changes of at least this percentage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses stateful first-call baseline behavior and cursor reuse, blockchain source, cost ($0.003 USDC/call), p99 latency, and the USDC-always-included guarantee. This is unusually rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then layers mechanism, use cases, chains, params, and cost/latency. Every sentence is informative, though the parenthetical-heavy style and inline param enumeration make it denser than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description covers what is returned (balance deltas, outgoing tx count, cursor), the supported chains, cost, and latency — 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3, but the description adds real meaning: cursor semantics (omit on first call), tokens as extra ERC-20 contracts with a 10-item cap, and min_change_pct as a balance-move threshold. It reinforces rather than merely repeats the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('watch an EVM address') and precise scope: only deltas since the last call, native + token balances, outgoing tx count. This clearly separates it from snapshot-style siblings like evm_balance and from wallet_portfolio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete use cases (treasury/payment tracking, whale and smart-money watching, deposit detection) and explains the cursor model for repeat polling. It gives clear context but never explicitly contrasts itself with the closest alternatives (evm_balance, wallet_portfolio, the other *_watch tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weatherA
Weather Data — Weather forecast and current weather for any city or lat,lon worldwide, from MET Norway: daily forecast up to 10 days plus optional hourly forecast up to 48 hours. Current: temperature, feels like, humidity, wind and gusts, precipitation, cloud cover, pressure, conditions text. Daily: min/max, conditions, precipitation sum and probability, max wind, UV index, sunrise/sunset. Params: location (city name like 'Berlin' or 'lat,lon'), days (1 to 16, default 3), hours (0 to 48 hourly steps, default 0), units ('metric' default or 'imperial'). forecast_3d is kept for older clients. Cost: $0.002 USDC per call. Latency p99: 1500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days of daily forecast (the model reaches about 9.5 days) | |
| hours | No | Hourly forecast steps (0 = none) | |
| units | No | metric | |
| location | Yes | City name (e.g. 'Berlin'), or lat,lon string (e.g. '52.52,13.41'). Default: Berlin | Berlin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the data source (MET Norway), the per-call cost ($0.002 USDC), and p99 latency (1500ms). It omits error/failure behavior and rate limits, so it is not exhaustive, but the operational context is far above baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then a well-organized breakdown of current vs daily fields, params, and cost/latency. It is dense rather than rambling, though the return-field inventory is longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly enumerates the returnable current and daily fields, plus cost, latency, and param defaults. An agent has everything needed to call it correctly aside from the days-range error noted above.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
It enumerates all four params with defaults and even explains enum values, adding real value over the 75% schema coverage. However, it states days '1 to 16' while the schema caps maximum at 10 and its own schema note says the model reaches ~9.5 days — an inaccurate range that could lead an agent to request an invalid value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (weather forecast + current weather) with an explicit scope ('any city or lat,lon worldwide') and names the upstream source (MET Norway). No sibling tool overlaps with weather, so an agent can identify it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: worldwide coverage, forecast horizon, and the accepted location formats. It notes 'forecast_3d is kept for older clients,' which is a useful routing hint, but it never states when NOT to use this tool or how it relates to 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.
webpage_readerA
Webpage Reader — Read ONE JavaScript-heavy page (single-page apps, dashboards, content loaded after page load) in a real Chromium browser and get the rendered text with title, description, word_count and optional links. Slower and pricier than web-scrape: use it only when web-scrape returns little or no content. Params: url (required), include_links, max_chars (default 8000). Cost: $0.009 USDC per call. Latency p99: 3200ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to read and extract content from | |
| max_chars | No | Maximum characters of text to return (truncated with …) | |
| include_links | No | If true, include up to 50 links found on the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers: per-call cost ($0.009 USDC), latency (p99 3200ms), resource scope ('ONE' page), execution method (real Chromium), and the exact shape of the return (rendered text plus title, description, word_count, optional links). This is unusually rich behavioral disclosure for a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then routing guidance, then params, cost, and latency — a logical order with no filler. Slight deduction because the inline 'Params:' enumeration duplicates information already contained in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates return fields (title, description, word_count, optional links), and it covers cost, latency, single-page scope, and sibling routing. Nothing an agent needs to select or invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters with types and defaults. The description's 'Params:' line only restates names and the max_chars default without adding syntax or format meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read ONE JavaScript-heavy page') with a precise technical qualifier ('in a real Chromium browser') and names the exact family of pages it targets (SPAs, dashboards, post-load content). An agent can immediately distinguish it from web_scrape, web_read_batch, and page_extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('only when web-scrape returns little or no content') and when not to (slower and pricier than web-scrape), naming the alternative directly. This is textbook when/when-not/alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_read_batchA
Web Read Batch — Read 2 to 5 pages whose URLs you already know in one call, each as clean Markdown with title and description, fetched in parallel. Cheaper and faster than calling web-scrape once per URL; for 6 to 20 URLs use web-scrape-batch. A failed page is reported with its error while the others still return; charged only if at least one page was read. To find URLs first, use site-map (one site) or search-read (a question). Params: urls (1 to 5, required), max_chars per page (500 to 30000, default 6000). Cost: $0.005 USDC per call. Latency p99: 9000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1 to 5 http(s) URLs | |
| max_chars | No | Maximum Markdown characters per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: parallel fetching, per-page partial failure ('A failed page is reported with its error while the others still return'), conditional billing ('charged only if at least one page was read'), cost ($0.005 USDC per call) and p99 latency (9000ms). These are exactly the traits an agent needs to plan cost and error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but zero waste: scope first, then alternatives, then failure/billing behaviour, then params, cost and latency. Every clause supplies information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description states the return format ('clean Markdown with title and description') and the failure shape. Combined with cost, latency, and size bounds, an agent has everything needed to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates both parameters with their bounds and default, adding little beyond the schema, and it introduces a minor inconsistency by saying '2 to 5 pages' while the schema and its own params line allow 1 to 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope ('Read 2 to 5 pages whose URLs you already know in one call') and immediately contrasts itself with web-scrape (one URL at a time) and web-scrape-batch (6-20 URLs). An agent can distinguish it from every neighbouring read/scrape 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing rules are given in both directions: 'for 6 to 20 URLs use web-scrape-batch' and 'To find URLs first, use site-map (one site) or search-read (a question)'. It also implies when not to use it, since it only handles URLs already known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_scrapeA
Web Scrape (URL to Markdown) — URL to Markdown web scraper: read any web page as clean, LLM-ready Markdown. Default tool for reading ONE web page whose URL you have: returns clean Markdown (title, meta description, main content with headings, lists and links); Markdown and plain-text files such as llms.txt or README.md come back unchanged. The fastest and cheapest way to give an LLM the content of a page. If a JavaScript app comes back nearly empty, set render:true (real browser, slower, plain text) or use webpage-reader. For 2 to 5 URLs use web-read-batch, for 6 to 20 web-scrape-batch (one payment), for a whole site site-crawl, and if you have a question but no URL search-read. Params: url (required), max_chars (default 8000, max 60000), include_links, render. Cost: $0.0025 USDC per call. Latency p99: 3500ms.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL to scrape | |
| render | No | Render with a headless browser (for JavaScript-heavy pages). Returns plain text instead of Markdown. | |
| max_chars | No | Truncate Markdown after this many characters | |
| include_links | No | Also return up to 100 absolute links found on the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so: it discloses cost ($0.0025 USDC per call), p99 latency (3500ms), the render tradeoff (real browser, slower, plain text instead of Markdown), the graceful handling of Markdown/plain-text files like llms.txt or README.md, and the near-empty JS failure mode. These are exactly the operational facts an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and default-use statement are front-loaded, and the routing sentence is dense but efficient. It is one long block of prose rather than a broken-up structure, which slightly hurts scanability, but virtually every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain returns, and it does: title, meta description, main content with headings/lists/links, unchanged pass-through for plain-text files, and up to 100 absolute links when include_links is set. Combined with cost, latency, and fallback guidance, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, establishing a baseline of 3. The description restates max_chars/include_links/render and adds only marginally beyond the schema (render's relative slowness and the plain-text output switch), so it does not materially out-inform the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line gives a specific verb+resource ('URL to Markdown web scraper: read any web page as clean, LLM-ready Markdown') and immediately scopes it to 'ONE web page whose URL you have'. It explicitly differentiates from batch, crawl, and search siblings, so an agent can select 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names itself the 'Default tool for reading ONE web page' and then routes by count: web-read-batch for 2-5, web-scrape-batch for 6-20, site-crawl for a whole site, search-read when there is no URL, and webpage-reader as a JavaScript fallback. Both when-to-use and when-to-use-something-else are stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_scrape_batchA
Web Scrape Batch (up to 20 URLs to Markdown) — Bulk web scraper: read up to 20 web pages in ONE paid call, each as clean, LLM-ready Markdown with title and meta description. One payment instead of 20, pages fetched in parallel, duplicate URLs read once. Use when your agent works through a list of URLs (search results, product pages, a sitemap, a link list). A failed page is reported with its error while the others still return; charged only if at least one page was read. For a single URL use web-scrape, to find the URLs of one site first use site-map. Params: urls (1 to 20, required), max_chars per page (500 to 30000, default 8000), include_links. Cost: $0.05 USDC per call. Latency p99: 20000ms.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1 to 20 public http(s) URLs | |
| max_chars | No | Maximum Markdown characters per page | |
| include_links | No | Also return up to 100 absolute links per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does so well: parallel fetching, deduplication ('duplicate URLs read once'), partial-failure behavior ('a failed page is reported with its error while the others still return'), billing rule ('charged only if at least one page was read'), cost ($0.05 USDC) and latency (p99 20000ms). This is exactly the operational context an agent needs for a paid mutation-free network call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose and the 'one paid call' value proposition come first, then usage routing, then failure/billing semantics, then params, cost and latency. The trailing params enumeration partially duplicates the schema, which is the only real redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description still covers return format (clean LLM-ready Markdown with title and meta description), error behavior, billing, cost and latency. 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.
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 three parameters with types, ranges and defaults. The description's param list ('urls (1 to 20, required)', 'max_chars per page (500 to 30000, default 8000)', 'include_links') largely restates schema bounds rather than adding meaning like format or interaction semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (bulk web scraper that reads up to 20 URLs to Markdown) and distinguishes itself from siblings by name (web_scrape for single URLs, site_map to discover URLs). An agent can tell exactly what this does and how it differs from adjacent tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it ('when your agent works through a list of URLs: search results, product pages, a sitemap, a link list') and routes to alternatives with conditions ('For a single URL use web-scrape, to find the URLs of one site first use site-map'). 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.
web_searchA
Web Search — Quick factual lookup: a plain-language summary (abstract) plus up to 5 relevant links from Wikipedia. Best for people, places, concepts, history and science. Returns links, not page content: to get the content of the top results in the same call, use search-read. Not for breaking news: use news-search. Params: query (required). Cost: $0.0035 USDC per call. Latency p99: 600ms.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string (e.g. 'current Bitcoin price', 'capital of France', 'Next.js 15 release date') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the result shape ('Returns links, not page content'), the source (Wikipedia), the cap (up to 5 links), the cost ($0.0035 USDC per call) and p99 latency (600ms). It stops short of payment/auth mechanics, rate limits or failure behavior for a paid per-call endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool returns before routing guidance, and every sentence carries distinct information (result shape, subject fit, two alternatives, cost, latency). The only near-waste is restating that query is required, which is negligible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description fully characterizes the return (abstract + up to 5 links from Wikipedia) plus cost and latency, which is everything an agent needs to invoke and price the call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself supplies query examples, so the description's 'Params: query (required)' adds nothing beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting on a single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (web search) and pins down the exact output: a plain-language abstract plus up to 5 Wikipedia links, with named subject domains (people, places, concepts, history, science). It explicitly distinguishes itself from search_read (content retrieval) and news_search (breaking news), so an agent can select 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('Best for people, places, concepts, history and science'), an explicit when-not ('Not for breaking news'), and names the two alternative tools with the condition that selects each (search-read for page content, news-search for current events). 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.
whoisA
WHOIS Lookup — Domain registration lookup via RDAP (modern WHOIS). Returns registrar, registrar_url, created_at, updated_at, expires_at, days_until_expiry, name_servers array, status array, and registrant_country. Clean JSON, no raw WHOIS text to parse. Covers all major TLDs. Cost: $0.0045 USDC per call. Latency p99: 700ms.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to look up (e.g. 'github.com', 'openai.com'). Include TLD, exclude https:// |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses important traits beyond a bare description: the return fields, clean JSON output, no raw WHOIS parsing, major TLD coverage, cost per call, and p99 latency. It does not cover authentication or rate limits, but it is substantially informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then efficiently lists return values, output cleanliness, TLD coverage, cost, and latency. Every sentence adds useful information with no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by listing the exact return fields and clarifying JSON format. For a simple one-parameter lookup tool with no annotations, this provides enough context for an agent to understand what it will receive and what the call costs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the single 'domain' parameter is fully documented in the schema with examples and formatting guidance. The description does not add parameter-level meaning beyond what the schema already provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'WHOIS Lookup — Domain registration lookup via RDAP (modern WHOIS).' It clearly distinguishes itself from generic DNS or SSL tools by focusing on registration data, but it does not explicitly name alternatives such as dns_lookup or domain_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the phrase 'Domain registration lookup,' but there is no explicit guidance on when to use this tool versus sibling tools like domain_check or dns_lookup. No conditions, exclusions, or alternatives are provided.
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.
127 tool updates
v1.0.0- First observed
accessibility_check - First observed
agent_inbox - First observed
agent_memory - First observed
agent_run - First observed
airport_status - First observed
answer_with_sources - First observed
audio_transcribe - First observed
barcode - First observed
btc_address - First observed
btc_fees - First observed
btc_timestamp - First observed
btc_timestamp_verify - First observed
btc_tx - First observed
btc_watch - First observed
chart_render - First observed
citation_check - First observed
company_brief - First observed
company_enrich - First observed
company_lookup - First observed
crypto_news - First observed
crypto_prices - First observed
cve_lookup - First observed
defi_tvl - First observed
defi_yields - First observed
dev_search - First observed
diagram_render - First observed
discussion_search - First observed
dns_lookup - First observed
doc_convert - First observed
doc_parse - First observed
domain_check - First observed
domain_compliance - First observed
email_validate - First observed
email_verify - First observed
erc20_info - First observed
erc20_transfers - First observed
evm_balance - First observed
evm_tx - First observed
exchange_rates - First observed
feed_watch - First observed
gas_price - First observed
geocode - First observed
holidays - First observed
html_to_pdf - First observed
hyperliquid - First observed
iban_validate - First observed
image_alt_text - First observed
image_resize - First observed
invoice_extract - First observed
iota_address - First observed
iota_network - First observed
iota_notarize - First observed
iota_tx - First observed
iota_verify - First observed
iota_watch - First observed
ip_lookup - First observed
kyb_check - First observed
language_detect - First observed
macro_data - First observed
news_search - First observed
news_sentiment - First observed
ocr - First observed
package_check - First observed
page_extract - First observed
page_summarize - First observed
page_watch - First observed
paper_search - First observed
pdf_extract - First observed
perp_funding - First observed
phone_validate - First observed
pii_redact - First observed
postal_code - First observed
prediction_markets - First observed
privacy_check - First observed
product_lookup - First observed
prompt_injection_check - First observed
qr_code - First observed
research_report - First observed
rss_fetch - First observed
sanctions_screen - First observed
satellite_compare - First observed
satellite_image - First observed
scam_message_check - First observed
screenshot - First observed
search_read - First observed
sec_filings - First observed
seo_meta - First observed
service_finder - First observed
site_audit - First observed
site_crawl - First observed
site_map - First observed
ssl_check - First observed
sui_address - First observed
sui_network - First observed
sui_tx - First observed
sui_watch - First observed
tech_stack - First observed
text_classify - First observed
text_embed - First observed
timezone - First observed
token_ai_verdict - First observed
token_flows - First observed
token_liquidity - First observed
token_precheck - First observed
token_security - First observed
token_simulate - First observed
token_smart_money - First observed
token_verdict - First observed
token_watch - First observed
translate - First observed
trends_hot - First observed
tron_address - First observed
tron_watch - First observed
tts - First observed
url_status - First observed
useragent_parse - First observed
vat_validate - First observed
vin_decode - First observed
wallet_portfolio - First observed
wallet_watch - First observed
weather - First observed
web_read_batch - First observed
web_scrape - First observed
web_scrape_batch - First observed
web_search - First observed
webpage_reader - First observed
whois
TDQS
Scored across 127 tools
Massive set with many overlapping tool clusters: multiple web search/read variants (web_search, news_search, search_read, answer_with_sources), token risk/verdict tools (token_verdict, token_ai_verdict, token_security, token_precheck, token_watch), company/KYB tools (company_lookup, company_brief, company_enrich, kyb_check, domain_compliance), and blockchain explorers. Although descriptions differentiate use cases, the sheer number of similar tools makes misselection likely.
Nearly all names use snake_case with a resource_action pattern (e.g., web_search, token_verdict, company_lookup), but some single-word nouns (weather, screenshot, whois, translate) and minor variations break the otherwise consistent convention. Still largely predictable and readable.
127 tools far exceeds any reasonable scope, with many overlapping and niche tools that do not each earn a distinct place. This falls squarely into the extreme mismatch category (50+ tools) and is unwieldy for an agent to navigate.
Broad coverage across web scraping, crypto/blockchain, AI tasks, documents, and validation, but notable gaps remain: no general organic web search, no email/SMS sending, no calendar, and no image generation. The sprawling surface also lacks lifecycle depth for many domains.
Maintenance
Related MCP Connectors
10 pay-per-call tools for AI agents: QR, screenshots, DNS, OCR, PDF, email & more. USDC on Base.
Pay-per-call data APIs for AI agents. USDC on Base via x402. 33 tools, no signup.
Pay-per-use tool API for AI agents. Free tier, x402 USDC micropayments, or API key.
Pay-per-call APIs built for AI agents: crypto market data, onchain checks, x402 tools, and the web and documents (web search, page fetch and extract, screenshots, PDF to text, an HTTP proxy, x402 marketplace search and pre-pay quotes). No API keys, no signup. Agents pay per call via x402 in USDC on Base.
Related MCP Servers
- AlicenseAqualityDmaintenance22 MCP tools for AI agents: crypto prices and trading signals (53 coins), stock prices and company financials, forex rates and conversion, and web scraping with AI summaries. All powered by x402 USDC micropayments on Base. $0.01-$0.25 per request.2219 npmMIT
- AlicenseNot gradedqualityBmaintenanceWebsite intelligence tools for AI agents. Ten pay-per-call tools via x402 micropayments (USDC on Base) — no accounts, no API keys.1MIT
- AlicenseAqualityDmaintenanceProvides AI agents with 10 pay-per-call utility tools (QR generation, DNS lookup, OCR, etc.) using USDC on Base via the x402 protocol, with agent's private key never leaving the agent.1119 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to use pay-per-use web scraping, Base blockchain analytics, and PDF text extraction tools, monetized via x402 USDC micropayments.MIT