Skip to main content
Glama

Agent Data Tools: Utilities

Server Details

103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Nutshell2000/agent-data-tools
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 103 tools

Disambiguation3/5

Most tools are individually recognizable, but a systematic pattern of duplication exists: pack_json_toolbox/pack_string_toolbox/pack_encoding_toolbox/pack_hash_toolbox/pack_id_toolbox each overlap heavily with the atomic tools (json_format, case, base64_encode, hash, uuid), and text_extract vs pack_text_analysis vs text_keyword_density do much the same work. echo and ping are near-identical diagnostics, and date_add vs date_business_days both add business days. An agent must read pricing/note clauses to know which of two overlapping tools to pick.

Naming Consistency4/5

Nearly everything is snake_case, so the surface is visually predictable, but the verb convention is mixed: many tools are bare nouns (hash, slug, color, dice, qr, uuid, iss, unix) while others are verb_noun or noun_verb (validate_iban, calc_bmi, date_diff, random_pick). The pack_* prefix is a useful grouping convention that is applied consistently across bundles.

Tool Count2/5

103 tools is far beyond what an agent can reliably scan and select from in one context, and part of the bloat comes from bundle tools duplicating atomic ones rather than from genuinely new capability. The catalog nature of the server ('Utilities') justifies breadth, but the count is still heavy relative to the coherence of any single call.

Completeness3/5

Encoding, hashing, dates, math, text, JSON/YAML/XML/CSV, validation, random, geo, network and a full memory CRUD set are all covered well. However, several tools reference a web-page fetch/extract tool and a /search endpoint that are not in this tool set, creating dead-end instructions, and there is no timezone conversion among the date tools, so common follow-on steps can't be completed.

Available Tools

103 tools
air_qualityAir quality nowA
Read-only
Inspect

Current air quality at a point: European and US air-quality index, PM2.5, PM10, ozone, nitrogen dioxide, sulphur dioxide and carbon monoxide (Open-Meteo, CAMS model data). Use for health, outdoor-activity and travel decisions. Example: lat=59.33, lon=18.07. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
latYesLatitude (-90 to 90)
lonYesLongitude (-180 to 180)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, but the description adds genuinely new operational context: per-call pricing via x402 USDC or card key, 25 free calls, failed calls free, and the practical consequence that repeated identical calls are still charged. The only redundancy is "reads or computes only and changes nothing", which restates readOnlyHint.

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

Conciseness4/5

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

The output payload is front-loaded in the first sentence, then usage, example, and cost. Every sentence carries information, though the pricing clause is dense and could be split for readability, and "reads or computes only and changes nothing" is the one phrase that could be cut without loss.

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

Completeness4/5

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

With only two fully documented required parameters and no output schema, the description compensates well by listing the exact quantities returned and the model source. It does not state units or the response shape, but for a two-parameter lookup tool this is close to sufficient.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters carry their own range documentation (-90 to 90, -180 to 180), so the schema does the heavy lifting. The description adds only a worked example (lat=59.33, lon=18.07), which is mildly useful but adds no coordinate-format or rounding semantics beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

"Current air quality at a point" gives a specific verb and resource, and the description enumerates the exact metrics returned (European and US AQI, PM2.5, PM10, O3, NO2, SO2, CO) plus the upstream source (Open-Meteo, CAMS). No sibling tool in the list covers air quality, so it is trivially distinguishable from elevation, uv, and ip_geolocate.

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

Usage Guidelines4/5

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

"Use for health, outdoor-activity and travel decisions" gives a concrete usage context, and the example coordinates show the calling convention. It stops short of explicit when-not guidance or naming an alternative (e.g. the uv tool for UV-only needs), so it is clear but not routing-complete.

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

barcodeBarcode generator: Code 128 or EAN-13 as SVGA
Read-only
Inspect

Generate a barcode as an SVG image: Code 128 for any printable ASCII text (switching to the compact numeric set for runs of digits, with the mod-103 check symbol), or EAN-13 for 12 or 13 digits (the check digit is computed or verified). Set bar width and height and whether to print the text below. Returns the SVG and a data URL ready for an tag. Use for shipping labels, product codes, tickets or inventory; for QR codes use qr. Example: text=AGENT-12345. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesWhat to encode: ASCII text for Code 128, or 12-13 digits for EAN-13
typeNocode128 (default) or ean13
labelNotrue (default) to print the text below the bars
widthNoModule (narrowest bar) width in pixels, 1-6 (default 2)
heightNoBar height in pixels, 20-300 (default 80)

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, but the description adds substantial context beyond them: the pricing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and the fact that each call is charged so repeats are not free. The 'reads or computes only and changes nothing' line also reconciles with the counterintuitive idempotentHint=false by explaining the cost basis.

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

Conciseness4/5

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

Dense and front-loaded — the encoding options, output format, usage, and pricing all appear in a logical order with no filler. It is on the longer side, but nearly every clause carries actionable information for the agent.

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

Completeness5/5

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

Though there is no output schema, the description explicitly states the return value (SVG plus a data URL ready for an <img> tag), covers encoding defaults, and discloses the cost model. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% so the schema already documents all five parameters, but the description adds genuine encoding semantics: the mod-103 check symbol for Code 128's numeric subset, and that EAN-13's check digit is computed or verified. These details go beyond the schema's terse field descriptions.

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

Purpose5/5

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

States a specific verb (generate) and resource (barcode as SVG), and names both supported symbologies (Code 128, EAN-13) plus their input constraints. Explicitly routes QR users to the sibling qr tool, so the agent can distinguish it without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete use cases (shipping labels, product codes, tickets, inventory) and an explicit alternative ('for QR codes use qr'). Provides a worked example (text=AGENT-12345) and notes EAN-13's 12-or-13-digit requirement, so the agent knows exactly when and how to select it.

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

base64_decodeBase64 decode: decode base64 or URL-safe base64 back to textA
Read-only
Inspect

Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ=. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe base64 text

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly, destructive, and idempotent hints, so the bar is lower. The description adds genuinely non-redundant context: missing padding is tolerated, pricing model (first 25 free, $0.01/call, failed calls free), and reinforces non-idempotent cost behavior ('repeats are not free').

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

Conciseness4/5

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

Front-loaded with the operation, then tolerance, then use cases, then pricing. The pricing sentence is longer than strictly needed but is behaviorally relevant to the calling agent; nothing is wasted on restating the name.

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

Completeness4/5

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

For a single-parameter utility with no output schema, the description covers input forms (standard/URL-safe, padding tolerant), usage context, and cost behavior. Only the failure mode (what happens on invalid base64) is left implicit.

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

Parameters4/5

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

Schema coverage is 100% and the single parameter is described as 'The base64 text'. The description goes beyond the schema by noting padding tolerance and giving a concrete invocation example (text=aGVsbG8gd29ybGQ=), which clarifies accepted input forms.

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

Purpose5/5

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

States a specific verb+resource: 'Decode standard or URL-safe base64 to UTF-8 text', including both variants handled. The sibling base64_encode is implicitly the inverse, and the title/description make the direction of the operation unambiguous.

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

Usage Guidelines4/5

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

'Use to read encoded headers, tokens and data URLs' gives concrete use cases, which distinguishes it from base64_encode and hints at where the input comes from. No explicit when-not or named alternative, but the direction (decode vs encode) is clear from the definition.

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

base64_encodeBase64 encode: encode text as base64 and URL-safe base64A
Read-only
Inspect

Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to encode

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description's 'reads or computes only' is a mild restatement. The real added value is operational: per-call pricing, a free tier of 25 calls, and that failed calls are not charged — cost behavior an agent cannot get from annotations. It does not describe output formatting details beyond naming the two variants.

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

Conciseness4/5

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

Purpose and second output are front-loaded, and every sentence carries information. The closing sentence is dense, packing pricing, free tier, failure policy and the repetition warning together with an inline '(/credits)' fragment, which slightly hurts readability but does not waste content.

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

Completeness5/5

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

The tool has one simple parameter and no output schema, and the description compensates by saying exactly what comes back (standard base64 plus URL-safe variant). With annotations covering side-effect behavior and the description covering cost and return shape, an agent has everything needed to call it correctly.

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

Parameters4/5

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

Schema coverage is 100% for the single 'text' parameter, so the baseline would be 3. The description adds a concrete example ('text=hello world') that clarifies the input is raw, unencoded text rather than an already-encoded string, which is a meaningful disambiguation.

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

Purpose5/5

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

The description states a specific verb and resource ('Encode UTF-8 text as standard base64') and goes further by naming the second output ('URL-safe variant'). That distinguishes it cleanly from the sibling base64_decode and from other encoding tools like url_encode or hash.

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

Usage Guidelines4/5

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

It gives concrete use cases ('data URLs, headers and basic auth strings') and a worked example, which is enough for an agent to place the tool. It does not explicitly say when to prefer a sibling (e.g. url_encode for percent-encoding) or when not to use it, so it falls short of a 5.

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

bic_validateSWIFT code, BIC validation: structure, country and branchA
Read-only
Inspect

Check a BIC (SWIFT code) against the ISO 9362 structure: institution code, a real country code with its name, location code, branch code, whether it is the head office (XXX or 8 characters), a test BIC or a passive participant, and the 11-character form. Computed locally; it checks the format and country, not whether the bank exists. Use before an international transfer or to clean payment data; for account numbers use validate_iban. Example: bic=DEUTDEFF500. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
bicYesBIC / SWIFT code, 8 or 11 characters

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations it discloses the key behavioral caveat — computation is local and does not verify bank existence — plus a concrete pricing/cost model ($0.01/call, 25 free, failures free) that explains the idempotentHint=false annotation ('each call is charged, so repeats are not free'). The 'reads or computes only' line echoes readOnlyHint, but the added cost and local-validation context is substantive.

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

Conciseness4/5

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

Front-loaded with the purpose and ISO scope, then routing, then caveats, then pricing — logical order with no wasted preamble. It is dense and on the long side, and the pricing clause is verbose relative to its importance, keeping it just short of a 5.

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

Completeness5/5

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

No output schema exists, yet the description effectively previews the response by listing the checks performed (institution code, country name, location, branch, head-office flag, test/passive participant). For a single-parameter validation tool, an agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

With 100% schema coverage and one parameter, the schema already defines 'bic' as an 8- or 11-character code. The description reinforces the 11-character form and supplies a concrete example (bic=DEUTDEFF500) that shows the expected format beyond the schema's terse wording.

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

Purpose5/5

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

States a specific verb and resource ('Check a BIC (SWIFT code) against the ISO 9362 structure') and enumerates exactly which components are examined (institution, country, location, branch, head-office, test/passive, 11-char form). It also names a sibling it is not ('for account numbers use validate_iban'), so an agent can route without opening any schema.

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

Usage Guidelines5/5

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

Gives both when-to-use ('before an international transfer or to clean payment data') and an explicit alternative with its selection condition ('for account numbers use validate_iban'). The 'checks format and country, not whether the bank exists' line further scopes when this tool is insufficient.

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

calc_ageAge calculator: exact age from a date of birth and the next birthdayA
Read-only
Inspect

Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured today (UTC) or on any date you give. Use for age checks, forms and anniversaries. Example: birthdate=1990-05-17. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onNoMeasure on this date, YYYY-MM-DD (default today)
birthdateYesDate of birth, YYYY-MM-DD

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: per-call pricing via x402 USDC or card key, 25 free calls, failed calls free, and the explicit note that repeats are not free — which explains the idempotentHint=false flag that would otherwise look odd for a pure computation. It also confirms read-only behavior ('reads or computes only and changes nothing') and states the UTC default, consistent with readOnlyHint and destructiveHint=false.

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

Conciseness5/5

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

Outputs are front-loaded in the opening clause, followed by usage, example, and cost/repeatability caveats. Every sentence carries information an agent needs (what it returns, when to use it, input format, billing behavior); nothing is padding.

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

Completeness5/5

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

With no output schema, the description fully specifies the return shape (all derived values), the measurement-date default and override, and the pricing/caching behavior that governs repeated calls. An agent could invoke this correctly and predict its output without opening any other field.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by clarifying that measurement defaults to today in UTC 'or on any date you give' and supplies an example value (birthdate=1990-05-17). It does not restate per-parameter syntax beyond that, so it lands just above baseline.

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

Purpose5/5

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

Names a specific computation (exact age from a date of birth) and enumerates the outputs: years/months/days, total days lived, weekday of birth, and next-birthday date/countdown. This is specific enough to be told apart from generic date siblings like date_diff or date_info, and the required input (birthdate) is stated up front.

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

Usage Guidelines4/5

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

Gives concrete usage contexts ('age checks, forms and anniversaries') plus a worked example, so an agent knows when the tool fits. It stops short of naming an alternative or an exclusion (e.g., use date_diff for arbitrary date spans), which keeps it at 4 rather than 5.

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

calc_bmiBMI calculator: body mass index and WHO categoryA
Read-only
Inspect

Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity class I-III) and the weight range that counts as normal for that height. For adults; a screening number, not a diagnosis. Use for health, fitness and nutrition apps. Example: weight=70, height=175. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
unitsNometric (default) or imperial
heightYesHeight in cm (or inches with units=imperial)
weightYesWeight in kg (or lb with units=imperial)

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the read-only annotations, it discloses billing behavior: $0.01 per call, first 25 free, failed calls free, and repeats are not free. It also states that the tool only reads or computes and changes nothing, which aligns with and enriches the annotation profile.

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

Conciseness4/5

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

The core purpose and outputs are front-loaded, followed by limitations, usage context, an example, and pricing. It is generally efficient, though the pricing and no-mutation sentences overlap slightly and one sentence reads more like product positioning.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of explaining return values; it does so by naming BMI, WHO adult category, and the normal weight range. It also states the adult-only and screening-not-diagnosis constraints, making the definition complete for correct use.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3 even with no additional detail. The description adds a concrete example (weight=70, height=175) and restates metric/imperial unit conventions, which lightly clarifies invocation but largely duplicates the schema.

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

Purpose4/5

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

The description clearly states that it computes body mass index from weight and height and returns the WHO adult category plus the normal weight range for that height. It is specific enough to distinguish from generic calculators, though it does not explicitly compare itself to siblings such as units_convert.

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

Usage Guidelines4/5

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

It gives clear usage context (health, fitness and nutrition apps) and an important limitation (for adults; screening, not diagnosis). It does not name alternatives or say when another sibling tool would be preferable, but the intended use case is clear.

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

calc_compound_interestCompound interest calculator: future value with monthly contributionsA
Read-only
Inspect

Compound interest on savings or an investment: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an optional contribution at the end of each month. Returns the future value, total contributed, interest earned and the balance after each year. Use for savings goals and investment what-ifs; rates are assumed constant. Example: principal=10000, rate=7, years=10. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rateYesAnnual interest rate in percent, -50 to 100
yearsYesYears, up to 100
monthlyNoContribution at the end of each month (default 0)
compoundNoyearly, quarterly, monthly (default) or daily
principalYesStarting amount (0 or more)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds real behavioral detail beyond them: per-call pricing via x402 USDC or card key, 25 free calls, failed calls free, and the warning that repeats are not free. The constant-rate assumption is also disclosed. It does not describe precision/rounding or units of the yearly balance series, keeping it out of the top band.

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

Conciseness4/5

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

Purpose and input list come first, then usage, then pricing — a sensible front-loaded order. The billing sentence is long and repeats "charged" twice, but every clause carries actionable information for an agent deciding whether to call.

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

Completeness4/5

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

With no output schema, the description compensates by naming the return contents (future value, total contributed, interest earned, per-year balance). Combined with the pricing and assumption disclosure, an agent has enough to call and interpret results; only numeric precision and formatting of the per-year series remain unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented, including the compound enum values and the monthly default of 0. The description largely restates those fields and adds only a worked example (principal=10000, rate=7, years=10) plus the "end of each month" contribution timing, so the baseline 3 applies.

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

Purpose5/5

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

The description names a specific computation (compound interest future value) and enumerates the inputs it consumes — principal, annual rate, years, compounding frequency, monthly contribution — which cleanly separates it from siblings like calc_loan or calc_tip. An agent can identify the tool's job without reading the schema.

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

Usage Guidelines4/5

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

"Use for savings goals and investment what-ifs; rates are assumed constant" gives clear usage context and states a modeling assumption (constant rate). It stops short of naming an alternative — e.g. calc_loan for amortization/payoff scenarios — so the agent gets positive guidance but no explicit exclusion rule.

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

calc_loanLoan and mortgage calculator: monthly payment, total interest and scheduleA
Read-only
Inspect

Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first months of the repayment schedule (principal, interest and balance). Fixed rate, monthly payments. Use to compare loan offers or plan a mortgage. Example: principal=300000, rate=4.5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rateYesAnnual interest rate in percent, 0-100
rowsNoSchedule rows to return, 0-60 (default 3)
yearsNoTerm in years (default 30), or give months
monthsNoTerm in months, instead of years
principalYesAmount borrowed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds genuinely non-structured behavior: per-call pricing ($0.01 via x402 USDC or card key, first 25 free, failed calls free) and the modelling assumptions (fixed rate, monthly payments). The 'each call is charged, so repeats are not free' line usefully reinforces, rather than contradicts, idempotentHint=false.

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

Conciseness4/5

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

Front-loaded with what is computed and what is returned, followed by usage and pricing; every clause is informative. The pricing sentence is somewhat dense (mixing x402, card keys, free tier and failure policy) and could be trimmed without losing meaning.

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

Completeness4/5

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

With no output schema, the description carries the return-shape burden and does so well, enumerating monthly payment, total paid, total interest, and schedule columns (principal, interest, balance). Minor gaps remain: assumed currency and behavior when term is omitted or when both years and months are given.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents units and defaults for rate, years, months and rows; baseline 3 applies. The description adds only a sample value pair (principal=300000, rate=4.5) and implies that only 'the first months' of the schedule are returned, without clarifying precedence when both years and months are supplied.

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

Purpose5/5

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

States a precise verb-and-resource: computes the monthly payment of an amortised loan plus total paid, total interest and the first rows of the repayment schedule. The qualifiers 'fixed rate, monthly payments' and 'amortised' scope it tightly enough that an agent can distinguish it from calc_compound_interest or calc_tip without opening the schema.

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

Usage Guidelines4/5

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

'Use to compare loan offers or plan a mortgage' gives clear positive usage context, and the worked example (principal=300000, rate=4.5) shows a canonical invocation. However, no alternatives or when-not conditions are named, so the agent gets no routing guidance against the other calc_* siblings.

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

calc_tipTip calculator: tip, total and split per personA
Read-only
Inspect

Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, expense apps and group payments. Example: bill=84.5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
billYesBill amount before tip
peopleNoPeople sharing, 1-100 (default 1)
percentNoTip percent, 0-100 (default 15)
roundUpNotrue to round each share up to a whole amount

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and idempotentHint=false, so safety is covered structurally. The description adds genuinely non-structural facts: it is a pure read/compute, each call is billed at $0.01 via x402 USDC or card key, the first 25 are free, and failed calls are free – which is consistent with idempotentHint=false (repeats cost money). It does not spell out the exact response shape, keeping this from a 5.

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

Conciseness4/5

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

The core purpose is front-loaded in the first clause and the billing terms follow, which is the right order. The dangling fragment "Example: bill=84.5." is an unfinished sentence that earns nothing, a minor but real waste.

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

Completeness4/5

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

With no output schema, the description still makes clear what comes back (tip amount, total, and per-person share, optionally rounded) and covers cost and read-only behavior. A 5 would require explicit statement of the returned fields or default handling when people/percent are omitted.

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

Parameters3/5

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

Schema description coverage is 100%, so bill, people, percent and roundUp are all already documented in the schema, establishing a baseline of 3. The description's note about rounding each share up restates the roundUp schema wording and adds no new constraints (units, defaults, precision) beyond it.

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

Purpose5/5

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

The description names the exact computation (tip and total for a bill at a given percentage, split per person, optional per-share rounding) with a concrete resource and scope. No sibling in the toolset (calc_loan, calc_bmi, calc_age) does this, so an agent can route here without opening the schema.

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

Usage Guidelines4/5

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

"Use for receipts, expense apps and group payments" gives clear situational context for when to pick this tool rather than a generic arithmetic path. It stops short of naming exclusions or an alternative (e.g., splitting without a tip), so it is context-rich but not a full when/when-not rule set.

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

caseCase converter: camelCase, snake_case, kebab-case and moreA
Read-only
Inspect

Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed input like 'userID_value'. Use when renaming fields or generating code identifiers. Example: text=user profile id, to=camel. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYescamel, pascal, snake, kebab, constant, title, sentence, upper or lower
textYesThe text

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses pricing, payment options, a free tier, that failed calls are free, and that repeated calls are charged. It also confirms the tool only reads/computes and changes nothing, which is useful behavioral context alongside readOnlyHint=true and destructiveHint=false.

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

Conciseness4/5

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

The purpose is front-loaded, followed by usage, an example, and cost/behavioral details. The pricing sentence is dense but relevant; overall the description is efficient, though slightly longer than necessary for a simple converter.

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

Completeness4/5

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

For a two-parameter, read-only converter with full schema coverage and rich annotations, the description is largely complete. It does not explicitly state the return value or error behavior for invalid targets, but the core invocation context is clear.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already defines both parameters and the accepted target formats. The description adds value with an example mapping text=user profile id and to=camel, and by noting that mixed input like 'userID_value' is handled.

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

Purpose5/5

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

The description states a specific verb and resource: converting text or identifiers between named case formats. It lists the supported formats and gives a concrete mixed-input example, making the tool easy to distinguish from unrelated text utilities such as slug or text_stats.

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

Usage Guidelines4/5

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

It gives a clear use context: renaming fields or generating code identifiers. It does not explicitly name when not to use it or compare with nearby siblings such as slug, so the guidance is strong but not complete.

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

coinFlip a coinA
Read-only
Inspect

Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many coins (1-100, default 1)

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, it discloses the cryptographic random source, return shape, pricing and payment paths, free-call allowance, failed-call behavior, and that repeated calls are charged. It also reinforces the read-only nature consistently with readOnlyHint=true.

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

Conciseness4/5

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

The purpose and return behavior are front-loaded, and the pricing and safety notes are relevant for this paid tool. The example is mildly redundant, but overall the description is efficient rather than padded.

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

Completeness5/5

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

For a simple one-parameter randomness tool, the description covers purpose, usage context, return shape, cost, failure behavior, and side-effect profile. No output schema is present, but the description says it returns each result and totals.

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

Parameters3/5

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

The schema already documents the count parameter at 100% coverage, including its intended range and default. The description only adds a simple example and the phrase 'one or more', without reconciling the schema's broader numeric bounds or adding much beyond the schema text.

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

Purpose4/5

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

The description states a specific verb and resource: flipping one or more fair coins from a cryptographic random source. It is clear what the tool does, but it does not explicitly distinguish itself from sibling randomness tools such as dice or random_number.

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

Usage Guidelines4/5

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

It gives a clear usage context: fair decisions and games, with an example of count=1. It does not state when not to use it or name alternatives, but the intended use is explicit.

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

colorHex to RGB, color converter: convert a color between hex, RGB and HSLA
Read-only
Inspect

Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b) and hsl(h,s%,l%). Use for theming and design checks. Example: color=#0f6cbd. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
colorYesThe colour

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds real value on top by explaining cost ('$0.01/call', first 25 free, failed calls free) and clarifying that 'reads or computes only and changes nothing' yet 'each call is charged, so repeats are not free' — which explains the otherwise puzzling idempotentHint=false. It does not describe the shape of the response, which is the main remaining gap.

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

Conciseness4/5

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

Front-loaded with the conversion capability and accepted formats before secondary details (pricing, safety note). The pricing sentence is a little dense and could be tightened, but no sentence is pure filler.

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

Completeness4/5

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

For a one-parameter tool with no output schema, the description does the important work of naming the returned values (relative luminance and contrast recommendation) and the accepted formats. Without an output schema, a description of the exact response fields would have closed the last gap.

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

Parameters4/5

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

Schema coverage is 100%, but the schema's own text is just 'The colour', so the description carries the real semantics: it lists #rgb, #rrggbb, rgb(r,g,b) and hsl(h,s%,l%) syntax and gives a concrete example. It does not say what happens with unsupported forms (named colours, alpha channels), leaving a small ambiguity.

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

Purpose4/5

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

States a specific verb and resource ('Convert a colour between hex, RGB and HSL') and enumerates the accepted input formats plus the derived outputs (relative luminance, black-vs-white text preference). The added 'whether black or white text reads better' overlaps conceptually with the color_contrast sibling without saying so, so the differentiation is left implicit.

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

Usage Guidelines4/5

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

'Use for theming and design checks' gives concrete usage context, and the worked example (color=#0f6cbd) shows typical invocation. It stops short of naming when to prefer color_contrast or color_palette instead, so there are no explicit exclusions.

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

color_contrastColor contrast check (WCAG): check the contrast ratio of two colors against WCAG accessibility levelsA
Read-only
Inspect

WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is readable. Example: fg=#767676, bg=#ffffff. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
bgYesBackground colour
fgYesText colour

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the billing model: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and repeats are charged — which explains the idempotentHint=false. The statement "reads or computes only and changes nothing" is consistent with readOnlyHint=true and destructiveHint=false.

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

Conciseness4/5

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

Purpose and result shape are front-loaded, followed by usage and then billing. Every sentence carries information, though the pricing clause is dense enough that it slightly crowds out the core tool description.

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

Completeness5/5

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

For a two-parameter compute tool with no output schema, the description covers what is computed (ratio plus AA/AAA verdicts at two sizes), input format via example, safety profile, and the cost model. Nothing an agent needs to decide or call correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so both parameters are documented, but the description adds the value format via the example (hex strings like #767676 and #ffffff), which the schema does not specify. That is a genuine increment over structured data, though it doesn't cover alternate formats like rgb() or named colors.

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

Purpose5/5

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

States a specific verb and resource: computes the WCAG 2 contrast ratio between a text colour and a background colour, plus AA/AAA pass/fail at both text sizes. This is clearly separable from siblings like color_palette, color, or random_color, which do not evaluate accessibility.

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

Usage Guidelines4/5

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

"Use to check that a design is readable" plus a concrete example (fg=#767676, bg=#ffffff) gives a clear usage context. It stops short of naming alternatives or when-not-to-use (e.g. use color_palette to generate colors instead), so it does not reach the top band.

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

color_paletteColor palette generator: harmonies and shades from one colorA
Read-only
Inspect

Build a colour palette from one hex colour: complementary, analogous, triadic, split-complementary and tetradic harmonies (hue rotations at the same saturation and lightness), plus six shades from light to dark, all as hex codes, with the base colour's HSL. Use for UI themes, charts, brand kits or slide decks; to check text readability on a colour use color_contrast. Example: color=#3366ff. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
colorYesBase colour as hex, such as #3366ff or 36f

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds the auth and cost model ($0.01/call via x402 USDC or a card key at /credits, first 25 free, failed calls free) and warns that repeats are not free, which explains the idempotentHint=false annotation in practical terms. It does not describe ordering or exact shape of the returned harmonies, but the cost/auth disclosure is real value beyond the structured fields.

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

Conciseness4/5

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

Front-loaded with the core capability and output inventory in one sentence, followed by use cases, the sibling pointer, and the pricing/behaviour note. Slightly padded by the em-dash stacking of specificity details ('first 25 free; failed calls free') and the commercial pricing pitch, but no sentence is off-topic.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does a fair job (harmonies and shades as hex codes, plus base HSL). What is still fuzzy is the container format — whether results come back as one string or structured fields — and the ordering of the six shades, which an agent may want to know before formatting the output.

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

Parameters3/5

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

Schema coverage is 100% and the single `color` parameter already documents hex formats like #3366ff or 36f, so the description's example adds nothing new about the argument itself. The 'hue rotations at the same saturation and lightness' clause adds useful semantics but describes the computation, not the parameter. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Build a colour palette from one hex colour') and enumerates exactly what is produced: five named harmonies plus six shades plus the base HSL. It also distinguishes itself from the nearest sibling by routing readability checks to color_contrast, so an agent can tell it apart from `color`, `random_color` and `color_contrast` without opening any schema.

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

Usage Guidelines5/5

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

Gives concrete use cases (UI themes, charts, brand kits, slide decks) and explicitly names the alternative tool with the condition that selects it ('to check text readability on a colour use color_contrast'). The input example and the note that repeated calls are charged further tell the agent how to invoke it efficiently.

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

cron_nextCron expression next run times: get the next run times of a cron schedule expressionA
Read-only
Inspect

Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to check a schedule before deploying it. Example: expr=*/15 9-17 * * MON-FRI. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
exprYesThe cron expression
fromNoStart time, ISO (default now)
countNoHow many runs (1-50, default 5)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, and the description is consistent with all of them ('Reads or computes only and changes nothing'). It adds information annotations cannot carry: per-call pricing via x402 USDC or card key, 25 free calls, failed calls free, and that repeated calls incur cost again — genuinely useful before an agent loops on it.

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

Conciseness4/5

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

Front-loaded with the purpose, then syntax support, use case, example, then cost. Dense but nearly every clause carries information; the pricing sentence is longish yet relevant to call decisions.

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

Completeness4/5

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

No output schema exists, and the description does state the return is next run times in UTC, plus the syntax accepted for the required parameter and the cost model. Count/from behavior is left to the schema, which adequately documents it, so an agent has enough to call correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description earns an extra point by spelling out the 5-field cron grammar (minute hour day month weekday) and that ranges, lists, steps and names like MON/JAN are accepted, which is semantics the schema's bare 'The cron expression' does not provide. It says nothing about 'from' or 'count', but those schema descriptions are adequate.

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

Purpose5/5

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

States a specific verb and resource ('next run times of a standard 5-field cron expression') and immediately scopes it with the supported syntax and UTC output. No sibling tool covers cron, and the definition makes the scope unmistakable anyway.

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

Usage Guidelines4/5

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

Gives a concrete use case ('check a schedule before deploying it') and a worked example expression. There are no competing cron siblings to route away from, so the absence of explicit exclusions costs little.

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

crypto_priceCrypto pricesA
Read-only
Inspect

Current price of up to 25 cryptocurrencies by CoinGecko id (bitcoin, ethereum, solana, usd-coin…) in up to 5 currencies, with the 24-hour change (from Coinbase for the coins it trades; tickers such as BTC work too). Use to price coins that are not on-chain tokens, value a portfolio in several currencies, or check a move. Example: ids=bitcoin,ethereum. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
vsNoComma-separated currencies (default usd)
idsYesComma-separated CoinGecko ids

TDQS

A4.6/5.0
Behavior5/5

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

With readOnlyHint, openWorldHint, and idempotentHint already declared, the description still adds substantial context: per-call pricing ($0.002 via x402 USDC or card key), first 25 calls free, failed calls free, the 24-hour change sourced from Coinbase where available, and a 'changes nothing' statement. It even explains why repeats are not free, which accounts for the non-idempotent hint.

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

Conciseness4/5

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

Front-loaded with the resource, supported inputs, and limits before the pricing and usage details. Dense but nearly every clause carries information; the pricing/credit sentence is the only slightly tangential element, though it is operationally relevant.

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

Completeness5/5

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

No output schema exists, so the description must indicate what comes back, and it does: current price in each requested currency plus 24-hour change. Combined with input limits, id-source flexibility, and cost expectations, an agent has everything needed to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by naming valid CoinGecko id examples (bitcoin, ethereum, solana, usd-coin), noting that tickers such as BTC also work, and stating the 25-id and 5-currency caps. These details add meaning beyond the terse schema strings.

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

Purpose5/5

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

States a specific verb and resource ('Current price of up to 25 cryptocurrencies by CoinGecko id ... in up to 5 currencies') with concrete id examples. The clause 'Use to price coins that are not on-chain tokens' implicitly separates it from siblings like token_price and price_token, so an agent can route correctly without opening the schema.

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

Usage Guidelines4/5

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

Gives three concrete use cases: pricing non-on-chain coins, valuing a portfolio in several currencies, and checking a move. It also warns that repeat calls are charged. It doesn't name a sibling to use instead for on-chain tokens, so the exclusion is implicit rather than an explicit alternative.

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

csv_to_jsonCSV to JSON: convert CSV text into a JSON array of objectsA
Read-only
Inspect

Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. Numbers stay as text unless numbers=true. Use to load spreadsheet exports into an agent. Example: text=name,age Ada,36. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe CSV text, first row is the header
numbersNotrue to turn numeric cells into numbers

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, non-idempotent), and the description adds genuinely new context: per-call pricing, the 25-free-call allowance, failed calls being free, and the warning that repeats are not free because each call is charged. That pricing/idempotency reinforcement goes beyond the structured fields.

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

Conciseness4/5

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

Conversion behavior and the example are front-loaded, and the pricing sentence is compact despite covering several facts. Slightly dense at the end, but every sentence carries information.

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

Completeness4/5

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

With no output schema, the description correctly explains the return value (array of objects keyed by the header row) and covers input formats. It stops short of edge cases — ragged rows, malformed CSV, empty input — which would matter for an agent handling messy exports.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented; the description's note that numbers stay text unless numbers=true largely restates the schema. It does add automatic delimiter detection and quoted-field handling, but those are behaviors rather than parameter semantics. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (convert CSV to a JSON array of objects) plus the exact output shape — objects keyed by the first row. This clearly distinguishes it from siblings like json_to_csv, csv_to_markdown and html_table_to_json.

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

Usage Guidelines3/5

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

It offers one concrete usage context ('load spreadsheet exports into an agent'), which is helpful, but never names an alternative or an exclusion — nothing tells the agent when to pick csv_to_markdown or html_table_to_json instead.

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

csv_to_markdownMarkdown table from CSV: convert CSV into a GitHub tableA
Read-only
Inspect

Convert CSV (comma, semicolon, tab or pipe, detected automatically; quoted fields supported) into a GitHub-flavoured Markdown table, with number columns right-aligned, pipes escaped and line breaks kept as . Up to 100 KB. Use to show spreadsheet data in a README, chat reply, issue or report; for JSON use csv_to_json. Example: csv=tool,price,calls weather,0.01,120 search,0.01,45. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
csvYesThe CSV text (up to 100 KB)
headerNotrue (default) if the first row holds the column names

TDQS

A4.6/5.0
Behavior4/5

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

Adds real behavioral detail beyond the annotations: auto-detected delimiters, quoted-field handling, a 100 KB ceiling, and explicit 'reads or computes only and changes nothing' which complements readOnlyHint/destructiveHint. The billing note ('each call is charged, first 25 free, failed calls free') is useful but slightly muddies the picture by hinting at a non-idempotent cost model rather than clarifying behavior.

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

Conciseness4/5

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

Conversion semantics are front-loaded in the first sentence, with usage and the sibling alternative following. The inline CSV example and the pricing sentence make it longer than strictly needed for a two-parameter tool, but every element is at least informative.

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

Completeness5/5

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

No output schema exists, and the description compensates by describing the produced table's formatting rules (alignment, escaped pipes, <br>). Together with the input limits and no-side-effect statement, an agent has everything needed to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the description adds value: it documents which delimiters are auto-detected and that quoted fields are supported, plus the default header behavior. It goes modestly beyond the schema rather than substantially re-explaining it.

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

Purpose5/5

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

States a specific verb and resource (convert CSV into a GitHub-flavoured Markdown table) and spells out the exact output conventions (right-aligned numbers, escaped pipes, <br> for line breaks). It explicitly names csv_to_json as the sibling for the JSON case, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete when-to-use scenarios (README, chat reply, issue, report) and an explicit alternative with its selection condition ('for JSON use csv_to_json'). Delimiter support and size limit further delimit applicability.

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

date_addDate calculator, add time: add or subtract days, weeks, months or years to a dateA
Read-only
Inspect

Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month ends are clamped (31 Jan + 1 month = 28/29 Feb). Use to compute due dates and expiries. Example: date=2026-01-31. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateYesStart date or ISO timestamp
daysNoDays to add
hoursNoHours to add
weeksNoWeeks to add
yearsNoYears to add (negative subtracts)
monthsNoMonths to add
minutesNoMinutes to add
businessDaysNoWeekdays to add (skips weekends)

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing month-end clamping semantics (31 Jan + 1 month = 28/29 Feb), that negative values subtract, weekend skipping for business days, and the billing model (first 25 free, failed calls free, repeats charged). This is substantive behavioral context the annotations do not carry.

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

Conciseness4/5

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

The capability statement is front-loaded and dense with useful detail, and the example is well-placed. The trailing pricing/credits sentences are necessary for cost-sensitive agents but slightly dilute the core message.

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

Completeness5/5

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

For an 8-parameter computation tool with no output schema, the description covers units, edge-case semantics, an example, and cost, which is everything an agent needs to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are already documented; the description adds real value on top by explaining negative-value subtraction and the month-end clamping rule that the schema never mentions. It does not explain unit-combination or precision behavior, keeping it just shy of a 5.

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

Purpose5/5

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

Uses a specific verb (add/subtract) on a specific resource (date components) and enumerates the supported units, including the special businessDays mode. An agent can immediately distinguish it from date_diff or date_business_days siblings.

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

Usage Guidelines4/5

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

States the intended use case ('compute due dates and expiries') and provides a concrete example, giving clear context for when to pick this tool. It stops short of explicitly naming the alternative sibling date_business_days or stating when not to use it.

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

date_business_daysBusiness days between dates, working days calculator: count working days between two dates, skipping weekends and public holidaysA
Read-only
Inspect

Count business (working) days between two dates, skipping weekends and the nationwide public holidays of over 100 countries (our statutory rules for US, UK, SE, DE, FR, NO, DK, FI; Nager.Date for the rest, e.g. JP, NZ, CA, AU, IN), and list the holidays skipped; or give add=N for the date N business days after (or before) a date. Use for delivery estimates, SLAs, payment terms and payroll dates. Example: from=2026-12-01. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toNoEnd date, YYYY-MM-DD (inclusive; default: the last day of the start month); or use add
addNoBusiness days to add to from (negative to go back), instead of to
fromYesStart date, YYYY-MM-DD
countryNoHoliday calendar: a 2-letter country code or English name, e.g. SE, JP, New Zealand (default: weekends only)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-idempotent/non-destructive, and the description adds genuinely new context: source of holiday rules ('our statutory rules for US, UK, SE...; Nager.Date for the rest'), the fact that skipped holidays are listed, and that it 'reads or computes only and changes nothing'. Pricing ('$0.01/call', 'first 25 free', 'failed calls free', 'repeats are not free') usefully explains why idempotentHint is false despite being read-only. It stops short of describing response shape 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.

Conciseness4/5

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

Front-loaded with the primary function and scoping before the alternate mode and billing details, and every clause carries information. It is a single dense mega-sentence, however, and the pricing/payment clause could be split or trimmed for readability.

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

Completeness5/5

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

For a 4-parameter compute tool with no output schema, the description covers inputs, alternate mode, holiday-calendar sourcing, return content (skipped holidays listed), safety profile, and billing. An agent has everything needed to call it correctly and predict roughly what comes back.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it documents the `country` parameter's underlying data sources and coverage ('over 100 countries, e.g. JP, NZ, CA, AU, IN'), and gives a concrete from=2026-12-01 example. It does not restate the `to` default or the add/to mutual exclusivity, which the schema already covers.

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

Purpose5/5

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

States a specific verb+resource ('Count business (working) days between two dates') and immediately scopes it as weekend/holiday-skipping, which cleanly separates it from the plain date_diff sibling. It also declares a second mode ('give add=N for the date N business days after'), so an agent knows both capabilities up front.

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

Usage Guidelines4/5

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

Names concrete use cases (delivery estimates, SLAs, payment terms, payroll dates) and explains the calendar logic that selects this tool over a plain day-difference calculator. It never explicitly says when to use date_diff/date_add instead, and the add=N mode overlaps with date_add without noting the distinction.

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

date_diffDate difference: count the days, weeks and months between two datesA
Read-only
Inspect

Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) in between. Use for deadlines, ages and durations. Example: from=2026-01-01, to=2026-10-18. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYesEnd date or ISO timestamp
fromYesStart date or ISO timestamp

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses pricing ($0.01/call, first 25 free, failed calls free) and explicitly explains why repeats are not free, which makes the otherwise cryptic idempotentHint=false concrete. It also restates the compute-only, non-mutating nature, so the agent knows no state is touched.

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

Conciseness4/5

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

Front-loaded with the return values, then usage, then an example, then billing. Dense but every clause carries information; the pricing sentence is long but load-bearing for a paid, non-idempotent call.

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

Completeness5/5

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

No output schema exists, yet the description enumerates every return component, and both required params are covered. For a two-parameter read-only computation tool, an agent has everything needed to call it and interpret the result.

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

Parameters3/5

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

Schema coverage is 100%, so from/to are already documented as start/end date or ISO timestamp. The description adds only a sample value pair (2026-01-01 / 2026-10-18) that confirms the accepted format — helpful but marginal over the schema.

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

Purpose4/5

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

States a specific verb+resource (time between two dates/timestamps) and enumerates the exact outputs: total days/weeks/hours/minutes/seconds, a years-months-days breakdown, and weekday count. An agent knows precisely what it gets, though it never names the neighbouring tools (date_add, date_business_days, calc_age) it overlaps with.

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

Usage Guidelines4/5

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

"Use for deadlines, ages and durations" plus a concrete from/to example gives clear usage context. It stops short of exclusions or naming alternatives — "ages" overlaps with the sibling calc_age without disambiguation.

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

date_infoWeek number and date facts: ISO week, weekday, day of year, quarterA
Read-only
Inspect

Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use for calendar and reporting logic. Example: date=2026-10-18. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateNoDate or ISO timestamp (default today)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces that ('Reads or computes only and changes nothing'). It adds genuinely non-structured context: the $0.01/call x402 USDC or card-key pricing, 25 free calls, and that failed calls are free while repeats are charged, which also explains the idempotentHint=false flag. It does not describe the response shape beyond the field enumeration, hence not a 5.

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

Conciseness4/5

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

Three sentences, front-loaded with the full field list so the agent knows what it gets immediately. The pricing sentence is long and slightly run-on, but every clause (price, free tier, free failures, repeat cost) carries behavioral information rather than filler.

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

Completeness5/5

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

For a single optional-parameter computation tool with no output schema, the description supplies the returned fields, the input format, the cost model, and a clear read-only guarantee. Nothing an agent needs in order to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and already documents 'Date or ISO timestamp (default today)', so the baseline is 3. The description adds a concrete format example (date=2026-10-18), which disambiguates acceptable input syntax beyond the schema text, justifying a small uplift.

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

Purpose5/5

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

The description enumerates the exact facts computed (weekday, ISO week number and week-year, day of year, quarter, days in month, leap year, Unix timestamp, weekend flag) for any date, which is specific enough to separate it from the many date siblings such as date_add, date_diff, date_zodiac, unix and time. The input example (date=2026-10-18) makes the resource concrete.

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

Usage Guidelines3/5

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

'Use for calendar and reporting logic' gives only implied usage context. No exclusions or explicit alternatives are named, even though the sibling list contains obvious confusables (date_diff, date_business_days, unix, holidays) whose boundary with this tool is left for the agent to infer.

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

date_zodiacZodiac sign from a birth date: western and ChineseA
Read-only
Inspect

Western (tropical) zodiac sign with its element, and the Chinese zodiac animal and element of a birth date. The Chinese year is counted from the Gregorian year, so dates in January and early February before Chinese New Year are flagged as possibly the previous animal. Use for profile enrichment, greeting cards, games or horoscope-style content. Example: date=1990-08-15. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
dateYesBirth date, YYYY-MM-DD

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations it discloses pricing ($0.01/call via x402, first 25 free, failed calls free) and explains why idempotentHint=false in practical terms: each call is charged, so repeats are not free. It also flags a real correctness caveat (January/early-February dates may belong to the previous Chinese animal) that an agent could not infer from annotations.

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

Conciseness4/5

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

Front-loaded with what is returned, then the boundary caveat, then use cases, then pricing. Dense and mostly purposeful, though the pricing sentence runs long and could be trimmed without losing meaning.

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

Completeness4/5

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

With no output schema, the description does name the returned components (sign, element, Chinese animal, Chinese element) and the edge-case flag, which covers what an agent needs to decide and call. It stops short of describing the response structure or field names, which would matter given the absent output schema.

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

Parameters4/5

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

Schema coverage is 100% and already documents the single parameter as YYYY-MM-DD, so the baseline is 3. The inline example (date=1990-08-15) reinforces the format and confirms a full-date string is expected, adding modest value beyond the schema.

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

Purpose5/5

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

States a specific resource and computation: the western (tropical) sign with element plus the Chinese animal and element for a birth date. It is clearly distinguishable from adjacent siblings such as date_info, calc_age, or holidays without opening any schema.

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

Usage Guidelines4/5

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

"Use for profile enrichment, greeting cards, games or horoscope-style content" gives concrete usage contexts, and the example date anchors the expected input. It never names an alternative tool or an explicit when-not condition, so routing against siblings like date_info is left implicit.

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

diceRoll diceA
Read-only
Inspect

Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier and the total. Use for tabletop games and simulations. Example: roll=2d6+3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
rollNoDice notation, e.g. 2d6+3 (default 1d6)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover safety and idempotency, but the description adds real behavioral context: cryptographic random source, per-roll return shape (every roll, the modifier, the total), and the charging model including that repeats are not free — which meaningfully explains why idempotentHint=false matters. It also states failed calls are free, which matters for retry behavior.

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

Conciseness4/5

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

Front-loaded with the capability, format, and limits, then usage, then pricing. Every sentence carries information, though 'Reads or computes only and changes nothing' overlaps with readOnlyHint=true and the pricing sentence is dense relative to the core purpose.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description covers input format, bounds, what is returned, safety profile, and cost — everything needed to call it correctly and predict the response.

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

Parameters4/5

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

Schema coverage is 100% with a single documented parameter, so the baseline is 3, and the description adds bounds not present in the schema (up to 100 dice of up to 1000 sides) plus a second notation example. It doesn't restate the default (1d6), which is already in the schema.

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

Purpose5/5

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

States a specific verb and resource ('Roll dice') plus the exact input format ('standard notation such as 2d6+3 or 1d20') and hard limits (100 dice, 1000 sides). This clearly separates it from siblings like random_number, random_pick, or coin, which don't take dice notation.

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

Usage Guidelines4/5

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

'Use for tabletop games and simulations' plus a concrete example ('roll=2d6+3') gives an agent a clear context for selecting it. It stops short of explicit exclusions or naming an alternative (e.g., 'for a single uniform integer use random_number'), so it isn't a full when/when-not statement.

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

echoEcho a message: send a message and get it back, to test a paid call end to endA
Read-only
Inspect

Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=hello. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
messageYesMessage, up to 2,000 characters

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing the charging model: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and that repeats are not free. This cost and idempotency consequence (paired with idempotentHint=false) is exactly the operational context an agent needs before calling.

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

Conciseness4/5

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

Front-loads the return value, then usage, then pricing. Four dense sentences with little waste, though the payment sentence packs several clauses that could be trimmed slightly.

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

Completeness5/5

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

No output schema exists, so the description carries the return contract and does so fully (message, length, server time), while also covering cost and safety. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and documents the single message parameter with a 2,000-character limit, so the schema does the work. The description only adds a trivial 'Example: message=hello' and no format or constraint detail beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (returns the message you send) plus the exact payload (length and server time), which no sibling tool does. An agent can distinguish this from text_stats or ping without opening the schema.

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

Usage Guidelines4/5

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

Explicitly says to use it for testing an x402 client, payment flow, or agent tool wiring end to end, which is a clear context. It does not name an alternative or exclusion, but for a self-evidently unique echo tool none is needed.

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

elevationElevation of a pointA
Read-only
Inspect

Ground elevation in metres above sea level for a latitude and longitude (Copernicus 90 m digital elevation model via Open-Meteo). Use to plan routes, size flood or terrain risk, or enrich location data. Example: lat=59.33, lon=18.07. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
latYesLatitude (-90 to 90)
lonYesLongitude (-180 to 180)

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly, openWorld, and non-destructive behavior, but the description adds what annotations cannot: an explicit pricing model ($0.01/call via x402 USDC or a card key), the free tier of 25 calls, and the failure policy that failed calls are free. It also makes explicit why idempotentHint is false: repeated calls are charged, and it discloses the 90 m resolution, which implies accuracy limits. This is exactly the extra context the annotations cannot carry.

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

Conciseness4/5

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

The description is front-loaded with purpose, then use cases, then pricing and safety notes, with every sentence carrying information. The pricing/auth sentence is dense but justified for a paid tool; nothing is filler.

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

Completeness4/5

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

For a two-parameter read tool with no output schema, the description covers what it returns (elevation in metres), the source, resolution, cost, and side-effect profile. The only unaddressed case is behavior at points with no meaningful terrain value, e.g., open ocean or out-of-coverage coordinates.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters are fully documented with valid ranges, so the schema already does the heavy lifting. The description only adds a concrete example (lat=59.33, lon=18.07), which confirms decimal formatting but adds no semantics beyond the schema.

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

Purpose5/5

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

The opening states a specific verb and resource: it returns ground elevation in metres above sea level for a lat/lon pair. It also names the underlying dataset (Copernicus 90 m DEM via Open-Meteo), which distinguishes it from sibling geo tools such as geo_distance and ip_geolocate without requiring the schema to be opened.

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

Usage Guidelines4/5

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

The description gives concrete scenarios for using it: route planning, flood or terrain risk sizing, and location data enrichment. It does not mention alternatives or exclusions, such as whether it competes with geo_distance or ip_geolocate, but the positive usage context is clear.

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

geo_distanceDistance between coordinates: km, miles, bearing and midpointA
Read-only
Inspect

Great-circle distance between two latitude/longitude points (haversine on the mean earth radius) in kilometres, miles and nautical miles, plus the initial compass bearing and the midpoint. Accurate to about 0.5% against the ellipsoid. Use for delivery radius, travel and proximity checks, or sorting places by distance; for coordinates of a place name use geocode first. Example: lat1=59.3293, lon1=18.0686, lat2=51.5072, lon2=-0.1276. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
lat1YesLatitude of the first point (-90 to 90)
lat2YesLatitude of the second point
lon1YesLongitude of the first point (-180 to 180)
lon2YesLongitude of the second point

TDQS

A4.5/5.0
Behavior5/5

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

Annotation coverage is strong, and the description adds accuracy (about 0.5%), billing details ($0.01/call, first 25 free, failed calls free), and the repeat-call charging nuance. It also explicitly confirms the tool reads/computes only and changes nothing.

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

Conciseness5/5

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

The purpose is front-loaded, followed by use cases, an example, pricing, and safety behavior. The text is dense but every sentence adds useful operational or behavioral context.

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

Completeness5/5

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

No output schema exists, but the description fully explains the return components: distances in three units, initial bearing, and midpoint. Accuracy, billing, and safety behavior are also covered.

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

Parameters3/5

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

Schema description coverage is 100%, so lat/lon semantics are already documented. The description provides a concrete coordinate example, but does not add parameter-level constraints beyond what the schema already states.

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

Purpose5/5

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

States a specific computation: great-circle distance between two lat/lon points, returning km/miles/nautical miles plus bearing and midpoint. It distinguishes itself from coordinate-lookup tools by directing place-name inputs to geocode first.

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

Usage Guidelines4/5

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

Gives clear use cases such as delivery radius, travel/proximity checks, and sorting by distance, and names the geocode prerequisite for place names. It does not explicitly state when not to use the tool, but the intended context is clear.

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

hackernews_topHacker News top storiesA
Read-only
Inspect

Current top stories on Hacker News: title, link, points, comment count, author, age and discussion URL (official HN API). Use to follow what developers are discussing right now. Example: count=5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many (1-20, default 10)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=false and destructiveHint=false. The description adds genuinely new behavioral facts: the data comes from the official HN API, each call is billed ($0.01, first 25 free, failed calls free), and repeats are not free because of per-call charging — which operationalizes the idempotentHint=false in practical terms. It omits freshness/caching behavior and rate limits, so it is strong but not exhaustive.

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

Conciseness4/5

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

The core purpose and returned fields are front-loaded in the first clause, followed by the usage cue and example. The pricing sentence is dense with payment-channel detail (x402 USDC, card key /credits) that is useful but slightly crowds the definition.

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

Completeness5/5

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

With one optional parameter, no output schema, and annotations covering safety, the description fills the remaining gaps: it lists the return fields, names the upstream source, and discloses the cost model. An agent has everything needed to decide to call it and to set count correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter is already documented as "How many (1-20, default 10)". The description only adds an example value (count=5), not new semantics such as how out-of-range values are handled. Baseline 3 is appropriate when the schema carries the meaning.

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

Purpose5/5

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

"Current top stories on Hacker News" names a specific resource and scope, and the description enumerates exactly what each story carries (title, link, points, comment count, author, age, discussion URL). No sibling in the list covers HN content, so there is nothing to confuse it with.

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

Usage Guidelines4/5

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

"Use to follow what developers are discussing right now" gives a clear situational cue, and "Example: count=5" shows a typical call. It stops short of stating when-not to use it or naming an alternative source for non-HN content, so it is context-rich but not exclusionary.

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

hashSHA256 hash, SHA-256: hash text with SHA-256, SHA-1, SHA-384 or SHA-512A
Read-only
Inspect

SHA256 hash of UTF-8 text (SHA-256 by default; SHA-1, SHA-384 or SHA-512 on request), returned as a digest in hex and base64. Use for checksums, cache keys and deduplication. Example: text=hello. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to hash
algorithmNosha256 (default), sha1, sha384 or sha512

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint=false, so 'reads or computes only and changes nothing' is largely redundant. The description does add genuinely useful behavior the annotations cannot convey: the payment model (x402 USDC or card key, first 25 free), that failed calls are free, and why repeats are not free — which explains idempotentHint=false.

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

Conciseness4/5

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

The core operation, algorithm options, and return formats are front-loaded in the first clause, with pricing and safety notes after. The billing detail is dense but operationally relevant; nothing is padding, though the parenthetical list of algorithms partly repeats the title.

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

Completeness4/5

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

With no output schema, the description correctly compensates by specifying that the digest is returned in both hex and base64. It leaves out any input size limits or error behavior for invalid algorithm values, which is a minor gap for a two-parameter tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description adds a real constraint not present in the schema: the input is treated as UTF-8 text. It also restates the default algorithm, which is mildly duplicative of the schema's 'sha256 (default)'.

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

Purpose4/5

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

The description names a specific verb and resource ('SHA256 hash of UTF-8 text') and enumerates the supported algorithms and both output encodings (hex, base64), so the agent knows exactly what comes back. It does not explicitly separate itself from the nearest siblings (hmac, pack_hash_toolbox), which keeps it below a 5.

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

Usage Guidelines4/5

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

'Use for checksums, cache keys and deduplication' gives concrete usage contexts, which is more than most siblings offer. There are no when-not conditions or pointers to hmac for keyed hashing, 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.

hmacHMAC signature: sign a message with an HMAC (SHA-256 and others) and a key, or check a webhook signatureA
Read-only
Inspect

Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used only for this call and is not stored. Example: message=hello, key=secret. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key
messageYesThe message
algorithmNosha256 (default), sha1, sha384 or sha512

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false; the description adds context the annotations cannot: the key is used only for this call and not stored, each call costs $0.002 via x402 USDC or a card key, the first 25 are free, and failed calls are free. The cost-and-repeat warning also explains in plain language why idempotentHint is false.

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

Conciseness4/5

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

Front-loaded with the operation and algorithms, then usage, then privacy and pricing – a sensible order. The pricing sentence is dense but carries real decision-relevant information; only 'Reads or computes only and changes nothing' is largely redundant with the readOnlyHint annotation.

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

Completeness4/5

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

With no output schema, the description partially compensates by stating the digest is returned in hex and base64, though it is slightly ambiguous whether both are always returned or one is selectable. Combined with full parameter documentation and the cost/key-retention disclosure, an agent has enough to call it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters are already documented in the schema, including the "sha256 (default)" enumeration. The description only restates the default algorithm and adds a trivial message=hello, key=secret example, which is marginal value beyond the structured fields. Baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb+resource (compute an HMAC of a message with a key) and enumerates the supported algorithms and output encodings, so an agent knows exactly what it produces. It does not explicitly distinguish itself from the sibling `hash` tool (keyed vs unkeyed), which is the one remaining ambiguity in a dense sibling list.

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

Usage Guidelines4/5

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

"Use to check webhook signatures" gives a concrete triggering context, which is more than most siblings offer. It stops short of naming alternatives (e.g., use `hash` when no key is involved) or stating exclusions, so the routing guidance is clear but not complete.

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

html_table_to_jsonHTML table to JSON: extract tables from HTMLA
Read-only
Inspect

Extract every table from an HTML fragment into JSON: header cells become keys and each body row an object (or raw arrays when there is no header row), with captions, colspans repeated and entities decoded. Give the HTML itself (up to 500 KB). Use to turn web or email tables into data an agent can sort and compute on; to fetch a page first use extract. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
htmlYesHTML containing one or more <table> elements (up to 500 KB)

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing output construction rules (headers as keys, raw arrays when no header), colspan repetition, entity decoding, caption handling, and a 500 KB input cap. It also explains the billing model and clarifies why repeats are not free, which explains the idempotentHint=false annotation rather than contradicting it.

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

Conciseness4/5

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

Front-loads the core transformation and output shape in the first sentence, then adds usage, then pricing. The pricing sentence is long and packs several facts, but each sentence carries distinct information with no filler.

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

Completeness5/5

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

No output schema exists, yet the description fully specifies the return shape, including the no-header fallback to raw arrays. For a single-parameter tool with full annotation coverage, nothing needed to call it correctly is missing.

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

Parameters3/5

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

There is only one parameter and schema coverage is 100%, so the schema already documents 'html' fully. The description restates the 500 KB limit and that the HTML itself is the argument but adds no new syntax or format guidance beyond the schema.

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

Purpose5/5

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

States a specific verb and resource ('Extract every table from an HTML fragment into JSON') and describes the output shape. It is clearly separable from siblings like csv_to_json and html_to_text because the input is HTML tables and the output is structured JSON rows.

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

Usage Guidelines4/5

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

Gives concrete use cases ('turn web or email tables into data an agent can sort and compute on') and routes the agent elsewhere for fetching a page ('to fetch a page first use extract'). It lacks an explicit when-not-to-use versus html_to_text, and the referenced 'extract' tool does not appear in the sibling list, but the selection context is clear.

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

html_to_textHTML to plain text: strip HTML down to readable plain textA
Read-only
Inspect

Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web content or emails to an LLM. Example: html=HiA &amp; Bone. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
htmlYesThe HTML

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile, yet the description still earns its keep by disclosing the output transformation rules (what gets removed, what becomes line breaks or bullets) plus cost behavior — $0.01/call, 25 free, failed calls free, repeats charged. 'Reads or computes only and changes nothing' is consistent with readOnlyHint=true and destructiveHint=false, and the charge-per-call note makes idempotentHint=false understandable to the agent.

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

Conciseness4/5

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

Front-loaded with purpose and transformation behavior, which is the right order. The pricing/call-charging sentence is long and slightly interrupts the technical narrative, but it carries information an agent needs before looping on this paid tool.

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

Completeness5/5

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

One parameter, no output schema, annotations covering safety — the description supplies exactly what is missing: what the output text looks like, what an agent would use it for, and what each call costs. Nothing needed to invoke it correctly is absent.

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

Parameters4/5

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

Only one required parameter with 100% schema coverage, so the baseline is 3. The inline example showing html=<h1>Hi</h1><p>A &amp; B</p><ul><li>one</li></ul> adds concrete input-format value beyond the schema's bare 'The HTML'.

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

Purpose5/5

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

States a specific verb and resource ('Strip HTML to readable plain text') and then enumerates the exact transformations performed (scripts/styles removed, block elements to line breaks, bullets, entity decoding). This is clearly distinguishable from siblings like html_table_to_json or markdown_to_html, which go in different directions.

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

Usage Guidelines4/5

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

'Use to feed web content or emails to an LLM' gives an explicit intended context, and the worked example anchors the input shape. It stops short of naming alternatives or exclusions (e.g., use html_table_to_json when tabular structure must be preserved), so it is clear context without routing rules.

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

http_statusHTTP status code meaning: explain what an HTTP status code meansA
Read-only
Inspect

Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handling API errors. Example: code=429. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
codeYesStatus code

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already establish read-only, non-destructive behavior, and the description adds substantive context: pricing at $0.01/call via x402 USDC or a card key, first 25 free, failed calls free, and that repeated calls are not free. It also reinforces that the tool reads or computes only and changes nothing, so an agent understands cost and side-effect behavior before invoking it.

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

Conciseness4/5

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

The description is front-loaded with purpose and usage, followed by clear cost and behavior notes. It is appropriately sized, though the charging information is slightly redundant between the explicit price and the later 'each call is charged' clause.

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

Completeness5/5

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

For a one-parameter, read-only lookup tool with annotations covering safety and no output schema, the description supplies everything needed: purpose, usage context, input range, output fields, pricing, and side-effect behavior. Nothing an agent needs in order to call it correctly appears missing.

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

Parameters5/5

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

Although the single parameter is fully described in the schema, the description adds domain meaning beyond the bare 'Status code' field by specifying the valid 1xx-5xx range and calling out specific codes like 402 and 429. The example code=429 further clarifies accepted input.

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

Purpose5/5

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

The description names a specific resource and output: the name, plain-language meaning, and retry guidance for an HTTP status code. It scopes the input to 1xx-5xx and gives concrete examples, making it unmistakable versus otherwise unrelated sibling tools.

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

Usage Guidelines4/5

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

It explicitly says to use this when handling API errors and provides an example call with code=429. There are no obvious alternative HTTP-status tools to contrast with, but it does not state any exclusions or when-not-to-use conditions.

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

ip_cidrCIDR calculator: calculate the address range, size and netmask of a CIDR blockA
Read-only
Inspect

Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP falls inside. Use for firewall rules and allowlists. Example: cidr=192.168.1.0/24. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipNoOptional IPv4 address to test for membership
cidrYesIPv4 network in CIDR notation

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so 'reads or computes only and changes nothing' is largely redundant; the real added value is the cost model ($0.01/call, first 25 free, failed calls free) and the note that repeats are not free, which explains the non-obvious idempotentHint=false for a pure computation. Rate limits and error behavior are still unstated.

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

Conciseness4/5

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

Output fields are front-loaded in the first sentence, followed by use case, example, pricing, and safety in a compact sequence with no filler. The payment sentence is long but carries decision-relevant information rather than marketing fluff.

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

Completeness4/5

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

With no output schema, enumerating the returned fields in the description is exactly the right compensation, and the cost/permission facts make it safe to call. It still omits response format (JSON structure) and failure/error semantics for invalid CIDR strings.

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

Parameters3/5

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

Schema coverage is 100%: both `cidr` and the optional `ip` membership-test parameter are already documented in the schema. The description reinforces this ('whether a given IP falls inside') and supplies a format example (cidr=192.168.1.0/24), but adds little the schema doesn't already say, so baseline 3 applies.

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

Purpose4/5

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

The description names a specific resource (an IPv4 network in CIDR notation) and enumerates exactly what it computes: network/broadcast address, first/last usable host, netmask, address count, and membership test. It never routes the agent away from the sibling `ip_info`, so the boundary between 'CIDR math' and 'IP lookup' is inferred rather than stated.

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

Usage Guidelines4/5

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

'Use for firewall rules and allowlists' plus a concrete example input gives an agent a clear context for reaching for this tool. There are no explicit when-not conditions or named alternatives (e.g., 'use ip_info for geolocation/ASN instead'), so it stops short of full routing guidance.

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

ip_geolocateIP geolocation: city, region, country and coordinatesA
Read-only
Inspect

Geolocate an IPv4 or IPv6 address to its city, region, country (code and name), continent and approximate latitude and longitude, with the address range the record covers, from DB-IP's City Lite data (CC BY 4.0, monthly; attribution in every answer). City level at best; private and reserved addresses are refused. Use to localise a visitor or caller, pick a region or enrich logs; for the network owner and registry record use ip_lookup. Example: ip=8.8.8.8. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipYesPublic IPv4 or IPv6 address

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: names the data source and license (DB-IP City Lite, CC BY 4.0), discloses the accuracy ceiling ('city level at best'), the refusal behavior for private/reserved IPs, and the cost model ($0.01/call, first 25 free, failed calls free). It also explains why repeated calls are not free, which reconciles with idempotentHint=false.

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

Conciseness4/5

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

Front-loaded with the verb, resource and returned fields, then usage, then pricing. It is a single dense paragraph where nearly every sentence earns its place; the payment-channel detail ('x402 USDC or a card key (/credits)') is slightly more than an agent needs to invoke the tool.

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

Completeness5/5

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

No output schema exists, yet the description enumerates the returned fields, the data provenance and accuracy, and the cost/failure behavior. An agent has everything required 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.

Parameters3/5

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

With only one parameter at 100% schema coverage, the schema already documents 'Public IPv4 or IPv6 address'. The description reinforces the public-only constraint and adds a worked example (ip=8.8.8.8), but supplies no format or edge-case detail beyond what the schema carries. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Geolocate an IPv4 or IPv6 address') and enumerates the exact outputs (city, region, country code/name, continent, lat/long, address range). It explicitly separates itself from ip_lookup ('for the network owner and registry record use ip_lookup'), so an agent can route between the two without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete use cases ('localise a visitor or caller, pick a region or enrich logs') plus a named alternative with its distinguishing condition ('network owner and registry record' → ip_lookup). It also states an exclusion rule: private and reserved addresses are refused.

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

ip_infoIP address info, classify an IP: tell whether an IP address is public, private, reserved, IPv4 or IPv6A
Read-only
Inspect

Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reverse-DNS forms (IPv4). Use to triage IPs in logs or allowlists. Example: ip=10.1.2.3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ipYesThe IP address

TDQS

A3.5/5.0
Behavior1/5

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

The description says the tool works 'without any lookup' and 'reads or computes only', which describes a purely local computation. The annotations set `openWorldHint: true`, implying interaction with an open world of external entities; that directly conflicts with the description's no-lookup/local-only claim. The cost and idempotency details are otherwise useful, but the structured annotation contradicts the stated behavior.

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

Conciseness4/5

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

The definition is front-loaded with the core classification behavior and the use case. It is mostly efficient, but the pricing sentence and the later 'each call is charged, so repeats are not free' restate the same billing point, adding slight redundancy.

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

Completeness4/5

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

With one parameter, no output schema, and rich annotations, the description does enough: it lists the returned classifications and computed forms, notes that no lookup occurs, and explains billing. It does not describe the exact response shape, so it is not fully complete, but an agent has enough to call it correctly.

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

Parameters3/5

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

There is only one parameter and schema description coverage is 100%, so the schema already carries the parameter documentation. The description adds an example (`ip=10.1.2.3`) and says IPv4 or IPv6 is accepted, which is a small but useful addition beyond the schema's generic 'The IP address'. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: classify an IPv4 or IPv6 address. It enumerates the exact classifications (version, private, loopback, link-local, CGNAT, public) plus computed forms, so an agent can distinguish it from sibling `ip_cidr` without opening either schema.

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

Usage Guidelines4/5

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

It gives a concrete use case: triage IPs in logs or allowlists. It also clarifies that no external lookup occurs, which helps separate it from DNS or geolocation tools. It does not explicitly name or exclude the sibling `ip_cidr`, so the routing guidance is clear but not exhaustive.

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

issWhere is the ISS nowA
Read-only
Inspect

Current position of the International Space Station: latitude, longitude, altitude, speed and whether it is in daylight (wheretheiss.at). Use for space apps, education bots and sky-watching alerts. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

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

TDQS

A4.1/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: billing model ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and an explicit no-side-effect statement that reinforces readOnlyHint. 'Each call is charged, so repeats are not free' meaningfully explains the idempotentHint=false finding rather than leaving the agent to guess. It does not disclose update cadence or caching, which is the remaining gap.

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

Conciseness4/5

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

Front-loads the core payload (what the position includes) in the first clause, then use cases, then commercial terms. Dense but every sentence carries information; the pricing clause is long but is genuinely decision-relevant for a paid call.

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

Completeness4/5

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

With no output schema, the description does the work of naming the returned fields and the upstream source, which is enough to interpret a result. Missing freshness/latency expectations and whether values are cached, which for a 'current position' tool an agent may care about.

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

Parameters3/5

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

The single optional 'only' projection parameter is fully documented in the schema at 100% coverage, so the description can rely on it. The description itself adds no meaning about the parameter, which is acceptable at this coverage level but is a missed opportunity for a low-cost optimization hint.

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

Purpose5/5

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

States a specific resource (International Space Station) and enumerates exactly what is returned: latitude, longitude, altitude, speed, and daylight status. No sibling tool covers orbital/satellite data, so an agent can distinguish it immediately; the data source (wheretheiss.at) is also named.

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

Usage Guidelines4/5

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

Gives concrete usage contexts (space apps, education bots, sky-watching alerts) which tell an agent the kind of request this fits. It stops short of explicit when-not-to-use guidance or naming an alternative, but with no comparable sibling in the list there is little to disambiguate against.

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

json_formatJSON formatter, pretty-print: pretty-print JSON with indentation, optionally with sorted keysA
Read-only
Inspect

Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise it for diffs. Example: text={"b":2,"a":1}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe JSON text
indentNo2 (default), 4 or tab
sortKeysNotrue to sort object keys

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive/idempotent, but the description adds real value beyond them: the pricing model ($0.01/call, first 25 free, failed calls free) and the explicit explanation that repeats are charged, which reconciles the surprising idempotentHint=false. It does not say what happens on malformed JSON (error vs. repair), the one remaining behavioral gap.

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

Conciseness4/5

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

Front-loaded with purpose, then usage, then example, then commercial terms — logical order with no filler. The pricing sentence is longer than the rest but carries information an agent cannot get elsewhere.

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

Completeness4/5

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

With no output schema, the description correctly states the return value (formatted text) and covers cost and side-effect profile. Only the invalid-input failure mode is left unspecified, which is a modest gap for a pure-transformation tool.

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

Parameters3/5

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

Schema coverage is 100% and the schema already documents text, indent (2 default, 4 or tab) and sortKeys. The description repeats the same indent options and shows one example object, adding only marginal meaning beyond the structured fields, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (format JSON) plus the two axes of behavior (indentation, key sorting) and names the return value. The example input makes it clearly distinguishable from siblings like json_minify, json_validate, json_repair and json_schema.

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

Usage Guidelines4/5

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

"Use to make machine JSON readable or to normalise it for diffs" gives concrete usage contexts, which is stronger than implied usage. It never names an alternative tool or exclusion (e.g. use json_minify to compact, json_validate to check), so it stops short of explicit when-not guidance.

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

json_minifyMinify JSON: remove whitespace from JSON to make it compactA
Read-only
Inspect

Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ "a" : 1 }. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe JSON text

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive=false, but the description adds meaningful context they don't cover: the billing model ($0.01/call, first 25 free, failed calls free) and the explicit warning that repeats are not free. That cost/idempotency nuance is genuinely useful and consistent with idempotentHint=false, though nothing is said about how malformed JSON is handled.

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

Conciseness4/5

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

Front-loaded with the core action and example, then the pricing detail last. The pricing/payment sentence is dense with clauses but each carries information an agent would otherwise have to guess at.

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

Completeness4/5

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

For a one-parameter, annotation-backed transform tool this covers the essentials: what it does, one use case, a format example, the size-delta output, and the cost model. The only real omission is error behavior on invalid JSON input, which the agent must infer.

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

Parameters4/5

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

Schema coverage is 100% for the single 'text' parameter, so baseline is 3; the inline example text={ "a" : 1 } adds concrete format guidance beyond the terse schema field description, pushing it up one.

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

Purpose4/5

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

States a specific verb and resource: 'Remove all unnecessary whitespace from JSON', plus the side output ('report the size before and after'). It is distinguishable from siblings like json_format or json_validate by the whitespace-removal framing, though it never names those siblings to sharpen the contrast.

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

Usage Guidelines3/5

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

'Use to shrink payloads or prompts' gives one concrete context, but there is no when-not-to-use guidance and no mention of the near neighbors (json_format, json_repair, pack_json_toolbox) an agent would plausibly confuse this with.

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

json_repairJSON repair: fix broken JSONA
Read-only
Inspect

Fix JSON as LLMs often write it: removes json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True/False/None, and closes unclosed brackets. Returns the repaired JSON and whether it now parses. Use when an LLM's JSON output fails to parse. Example: text=json {name: 'Ada', tags: ['x',],}

NameRequiredDescriptionDefault
textYesThe broken JSON text

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so 'reads or computes only and changes nothing' is mostly redundant. The description adds genuinely non-redundant behavior: per-call pricing, first 25 free, failed calls free, and 'each call is charged, so repeats are not free', which explains the idempotentHint=false annotation in practical terms.

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

Conciseness4/5

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

The repair list and usage trigger are front-loaded in the first two sentences, so the critical information is reached immediately. The billing/pricing tail is longer than strictly needed for tool selection, though it is operationally relevant.

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

Completeness5/5

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

Even without an output schema, the description says what comes back ('the repaired JSON and whether it now parses'), what happens on failure (failed calls free), and confirms no side effects. Nothing an agent needs in order to call this one-parameter tool correctly is missing.

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

Parameters4/5

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

With one parameter at 100% schema coverage the baseline is 3, and the description adds real value by showing a sample of the 'text' payload (```json fences, single-quoted keys, trailing commas) that demonstrates accepted input rather than just naming the field.

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

Purpose5/5

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

States a concrete verb+resource ('Fix JSON') and then enumerates the exact failure modes it repairs: fences, prose, comments, trailing commas, single quotes, bare keys, True/False/None, unclosed brackets. The clause 'Use when an LLM's JSON output fails to parse' implicitly separates it from json_format/json_validate, which handle well-formed input.

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

Usage Guidelines4/5

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

Gives an explicit trigger condition — 'Use when an LLM's JSON output fails to parse' — plus a worked example of the input shape it targets. It does not name the closest siblings (json_validate, json_format) as alternatives, so the agent must infer that valid JSON should go elsewhere.

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

json_schemaJSON schema from example: infer a JSON SchemaA
Read-only
Inspect

Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and string formats (date-time, date, email, uri, uuid). Use to document an API response or to validate later data against the same shape. Example: json={"id":1,"email":"ada@example.com","tags":["a","b"],"created":"2026-10-23T08:00:00Z"}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
jsonYesThe example JSON

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the read-only and non-destructive annotations, it discloses that each call is charged, repeats are not free, the first 25 calls are free, failed calls are free, and payment is via x402 USDC or a card key. It also explains what the output contains, including draft version and supported inference features.

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

Conciseness4/5

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

The definition is front-loaded with the core action and inferred output, followed by usage, an example, and billing details. It is somewhat dense because it packs pricing and behavioral notes into the same paragraph, but every sentence carries useful information.

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

Completeness5/5

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

For a simple one-parameter tool with no output schema, the description covers purpose, output format, usage context, an example input, and billing behavior. An agent has enough information to decide when to call it and what to expect.

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

Parameters3/5

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

The schema has one parameter with 100% description coverage, so the baseline is 3. The description supplies an example value for the json parameter, which clarifies expected input shape, but it does not add substantial syntax or formatting details beyond that example.

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

Purpose5/5

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

The description states a specific verb and resource: infer a JSON Schema from an example JSON value. It names the schema draft, the inferred constructs, and distinguishes itself from sibling tools like json_validate and json_format by focusing on schema generation rather than validation or formatting.

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

Usage Guidelines4/5

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

It gives clear use cases: documenting an API response or validating later data against the same shape. It does not explicitly state when not to use it or name alternatives such as json_validate, but the intended context is easy to infer.

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

json_to_csvJSON to CSV, array to table: convert a JSON array of objects into CSVA
Read-only
Inspect

Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Example: text=[{"name":"Ada","age":36},{"name":"Alan","age":41}]. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesA JSON array of objects

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, non-idempotent, open-world, but the description adds the non-obvious parts: per-call billing ($0.01 via x402/card key, first 25 free, failed calls free) and that repeats are not free, which operationalizes idempotentHint=false. It still omits edge behavior such as empty arrays, objects with disjoint keys, or CSV quoting/escaping.

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

Conciseness5/5

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

Front-loaded with the transformation and output shape, then usage, then a compact concrete example, then cost caveats. Every sentence carries information the agent needs.

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

Completeness4/5

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

With no output schema, the description must convey the return format, and it does (header row from all keys, nested values as JSON) while also flagging the pricing model. Missing detail on uneven keys/delimiter escaping is the only real gap for a single-parameter tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline 3 applies, but the description adds real meaning: the input must be an array of objects and the header row is the union of all keys, with nested values serialized as JSON. The worked example with two records makes the expected input concrete.

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

Purpose5/5

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

States a specific verb and both resource types ('Convert a JSON array of objects to CSV') plus the output shape ('header row built from all keys'). This clearly separates it from the reverse sibling csv_to_json and the other json_* tools.

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

Usage Guidelines4/5

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

'Use to export API results to a spreadsheet' gives a concrete triggering scenario. It does not name the inverse tool (csv_to_json) or state when not to use it, so it stops short of full routing guidance.

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

json_to_yamlJSON to YAML: convert JSON into a readable YAML documentA
Read-only
Inspect

Convert a JSON value into a YAML document (block style, no line folding), for config files, Kubernetes manifests, GitHub Actions or docs that humans edit. Up to 100 KB of JSON. Use when a tool or person wants YAML; for the reverse use yaml_to_json. Invalid JSON is a 400, uncharged. Example: json={"name":"agent","ports":[80,443],"enabled":true}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
jsonYesThe JSON text (up to 100 KB)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, non-destructive, non-idempotent), and the description adds value beyond them: block-style/no-folding output shape, 100 KB limit, 400-on-invalid-JSON with no charge, pricing and first-25-free, and the note that repeats are charged because each call costs — which coherently explains idempotentHint=false.

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

Conciseness4/5

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

Front-loaded with the conversion and format details, then the routing hint, then limits and pricing. It is dense but every sentence conveys actionable information; the pricing/credits clause is a little promotional ('Price $0.01/call via x402 USDC or a card key (/credits)') and could be trimmed without loss.

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

Completeness4/5

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

For a single-parameter, no-output-schema conversion tool this covers input limits, error semantics, output style, and cost. The only modest gap is a precise statement of what the returned YAML document contains (bare document vs. trailing newline, multi-document handling), though 'block style, no line folding' already sets expectations.

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

Parameters4/5

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

Schema coverage is 100% with a single required 'json' string parameter, so the baseline is 3. The inline worked example (json={"name":"agent","ports":[80,443],"enabled":true}) usefully shows that the parameter takes a JSON *string* rather than a structured object, which is the one ambiguity the schema type alone leaves.

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

Purpose5/5

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

States a specific verb and resource ('Convert a JSON value into a YAML document'), pins the output style (block style, no line folding), and names the sibling for the reverse direction (yaml_to_json). An agent can distinguish it from json_format, json_minify, and yaml_to_json without opening any schema.

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

Usage Guidelines5/5

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

Gives the positive condition ('use when a tool or person wants YAML'), the explicit exclusion/alternative ('for the reverse use yaml_to_json'), and names target use cases (config files, K8s manifests, GitHub Actions). Also states the 100 KB input ceiling, which is a real gating condition.

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

json_validateJSON validator, validate JSON: check whether text is valid JSON and where the error isA
Read-only
Inspect

Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use before parsing an LLM's or an API's output. Example: text={"a":1}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe JSON text to check (up to 20,000 characters)

TDQS

A4.1/5.0
Behavior5/5

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

The description adds meaningful behavior beyond annotations: return values for valid and invalid input, line/column error details, pricing, free failed calls, and the fact that repeated calls are charged. These details are consistent with readOnlyHint=true, destructiveHint=false, and idempotentHint=false.

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

Conciseness4/5

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

The description is front-loaded and mostly efficient, moving from purpose to return format to usage to pricing. The safety sentence partly repeats annotation information, which slightly reduces conciseness.

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

Completeness5/5

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

For a one-parameter validation tool with no output schema, the description covers purpose, return shape, error reporting, usage context, pricing, and safety. Nothing essential for correct invocation is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the single text parameter and its 20,000-character limit are already documented in the schema. The description adds only an example, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: check whether text is valid JSON. It is clear what the tool does, but it does not explicitly distinguish itself from closely related siblings such as json_repair, json_format, or json_schema.

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

Usage Guidelines4/5

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

It gives a clear usage context: use before parsing an LLM's or an API's output. However, it does not specify when to choose this over json_repair or json_format, nor does it state exclusions.

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

jwt_decodeJWT decode: decode a JWT token's header and payload and check its expiryA
Read-only
Inspect

JWT decode without a key: the header and payload of a JSON Web Token (the signature is not verified), with issued-at, not-before and expiry as dates and whether it has expired. The token is not stored. Do not use the result to trust a token. Use to debug auth flows. Example: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3OTIyODE2MDB9.sig. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
tokenYesThe JWT

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/destructiveHint/idempotentHint, and the description goes well beyond them: signature not verified, the token is not stored, it 'reads or computes only and changes nothing', and each call is charged so repeats are not free — which explains the non-idempotent hint. Pricing details (first 25 free, failed calls free, $0.01/call via x402 USDC or card key) are context the annotations cannot carry.

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

Conciseness4/5

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

Purpose and the critical 'signature not verified' caveat are front-loaded, and the sentence order (what → safety warning → use case → example → cost) is logical. The pricing sentence is dense and slightly run-on, but each clause carries distinct information an agent needs.

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

Completeness5/5

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

With no output schema, the description still enumerates the returned fields and their date normalization plus the expiry boolean. Combined with the safety caveat, storage note, and billing model, 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.

Parameters3/5

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

There is a single required parameter at 100% schema description coverage, so the schema already carries the burden. The description adds a worked example token that illustrates the expected compact-serialization format, but nothing about validation, whitespace, or malformed-token handling — baseline 3 fits.

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

Purpose5/5

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

The opening clause names the exact operation and resource — decoding a JWT's header and payload — and immediately scopes it with 'without a key' and '(the signature is not verified)'. It also enumerates the returned fields (issued-at, not-before, expiry as dates, expired flag), so an agent knows precisely what it gets without opening a schema.

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

Usage Guidelines4/5

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

'Use to debug auth flows' gives a concrete use case, and 'Do not use the result to trust a token' is an explicit exclusion/warning about misuse. No sibling alternative is named, but no sibling performs JWT decoding, so there is nothing to route away to.

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

keywords_ideasKeyword ideas, keyword researchA
Read-only
Inspect

Keyword ideas for SEO and ads: the search phrases real users type for a seed keyword, from Google, Bing, YouTube, Amazon and DuckDuckGo autocomplete, deduplicated and ranked by how many engines suggest each, with question and buying-intent phrases listed apart. deep=true adds the Google long tail (seed + a-z, how, what, best, vs), up to 200 keywords. Use to plan content, find long-tail and question keywords, or name a product. No search volumes. Example: seed=crm software. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
deepNotrue to add the Google long tail (seed + each letter, question words); about 30 more lookups
langNoLanguage code (default en)
seedYesSeed keyword or topic, 2-80 characters
countryNoCountry code (default us)
enginesNoOptional comma list: google, bing, youtube, amazon, duckduckgo (default all)

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations by disclosing cost mechanics ($0.01/call, first 25 free, failed calls free), explaining why repeats are not free (consistent with idempotentHint=false), and describing output shaping (deduplication, engine-count ranking, question/buying-intent separation, ~200 keyword cap). The 'reads or computes only and changes nothing' line aligns with readOnlyHint=true rather than contradicting it.

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

Conciseness4/5

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

Front-loaded with the core output description before cost details, and every clause carries information. It is one dense run-on paragraph, and the pricing/payment sentence is bulky relative to the rest, costing a point on structure.

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

Completeness5/5

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

With no output schema, the description still conveys the return shape (deduplicated, ranked, question and buying-intent groups, up to 200 items) plus source engines and exclusions. Combined with 100% schema coverage and a full annotation set, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the schema already documents lang, country, engines, and deep. The description adds some value by explaining what deep actually produces (seed + a-z, how/what/best/vs, up to 200 keywords) and giving a seed example, but leaves lang/country/engines entirely to the schema.

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

Purpose5/5

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

States a specific deliverable: 'the search phrases real users type for a seed keyword' pulled from named engines, deduplicated and ranked. It also differentiates from the closest sibling (text_keyword_density) by framing output as new keyword ideas rather than density analysis of supplied text.

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

Usage Guidelines4/5

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

Gives explicit use cases ('plan content, find long-tail and question keywords, or name a product') and a negative boundary ('No search volumes') that prevents misuse. It does not name a sibling alternative for adjacent needs, but the scope statement is clear enough to route correctly.

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

llm_pricesLLM pricing, compare AI model API pricesA
Read-only
Inspect

Compare the API prices of about 450 LLMs from OpenAI, Anthropic, Google, Meta, Mistral, DeepSeek, Qwen and others: USD per million input and output tokens, context length, max output, modalities, and the cost of your call when you give token counts. Filter by name, provider, price cap, context or image input; sort by input, output or blended price. Source: OpenRouter's public model list. Use to pick the cheapest model that fits a job. Example: q=llama. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qNoWords in the model id or name, e.g. gpt, claude, llama 70b
sortNoinput (default), output, blended (3:1 input:output) or context
limitNoNumber of models (1-50, default 20)
visionNotrue: only models that take image input
providerNoOnly this provider: openai, anthropic, google, meta-llama, mistralai, deepseek, qwen…
minContextNoOnly models with at least this context length in tokens
inputTokensNoInput tokens of your call, to estimate its cost
outputTokensNoOutput tokens of your call, to estimate its cost
maxInputPriceNoOnly models at or under this USD per million input tokens

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare readOnlyHint, openWorldHint, destructiveHint=false and idempotentHint=false; the description goes beyond them by explaining *why* it is non-idempotent — every call is charged ($0.01 via x402 USDC or card key, first 25 free, failed calls free) so repeats cost money. That is exactly the kind of cost/auth context annotations cannot convey, and it reinforces 'reads or computes only and changes nothing' consistently.

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

Conciseness4/5

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

Front-loaded with the verb and dataset, then filters, then source, then usage, then billing — a sensible order with no filler sentences. The billing/access clause is dense and runs long, slightly blurring the main purpose on first read.

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

Completeness5/5

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

With no output schema, the description compensates by naming the returned fields (input/output price, context length, max output, modalities, computed call cost). For a 9-parameter, zero-required query tool, an agent has everything needed to call it and interpret the response.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all nine parameters; the description nonetheless clarifies the coupling between inputTokens and outputTokens (they estimate the cost of your call) and restates the filter/sort axes in task terms. It adds modest but real meaning above baseline.

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

Purpose5/5

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

States a specific verb and resource — 'Compare the API prices of about 450 LLMs' — and enumerates the concrete data returned (USD per million input/output tokens, context length, max output, modalities, per-call cost). The provider list and 'OpenRouter's public model list' source make it unmistakably distinct from siblings like crypto_price or units_convert.

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

Usage Guidelines5/5

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

'Use to pick the cheapest model that fits a job' gives the decision context explicitly, and the description lists the filter/sort axes that select among alternatives. It adds a worked example ('q=llama') and names the sibling-free workflow, leaving little to infer.

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

magic_8_ballMagic 8-ballA
Read-only
Inspect

Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will it ship today?. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
questionNoYour question (optional, not stored)

TDQS

A3.9/5.0
Behavior4/5

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

Adds genuinely useful behavior beyond the annotations: pricing ($0.01/call, first 25 free, failed calls free) and the fact that repeat calls are charged, which explains idempotentHint=false. 'Reads or computes only and changes nothing' largely restates readOnlyHint, but the cost and randomness disclosure carry real value.

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

Conciseness4/5

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

Front-loaded with purpose, usage, example, and pricing in a compact block. The sentence 'Reads or computes only and changes nothing' is redundant with the readOnlyHint annotation, a minor waste.

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

Completeness4/5

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

For a one-optional-parameter novelty tool with no output schema, the description covers purpose, random output, cost model, and intended audience. It could be stronger by pointing at yes_no for a deterministic alternative, but nothing essential for calling it correctly is missing.

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

Parameters3/5

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

With 100% schema coverage and a single optional 'question' parameter, the schema already does the documentation work. The example (question=Will it ship today?) clarifies expected format but adds little beyond what the schema states, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random'), which is clear and unambiguous. It does not differentiate from the sibling 'yes_no' tool, which is the nearest alternative, so it falls short of a 5.

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

Usage Guidelines4/5

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

Gives explicit use context ('For fun only. Use for games and chat bots'), which is more than implied usage. It does not name exclusions or the sibling alternative yes_no for deterministic answers, so no 5.

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

markdown_to_htmlMarkdown to HTML: render Markdown text as HTMLA
Read-only
Inspect

Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists and task lists, tables, quotes, rules) to HTML. Raw HTML in the input is escaped, so the output is safe to embed. Use to publish agent-written Markdown on a web page. Example: markdown=# Title Some bold text and a link.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
markdownYesThe Markdown

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing that raw HTML in the input is escaped and the result is safe to embed — a security trait nowhere in the structured fields — and explains the non-idempotent hint by noting each call is charged so repeats are not free. It still doesn't describe the return shape (fragment vs. full document) or size limits.

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

Conciseness4/5

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

The core purpose and the feature list are front-loaded in the first sentence, with safety and cost after. The billing sentence is dense and the inline example is clumsily formatted inside a prose sentence, costing some readability without padding the whole.

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

Completeness4/5

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

For a one-parameter, read-only tool with full schema coverage and annotations covering safety, this is nearly complete: purpose, supported syntax, escaping behavior, and pricing are all present. Only the exact form of the returned HTML and any input-size limits are left unstated.

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

Parameters3/5

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

Schema coverage is 100% for the single 'markdown' parameter, so the baseline is 3. The example ('markdown=# Title ...') illustrates an accepted value but adds nothing about limits, size caps, or encoding that the schema doesn't already cover.

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

Purpose5/5

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

States a specific verb and both source and target formats ('Convert Markdown ... to HTML') and enumerates the constructs handled, which lets an agent distinguish it from inverse tools like html_to_text or csv_to_markdown without opening the schema.

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

Usage Guidelines4/5

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

'Use to publish agent-written Markdown on a web page' gives a concrete usage context, and the cost note implies when not to call it redundantly. However, it never names an alternative (e.g. html_to_text for the reverse direction) or any exclusion, so it stops short of explicit routing.

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

math_evaluateMath expression calculator: evaluate a formula safelyA
Read-only
Inspect

Evaluate an arithmetic expression safely (parsed, never executed as code): + - * / % ^ and **, parentheses, factorial !, constants pi, e and tau, and functions sqrt, cbrt, abs, round, floor, ceil, exp, ln, log (base 10), log2, sin, cos, tan, asin, acos, atan (radians), min, max and pow. Up to 500 characters. Use when an agent needs exact arithmetic instead of guessing, for prices, unit maths or formulas. Example: expression=(1500 * 0.045 / 12) + sqrt(144) - 2^3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
expressionYesThe expression, such as (2+3)*4^2/sqrt(16)

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: the parser is safe and never executes code, there is a 500-character limit, calls cost $0.01, the first 25 are free, failed calls are free, and repeats are not free. The readOnlyHint=true and destructiveHint=false annotations are consistent with 'reads or computes only and changes nothing'.

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

Conciseness4/5

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

Front-loads what the tool computes and what syntax it accepts, then follows with usage, an example, and pricing. Slightly redundant at the end ('each call is charged, so repeats are not free' repeats the $0.01/call point), but every part is relevant.

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

Completeness3/5

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

The description is thorough on syntax, limits, and billing, but with no output schema it never states the return type or shape (e.g., a number vs. a formatted string, or how rounding is handled). That is a clear gap for a compute tool, though the rest of the entry is complete.

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

Parameters4/5

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

Schema coverage is 100% and the schema itself includes an example, so parameter semantics are already well served. The description adds useful meaning with the supported operator/function set and the 500-character constraint, which the schema does not state.

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

Purpose5/5

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

States a specific verb (evaluate) and resource (arithmetic expression) and enumerates exactly what the parser accepts: operators, constants, and named functions. This clearly separates it from siblings like math_stats, units_convert, and the calc_* helpers.

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

Usage Guidelines4/5

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

Gives an explicit usage condition ('when an agent needs exact arithmetic instead of guessing, for prices, unit maths or formulas') with a concrete example. It does not name the sibling tools an agent should prefer for statistics or unit conversion, but the context is otherwise clear.

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

math_statsStatistics of numbers: mean, median, standard deviation, percentilesA
Read-only
Inspect

Descriptive statistics for a list of numbers: count, sum, mean, median, mode, min, max, range, population and sample variance and standard deviation, quartiles with IQR, and the 90th, 95th and 99th percentiles (linear interpolation). Up to 10,000 numbers, comma or space separated. Use to summarise measurements, latencies, prices or scores without a spreadsheet. Example: values=12, 15, 15, 18, 21, 24, 30, 45. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
valuesYesNumbers separated by commas, spaces or new lines

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint/idempotentHint, but the description adds the non-obvious 'why': each call is billed, so repeats are not free, which explains idempotentHint=false. It also discloses price, the free-tier allowance, the 10,000-number cap, and that failed calls are free — real value beyond the annotations.

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

Conciseness4/5

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

The output list is front-loaded and the example, limits, and pricing follow in a logical order. Slightly dense — the pricing/second sentence is long — but each sentence carries information an agent can act on.

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

Completeness5/5

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

With no output schema, the description fully compensates by enumerating every returned statistic and the interpolation method for percentiles. Combined with input format, size cap, and cost model, an agent has everything needed to call and interpret it.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter, and the schema already documents the separator formats. The description adds the 10,000-number limit and a worked example, but omits the newline separator mentioned in the schema — marginal added meaning, so baseline 3.

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

Purpose4/5

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

The opening clause names a specific verb (compute descriptive statistics) and a specific resource (a list of numbers), then enumerates the exact outputs (mean, median, variance, quartiles, percentiles). That makes it easy to distinguish from math_evaluate or text_stats by subject matter, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

'Use to summarise measurements, latencies, prices or scores without a spreadsheet' gives concrete, actionable usage context. It does not, however, state when to prefer a sibling such as math_evaluate (expressions) or text_stats (text corpora).

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

memory_deleteAgent memory, delete a keyA
DestructiveIdempotent
Inspect

Delete the value saved under a key in your namespace now, before it expires. Answers deleted: false when there was nothing to delete. Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to forget a fact or clear task state. Example: namespace=demo-agent-memory-7f3c9a21, key=user-preferences. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Changes only what you saved in your own memory namespace; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key, up to 200 characters
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations, it discloses return behavior ('deleted: false when there was nothing to delete'), retention limits, read-after-write lag, namespace scope, and billing details including repeat-call charges. This is rich behavioral context for a destructive paid operation.

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

Conciseness4/5

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

The description is front-loaded with the core action and remains generally efficient. Some clauses are redundant, such as restating expiry rules and pricing, but each major sentence contributes operational context.

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

Completeness5/5

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

For a destructive, paid, two-parameter memory tool with no output schema, the description covers return semantics, billing, scope, expiry, and read lag. Nothing essential for correct invocation appears to be missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters in detail, including namespace secrecy and key length. The description adds a concrete example but mostly reinforces what the schema provides rather than adding new parameter semantics.

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

Purpose5/5

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

The description starts with a specific verb and resource: delete the value saved under a key in your namespace. It clearly distinguishes deletion from sibling memory operations such as memory_set and memory_get, and the added usage phrase 'forget a fact or clear task state' reinforces intent.

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

Usage Guidelines4/5

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

It gives a clear use case: 'Use to forget a fact or clear task state.' It does not explicitly contrast with memory_set, memory_get, or memory_list, but the deletion context and scope make the intended usage clear enough for an agent.

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

memory_getAgent memory, recall: read a saved valueA
Read-only
Inspect

Read the value saved under a key in your namespace with /memory/set, with when it was saved and when it expires. A key that was never saved or has expired is a 404 and is not charged. Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to recall what an agent saved in an earlier run. Example: namespace=demo-agent-memory-7f3c9a21, key=user-preferences. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key, up to 200 characters
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: TTL cap of 30 days, cross-region read lag up to a minute, 404-on-miss/expired with no charge, and per-call pricing with 25 free. The note that every call is charged even if repeated directly explains why idempotentHint is false for a read-only tool — genuinely useful context an agent cannot get from structured fields.

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

Conciseness4/5

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

Front-loaded with the action and scoping, then cost/lag caveats, which is the right order. Slightly over-packed: 'failed calls free' duplicates the earlier 'is not charged', and 'changes nothing' restates readOnlyHint, costing a little density.

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

Completeness5/5

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

With only two required params and no output schema, the description covers everything an agent needs: how to address the record, what comes back (value plus saved and expiry timestamps), failure mode, staleness window, and cost. Nothing material is left to guess.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds a worked example (namespace=demo-agent-memory-7f3c9a21, key=user-preferences) that illustrates the expected shapes and reinforces that key is scoped inside namespace. Minor value-add only, since the schema already spells out both fields.

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

Purpose5/5

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

States a specific verb+resource (read a saved value by namespace+key) and ties it explicitly to its counterpart /memory/set, so the read/write pair with memory_set is unambiguous. The one-line 'Use to recall what an agent saved in an earlier run' pins the intent with no vagueness.

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

Usage Guidelines4/5

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

Gives clear situational context ('recall what an agent saved in an earlier run') and a concrete example call with namespace and key. It does not explicitly exclude or route to siblings like memory_list or memory_delete, so an agent must infer when listing beats direct key lookup.

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

memory_listAgent memory, list keys: what a namespace holdsA
Read-only
Inspect

List up to 100 keys saved in your namespace, optionally only those starting with a prefix, with their size, save time and expiry; pass the returned cursor for the next page. Values are not included (read them with /memory/get). Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to see what an agent has saved. Example: namespace=demo-agent-memory-7f3c9a21. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
cursorNoThe cursor from the previous page of this list
prefixNoOnly keys that start with this text
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: page size cap (100), cursor chaining, fields returned (size, save time, expiry), a 30-day TTL, and a read-after-write lag of up to a minute. It also explains the billing model and that repeat calls are charged, which is exactly the context an agent needs to avoid wasteful polling, and it is consistent with readOnlyHint=true and idempotentHint=false.

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

Conciseness4/5

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

Front-loads what is listed and what is excluded, then pagination, then lifetime/lag, then pricing — a sensible order. The pricing clause is long and somewhat dense ('$0.002/call via x402 USDC or a card key...') but each sentence carries operational information.

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

Completeness5/5

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

There is no output schema, and the description compensates by naming the returned fields and explicitly stating values are omitted. With pagination, TTL, consistency lag, and cost all covered, an agent has everything needed to call this repeatedly and correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds behavior not in the schema: prefix restricts keys to those starting with the text, and the cursor is explicitly 'the returned cursor for the next page', clarifying the pagination contract. Namespace semantics (secret, password-like) remain in the schema only.

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

Purpose5/5

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

Opens with a specific verb+resource+scope: 'List up to 100 keys saved in your namespace', and immediately distinguishes itself from memory_get by stating values are not included. An agent can tell it apart from memory_set/memory_get/memory_delete without opening any schema.

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

Usage Guidelines4/5

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

'Use to see what an agent has saved' gives a positive trigger and it explicitly routes to /memory/get for values, which is the main alternative an agent would consider. It lacks an explicit 'do not use this for X' exclusion (e.g., content retrieval versus deletion), so it is clear but not fully exhaustive.

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

memory_setAgent memory, save: key value store for agentsA
Idempotent
Inspect

Save a value (up to 8,000 characters of text or JSON) under a key in your own namespace, so an agent can remember facts, preferences or task state between runs. Overwrites an existing key; expires after 1 to 30 days (default 30). Values are kept until they expire (at most 30 days) or are deleted; reads anywhere may lag a write made elsewhere by up to a minute. Use to persist what an agent learned for a later call to memory_get. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Changes only what you saved in your own memory namespace; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
keyYesThe key, up to 200 characters
daysNoDays to keep it, 1 to 30 (default 30)
valueYesThe text or JSON to save, up to 8,000 characters
namespaceYesYour namespace: a secret of 16 to 128 letters, digits, - or _ that you choose and reuse. Anyone who knows it can read and write it, so treat it like a password; send it in a POST body to keep it out of URLs.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: overwrite-of-existing-key semantics, TTL of 1-30 days with a default of 30, values persisting until expiry or deletion, cross-region read lag up to a minute, billing model including free failed calls, and the blast radius ('changes only what you saved in your own memory namespace'). Annotations only supply the readOnly/idempotent/destructive flags, so this is substantial added context.

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

Conciseness4/5

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

The core action and its storage semantics are front-loaded and the paragraph is dense with useful facts. It loses a point for redundancy: TTL/expiry is stated twice ('expires after 1 to 30 days' and 'kept until they expire (at most 30 days)') and pricing is restated at the end.

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

Completeness5/5

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

For a 4-parameter write tool with no output schema, the description covers lifetime, consistency, cost, scope of effect, and overwrite behavior, leaving nothing an agent needs in order to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents the key length, value size, days range/default, and the namespace-as-password warning. The description restates the value size and TTL rather than adding new syntax or format guidance, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Save a value ... under a key in your own namespace') plus the payload limit, and names memory_get as the read counterpart, which separates it from memory_get/memory_list/memory_delete in the sibling set.

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

Usage Guidelines4/5

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

Explicitly says when to use it: 'Use to persist what an agent learned for a later call to memory_get,' and warns that each call is charged so repeats are not free. It does not mention the other siblings (memory_list for enumeration, memory_delete for removal), so the routing picture is clear but not exhaustive.

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

mimeMIME type for a file: find the MIME content type for a file name or extensionA
Read-only
Inspect

MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or serving files. Example: file=report.xlsx. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
fileYesFile name or extension

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false; the description reinforces this with 'reads or computes only and changes nothing.' It adds genuinely non-structured context: per-call pricing ($0.002 x402 USDC / card key), 25 free calls, failed calls free, and the warning that repeats are charged—consistent with idempotentHint=false.

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

Conciseness3/5

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

The core purpose is front-loaded, but billing details ($0.002/call, free tier, failed calls free) are interleaved into the same narrative as functional behavior, making the sentence dense and slightly noisy for a trivial lookup tool. Every clause is relevant, but the mixture of semantics and commerce could be better separated.

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

Completeness4/5

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

There is no output schema, and the description compensates by describing both return dimensions (content type and inline-display flag). For a one-parameter lookup tool this is nearly sufficient; the only minor gap is not stating how unknown extensions are handled.

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

Parameters4/5

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

Schema coverage is 100% for the single required 'file' parameter, so baseline is 3. The description goes slightly beyond by demonstrating accepted input form ('Example: file=report.xlsx') and describing the second output dimension (inline display), which helps the agent understand what the input is used for.

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

Purpose5/5

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

States a specific verb and resource ('MIME (content) type for a file name or extension') and anchors it with a concrete example ('report.pdf → application/pdf'). This clearly separates it from siblings like base64_encode or hash, which also operate on files/strings but return different artifacts.

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

Usage Guidelines4/5

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

'Use when uploading or serving files' gives a concrete usage context, and the inline-display note signals the serving use case. No explicit exclusions or named alternatives, but no sibling in the list plausibly overlaps (nothing else resolves MIME types), so the lack of routing guidance is low-risk.

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

number_romanRoman numerals: convert numbers to Roman numerals and backA
Read-only
Inspect

Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: number=2026. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
romanNoRoman numerals to read
numberNo1 to 3999

TDQS

A3.6/5.0
Behavior4/5

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

With annotations already declaring the safety profile, the description adds genuinely non-redundant context: pay-per-call pricing, first 25 free, failed calls free, and the fact that repeats are charged, which explains why idempotentHint=false. 'Reads or computes only and changes nothing' is largely a restatement of readOnlyHint/destructiveHint, but the cost model is real added value.

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

Conciseness3/5

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

Core purpose is front-loaded in the first sentence, but the trailing payments sentence drags in '/credits', 'x402 USDC' and card-key detail that is partially redundant with 'each call is charged, so repeats are not free'. Some of the cost clause earns its place; the payment-rail specifics are clutter.

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

Completeness3/5

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

For a two-param converter with no output schema, the description covers inputs and cost but never says what comes back (a string, e.g. 'MMXXVI') nor what happens if both or neither argument is supplied. Adequate but leaves behavioural edges to be discovered.

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

Parameters4/5

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

Schema coverage is 100% and both parameters are documented, so the baseline is 3. The description goes beyond by stating the 1-3999 range for number and clarifying the mutual-exclusivity mode ('Give either number or roman'), which is not expressed in the schema (required: 0).

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

Purpose4/5

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

States a specific verb and resource in both directions ('Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number') and gives the valid range, so an agent knows exactly what it does. It does not differentiate itself from the near-neighbour sibling number_words, so it stops short of a 5.

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

Usage Guidelines3/5

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

'Use for dates, outlines and puzzles' gives loose context for when the tool applies, and 'Give either number or roman' implies the input-mode choice. There is no explicit when-not guidance and no named alternative among the many siblings.

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

number_wordsNumber to words, in English: write a number out in English wordsA
Read-only
Inspect

Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents when given a decimal amount. Use when amounts must be written out in full. Example: number=1234.5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberYesThe number, decimals allowed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces that ('reads or computes only and changes nothing'). More valuable is the disclosure that each call is charged ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), which explains why idempotentHint=false — repeats are not free. It stops short of describing output formatting details, but the cost/rate-limit disclosure is real added context.

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

Conciseness4/5

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

Purpose, scope, and the example are front-loaded, and the pricing sentence is dense but earns its place by answering cost and idempotency questions. The example value (number=1234.5) is slightly redundant with the preceding sentence but harmless.

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

Completeness4/5

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

For a single-parameter conversion tool with no output schema, the description covers input bounds, output shape (words plus cheque form), cost, and safety. Only the exact response structure is left implicit, which is a minor gap for a tool this simple.

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

Parameters4/5

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

Schema coverage is 100% and the single parameter is already documented as 'decimals allowed'. The description still adds meaning beyond the schema: the upper bound (trillions), that negatives are accepted, and that a decimal amount triggers a cheque-form output with 'and' cents.

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

Purpose5/5

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

States a specific verb and resource ('Write a whole number ... out in English words') and immediately bounds the domain (up to trillions, negatives allowed, decimals get a cheque form). This clearly separates it from sibling number_roman, which converts to Roman numerals rather than English words.

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

Usage Guidelines4/5

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

'Use when amounts must be written out in full' plus the cheques/invoices framing gives a concrete usage context. It does not name an alternative tool or state when not to use it, so it falls short of explicit routing guidance.

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

pack_encoding_toolboxEncoding toolbox: Base64, hex, URL, HTML and UnicodeA
Read-only
Inspect

Every common encoding of one text in a single call: Base64 and Base64url, hex, URL component and full-URL encoding, HTML-escaped, ROT13, Unicode code points, UTF-8 byte count and Punycode for international domain names, plus automatic decoding when the input already looks like Base64, hex, URL or HTML encoding. Use to prepare data for headers, URLs and markup, or to work out what an encoded string says. Example: text=Café & . Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text (up to 20,000 characters)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint, so the description's 'reads or computes only and changes nothing' mostly restates them. It does add genuinely non-schema behavior: automatic decoding when input already looks encoded, and per-call charging (first 25 free, failed calls free) which explains the idempotentHint=false cost implication. The lack of any statement about what the response looks like is the main remaining gap.

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

Conciseness4/5

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

The capability list and use case are front-loaded and every clause names a distinct format, so the long first sentence is dense rather than padded. The trailing pricing sentence is transactional necessity rather than description value, and the 'reads or computes only' clause is mild redundancy against the annotations.

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

Completeness4/5

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

For a one-parameter, no-output-schema tool this covers inputs, formats produced and billing well enough to call correctly. What is missing is how the result is shaped — whether all encodings are returned together or only those relevant to the input, and how the auto-decode path is signalled — which an agent would need to interpret the response.

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

Parameters4/5

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

With 100% schema coverage the single 'text' parameter is already documented, including the 20,000-character limit, so the schema carries the load. The description nonetheless adds value by supplying a realistic sample value ('Café & <tags>') that shows the tool expects arbitrary mixed text rather than pre-encoded input.

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

Purpose5/5

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

States a concrete verb+resource ('every common encoding of one text in a single call') and enumerates the exact formats produced (Base64/Base64url, hex, URL component and full-URL, HTML, ROT13, code points, UTF-8 byte count, Punycode) plus automatic decoding. This clearly distinguishes it from the single-format siblings such as base64_encode, url_encode and text_caesar without opening any schema.

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

Usage Guidelines4/5

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

'Use to prepare data for headers, URLs and markup, or to work out what an encoded string says' gives both a write-side and a read-side use case with a worked example (text=Café & <tags>). It does not explicitly say when to prefer this over the narrower base64_encode/url_encode siblings, so the boundary is implied rather than stated.

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

pack_hash_toolboxHash generator, hash toolbox: MD5, SHA-256, SHA-512, Keccak, CRC32 and SRIA
Read-only
Inspect

Every common hash of one input in a single call: MD5, SHA-1, SHA-256, SHA-384, SHA-512, Keccak-256 (Ethereum), CRC-32, base64 SHA-256, and Subresource Integrity strings (sha256-, sha384-, sha512-) for . Hashes UTF-8 text, or 0x/hex bytes with hex=true. Cheaper than hashing one algorithm at a time. Use for checksums, cache keys, file integrity and comparing digests across systems. Example: text=hello world. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
hexNotrue to treat text as hex bytes (0x prefix optional)
textYesText to hash (up to 100,000 characters), or hex bytes with hex=true

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive and non-idempotent, and the description reinforces that nothing is changed. It adds context the annotations do not carry: per-call pricing ($0.002 via x402 USDC or card key), 25 free calls, failed calls free, and that repeats are billed. Input semantics (UTF-8 vs 0x/hex bytes) are also noted.

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

Conciseness4/5

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

The capability list and input semantics are front-loaded, and the use cases and pricing trail behind. It is dense but nearly every sentence carries information; the pricing boilerplate is the only part that could be trimmed.

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

Completeness4/5

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

With no output schema, the description effectively enumerates the returned values (MD5, SHA-1, SHA-256, SHA-384, SHA-512, Keccak-256, CRC-32, base64 SHA-256, SRI strings), which is what an agent needs to know about the response. Limits like the 100,000-character cap live in the schema, and no pagination or error behavior is described, but little is missing for a simple stateless hash call.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters and the hex flag are fully documented in the schema itself. The description restates the hex behavior and the 'text=hello world' example, adding only marginal value beyond structured data.

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

Purpose5/5

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

States a specific verb and resource ('Every common hash of one input in a single call') and enumerates exactly which digests come back, including SRI strings and Keccak-256 for Ethereum. It also implicitly distinguishes itself from the sibling 'hash' tool by framing itself as the multi-algorithm option that is 'cheaper than hashing one algorithm at a time'.

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

Usage Guidelines4/5

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

Gives concrete usage contexts (checksums, cache keys, file integrity, comparing digests across systems) and an inline example. It hints at the alternative ('hashing one algorithm at a time') but never names the sibling 'hash' tool or states when a single-algorithm call would be preferable.

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

pack_id_toolboxID generator, UUID, ULID: UUID v4, UUID v7, ULID, NanoIDA
Read-only
Inspect

Generate unique IDs of every common kind in one call: UUID v4 (random), UUID v7 and ULID (time-ordered, sort by creation), NanoID (21 URL-safe characters) and random base62 and hex strings, up to 20 of each, from the platform's cryptographic random source; and decode the creation time hidden in a ULID or UUID v7. Use for database keys, request and trace IDs, file names or test data. Example: count=3. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many of each kind, 1-20 (default 3)
decodeNoOptional ULID or UUID to read the timestamp from
lengthNoLength of the random strings, 8-128 (default 24)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, destructiveHint=false, idempotentHint=false), but the description goes further by disclosing the billing model ($0.002/call via x402 or card key, first 25 free, failed calls free) and the cryptographic random source, and it justifies non-idempotency by noting repeats are charged. It restates 'changes nothing' from readOnlyHint, which slightly dilutes the added value.

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

Conciseness4/5

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

The ID kinds and the read-only guarantee are front-loaded in the first sentence, then usage, example, and pricing follow in a logical order with no filler. It is dense and long for a single paragraph, but each clause carries operational information.

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

Completeness4/5

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

With no output schema, the description should ideally say what the response looks like when both generation and decode are requested; it never states the return shape (e.g. per-kind arrays plus a decoded timestamp field). Everything else an agent needs — limits, defaults via the example, cost, and mutation safety — is present.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: 'up to 20 of each' clarifies that count is per ID type rather than a total, and 'NanoID (21 URL-safe characters)' versus 'random base62 and hex strings' implies the length parameter only affects the random-string kinds, not NanoID.

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

Purpose5/5

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

Names a concrete verb and enumerates the exact artifacts produced: UUID v4, UUID v7, ULID, NanoID, base62 and hex strings, plus a decode mode for embedded timestamps. An agent can tell immediately that this is a multi-format ID factory rather than something like the sibling `uuid` (single format) or `random_password`.

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

Usage Guidelines4/5

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

Explicitly scopes use cases — database keys, request/trace IDs, file names, test data — and gives a worked example (count=3). It does not, however, route the agent away from the neighboring `uuid` or `random_password` tools, so the when-not-to-use condition is left implicit.

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

pack_json_toolboxJSON toolbox: validate, format, minify, schema and YAMLA
Read-only
Inspect

Everything about one JSON document in a single call: valid or not with the error's line and column, pretty-printed (optionally with sorted keys), minified with the bytes saved, an inferred JSON Schema, structure statistics (depth, objects, arrays, keys, value types) and the same data as YAML. Up to 200 KB. Cheaper than the separate JSON tools. Use to inspect API responses, clean model output or document a payload. Example: json={"name":"agent","tools":["weather","search"],"active":true,"limits":{"daily":100}}. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
jsonYesThe JSON text (up to 200 KB)
sortKeysNotrue to sort object keys in the formatted output

TDQS

A4.6/5.0
Behavior5/5

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

The annotations establish read-only and non-destructive, and the description adds pricing ($0.01/call, first 25 free, failed calls free), a 200 KB size cap, and an explicit warning that repeat calls are billed — which usefully explains the idempotentHint=false annotation. It also states 'reads or computes only and changes nothing', reinforcing the safety profile with concrete context.

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

Conciseness4/5

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

The output list is front-loaded and every clause carries information; the example and pricing note each earn their space. It is dense — one long chain of clauses — but not padded with filler, and the length is justified by the breadth of operations covered.

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

Completeness5/5

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

With no output schema, the description carries the full burden and discharges it by enumerating each return artifact: validity plus error location, formatted text, byte savings, inferred schema, statistics, and YAML. Size limits, cost model, and safety are all covered, so an agent has everything needed to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds value beyond the schema: a concrete json example showing nested objects, arrays, and mixed types, the 200 KB limit restated in context, and the note that sorted keys apply to formatted output only. The sortKeys parameter is still only loosely characterized ('optionally with sorted keys').

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

Purpose5/5

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

The description opens with a specific scope statement ('Everything about one JSON document in a single call') and enumerates every operation: validation with line/column errors, pretty-print with optional sorted keys, minify with byte savings, schema inference, statistics, and YAML output. It explicitly positions itself against the sibling single-purpose tools (json_validate, json_format, json_schema, json_to_yaml) by calling itself cheaper than using them separately.

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

Usage Guidelines4/5

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

It gives concrete use cases ('inspect API responses, clean model output or document a payload') and a routing incentive ('cheaper than the separate JSON tools'). It doesn't say when NOT to use it — e.g., that a single-purpose sibling may be preferable if you only need one output and want to avoid the $0.01 charge — but the routing intent is clear enough for an agent to choose.

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

pack_string_toolboxString utilities: every case, slug, counts and moreA
Read-only
Inspect

Transform one string every common way at once: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Title Case, Sentence case, upper and lower; a URL slug (accents removed); reversed; trimmed and whitespace-collapsed; and counts of characters, letters, digits, words and lines. Splits identifiers like userIDValue or XMLHttpRequest correctly. Use when naming fields, files and routes or cleaning user input. Example: text=Hello World, user profile ID 42. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe string (up to 10,000 characters)

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses pricing/auth (x402 USDC or card key, first 25 free, failed calls free), explains why repeats cost money (explaining idempotentHint=false), and confirms 'reads or computes only and changes nothing' in plain language. It also states the 10,000-character scope of each call.

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

Conciseness4/5

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

Front-loaded with the full enumeration of transformations before the usage hint, which is the right ordering. It is dense and the pricing/payment sentence is long, but every clause (including pricing and the no-side-effects note) carries information an agent needs.

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

Completeness4/5

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

With no output schema, the enumeration effectively serves as the return-value description, and pricing/auth/idempotency are covered. It doesn't say how results are packaged (a single object of all variants?), so a 4 rather than a 5.

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

Parameters3/5

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

A single parameter with 100% schema description coverage, so the schema already carries the type and length limit. The description's example ('text=Hello World') adds a little, but it is embedded in a run-on sentence mixing in pricing and is fuzzier than it could be. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb and resource ('Transform one string every common way at once') and then enumerates the exact outputs: camelCase, snake_case, slug, reversed, trimmed, and character/word/line counts. The 'at once' framing differentiates it from single-purpose siblings such as slug, case, and text_stats, so an agent can tell what it uniquely does.

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

Usage Guidelines4/5

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

Gives concrete usage contexts ('naming fields, files and routes or cleaning user input'), which is more than most definitions offer. It stops short of explicit when-not guidance or naming alternatives (e.g., 'for a slug alone use slug'), so a 4 rather than a 5.

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

pack_text_analysisText analysis: readability, keywords, entities and safetyA
Read-only
Inspect

One call to analyse a text: length, reading time and readability grade, the top keywords and repeated phrases with their density, the emails, links, phone numbers, hashtags and mentions it contains, and a prompt-injection scan for text an agent is about to act on. Up to 20,000 characters, local processing. Cheaper than the four tools bought one by one. Use to review drafts, triage inbound messages or vet scraped content. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text (up to 20,000 characters)

TDQS

A4.4/5.0
Behavior5/5

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

With readOnlyHint/destructiveHint already declaring safety, the description still adds substantial non-structured context: the 20,000-character ceiling, local processing, per-call pricing ($0.01 via x402 USDC or card key /credits), the first-25-free allowance, and that failed calls are free. It even explains the non-idempotent hint ('each call is charged, so repeats are not free') and confirms mutability boundaries ('Reads or computes only and changes nothing'). No contradiction with annotations.

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

Conciseness4/5

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

Front-loaded with the core 'one call' framing and the output inventory, with cost/limits after. The first sentence is a very long run-on list, and some clauses (e.g. x402 vs card key detail) are dense, but every sentence carries usable information rather than filler.

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

Completeness5/5

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

No output schema exists, yet the description compensates by enumerating the returned sections (length, reading time, readability grade, keywords, repeated phrases with density, entities, injection scan). Combined with size limit, cost model and safety semantics, an agent has everything needed to decide to call it and to interpret the result.

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

Parameters3/5

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

There is only one parameter and the schema already documents it fully ('The text (up to 20,000 characters)'), so the description's 'Up to 20,000 characters' merely restates the constraint. Nothing is added about encoding, truncation behavior, or what happens if the limit is exceeded, so the high-coverage baseline of 3 applies.

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

Purpose5/5

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

Names a specific verb and resource ('One call to analyse a text') and then enumerates the exact sub-analyses returned: length, reading time, readability grade, keywords, phrase density, PII-like entities and a prompt-injection scan. That enumeration also implicitly distinguishes it from the granular siblings (text_stats, ai_keywords, text_prompt_injection, text_keyword_density), which an agent can infer without opening any schema.

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

Usage Guidelines4/5

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

Gives three concrete usage contexts ('review drafts, triage inbound messages or vet scraped content') and signals a bundle-vs-singles tradeoff ('Cheaper than the four tools bought one by one'). It stops short of explicitly naming the alternative single-purpose tools or saying when a narrower sibling is preferable (e.g. if you only need a prompt-injection check).

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

phone_validatePhone number validation: valid, E.164 format, country and line typeA
Read-only
Inspect

Validate and format a phone number with the libphonenumber rules: whether it is valid and possible, the E.164 form, international and national formatting, country, calling code and line type (mobile, fixed-line, toll-free, VoIP…). Give +country code, or a national number and a two-letter country. Offline: nothing is sent and it does not say the line is in service. Use to clean contact lists or check a number before an SMS. Example: number=+1 650-253-0000. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberYesPhone number, ideally with +country code
countryNoTwo-letter country for national numbers without +code (US, GB, SE…)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/destructive/idempotent, and the description adds matters the agent genuinely cannot infer: the operation is fully offline with nothing transmitted, it does not confirm the line is in service, and every call is billed so repeats are not free — which concretely explains the idempotentHint=false. The pricing model (first 25 free, failed calls free, x402/card key) is real operational context. Minor tension with openWorldHint=true, since the description emphasizes offline behaviour, but it does not contradict any safety hint.

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

Conciseness5/5

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

Front-loaded with purpose and return fields, then input rule, then caveats, example and cost. Sentences are dense but each carries distinct information; nothing repeats the schema or annotations verbatim.

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

Completeness5/5

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

There is no output schema, so the description must carry the return shape — and it does, listing every field the caller gets. Inputs, caveats, example and cost are all covered, so an agent can call this correctly without further information.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3, but the description adds the relational rule between the two parameters — country is only needed for national numbers lacking a +code — which the per-field schema text does not express. The worked example ('number=+1 650-253-0000') further pins down the expected format.

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

Purpose5/5

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

Names a specific verb and resource ('Validate and format a phone number') and enumerates exactly what comes back: validity, possible, E.164, international/national formatting, country, calling code and line type. That output list cleanly separates it from the other validators in the sibling set (validate_iban, validate_isbn, validate_luhn, vin).

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

Usage Guidelines4/5

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

'Use to clean contact lists or check a number before an SMS' gives concrete selection contexts, and 'Give +country code, or a national number and a two-letter country' states the input rule. It also bounds expectations ('it does not say the line is in service'), which effectively rules out carrier-lookup use cases. No explicit naming of alternatives, so not a 5.

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

pingPing, x402 payment test: a minimal paid call to test that an x402 payment settlesA
Read-only
Inspect

A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

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

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses pricing ($0.01/call via USDC or card key), a 25-call free tier, that failed calls are not charged, and that each call is billed so repeats are not free. That last point usefully explains the idempotentHint=false annotation rather than contradicting it, and 'reads or computes only and changes nothing' aligns with readOnlyHint=true.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the return behavior and then the use case and billing. There is minor repetition around payment ('paid round-trip', 'each call is charged'), but nothing is padding.

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

Completeness4/5

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

For a zero-required-parameter diagnostic tool with no output schema, it covers return values, billing, and side-effect freedom. The only gap is that the 'only' filter is left entirely to the schema, which is acceptable given full coverage.

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

Parameters3/5

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

Schema description coverage is 100% and the single optional 'only' filter is fully documented in the schema, so the baseline of 3 applies. The description adds no extra detail about the parameter or typical key values.

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

Purpose5/5

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

States a specific verb and resource ('paid round-trip check: returns pong and the server time') and immediately frames the tool as a payment-settlement test, which separates it from the free 'echo' sibling in the list. An agent knows both what comes back and why this tool exists.

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

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it 'to test that an x402 wallet, client or MCP setup can pay and receive a result', which is a clear usage trigger. It never names the obvious alternative (the free 'echo' tool) or says when not to spend money, so the routing guidance is implied rather than complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qrQR code generator: a QR code as SVG for any text or URLA
Read-only
Inspect

Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q or H. Use to put a link, Wi-Fi string or payment request on a page, label or ticket. Example: text=https://agent-data-tools.revmesh2074.workers.dev. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
eccNoError correction: L, M (default), Q or H
sizeNoPixels per module, 1-20 (default 4)
textYesThe text or URL to encode
marginNoQuiet zone in modules, 0-10 (default 4)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: pricing ($0.01/call via x402 USDC or card key, first 25 free, failed calls free), output format, and an explicit 'reads or computes only and changes nothing' that corroborates readOnlyHint. 'Each call is charged, so repeats are not free' also explains the idempotentHint=false annotation in billing terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then usage, then example, then pricing. Dense but every clause carries information; the pricing/billing sentence is long but justified since cost affects repeat-call decisions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming both return artifacts (SVG and data URL). Combined with the input character cap, ECC options, and billing behavior, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds a real constraint not in the schema — the 1,000-character UTF-8 limit — and restates the ECC option set with the M default. It does not add detail on size/margin beyond the schema, which is already well documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (generate) and resource (QR code), the accepted input (URL or any UTF-8 text up to 1,000 chars), the output form (scalable SVG plus ready-to-embed data URL), and supported ECC levels. No sibling tool does anything similar, so an agent can route this unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts ('put a link, Wi-Fi string or payment request on a page, label or ticket') and a literal example call with text=... No exclusions or alternatives are named, but no sibling overlaps this capability, so the gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_colorRandom colourA
Read-only
Inspect

One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toneNoany (default), pastel or dark
countNoHow many (1-50, default 1)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, non-idempotent and non-destructive, but the description adds genuinely new operational context: per-call cost ($0.01 via x402 USDC or card key), the first 25 calls free, and that failed calls are not charged. That reinforces the idempotentHint=false consequence in a way annotations cannot.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and formats come first, then use cases, then billing — a sensible front-loading order with no wasted clauses. The billing sentence is long and packs several facts (price, payment rails, free tier, refunds), slightly weighing down an otherwise tight definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the return formats (hex, RGB, HSL), and it covers cost and safety behavior. The only minor gap is that the count range and default are left entirely to the schema, but that is acceptable given full schema coverage and simple annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema (tone: any/pastel/dark; count: 1-50, default 1). The description only restates the tone restriction and shows an example call, adding little beyond the structured fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (generate random colours) plus the output formats (hex, RGB, HSL) and the tone restriction, which is more precise than the sibling 'color' or 'color_contrast' converters. It does not explicitly say how it differs from those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for placeholders, avatars and design ideas" gives implied usage contexts, and the "Example: count=3" shows invocation. There is no explicit when-not guidance and no pointer to alternatives like 'color' or 'color_contrast', so the agent must infer the boundary itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_numberRandom numberA
Read-only
Inspect

One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Example: min=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
maxNoHighest value (default 100)
minNoLowest value (default 1)
countNoHow many (1-1000, default 1)
uniqueNotrue for no repeats

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: a cryptographic source, inclusive bounds, a metered cost model ($0.01/call, first 25 free, failed calls free) and that repeats are billed again, which reinforces idempotentHint=false. The "reads or computes only and changes nothing" clause largely restates readOnlyHint, so it earns no extra credit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and range semantics are front-loaded in the opening clause, and the pricing sentence carries genuinely useful agent-facing information. The dangling "Example: min=1." is a truncated fragment that wastes a slot without illustrating anything.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, all-optional, non-destructive compute tool with a fully described schema, this covers range semantics, uniqueness, randomness quality and cost. The only real gap is the shape of the return value when count > 1, which no output schema fills in.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, and the description goes further by clarifying that ranges are inclusive and that `unique` means "all different" — details the schema does not spell out. It still does not describe what `count` returns (single value vs array).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: generating one or more random whole numbers within an inclusive range, from a cryptographic source. The resource is clearly narrower than random_pick or random_shuffle, but siblings are never named, so the agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for draws, sampling and games" gives a clear positive context for when this tool applies. It stops short of exclusions or pointing at alternatives like random_pick (list-based) or dice, which would have made routing unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_passwordPassword generator: generate a strong random passwordA
Read-only
Inspect

Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing is stored or logged. Use when creating accounts or secrets. Example: length=20. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many (1-20, default 1)
lengthNo8-128 characters (default 20)
symbolsNofalse to leave out symbols

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/destructive hints, but the description adds genuinely new behavioral facts: cryptographic entropy source, no storage or logging of results, and a per-call pricing model with the first 25 calls free and failed calls free. It also flags that repeat calls incur cost, which reinforces the non-idempotent hint with a practical consequence an agent would otherwise miss.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then mechanism, then usage, then cost — a sensible order. It is slightly padded: "Reads or computes only and changes nothing" restates readOnlyHint, and "repeats are not free" repeats the cost sentence immediately preceding it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with annotations and no output schema, the description covers purpose, safety, and cost well. The one gap is the return shape — with no output schema, the description should say whether count>1 yields an array of strings, which an agent needs to parse the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the three parameters are already fully documented. The description only gestures at 'choose length and character sets' and offers 'Example: length=20', adding no constraints or semantics beyond the schema, and never mentions the count parameter. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate strong random passwords or passphrase-style strings') plus the mechanism (cryptographic random source) and the tunable dimensions (length, character sets). This clearly separates it from neighbor tools like random_number, random_pick, or uuid, which produce different artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when creating accounts or secrets" gives a concrete triggering context, and "repeats are not free" warns against reflexive retry. It stops short of naming an alternative (e.g., uuid for identifiers), so the routing guidance is contextual rather than exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_pickPick at random from a listA
Read-only
Inspect

Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Example: items=Ada,Alan,Grace,Linus. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many to pick (default 1)
itemsYesComma-separated items

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing cost and auth mechanics ('Price $0.01/call via x402 USDC or a card key', 'first 25 free; failed calls free') and explaining the practical consequence of idempotentHint=false ('each call is charged, so repeats are not free'). Still silent on the return shape, which matters for a tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then example, then pricing caveat — a sensible order with little waste. 'Reads or computes only and changes nothing' partly duplicates readOnlyHint/destructiveHint and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema tool, the description covers action, format, use cases, and billing — enough to call it correctly and safely. The one real gap is that nothing says what the response contains (picked items only, or the remainder as well), which the agent must discover by calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The example 'items=Ada,Alan,Grace,Linus' demonstrates the accepted list format concretely, but nothing is added about count semantics such as whether it must be ≤ list length or what happens when count exceeds the list size.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Pick one or more items at random (without repeats) from a comma- or line-separated list'), which is precise enough to separate it from random_number and random_color. It never names the near-neighbors random_shuffle or random_teams, so the agent must infer that those reorder/partition rather than sample.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete usage contexts are given ('raffles, choosing who goes first, or breaking ties fairly'), which clearly frames when to reach for this tool. There are no exclusions or named alternatives, so the agent gets positive guidance but no routing rules against siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_shuffleShuffle a listA
Read-only
Inspect

Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Example: items=1,2,3,4,5. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
itemsYesComma-separated items

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: the underlying Fisher-Yates algorithm with a cryptographic random source, the billing model ($0.01/call, 25 free, failed calls free), and the cost consequence of non-idempotency ('each call is charged, so repeats are not free'). It also restates 'changes nothing', consistent with readOnlyHint=true and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and algorithm are front-loaded, and each sentence carries information. The pricing is somewhat overstated across two sentences ('Price $0.01/call ... first 25 free' and 'each call is charged, so repeats are not free'), a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema utility, the description covers input format, example, algorithm, safety and cost — enough to call it correctly. The one gap is return shape: it doesn't say whether output is comma-separated, line-separated, or an array, which the absent output schema leaves undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already says 'Comma-separated items', so the baseline is 3. The description goes beyond it by accepting line-separated input as well and showing a filled-in example, which resolves the main ambiguity about the delimiter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Shuffle a comma- or line-separated list into a random order') and names the algorithm, which pins down semantics precisely. The use cases (draw orders, seating, playlists) implicitly separate it from random_pick and random_teams, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for draw orders, seating and playlists' gives clear positive context plus a concrete example (items=1,2,3,4,5). It stops short of naming an alternative or stating when NOT to use it (e.g. picking one winner → random_pick).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

random_teamsSplit people into teamsA
Read-only
Inspect

Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,Tim. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
itemsYesComma-separated names
teamsNoNumber of teams (default 2)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false. The description adds important cost and billing behavior ('Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free') and emphasizes that repeats are charged, which is not in annotations. It also reiterates the read-only nature, aligning with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then adds use cases, an example, and pricing details. It is mostly efficient, though the pricing and billing sentences could be seen as slightly verbose for a tool selection description, but they are relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers purpose, use cases, example, cost, and behavior. However, it does not describe the return format (e.g., how teams are presented), which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents both parameters. The description provides an example for 'items' that reinforces the comma-separated format, but adds no new semantic constraints or meaning beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('split') and resource ('list of names') and clarifies the outcome ('random, evenly sized teams'). This distinguishes it from sibling tools like random_shuffle or random_pick, which do not divide into teams.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear use cases ('games, workshops and classrooms') but does not explicitly say when to use this versus alternatives like random_shuffle, or mention prerequisites or exclusions. The context is helpful but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommendAPI recommendation: which API to call for a taskA
Read-only
Inspect

Describe a task in plain words and get the best-matching paid API calls for it from a catalog of 320 tools (web search and page reading, LLM chat, token prices and chain reads on 5 networks, sanctions and company checks, weather, finance and utilities): each pick with the exact call URL, required inputs, price, MCP tool name and whether it is in the free calls. Use when an agent needs to find which API to call before paying for one. Example: need=current gas price on Base. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
needYesThe task in plain words, up to 300 characters
countNoHow many picks, 1 to 5 (default 3)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost model: $0.002/call via x402 USDC or a card key, first 25 free, failed calls free, and that each call is charged so repeats are not free. This is exactly the kind of economic and auth context annotations cannot express, and the 'repeats are not free' note is consistent with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the catalog scope, with pricing and the example trailing correctly. The body is a dense multi-clause sentence with a parenthetical category list that slows reading, but no clause is genuinely dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter discovery tool with no output schema, the description covers catalog breadth, the shape of each recommendation, cost and free tier, and the read-only nature of the call. An agent has everything needed to invoke it and interpret the result without opening anything else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented; the baseline is 3. The description adds value by showing a real 'need' value, illustrating the expected phrasing and specificity, though it says nothing about the count parameter beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: turn a plain-language task into best-matching paid API calls from a 320-item catalog, and enumerates the return fields (call URL, required inputs, price, MCP tool name, free-call status). It is unmistakably distinct from the utility siblings (base64_encode, calc_tip, uuid), which do work rather than recommend tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit triggering condition: 'Use when an agent needs to find which API to call before paying for one', which also implies the ordering constraint (recommend first, then pay). A concrete worked example ('need=current gas price on Base') removes ambiguity about the granularity of a 'task'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regex_testRegex tester, test a regular expression: test a regular expression against a text and get every match with its groupsA
Read-only
Inspect

Run a JavaScript regular expression against a text and return every match with its index and capture groups (named groups included). Pattern up to 300 characters, text up to 5,000; patterns with nested quantifiers such as (a+)+ are refused as unsafe, uncharged. Use to check a pattern before using it in code. Example: pattern=(\d{4})-(\d{2}), text=2026-10 and 2027-01. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to search
flagsNoFlags such as g, i, m, s, u (g is always added)
patternYesThe pattern without slashes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: input size caps (300-char pattern, 5,000-char text), ReDoS protection that refuses nested quantifiers like (a+)+, and the pricing model (per-call charge, first 25 free, failed calls free). The cost note explains the idempotentHint=false annotation in practical terms ('each call is charged, so repeats are not free'), which is exactly the kind of value-add expected alongside annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the operation and return shape, followed by limits, use case, example, and cost. Every part is actionable, though 'Reads or computes only and changes nothing' partly restates readOnlyHint=false/destructiveHint=false and the pricing sentence is dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return contract itself ('every match with its index and capture groups'), plus limits, safety behavior, and cost. An agent has everything needed to call this correctly and to budget for repeated calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds constraints the schema omits: the 300-character pattern limit and the refusal of unsafe nested-quantifier patterns. The worked example (pattern=(\d{4})-(\d{2}), text=2026-10 and 2027-01) reinforces correct parameter pairing, though flags are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run a JavaScript regular expression against a text') and specifies the return shape ('every match with its index and capture groups (named groups included)'). The scope is precise enough that an agent can distinguish it from generic text-extraction siblings even without an explicit sibling reference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use case: 'Use to check a pattern before using it in code,' which tells the agent when this tool is appropriate. It does not name alternatives (e.g. text_extract) 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.

search_similarFind similar pages and websites: like Exa findSimilarA
Read-only
Inspect

Find pages like a given URL: we read it, search on its title and topic words and return the top 1-20 similar pages (title, URL, snippet, date), leaving out the source site by default. Same filters and contents options as /search (page text, highlights, summaries). Results are for immediate use only (Brave API terms). Use to find competitors, related articles or alternatives to a page. Example: url=https://www.x402.org/. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe page to find similar pages for
countNoNumber of results (1-20, default 10)
summaryNotrue: a 1-3 sentence AI summary of each of the top pages
categoryNonews, research paper, github, pdf, tweet, linkedin profile, company, personal site or financial report
textCharsNoReturn the live page text of the top results, this many characters each (500-20000, or true for 3000; default none)
highlightsNotrue: the passages of each page that best match the query, with scores
excludeTextNoA phrase the results must not contain
includeTextNoA phrase the results must contain (up to 5 words)
numSentencesNoSentences per highlight (1-10, default 3)
summaryQueryNoWhat the summaries should focus on (default: the query)
excludeDomainsNoNever results from these domains: comma list or JSON array
includeDomainsNoOnly results from these domains: comma list or JSON array, up to 20 (example.com, github.com/org)
endPublishedDateNoOnly pages published on or before this date (ISO 8601)
highlightsPerUrlNoHighlights per result (1-5, default 1)
startPublishedDateNoOnly pages published on or after this date (ISO 8601, e.g. 2025-01-01)
excludeSourceDomainNoLeave out the source page's whole domain (default true)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnly/openWorld/non-idempotent/non-destructive; the description adds real context beyond that: $0.01 per call, failed calls free, repeats are not free (consistent with idempotentHint=false), attribution/terms-of-use restriction on results, and that the source domain is excluded by default. That is a materially richer behavioral picture than the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and return shape, then pricing and constraints. It is dense but nearly every clause carries information; the pricing/terms sentence is long but relevant to a paid tool, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter tool with no output schema, the description covers what is returned (top 1-20 pages with title, URL, snippet, date), the default filtering behavior, the cost model, and the usage restriction. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 16 parameters including defaults and ranges. The description adds only the 1-20 result range, the returned fields, and the default source-domain exclusion, which is modest added meaning over the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Find pages like a given URL" gives a specific verb and resource, and the following sentence explains the mechanism (read the URL, search on title/topic words) and the output shape (title, URL, snippet, date). No sibling tool in the list does similarity lookup, so it is trivially distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit use cases are given: "find competitors, related articles or alternatives to a page," plus a concrete example call. What's missing is any when-not guidance or pointer to an alternative (e.g. a keyword search tool), but with no competing sibling 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.

semverSemver compare, version check: compare two version numbers and say which is newerA
Read-only
Inspect

Semver compare of two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules): which is newer, plus the next major, minor and patch versions of the first. Use to decide whether an upgrade is a major change. Example: a=1.10.0, b=1.9.3. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
aYesFirst version
bYesSecond version

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/destructive, and the description reinforces with 'Reads or computes only and changes nothing'. It adds genuinely new context the annotations cannot carry: per-call pricing, first-25-free, failed calls free, and an explanation of why repeats are not free (matching idempotentHint=false as a billing rather than a semantic property). The openWorldHint is not addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, output, usage and example are front-loaded in the first two sentences, and the example is compact. The billing clause is slightly redundant ('first 25 free; failed calls free' followed by 'each call is charged, so repeats are not free'), which costs a little density but not comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two string parameters, full schema coverage and no output schema, the description carries the necessary burden by describing exactly what comes back (comparison result plus next major/minor/patch) and how pre-releases are treated. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the example values demonstrate that comparison is numeric-segment based (1.10.0 vs 1.9.3), and pre-release handling such as 2.0.0-rc.1 is called out explicitly. That is more than the schema's bare 'First version'/'Second version' labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Semver compare of two semantic versions') and spells out the full return: which is newer plus the next major, minor and patch of the first. No sibling tool does version comparison, and the description makes the output shape unmistakable without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete decision context ('Use to decide whether an upgrade is a major change') plus a worked example (a=1.10.0, b=1.9.3) that anchors the ordering semantics. It does not name a when-not condition or alternative, though no sibling tool overlaps this function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slugSlugify, make a URL slug: turn a title into a clean URL slugA
Read-only
Inspect

Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, URLs and IDs. Example: text=Crème Brûlée & Straße!. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text
separatorNo- (default) or _

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/openWorld/destructive safety, and the description adds genuinely new behavior: per-call billing via x402 USDC or card key, 25 free calls, failed calls free. That also explains the meaning of idempotentHint=false ('repeats are not free'). It omits nothing critical, though the return shape is only implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability is front-loaded in the first sentence with a concrete example right after. The pricing sentence is slightly padded — 'each call is charged, so repeats are not free' restates the earlier 'Price $0.01/call' — costing a bit of tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, full schema coverage, and annotations carrying the safety profile, the description covers what an agent needs to call it. The only gap is that it never states the response is a single slug string, which is easy to infer but not explicit and there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real semantics: the separator defaults to '-' and replaces non-alphanumerics, and the example demonstrates the text input's transformation rules. It adds value beyond the schema's terse 'The text' and '- (default) or _'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('turn any text into a URL-friendly slug') and details the exact transformations: accent folding (é→e, ß→ss), lower-casing, and non-alphanumeric replacement. The worked example (Crème Brûlée & Straße!) makes the output unambiguous and separates it from siblings like url_encode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear intended uses ('file names, URLs and IDs'), which tells the agent when to reach for it. It stops short of naming alternatives or exclusions — e.g., it never says why to prefer this over url_encode or case — so the routing decision is only partly covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_caesarCaesar cipher, ROT13: shift letters by any amountA
Read-only
Inspect

Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. decode=true shifts back. Use for puzzles, spoiler hiding and teaching; it is not encryption. Example: text=Hello, World!. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text
shiftNoPlaces to shift, -25 to 25 (default 13 = ROT13)
decodeNotrue to shift back

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint=false, but the description adds real context beyond them: pricing model, first 25 free, failed calls free, and that each call is charged so repeats are not free. That last point usefully explains the non-idempotent cost profile. Return format is not described, but no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the transformation, then semantics, use cases, and finally billing constraints. Dense but nearly every sentence carries distinct information; the billing sentences are slightly long relative to the core task.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter transform tool with full schema coverage and annotations, the description covers behavior, edge cases (case, punctuation), usage and cost. The only minor omissions are explicit sibling routing and any hint of output shape, which is acceptable without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description does add meaning: it clarifies that the default shift of 13 is ROT13, that case is preserved, digits and punctuation are untouched, and that decode=true reverses the shift. It adds an example invocation, though it does not reconcile the schema's -25..25 range with 'shifted by 1-25 places'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Encode or decode text with a Caesar cipher') plus the exact transformation semantics (A-Z, 1-25 shifts, default 13 = ROT13). It doesn't name the closest siblings (base64_encode/decode, text_morse, hash), but 'it is not encryption' does steer an agent away from misusing it as a crypto tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases (puzzles, spoiler hiding, teaching) and an explicit exclusion ('it is not encryption'). It stops short of pointing to the alternative tools an agent should pick instead, e.g. base64_encode or text_morse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_diffText diff, compare two texts: compare two texts line by line and show what was added and removedA
Read-only
Inspect

Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a document, config or prompt. Example: a=one two three, b=one 2 three four. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
aYesThe original text
bYesThe new text

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds real context beyond that: pricing ($0.01/call via x402 USDC or card key, first 25 free, failed calls free) and the warning that repeated calls are charged. That billing note also explains the otherwise puzzling idempotentHint=false for a pure computation, so the description and annotations are consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, followed by usage, an example, and pricing. The multi-line example inflates the text slightly, but every segment carries distinct information; nothing is redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys the return format (per-line markers plus counts) and the cost/safety profile. Only minor gaps remain, such as output ordering or handling of empty/trailing newline cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 'a' = original and 'b' = new are already documented. The worked example (a with newlines, b with a changed and added line) adds meaning the schema does not: that inputs are newline-delimited text compared line by line.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('line-by-line difference between two texts') and states the output shape (each line marked unchanged/removed/added, with counts). This clearly separates it from neighbors like text_stats, text_extract, or regex_test, which don't compare two inputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use framing: 'Use to see what changed between two versions of a document, config or prompt.' No explicit exclusions or named alternatives, but the intended scenario is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_extractExtract emails, URLs and more: find email addresses, URLs, phone numbers and other items in a textA
Read-only
Inspect

Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links out of scraped pages or messages. Example: text=Mail ada@example.com or see https://example.com #news @ada +46 70 123 45 67. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful context beyond annotations: deduplicated lists, pricing model ($0.01/call, first 25 free, failed calls free), and an explicit 'reads or computes only and changes nothing' safety statement. It also explains why idempotentHint=false matters ('each call is charged, so repeats are not free'), which the annotation alone doesn't convey; only the exact return shape remains unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the extraction list and use case, then example, then billing. Slightly dense on pricing detail and mildly redundant ('changes nothing' / 'each call is charged'), but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema tool, the description covers inputs, output de-duplication behavior, and cost, which is enough to invoke it correctly. The precise output structure (list keys per category) is only implied by 'each list de-duplicated.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'text' parameter, so the schema already documents it. The description's inline example (text=Mail ada@example.com ...) usefully shows accepted input form but adds no syntax or format rules beyond that; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find/extract) and enumerates the exact resource types (emails, URLs, phone-like strings, hashtags, @mentions, numbers), each de-duplicated. This clearly distinguishes it from nearby siblings like text_keyword_density or text_stats without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case: 'pull contacts and links out of scraped pages or messages.' That sets clear context for when to reach for it, but it names no alternatives or exclusions (e.g., vs. regex_test or text_stats) for an agent choosing among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_keyword_densityKeyword density: top keywords and phrases of a text or pageA
Read-only
Inspect

Keyword density of a text or a web page: the most frequent words and two-word phrases (English stop words removed), each with its count and share of all words, plus total and unique word counts. Give text, or a URL whose readable text is used (HTML, up to 1 MB). Use for SEO copy checks, comparing a page against a target keyword, or summarising what a page is about; for readability use text_stats. Example: text=Agents pay per call. Agents pay with USDC. Pay per call tools for agents.. Price $0.04/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
topNoHow many keywords and phrases to return, 1-50 (default 15)
urlNoA page URL to analyse instead of text
textNoThe text (up to 50,000 characters); or give url instead

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds the operational details that matter: input caps (HTML up to 1 MB, text up to 50,000 chars), stop-word removal, and a clear cost model (price per call, first 25 free, failed calls free, repeats not free). It also notes the call is charged per invocation, which is consistent with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the definition and outputs, then inputs, then use cases, then pricing. Dense but largely earning its place; the inline example sentence is the weakest element and could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still specifies the return shape (each keyword with count and share, plus total and unique counts), the input formats, limits, and cost. It also covers the zero-required-parameter edge case by telling the agent to supply either text or url.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema doesn't: phrases are capped at two words, English stop words are removed, and results are ranked by frequency with share-of-all-words. Remaining gaps are minor, such as how 'top' behaves when fewer items are available.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (compute keyword density) plus the exact outputs (words, two-word phrases, counts, share, total/unique counts), and explicitly distinguishes itself from text_stats for readability. An agent can tell it apart from the other text_* siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (SEO copy checks, comparing against a target keyword, page summarisation) and explicitly routes the readability case to text_stats. It also states the input rule: give text, or a URL, not both.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_languageLanguage detection: detect the language of a textA
Read-only
Inspect

Language detection for a text: the most likely language with its ISO 639-3 and 639-1 codes and English name, plus the next candidates with relative scores, using trigram statistics for 82 major languages (franc-min). Works best above about 20 characters; very short or mixed text returns und (undetermined). Local, no outside service. Use to route messages, pick a translation target or filter content by language. Example: text=Det här är en mening skriven på svenska om väder och resor.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text (up to 10,000 characters)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, non-destructive, non-idempotent. The description adds real context: it runs locally with no external service, the 10k character limit, that text under about 20 characters or mixed text returns 'und', and that each call costs $0.01 with the first 25 free, so repeats are not free. One small tension: 'Local, no outside service' does not sit perfectly with openWorldHint=true, but that is an annotation precision issue, not a claim that the tool behaves differently.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, output shape, and engine, then limits, then the use cases. The trailing pricing and billing sentence is long but affects repeat-call decisions, so it earns its place. A small typo (doubled period in the Swedish example) is the main blemish.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool with no output schema, the description covers the return values, the accuracy caveats, the failure mode, and the cost model. An agent has everything it needs to call this correctly or skip it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'text' parameter, so the baseline is 3. The description goes beyond it by adding the practical lower bound (about 20 characters) and the 'und' outcome for short or mixed input, which the schema does not say.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb and resource (language detection for a text). It also names the underlying engine (franc-min trigrams, 82 major languages) and the exact output shape (ISO 639-3/639-1 codes, English name, next candidates). That is enough to distinguish it from the text_stats/text_keyword_density/text_extract siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage contexts: route messages, pick a translation target, filter content by language. It does not name a competing sibling or state exclusions, but the invocation conditions are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_loremLorem ipsum generator: placeholder paragraphsA
Read-only
Inspect

Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic "Lorem ipsum dolor sit amet". The same seed always gives the same text. Use to fill mock-ups, templates and test data. Example: paragraphs=1. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
seedNoSeed for the word order (default 1)
sentencesNoSentences per paragraph, 1-10 (default 4)
paragraphsNoParagraphs, 1-20 (default 1)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: the pricing model ($0.01/call, 25 free, failed calls free) and the seed-stability guarantee. Slight tension: "the same seed always gives the same text" reads as deterministic while idempotentHint=false, though "each call is charged, so repeats are not free" explains the non-idempotency as billing cost rather than output variation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool produces and its bounds in the first clause, then uses the remainder for usage, example, and cost. The pricing sentences are dense but earn their place; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description makes clear what comes back (paragraphs of classic lorem text). Combined with annotations covering the safety profile and a fully documented schema, an agent has enough to call it correctly; only the exact return format (plain string vs. array) is unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented with defaults and ranges. The description restates the same 1-20/1-10 bounds and adds only the seed's reproducibility meaning, not much beyond what the schema already carries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb-equivalent artifact (Lorem ipsum placeholder text), states the exact output shape (1-20 paragraphs of 1-10 sentences) and the fixed opening words. Nothing in the sibling list is close, and the description makes the distinction from random_password/random_pick style generators unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says "Use to fill mock-ups, templates and test data," giving a clear use context, and the example (paragraphs=1) anchors invocation. It doesn't state when NOT to use it, but no sibling overlaps enough to require an exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_morseMorse code translator: text to Morse and backA
Read-only
Inspect

Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set with mode. Letters, digits and common punctuation are supported; anything else is reported, not guessed. Use for puzzles, radio practice and fun messages. Example: text=SOS help. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
modeNoauto (default), encode or decode
textYesText, or Morse code made of . - spaces and /

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond annotations: supported character set, that unsupported characters are reported rather than guessed, payment/credits behavior, free first calls, and failed-call billing. These details align with the readOnly and destructive annotations and materially help an agent understand cost and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core behavior and formats, then adds usage, an example, and billing context. It is somewhat denser than a minimal description, but every section is relevant to correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety profile and schema covering parameters, the description fills remaining gaps: auto direction, supported characters, error behavior, examples, and payment model. No output schema is present, but the transformation result is sufficiently implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description still adds useful semantics: mode auto-detection/default behavior, Morse formatting with spaces and '/', supported characters, and a concrete example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific bidirectional transformation: text to international Morse and Morse back to text. It also clarifies automatic direction detection versus explicit mode selection, which distinguishes it from sibling text tools such as text_caesar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage contexts such as puzzles, radio practice, and fun messages, and explains that direction is auto-detected or set with mode. It does not explicitly name alternatives or when not to use this tool, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_statsWord count and readability: count words, characters and sentences and estimate reading time and readabilityA
Read-only
Inspect

Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English text. Use to check the length and readability of a draft. Example: text=The quick brown fox jumps over the lazy dog. It was not amused.. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false and openWorldHint=true. The description adds genuinely new context: it confirms nothing is changed, discloses the $0.01 x402/card-key cost, the first-25-free allowance, that failed calls are free, and that repeats are charged — consistent with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the capability list, then usage, then example, then cost. Every clause carries information, though the pricing sentence is dense and the inline example is slightly clunky.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey return values — and it lists every metric produced (counts, reading/speaking time, Flesch ease, grade level). Combined with the cost and read-only disclosures, an agent has what it needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single required parameter at 100% schema coverage, so the schema baseline applies. The description still adds value by stating the text must be English (relevant because Flesch scoring is language-specific) and by supplying a concrete example value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb set and resource: counts characters, words, sentences, paragraphs, estimates reading/speaking time, and computes Flesch reading-ease and grade level. The scope is precisely bounded to English text, which separates it from generic stats siblings like math_stats or pack_text_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to check the length and readability of a draft" gives clear situational context, and the worked example anchors the input. It stops short of naming an alternative (e.g., text_keyword_density for keyword analysis), so it is clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

units_convertUnit conversion: convert between units of length, weight, temperature, volume, speed and moreA
Read-only
Inspect

Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure. Example units: km, mi, lb, kg, floz, ml, mph, kn, acre, gib, kwh, psi. Use when exact conversions matter. Example: value=10, from=km, to=mi. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe amount

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces that with "reads or computes only and changes nothing." It adds genuinely non-structured context: per-call pricing ($0.01 via x402 USDC or card key), the first 25 free, failed calls free, and that repeats are billed — which is the practical meaning behind idempotentHint=false. Return format is not described, but a conversion tool's output is self-evident.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the supported categories, then example units, then usage, then pricing. Every sentence carries information, though the trailing pricing/auth sentence is dense and bundles cost, auth method, free tier, and refund policy into one run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, fully-required, deterministic tool with no output schema, the description covers supported domains, unit syntax, an example call, and the payment model. An agent has everything needed to invoke it correctly and to know it will be billed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns above baseline by giving the accepted unit token vocabulary ("km, mi, lb, kg, floz, ml, mph, kn, acre, gib, kwh, psi") and a concrete example mapping value=10, from=km, to=mi. That tells the agent the expected casing/abbreviation form, which the schema's "Unit to convert from/to" strings do not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Convert between units") and enumerates the supported measurement families — length, mass, volume, temperature, speed, area, data size, time, energy, pressure — plus concrete example unit tokens (km, mi, floz, gib, psi). No sibling tool in the list overlaps, so an agent can select it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when exact conversions matter" gives a positive selection condition, and the worked example shows the call shape. However, there is no exclusion guidance — nothing about when to prefer math_evaluate for arithmetic, and no stated limits on supported units beyond the examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unixUnix timestamp converter: convert a Unix timestamp to a date and time, or a date to a timestampA
Read-only
Inspect

Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the current time in both forms. Use to read timestamps in logs and APIs. Example: value=1792281600. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
valueNoUnix seconds/milliseconds or an ISO date (default now)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-destructive/non-idempotent, and the description usefully adds that unit detection is automatic, that omitting input returns now, and that every call is billed (failed ones free) — which explains the non-idempotent hint. It stops short of describing output shape or precision/timezone handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Conversion semantics and the no-input default are front-loaded, then usage, then an example. The pricing sentence is somewhat promotional but is genuinely decision-relevant since calls cost money.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter pure-compute tool with no output schema, the description covers input forms, defaults, unit detection, and cost. Minor gaps remain around output format details and timezone assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter at 100% schema coverage, the schema already carries the baseline. The description still adds real meaning: seconds vs milliseconds are auto-detected, ISO date strings are accepted, and a concrete example (value=1792281600) is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with both directions spelled out (timestamp→ISO date, ISO date→timestamp) plus the no-input default, so the operation is unambiguous. It never names the nearby siblings (date_info, date_add, date_diff), so an agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to read timestamps in logs and APIs" gives concrete invocation context, and the no-input case is explicitly defined. There is no when-not guidance and no explicit alternative named for date arithmetic versus simple conversion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_decodeURL decode: decode percent-encoded URL textA
Read-only
Inspect

Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
plusNotrue to read + as space
textYesThe encoded text

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost model ($0.01/call, first 25 free, failed calls free) and explaining why repeated calls are not free, which accounts for idempotentHint=false. 'Reads or computes only and changes nothing' largely restates readOnlyHint/destructiveHint=false, so part of the text is redundant with structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and the plus rule are front-loaded, and the example is placed before the commercial details. The pricing sentence is dense and slightly promotional, but each clause (free tier, failed calls free, repeats charged) carries real decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema decode utility this covers purpose, the tricky parameter case, an input example, and cost/safety behavior. The only minor gap is that the return shape (plain decoded string) is left implicit, which is acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds value by naming the form-encoding semantics of plus=true and giving a concrete example (text=a%20b%26c) that shows how reserved characters are escaped. It does not add anything about the accepted type flexibility (string/number/boolean) for plus.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Decode percent-encoded text') and clarifies the form-encoding variant. It is distinguishable from url_encode/url_parse by implication rather than by naming them, so it falls short of the explicit sibling differentiation a 5 requires.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to read encoded links and form data' gives clear usage context for when this tool applies. It stops short of naming the inverse tool (url_encode) or stating when not to use it, so no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_encodeURL encode: percent-encode text for use in a URLA
Read-only
Inspect

Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
textYesThe text to encode

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/openWorld, and the description adds non-obvious operational context: it is billed per call, first 25 free, failed calls free, and repeats are not free. That cost/idempotency information is exactly the kind of trait annotations cannot express and it is consistent with idempotentHint=false (repeated calls incur charge). It does not describe the return format, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded: purpose and use case come first, example second, pricing last. The billing sentence is long but decision-relevant for an agent that must weigh cost; minor verbosity in "first 25 free; failed calls free" is acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema, read-only tool this covers safety, cost, and a usage cue. It is still missing the output shape (string returned vs. wrapped) and does not resolve the encode vs. full-URL behavior gap, which is the main thing an agent could get wrong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the single `text` parameter is already documented; the example (`text=a b&c=d/é`) usefully shows what characters get encoded. However it never clarifies whether `text` is treated as a query value or as a whole URL, which is the one semantic the agent actually needs and which the description itself raises.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (percent-encode text for URLs) and names two concrete encoding semantics, encodeURIComponent and encodeURI, which differentiates it from generic string tools. Slight ding: with a single `text` parameter there is no way for the agent to pick between the two modes, so what the tool actually does per call is left partly ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one concrete use case ("Use when building query strings") but no exclusion or alternative, even though the obvious sibling `url_decode` exists and the encodeURI-vs-encodeURIComponent choice is not resolvable from the guidance. A reader knows roughly when, but not precisely which mode applies or when to prefer another tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_parseURL parser, parse a URL: split a URL into scheme, host, port, path, query parameters and fragmentA
Read-only
Inspect

Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query parameters or check a link's host. Example: url=https://example.com:8080/a/b?x=1&y=2#top. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
urlYesThe URL to parse

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses commercial/access behavior an agent cannot infer: $0.01/call via x402 USDC or card key, first 25 free, failed calls free, and repeats are charged (consistent with idempotentHint=false). The 'reads or computes only and changes nothing' clause largely restates readOnlyHint=true and destructiveHint=false, so that part is redundant rather than additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by usage, an example, then pricing and safety. Every sentence is functional, though the pricing/payment sentence is long and the 'changes nothing' clause partly duplicates the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by listing the returned fields explicitly, including the query-parameters-as-object detail and the IP-address flag. Combined with the payment note, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is only one parameter, so the schema already carries the semantics. The description still adds a worked example ('url=https://example.com:8080/a/b?x=1&y=2#top') that shows the accepted full-URL format including port, query and fragment, which is mild but real added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Split') and resource ('a URL') and then enumerates exactly what is returned: protocol, host, port, path, query parameters as an object, hash, origin, plus an IP-host flag. That level of output detail makes it unmistakably distinct from the encode/decode siblings in the same family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage contexts: 'Use to read query parameters or check a link's host.' That tells an agent when the tool is the right pick, but it does not name alternatives or exclusions (e.g., use url_decode for a single encoded value), so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

useragent_parseUser agent parser: browser, OS, device and botsA
Read-only
Inspect

Parse a User-Agent string into browser and version, operating system and version, device type (desktop, mobile, tablet or bot) and, for crawlers, which bot it is: Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, social previewers, SEO crawlers and HTTP libraries such as curl or python-requests. Local rules, no outside service. Use to read access logs, segment traffic or spot AI crawlers. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
uaYesThe User-Agent string

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, destructive=false and idempotent=false, so the safety profile is covered. The description adds genuinely new behavioral context: local rules with no external service, per-call pricing via x402/card key, first 25 free, and failed calls free – none of which the annotations convey. The 'repeats are not free' note usefully explains why idempotentHint is false in billing terms, though it could confuse slightly since parsing is deterministic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what gets parsed before moving to usage and pricing. The second half is dense – pricing, free tier, failure policy and mutation semantics packed into one sentence – but every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must carry return-value information; it does by enumerating the parsed fields and bot categories. Combined with the safety annotations and explicit cost model, an agent has what it needs to call the tool correctly, though exact field names/shape are not given.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter ('ua') and schema coverage is 100%, so the schema already fully documents it. The description's detail is about output rather than adding input syntax or format guidance beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (parse) and resource (User-Agent string) and enumerates exactly what it extracts: browser/version, OS/version, device type, and bot identity. It names concrete bot families and HTTP libraries, so an agent can tell it apart from generic siblings like url_parse or text_extract without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage contexts: reading access logs, segmenting traffic, spotting AI crawlers. It does not name an alternative tool or state when not to use it, but for a single-purpose parser the selection context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uuidUUID generator, ID generator: generate random UUIDs (v4) for IDsA
Read-only
Inspect

Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
countNoHow many (1-100, default 1)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'reads or computes only and changes nothing' is corroborative rather than novel. It does add genuinely useful behavioral context the annotations cannot express: the per-call charge, the free tier, failed calls being free, and — importantly — why repeats are not free, which explains the otherwise puzzling idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability and range are front-loaded, followed by use cases, and every clause is short. The pricing sentence is longer than the functional description and sits mid-paragraph, diluting the lead slightly, but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A single optional parameter with full schema coverage and no output schema make this a simple tool, and the description covers range, entropy, use cases, cost model, and safety. It doesn't state the return shape (e.g. a list of UUID strings) or what happens when count is omitted beyond the schema default, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description already states 'How many (1-100, default 1)'. The description restates the 1-100 range and adds a count=3 example, which helps slightly but adds no semantics the schema lacks. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Generate 1 to 100 random version-4 UUIDs from a cryptographic random source' — which pins down the algorithm variant and entropy source, not just 'generates IDs'. An agent can distinguish this from random_password or random_number without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases (IDs, idempotency keys, test data) and a worked example (count=3), which is enough to know when to reach for it. It stops short of naming an explicit alternative such as random_password and saying which to prefer, so exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uvUV index now and todayA
Read-only
Inspect

Current UV index and today's maximum at a point, with the WHO exposure category and sun-protection advice (Open-Meteo). Use for outdoor planning and health reminders. Example: lat=59.33, lon=18.07. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
latYesLatitude (-90 to 90)
lonYesLongitude (-180 to 180)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, non-idempotent and non-destructive, so the safety profile is covered; "reads or computes only and changes nothing" largely restates that. The description does add genuinely new behavior: cost per call, the 25 free calls, that failed calls are free, and explicitly that repeats are charged — which explains the practical consequence of idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is returned, then usage, then an example, then commercial terms — a sensible ordering. The pricing sentence is dense but every clause is actionable; only the "reads or computes only" clause is filler against the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the job of enumerating what comes back (current index, daily max, category, advice). For a two-parameter lookup that is essentially complete; it omits only units/scale of the UV index value, which is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both lat and lon documented including valid ranges, so the schema carries the semantics. The description only adds a concrete coordinate example (lat=59.33, lon=18.07), which is mildly helpful but does not add format or meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: current UV index plus today's maximum at a point, along with the WHO exposure category and sun-protection advice, sourced from Open-Meteo. The resource is unambiguous against every sibling (the nearest, air_quality, returns different measurements), so an agent can select it on the first read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for outdoor planning and health reminders" gives clear positive usage context. It stops short of naming when not to use it or pointing to an alternative (e.g., air_quality for other atmospheric data), so it misses the exclusion criterion for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ibanIBAN validation: validate an IBANA
Read-only
Inspect

Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or paying out. Example: iban=SE45 5000 0000 0583 9825 7466. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
ibanYesThe IBAN, spaces allowed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by disclosing billing ($0.01/call via x402 USDC or card key), the free tier (first 25 free, failed calls free), and explaining why idempotentHint=false — repeats are charged. Annotations already cover read-only and non-destructive, but the cost model is genuinely new and important context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and checks; example and pricing follow logically. Every sentence is informative, though the pricing sentence is dense and could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description explains the return (IBAN formatted in groups of four) and hints failures are handled (failed calls free). Adequate for a single-param validator, though success/failure response shape isn't fully spelled out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already states spaces are allowed, so the schema carries most weight. The description reinforces this with a concrete spaced-IBAN example (SE45 5000 ...), giving a usable format sample beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check) and the exact checks performed — format, country-specific length, mod-97 check digits — plus the formatting output. Clearly distinct from siblings like validate_isbn and validate_luhn.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it: "Use before saving bank details or paying out." There's no sibling alternative for IBAN validation, so no exclusions are needed, but the timing guidance is concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_isbnISBN check, validate an ISBN: check whether an ISBN-10 or ISBN-13 book number is validA
Read-only
Inspect

Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example: isbn=0-306-40615-2. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
isbnYesThe ISBN

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing input normalization (hyphens and spaces ignored), a transformation behavior (ISBN-10 to ISBN-13 conversion), and the billing model including free failures and the first 25 calls. It also explains why repeated calls cost money, which reconciles with idempotentHint=false in a way raw annotations cannot. It does not describe the shape of the response (validity flag, normalized ISBN), which is the one gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by usage context, an example, and then commercial terms. Every sentence contributes, though the final sentence packs read-only reassurance, per-call charging, and repeat-call semantics into one dense line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema tool, the description covers accepted input forms, normalization, conversion behavior, and cost, which is most of what an agent needs. What it lacks is any indication of what a response contains — e.g. whether an invalid checksum returns false versus an error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the single parameter only as "The ISBN," so the description carries real weight: it specifies that both ISBN-10 and ISBN-13 are accepted, that hyphens and spaces are ignored, and supplies a concrete example (0-306-40615-2). That is meaningful clarification beyond the schema's near-empty text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: validate an ISBN-10 or ISBN-13 check digit, plus the side benefit of converting valid ISBN-10s to ISBN-13. This clearly separates it from sibling validators like validate_luhn, validate_iban, and bic_validate, which operate on entirely different identifiers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use before cataloguing or ordering books" gives a concrete trigger context, and the tool's domain makes the alternative tools obvious. It stops short of naming an explicit alternative or stating when-not-to-use, so it lands just under a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_luhnLuhn check, card validation: check a card or ID number's Luhn checksumA
Read-only
Inspect

Luhn check: whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append. Only the format is checked; nothing is looked up. Use to catch typos in card or ID numbers. Example: number=79927398713. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
numberYesDigits, spaces and hyphens allowed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give generic hints, but the description adds the substantive details an agent needs: it is format-only with no lookup, it is a pure read/compute, each call is billable so retries are not free, pricing is $0.01/call via x402 USDC or card key, and the first 25 are free with failed calls free. That explains the idempotentHint=false annotation rather than merely repeating it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first clause, and the later sentences carry distinct information (scope, example, billing). It is somewhat dense, with mild repetition of "Luhn" and "card numbers", but no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, non-destructive tool with no output schema, the description covers scope, proof-of-concept example, and billing behavior thoroughly. The one real gap is that it never says what the result looks like (valid/invalid plus check digit field), which the description implies but does not define.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the accepted format (digits, spaces, hyphens), so the baseline is 3. The description contributes a worked example value (79927398713) but adds nothing about constraints or normalization beyond what the schema says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific check (Luhn mod-10 checksum) and the resource classes it applies to (card numbers, IMEI numbers, many IDs), and it also states the secondary computation (check digit to append). It is clearly distinguishable from siblings like validate_iban, validate_isbn, bic_validate and phone_validate, which cover other identifier formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit use case ("Use to catch typos in card or ID numbers") and a clear scope exclusion ("Only the format is checked; nothing is looked up"). It never names a sibling alternative such as validate_iban or validate_isbn for other identifier types, so routing is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vinVIN decoder: make, model, year, engine and plant from a VINA
Read-only
Inspect

Decode a 17-character vehicle identification number (VIN) with the US NHTSA vPIC database: make, manufacturer, model, model year, trim, body class, vehicle type, doors, drive, fuel and electrification, engine cylinders, displacement and horsepower, transmission, weight class and assembly plant, plus the check-digit test. Best for North American vehicles. Use for listings, insurance and fleet records. A malformed VIN is a 400, uncharged. Example: vin=1HGCM82633A004352. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
vinYes17-character VIN (letters I, O and Q never appear)
yearNoOptional model year, which helps decode older or partial VINs

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: malformed VIN returns 400 and is uncharged, failed calls are free, each successful call costs $0.01 (first 25 free), and repeats are not free despite being a read. That last point resolves what the idempotentHint=false flag leaves ambiguous, and the billing model with an auth path (x402 USDC or card key) is disclosed up front.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the decode scope and fields, then follows with caveats, example and pricing. Dense but every clause is functional; the pricing/charging sentence is slightly chatty and runs long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return set explicitly, plus cost model, error behavior and the read-only guarantee. An agent has everything needed to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented, and the description reinforces the 17-character constraint with a concrete example VIN. The optional year parameter and its purpose for older/partial VINs are covered only by the schema, but the example adds real value over the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (decode a 17-character VIN) and enumerates exactly what comes back (make, model year, engine, plant, check digit). Nothing in the sibling list overlaps, and the NHTSA vPIC attribution tells the agent which data source it is querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Best for North American vehicles. Use for listings, insurance and fleet records" gives clear usage context and a scope limitation. It stops short of naming a when-not or an alternative for non-North-American VINs, so no explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_findx402 service finder, find paid APIsA
Read-only
Inspect

Find pay-per-call x402 APIs for a task across the whole Coinbase Bazaar: up to 20 listings with name, URL, method, price in USD, networks, 30-day payers and calls, and when each was last paid for, in the Bazaar's relevance order or sorted by use or price, with a price cap and an active-only filter. Our own listings are marked, never boosted. Use when an agent needs a paid tool it does not have yet. Example: q=email verification. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
qYesThe task or tool to find, in words
sortNorelevance (default), payers, calls or price
limitNoNumber of listings (1-20, default 10)
activeNotrue: only listings paid for in the last 30 days
networkNoOnly listings that accept this network: base, polygon, arbitrum, solana…
maxPriceNoOnly listings at or under this price in USD

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing result caps (up to 20), ordering options, the active-only and price-cap semantics, the neutrality guarantee ('our own listings are marked, never boosted'), and the full billing model ($0.002/call, first 25 free, failed calls free). Crucially it explains WHY idempotentHint is false — each call is charged, so repeats are not free — which annotations alone could not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and result shape, then usage, example, and cost — a sensible order with no filler. The opening sentence is a long comma-chained clause that is dense to parse, but nearly every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description enumerates the returned fields, the ordering, and the cap, so the agent knows what comes back. Combined with the explicit pricing and the read-only guarantee, nothing material needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all six parameters, and the description mostly echoes them (sort by use or price, price cap, active-only filter, up to 20). It adds no syntax or edge-case detail beyond the schema, and the network filter parameter is only mentioned obliquely as a returned field rather than as a filter. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Find pay-per-call x402 APIs for a task across the whole Coinbase Bazaar', and enumerates the returned fields (name, URL, method, price, networks, payers, calls, last paid). This is far more specific than any sibling utility tool in the list, so an agent can distinguish it immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit trigger is given: 'Use when an agent needs a paid tool it does not have yet', plus a concrete query example (q=email verification). It lacks any when-not-to-use or exclusion guidance, but no sibling tool overlaps in function, so the absence costs little.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xml_to_jsonXML to JSON converter: convert an XML document into JSONA
Read-only
Inspect

XML to JSON for any XML document: attributes become "@name" keys, text becomes "#text" (or the value itself when an element only holds text), and repeated child elements become arrays. DOCTYPEs and external entities are refused, so nothing outside the document is ever loaded. Up to 100,000 characters. Use to read XML feeds, SOAP responses and config files in an agent. Example: xml=PenInk. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
xmlYesThe XML document

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (readOnly, non-destructive, open-world, non-idempotent); the description adds substantial context beyond that: DOCTYPEs and external entities are refused so nothing outside the document is loaded, a hard 100,000-character limit, and per-call billing with the first 25 free and failures not charged. This explains why idempotentHint=false in cost terms and pre-empts the main failure mode (oversized or entity-bearing XML).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and mapping semantics, then constraints, then pricing; every section is useful. Minor redundancy: 'Reads or computes only and changes nothing' restates readOnlyHint, and the billing point is made twice ('Price $0.01/call...' and 'each call is charged, so repeats are not free').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the burden of explaining return values — and it does, precisely: attributes become '@name' keys, text becomes '#text' or the bare value for text-only elements, and repeated children become arrays. Combined with the size limit and entity refusal, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is a single required parameter, so the schema already documents 'xml'. The description goes beyond it by showing a concrete sample document, which conveys acceptable input shape and the resulting key mapping better than the schema's one-line 'The XML document'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('XML to JSON for any XML document') and immediately distinguishes itself from siblings like csv_to_json, yaml_to_json and html_table_to_json by naming the input format. The conversion mapping rules further pin down 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to read XML feeds, SOAP responses and config files in an agent' gives concrete usage contexts, and the 100,000-character cap implicitly tells the agent when it must not use it. It stops short of naming an alternative tool or an explicit when-not condition, so it is clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yaml_to_jsonYAML to JSON: convert a YAML document into JSONA
Read-only
Inspect

Convert a YAML document (config files, Kubernetes manifests, OpenAPI specs, front matter) into JSON, parsed by the yaml library with anchors and aliases resolved (alias expansion capped against billion-laughs documents) and duplicate keys refused. Up to 100 KB. Use before feeding YAML into a JSON-only tool or schema check; for the reverse use json_to_yaml. Invalid YAML is a 400 with the parser's message, uncharged. Example: yaml=name: agent ports:

  • 80

  • 443 enabled: true. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
yamlYesThe YAML text (up to 100 KB)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile, yet the description still adds substantial non-obvious behavior: the yaml library's anchor/alias resolution, an alias-expansion cap against billion-laughs documents, duplicate keys refused, a 100 KB ceiling, and 400-with-parser-message for invalid input. It also explains the billing model (uncharged failures, first 25 free, repeats not free), which is exactly the kind of context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and the reverse-tool pointer are front-loaded, and most sentences carry real information. The inline example is wedged mid-paragraph and slightly disrupts flow, but nothing is truly extraneous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers the meaningful output concerns: JSON as the result, error behavior (400 with parser message), and size limits. It stops short of describing output formatting details (indentation, key ordering, number/string fidelity), which an agent producing downstream comparisons might want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage the baseline is 3, but the description supplies a concrete multi-line example exercising a list and booleans, which clarifies the accepted input shape beyond the schema's terse 'The YAML text'. It doesn't add anything else parameter-specific, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Convert a YAML document ... into JSON') and enumerates the concrete input classes it handles (config files, Kubernetes manifests, OpenAPI specs, front matter). It also names the sibling that does the inverse (json_to_yaml), so the agent can distinguish the pair instantly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the use case ('Use before feeding YAML into a JSON-only tool or schema check') and routes the reverse case to json_to_yaml. The only mild gap is the absence of an explicit when-not condition, but the reverse-tool pointer effectively covers it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yes_noYes or noA
Read-only
Inspect

A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

NameRequiredDescriptionDefault
onlyNoOptional: comma-separated top-level result keys to keep, for a smaller answer (for example only=price,symbol); unknown keys are ignored and an empty match returns the full result

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing cost ($0.01/call), the payment routes (x402 USDC or card key via /credits), the 25-call free tier, that failed calls are free, and that repeats are not free — the latter giving concrete meaning to idempotentHint=false. The 'reads or computes only and changes nothing' clause reinforces readOnlyHint rather than contradicting it, so the annotation profile is consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and decision framing are front-loaded, and the cost/auth caveats are packed into a single trailing clause. There is minor redundancy — 'each call is charged, so repeats are not free' restates the per-call price — and the billing sentence is dense enough that a reader may need a second pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter, no-output-schema tool, the description covers purpose, selection context, and the commercially important cost/auth model. It never indicates what an answer actually looks like (a bare yes/no, a structured object the `only` filter implies), which is the one real gap given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter and the schema documents it fully (100% coverage) with an example, so the baseline expectation is met without description help. The description mentions no parameter behavior of its own, but there is essentially nothing it could have added that the schema does not already say.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('A fair random yes or no, with a cryptographic random source'), which is concrete enough for an agent to know exactly what this returns. It implies but never names the nearest siblings (coin, dice, magic_8_ball), so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For quick decisions when the options are equally good. Use to break ties' gives a clear situational trigger for use. It stops short of exclusions or naming alternatives (e.g. coin for heads/tails, magic_8_ball for a whimsical answer), so an agent must infer which random-answer sibling to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changeddate_business_days1 field changed
      • changedInput schema / properties / country / description
        Previous value: -"Holiday calendar: US, GB, SE, DE, FR, NO, DK or FI (default: weekends only)"New value: +"Holiday calendar: a 2-letter country code or English name, e.g. SE, JP, New Zealand (default: weekends only)"
    • Addedllm_prices
  2. 1 tool update
    • Addedx402_find
  3. 1 tool update
    • Addedsearch_similar
  4. 6 tool updates
    • Addedair_quality
    • Addedcrypto_price
    • Addedelevation
    • Addedhackernews_top
    • Addediss
    • Addeduv
  5. 1 tool update
    • Addedkeywords_ideas

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides deterministic micro-utilities as an MCP server, including free tools for conversion, text processing, hashing, encoding, ID generation, and regex, plus paid per-call tools for timezone, cron, RRULE, currency, diff, JSON Schema validation, and date math.
    13
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    14 utility tools via the PublicSoftTools API: QR code generation, PDF compress/merge/split/convert/unlock, cryptographic hashing (MD5/SHA-1/SHA-256/SHA-512), UUID generation, base64 encode/decode, secure password generation, IP geolocation, DNS records, SSL certificate check, and WHOIS lookup. Free tier: 1,500 calls/month.
    14
    8 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    23 developer & data API tools for AI agents - IP/DNS/WHOIS/SSL lookups, web scraping & screenshots, text AI (summarize, translate, sentiment, grammar, redact), and dev utilities (hash, UUID, QR, JWT, cron, IBAN/VAT/email validation, breach check).
    23
    41 PyPI
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    72 free, open-source (MIT) developer tools over a stateless, no-key MCP server: JSON/YAML/CSV conversion, PDF and image processing, JWT/hash/UUID utilities, DNS/TLS/HTTP checks, llms.txt and AI SEO checks, and more. Streamable HTTP with JSON responses.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.