Skip to main content
Glama

Server Details

Free agent tools: SEO snapshots, sitemap refresh, Wikipedia collections and saved-page MCP guides.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 44 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

C2.7/5.0

Scored across 64 tools

Disambiguation1/5

Many preview/trial tools directly duplicate full tools (e.g., agent_utilities_offer_preview vs commerce_offer_extract, agent_utilities_page_pack_preview vs web_page_pack), making selection ambiguous. Several tools appear to do the same thing, forcing agents to guess which variant is correct.

Naming Consistency3/5

Mostly snake_case with category prefixes (html_, commerce_, web_), but prefix conventions are mixed: agents_ vs agent_utilities_ for meta tools, and text_chunk lacks a domain prefix. Still readable overall, but not fully predictable.

Tool Count1/5

64 tools far exceeds a reasonable set, and the count is inflated by redundant preview/full/trial pairs. This is an extreme mismatch for the server's apparent scope.

Completeness4/5

Covers many domains (HTML, JSON, commerce, security, web, contracts, Wikipedia) with multiple operations each, and core workflows are present. Minor gaps exist, such as no generic fetch, XML/YAML parsing, or encoding/hashing utilities.

Available Tools

64 tools
agents_config_auditC
Read-only
Inspect

Review agent configuration text with five fixed risk heuristics. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
caveatYes
findingsYes
rulesVersionYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is known. The description adds that it is free and requires no credentials, which is useful context, but it does not explain what the five heuristics check for or what the output includes. Since an output schema exists, the description need not document return values, but the lack of detail on the heuristics limits transparency.

Agents need to know what a tool does to the world before 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 two sentences and front-loads the core function. It is concise, though the phrase 'FREE during validation... No key, credits, wallet or preparation needed' is somewhat repetitive and could be tightened.

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?

Given the tool has an output schema and annotations, the description covers the basics: what it does, that it's free, and that it needs input. However, it omits what the five heuristics are, the nature of the input (configuration text), and any indication of the audit's output format. For an audit tool, that leaves a significant gap in helping the agent interpret results.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It says 'Supply your task in input' but does not explain the nested text field, its 100,000 character limit, or that it should contain the agent configuration text. The term 'task' is misleading, as the field expects the configuration to audit, not a task instruction.

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

Purpose3/5

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

The description says it reviews agent configuration text with five fixed risk heuristics, which is a clear verb+resource. However, the structure of the input (input.text) is glossed over as 'Supply your task in input', and the five heuristics are not named, leaving the purpose only partially clear. Siblings like agents_env_template_check are distinct enough, but the description doesn't explicitly contrast with them.

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

Usage Guidelines2/5

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

The description states it is free and requires no key, but gives no guidance on when to use this tool versus alternatives like agents_env_template_check or agents_tool_name_conflicts. It does not specify use cases or exclusions, leaving the agent to infer from the name.

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

agents_env_template_checkB
Read-only
Inspect

Compare environment-variable names against a template; never returns assignment values. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
extraYes
scopeYes
missingYes
duplicateNamesYes
unrecognizedLinesYes
templateDuplicateNamesYes

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds real value beyond them by disclosing that assignment values are never returned (a privacy/output-content guarantee) and that "existing source and input limits apply" — concrete behavioral constraints not present in 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.

Conciseness3/5

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

The core purpose is correctly front-loaded in the first clause, but the middle sentences are marketing filler ("FREE during validation", "No key, credits, wallet or preparation needed") that do not help an agent invoke the tool, and "Supply your task in input" is near-empty.

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?

An output schema exists, so return values need no explanation, and the read-only annotations cover the safety profile. That said, for a comparison tool with a nested two-field input and no parameter documentation at all, the description leaves the agent guessing about the input format.

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

Parameters2/5

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

Schema description coverage is 0% and the single input object nests two required string properties (template, actual) with no documented meaning anywhere. The description says only "Supply your task in input," which adds no information about what template vs actual should contain, their expected format (env-var lines?), or the 100000-char limit. It fails to compensate for the coverage gap.

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?

"Compare environment-variable names against a template" gives a specific verb (compare) and a specific resource (env-var names vs template), so the agent knows exactly what operation occurs. It does not name or distinguish itself from any sibling tool, 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 Guidelines2/5

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

The only usage-adjacent sentences are commercial notes ("FREE during validation", "No key, credits, wallet or preparation needed") and the vague "Supply your task in input." There is no statement of when to use this versus alternatives, nor any precondition for invocation.

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

agents_tool_name_conflictsB
Read-only
Inspect

Find duplicate or easily confused tool names after Unicode, case and separator normalization. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
conflictsYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds that no key/credits/wallet are required (auth context) and that limits apply, but it never explains what 'easily confused' means operationally or how results are shaped.

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?

Four short sentences, but two of them ('FREE during validation' / 'No key, credits, wallet or preparation needed') restate the same cost point, and the core purpose is buried ahead of this filler.

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?

An output schema exists, so return values needn't be described. However, with a nested required parameter at 0% schema coverage, the description omits what the agent must actually supply, leaving a real gap for this tool's only input.

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

Parameters2/5

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

Schema coverage is 0% for a nested object parameter, so the description must carry the load — and 'Supply your task in input' is tautological and slightly misleading (input is a names array, not a task). The required nested 'names' string array is left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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'), resource ('tool names'), and mechanism ('after Unicode, case and separator normalization'), which precisely defines what counts as a conflict. No sibling tool overlaps this domain, so differentiation is unnecessary.

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

Usage Guidelines2/5

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

The description never says when to reach for this tool versus alternatives, nor any preconditions beyond 'Supply your task in input.' The 'FREE during validation' line is about cost, not usage selection, so it doesn't route the agent.

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

agent_utilities_balanceA
Read-onlyIdempotent
Inspect

FREE authenticated read of your current service-credit balance and live/test mode. Uses only the private Authorization header; takes no arguments or credentials. No charge, purchase, reservation or total spending limit. Balance can change after this snapshot. Does not read wallet USDC.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already signal read-only/idempotent/safe, and the description adds meaningful context: it uses only the Authorization header, has no financial side effects, is a point-in-time snapshot, and excludes wallet USDC. This goes well beyond the annotation hints.

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?

Five short sentences, each adding essential information: action, auth mechanism, non-financial nature, snapshot caveat, and explicit exclusion. No filler or redundant restatement.

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

Completeness5/5

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

Despite having no output schema, the description fully covers what an agent needs to invoke this safely and correctly: no arguments, auth expectations, side-effect profile, and result semantics. Nothing material is missing for a zero-parameter read tool.

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?

With zero parameters, the empty schema already implies no arguments, but the description adds important clarity by stating 'takes no arguments or credentials' and explaining that authentication comes only from the private Authorization header.

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

Purpose5/5

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

States a specific verb ('read') and resource ('service-credit balance and live/test mode'), and clarifies what it is not ('Does not read wallet USDC'). This is distinct from sibling tools focused on config audits, preparation, and parsing utilities.

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

Usage Guidelines4/5

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

Clearly implies when to use: whenever the current credit balance or live/test mode is needed. It also explicitly excludes non-read use cases with 'No charge, purchase, reservation or total spending limit,' though it does not name a specific alternative sibling tool.

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

agent_utilities_exampleA
Read-onlyIdempotent
Inspect

FREE, no API key. Read a fixed handler-generated input/output example for a listed non-network tool before supplying your own task input. Accepts only a tool name; cannot run custom input, access a wallet or spend credits. Examples are synthetic, not customer activity.

NameRequiredDescriptionDefault
nameYes

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: free, no API key required, examples are fixed and synthetic (not customer activity), and the tool cannot run custom input, access a wallet, or spend credits. The annotations already cover readOnly/idempotent/closed-world, so this additional disclosure is genuinely additive.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the cost/credential constraint, then the action, then the scope limits. Every clause earns its place with no 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 what the tool returns (a fixed example), the constraints, and the cost model. Minor gap: it doesn't clarify whether the returned example is a full request/response pair or how large it is.

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 0%, so the description must carry the parameter's meaning. It does: the tool 'accepts only a tool name' drawn from a listed set of non-network tools, which explains the enum's scope beyond the bare list. It doesn't document how to obtain a valid name, so not a 5.

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: read a fixed handler-generated input/output example for a listed non-network tool. The purpose is unambiguous and distinguishes it from execution tools ('cannot run custom input'). It does not explicitly name the preview siblings it might be confused with, so it falls just short of 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 a clear when-to-use condition: 'before supplying your own task input.' It also states the negative case implicitly by contrasting with running custom input. No sibling tool is named as an alternative, so 4 rather than 5.

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

agent_utilities_feed_page_compare_previewA
Read-onlyIdempotent
Inspect

FREE, no key. Compare supplied feed identity, price, currency and availability with selected JSON-LD product evidence; preserve conflicts and unknown fields. Optional availabilityProfile google_merchant applies Google feed mappings; generic is the default. Entire JSON input: 16384 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
feedYes
htmlYes
pageUrlNo
offerUrlNo
availabilityProfileNoDefault generic preserves existing vocabulary distinctions. google_merchant maps non-vehicle Schema.org availability to Google feed categories; not an eligibility check.

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive/local scope, so the bar is lower; the description still adds real behavior: it discloses that conflicts and unknown fields are PRESERVED rather than resolved, that no payment or paid fallback occurs, and that input is capped at 16384 UTF-8 bytes. These are genuine operational traits beyond the annotation set.

Agents need to know what a tool does to the world before 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 free/no-key hook and the core compare purpose, followed by tighter constraint sentences. Dense but every clause carries information (scope, profile default, size budget, no-fetch). Minimal waste, though the trailing 'no payment or automatic paid fallback' overlaps with the 'FREE, no key' opener.

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?

An output schema exists, so return values need no narration, and the description covers behavior (conflict preservation), input limits, and the profile default. The notable hole is the unexplained distinction between this tool and its non-preview sibling commerce_feed_page_compare, which the description does nothing to resolve.

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 only 20%, so the description must carry meaning, and it partially does: 'identity, price, currency and availability' maps to the feed fields, and the availabilityProfile google_merchant vs generic default is clarified. But html, pageUrl and offerUrl receive no explanation, so several parameters remain undocumented across both schema and description.

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 (compare) plus the exact resources: supplied feed identity/price/currency/availability against selected JSON-LD product evidence. This is well beyond a tautology. However, it never differentiates itself from the near-identical sibling commerce_feed_page_compare or explains what the '_preview' suffix means, leaving the agent unable to route between them from the text alone.

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

Usage Guidelines3/5

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

Constrained context is implied: 'FREE, no key', 'Supplied data only; no fetch' tells the agent this runs on provided input rather than fetching pages, and 'availabilityProfile ... generic is the default' guides parameter choice. But there is no explicit when-to-use / when-not-to-use framing and no pointer to commerce_feed_page_compare or the other _preview siblings as alternatives.

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

agent_utilities_main_product_previewA
Read-onlyIdempotent
Inspect

FREE, no key. Identify the main Product or ProductGroup from supplied JSON-LD HTML using identity, mainEntity and canonical evidence; abstain on ambiguity. Entire JSON input: 16384 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
htmlYes
pageUrlNo

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already mark it read-only, idempotent, and non-destructive, and the description adds meaningful behavioral detail: it never fetches external data, never triggers payment or paid fallback, and abstains when evidence is ambiguous. It also discloses the evidence sources it relies on, which goes beyond the structured annotations.

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

Conciseness5/5

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

Two terse sentences front-load the free/no-key status and then state the core action, input constraints, abstention behavior, and no-fetch/no-payment guarantee without repetition. Every phrase earns its place.

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

Completeness4/5

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

For a simple, read-only analysis tool with an output schema, the description covers input limits, no-fetch/no-payment behavior, and ambiguity handling. It does not explicitly state the role of pageUrl, but the schema example and output schema fill most remaining gaps.

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 0%, so the description carries the burden. It identifies the main input as JSON-LD HTML and hints at the optional pageUrl through 'canonical evidence', but it never explicitly explains the html/pageUrl parameters or which one is required. The inline example helps, but the description itself leaves pageUrl under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 precise task: identify the main Product or ProductGroup from supplied JSON-LD HTML, and lists the evidence signals used (identity, mainEntity, canonical) plus an abstention policy. This clearly separates it from sibling preview tools such as offer_preview and pack_preview. The verb 'identify' plus the resource scoping makes the purpose 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?

The description states it operates on supplied data only, with no fetch, payment, or paid fallback, and that it is free and keyless, which tells an agent when this tool is appropriate. It also provides a decision rule to abstain on ambiguity. It does not explicitly name sibling alternatives or exclusion conditions, but the context is clear enough.

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

agent_utilities_offer_previewA
Read-onlyIdempotent
Inspect

FREE, no key. Extract declared Product/Offer JSON-LD from supplied HTML only. No page fetch, JavaScript execution, live-price verification or orders. At most 3 offers; inspect truncated and warnings. No paid fallback. Entire JSON input is limited to 16384 UTF-8 bytes; maxOffers defaults to 3. Larger HTML uses the free commerce_offer_extract full tool within its limits.

NameRequiredDescriptionDefault
htmlYes
baseUrlNo
maxOffersNo

Output Schema

NameRequiredDescription
modeYes
scopeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, and the description is consistent with them. It adds concrete behavioral detail beyond annotations: a 16384-byte input cap, a max of 3 offers, truncation/warning inspection, and no paid fallback. Missing only auth/rate-limit context, which is minor for a free local tool.

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

Conciseness4/5

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

Front-loads the key qualifier ('FREE, no key') then the operation and constraints. Slight redundancy between 'At most 3 offers' and 'maxOffers defaults to 3', but overall dense and earn-its-place.

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

Completeness4/5

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

Output schema exists so return format needn't be explained, and the description hints at truncation/warnings for inspection. Limits, fallback policy, and the larger-input alternative are all covered; only baseUrl semantics remain unaddressed.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the html size cap (16384 UTF-8 bytes) and maxOffers (defaults to 3, capped at 3), but baseUrl is never mentioned and gets no semantic meaning anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 declared Product/Offer JSON-LD from supplied HTML only') with clear scope boundaries. The 'only' and 'no page fetch' phrasing distinguishes it from sibling extractors like commerce_offer_extract.

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

Usage Guidelines5/5

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

Explicitly names the alternative for larger inputs ('Larger HTML uses the free commerce_offer_extract full tool within its limits') and states what it does not do (no fetch, no JS, no live-price, no orders, no paid fallback). An agent can route correctly.

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

agent_utilities_pack_previewA
Read-onlyIdempotent
Inspect

FREE custom pack planning. Up to 3 interchangeable offers, 1000 required units, 1000 units per pack and 50 packs per offer; 4096 input bytes. Exact item subtotal only; excludes shipping, tax and fees. No key, payment, network fetch or paid fallback. Larger tasks may use the free commerce_pack_plan full tool within its limits.

NameRequiredDescriptionDefault
offersYes
currencyYes
requiredUnitsYes
minorUnitDigitsYes

Output Schema

NameRequiredDescription
modeYes
scopeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety bar is low. The description still adds real context: no key/payment/network fetch or paid fallback, a 4096 input-byte cap, and itemized numeric limits (3 offers, 1000 units, 1000 units/pack, 50 packs/offer). That is useful disclosure 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.

Conciseness5/5

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

Dense but front-loaded: purpose first, then limits, then cost scope, then auth/network caveats, then the alternative routing. Every clause carries information (limits, exclusions, no-key, alternative) with no 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?

An output schema exists so return values need no explanation, and annotations cover the safety profile. The description supplies what those fields can't: the exact envelope constraints and the 'exact item subtotal only; excludes shipping, tax, fees' costing semantics. Only the currency/minorUnitDigits meaning is left uncovered.

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 0%, so the description must compensate. It references offers count, required units, units-per-pack and packs-per-offer caps, which map to the schema constraints, but it never explains the semantics of 'currency' or 'minorUnitDigits', nor the per-offer id/price fields. Compensation is partial.

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 ('custom pack planning') and distinguishes itself from the sibling commerce_pack_plan, which it explicitly names as the 'full tool'. An agent can tell it is a bounded preview variant rather than the general planner, though it never restates what the output actually is.

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 hints at routing ('Larger tasks may use the free commerce_pack_plan full tool within its limits') and lists hard limits that imply when this is and is not sufficient. However, the boundary condition is vague ('within its limits') and there is no explicit when-to-use/when-not statement, so usage is only implied.

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

agent_utilities_pack_size_normalize_previewA
Read-onlyIdempotent
Inspect

FREE, no key. Normalize locale-explicit pack-size expressions and multipacks to exact grams, millilitres or counts; reject ambiguous text. Entire JSON input: 4096 UTF-8 bytes, at most 5 quantities. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
localeYes
quantitiesYes

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description discloses several important behaviors: it is free and keyless, has a hard input size limit, processes only supplied data (no external fetches), and rejects ambiguous text. It also clarifies that there is no automatic paid fallback. These details are not derivable from annotations or schema, and they directly affect how an agent should invoke the tool. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the most critical practical fact ('FREE, no key') before the functional summary. Every clause adds value: limits, no fetch, no fallback, rejection behavior. There is zero redundancy and the structure is easy to scan. It is appropriately concise for a preview tool.

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

Completeness4/5

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

The tool has an output schema (not shown but present), so the description does not need to explain return values. It covers the key constraints an agent needs: input limits, free access, no external side effects, and rejection of ambiguous input. It does not explicitly state the output format or error behavior, but the output schema likely covers that. Minor gap: it does not mention that this is a preview of a full tool, which could affect expectations, but the name and free status imply 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?

The schema itself is self-explanatory (locale enum, quantities array with id and text), but the description provides little explicit parameter-level meaning beyond the domain ('locale-explicit pack-size expressions'). With 0% schema description coverage, the description should compensate more, but it does convey the overall purpose of the quantities field. It does not explain the exact format or constraints of id/text beyond the schema's maxLengths. The example in the schema aids understanding, so a 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 ('Normalize'), a resource ('locale-explicit pack-size expressions and multipacks'), and the outcome ('to exact grams, millilitres or counts'). It also explicitly mentions rejection of ambiguous text, which distinguishes it from a simple parser. The 'preview' suffix and 'FREE, no key' imply a limited version, but the core purpose is unambiguous and distinct from siblings like commerce_pack_size_normalize.

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?

The description conveys usage context: it is free, requires no key, and has strict input limits (4096 bytes, max 5 quantities). It also states that only supplied data is used (no fetch, payment, or paid fallback), which is a clear exclusion. However, it does not explicitly say when to prefer this preview tool over its full sibling (e.g., commerce_pack_size_normalize) or other alternatives, nor does it mention any condition for using the full version. The guidance is useful but not fully explicit about tool selection.

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

agent_utilities_page_delta_previewB
Read-onlyIdempotent
Inspect

FREE, no key. Return added and removed content blocks from supplied before/after HTML; avoid rereading unchanged text. Explicit shared output budget and scope. Entire JSON input: 32768 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
maxCharsNo
afterHtmlYes
sourceUrlNo
beforeHtmlYes

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare the read-only, non-destructive, idempotent, closed-world profile, yet the description adds genuinely new behavioral facts: no API key needed, a hard 32768-byte total JSON input cap, an output budget, and an explicit guarantee of no network fetch or automatic paid fallback. These cost/limit/no-side-effect disclosures go beyond the annotations and help an agent predict 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-loads the key operational fact ('FREE, no key') and packs constraints into short clauses with no filler sentences. It is dense and efficient, though the somewhat vague 'Explicit shared output budget and scope' phrase is less informative than its length suggests.

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?

Return values need not be described since an output schema exists, and the description covers cost, input size, and no-fetch guarantees. But it omits parameter semantics for maxChars/sourceUrl and offers no routing guidance among the numerous delta/compare siblings, so it is only minimally complete for a 4-parameter tool in a crowded namespace.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, but it only clarifies beforeHtml/afterHtml (via 'before/after HTML') and gesturally points at an 'output budget' that may map to maxChars. It never explains maxChars truncation semantics or what sourceUrl is used for, leaving two of four parameters undocumented.

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 (return) and resource (added and removed content blocks) plus the required input (before/after HTML), so the core function is unmistakable. It implicitly separates itself from fetch-based siblings via 'Supplied data only; no fetch,' but never names web_page_delta or the other delta/compare siblings, so full sibling differentiation is left to inference.

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

Usage Guidelines3/5

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

The rationale 'avoid rereading unchanged text' implies the delta-monitoring use case, and 'Supplied data only; no fetch' hints at when this is preferred over a live-fetch tool. However, there is no explicit when-to-use, when-not-to-use, or named alternative among the many sibling tools, leaving routing to inference.

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

agent_utilities_page_pack_previewB
Read-onlyIdempotent
Inspect

FREE, no key. Pack supplied HTML into bounded readable blocks with source, truncation and size estimates. No model, fetching or guaranteed token savings. Entire JSON input: 32768 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
htmlYes
maxCharsNo
sourceUrlNo

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description still adds real context beyond that: no model involved, no fetching, no payment or automatic paid fallback, and an explicit 32768-byte input cap. It is candid that token savings are not guaranteed, which is honest behavioral disclosure.

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

Conciseness3/5

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

Front-loads the 'FREE, no key' hook well and stays reasonably short, but repeats the negative-fetching idea twice ('No model, fetching' and 'no fetch') and repeats the paid-fallback concept, wasting a sentence on 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?

Output schema exists, so return values need not be described. Combined with annotations covering safety, the description supplies the remaining operational constraints (input size, offline, no cost) that an agent needs to call this correctly; only the per-parameter semantics remain thin.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it largely does not. It gestures at 'source' (sourceUrl) and 'truncation' (maxChars) and states the 32768-byte input limit, but never explains maxChars' default/max/floor of 256 or what sourceUrl is used for, leaving the agent to infer from 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 (pack) and resource (supplied HTML) and names the output form: bounded readable blocks with source, truncation and size estimates. The phrase 'supplied HTML' implicitly distinguishes it from fetch-based siblings like web_page_pack_fetch, though it never names an alternative explicitly.

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?

Implies the usage context ('supplied data only; no fetch') so an agent understands this is for HTML it already holds, and 'FREE, no key' signals cost constraints. It stops short of naming when-not or the specific alternative tools to route to when data must be retrieved.

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

agent_utilities_payment_optionsC
Read-onlyIdempotent
Inspect

Read free validation access and shared limits. Funding is paused. No credentials required.

NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description does add genuinely useful context beyond them: no authentication is needed and funding is currently paused. It says nothing about what limits or access data are returned, so it stops at adequate.

Agents need to know what a tool does to the world before 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 short sentences with no padding, and the operational caveat ('Funding is paused') is front-loaded. 'Read free validation access and shared limits' is compressed to the point of ambiguity, which costs a point.

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 zero-parameter, annotation-covered read tool, the description needn't explain safety or inputs. However, with no output schema, it should say something about what 'validation access' and 'shared limits' actually return; that gap leaves the agent unsure what it will get 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?

The tool takes zero parameters and schema description coverage is 100%, so the baseline of 4 applies. There are no parameters whose meaning the description would need to clarify.

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

Purpose2/5

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

The name says 'payment_options' but the description says 'Read free validation access and shared limits. Funding is paused.' The verb is present ('Read') but the resource is fuzzy and the two sentences don't clearly resolve into a single coherent purpose. No differentiation from the many agent_utilities_* siblings is offered.

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

Usage Guidelines2/5

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

'No credentials required' and 'Funding is paused' hint at operating context, but there is no explicit when-to-use, when-not-to-use, or named alternative among siblings. The agent must guess whether this tool is even actionable given funding is paused.

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

agent_utilities_prepareC
Read-only
Inspect

FREE. Validate input and return exact arguments for a free full call. No execution or reservation.

NameRequiredDescriptionDefault
nameYes
inputYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds useful context beyond that — that no execution or reservation occurs and that the call is free — but it does not address the notable idempotentHint=false, nor what the returned arguments look like or how they should be consumed.

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

Conciseness4/5

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

Two short sentences with the key qualifier ('FREE') front-loaded and zero filler. Slightly clipped to the point of ambiguity, but structurally efficient.

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

Completeness2/5

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

For a tool that dispatches across 46 utilities with an undocumented nested 'input' object and no output schema, the description is too thin — it never explains the name/input relationship or what the agent should do with the returned arguments.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. It says 'validate input' but never explains the 'name' parameter (a 46-value enum selecting the target utility) or how the free-form 'input' object must be shaped to match that target. This is a significant gap for a meta-tool.

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

Purpose3/5

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

The description states a specific action (validate input, return exact arguments) and clarifies that nothing is executed or reserved. However, the verb 'prepare' is vague about the tool's role, and it never explains that the 'name' parameter selects which of the ~46 sibling utilities is being prepared, so the agent must infer the tool's function from the enum alone.

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?

The phrase 'for a free full call' implies this is a pre-flight step before invoking a full/paid call, and 'no execution or reservation' implies a dry-run use case. But no alternatives are named (e.g. the *_preview or *_trial siblings), and the conditions selecting this tool over a direct call are left to inference.

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

agent_utilities_seo_auditA
Read-onlyIdempotent
Inspect

FREE deterministic technical SEO audit of supplied same-site snapshots. Compact summary, stable issue IDs and bounded evidence pagination. No remote crawl, model, rankings, credentials or charge. Prefer local crawler reports to keep raw HTML outside model prompts.

NameRequiredDescriptionDefault
groupNo
limitNo
pagesYes
detailNosummary
offsetNo
pageUrlNo
siteUrlYes
coverageNo
capturedAtNo
previousIssueIdsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds useful behavioral traits beyond that: deterministic output, stable issue IDs, bounded evidence pagination, no credentials, no model invocation, and no charge. These materially help an agent reason about cost and side effects.

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

Conciseness4/5

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

Four short sentences, front-loading what the tool does before the constraints. The 'FREE' emphasis and the list of negatives are borderline filler, but overall it is tight and every sentence carries some information.

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

Completeness2/5

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

For a 10-parameter tool with nested objects, no output schema, and no parameter descriptions, the description is too thin. It never explains the snapshot shape, what previousIssueIds enables (issue diffing), or how coverage/capturedAt affect results, leaving an agent with an incomplete picture of how to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0% across 10 parameters, so the description must carry the load and it largely does not. It hints at the summary/evidence distinction and bounded pagination (mapping to detail/limit/offset), but says nothing about pages, siteUrl, pageUrl, coverage, capturedAt, previousIssueIds, or group. Most inputs remain undocumented in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: it audits supplied same-site snapshots for technical SEO issues. It also names scope boundaries (deterministic, local-only) that distinguish it from crawl/fetch siblings like web_readable_fetch or web_page_pack. An agent can identify the capability immediately.

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

Usage Guidelines3/5

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

It gives a preference rule ('prefer local crawler reports... to keep raw HTML outside model prompts') and states a negative constraint (no remote crawl), which implies when it applies. However, it never names an alternative tool or a concrete when-to-use/when-not-to-use condition relative to the many sibling tools. Guidance is implied rather than explicit.

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

agent_utilities_thread_pack_previewA
Read-onlyIdempotent
Inspect

FREE, no key. Format supplied Reddit comments JSON into a bounded post and reply tree with original Markdown, authors and direct links. No fetch or generated consensus. Entire JSON input: 32768 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
threadYes
maxCharsNo
sourceUrlYes
maxCommentsNo

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description still adds real context: free and keyless, a 32768-byte input limit, no generated consensus, and no automatic paid fallback. It stops short of describing the output shape or failure behavior, but the cost and scope disclosures are genuine 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.

Conciseness3/5

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

Front-loads cost and purpose well, but 'No fetch' and 'no fetch, payment or automatic paid fallback' restate the no-fetch point, and the byte-limit sentence is tacked on after the alternative. Mostly tight, with noticeable redundancy across the two sentences.

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?

An output schema exists, so return values needn't be described, and the behavior/cost framing is solid. However, for a transformation tool with 4 params at 0% schema description coverage, the description leaves the parameters unexplained, which is a real gap for correct invocation.

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

Parameters2/5

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

Schema coverage is 0% and there are 4 parameters, so the description must carry the semantic load, but it never explains maxChars, maxComments, sourceUrl, or the thread structure. The mention of a 32768-byte input cap is the only limit-related detail, leaving the two size/limit parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Format) and resource (supplied Reddit comments JSON) and names the output precisely: a bounded post and reply tree with original Markdown, authors and direct links. The 'No fetch' clause implicitly separates it from fetch-based siblings like web_reddit_thread and web_thread_pack, so an agent can tell what it does 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?

Clear context: 'Supplied data only; no fetch, payment or automatic paid fallback' tells the agent to use this only when it already holds the JSON, versus fetching tools. It doesn't explicitly name an alternative sibling to use when fetching is required, so it stops short of a full when/when-not/alternatives statement.

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

agent_utilities_wikipedia_pack_previewA
Read-onlyIdempotent
Inspect

FREE, no key. Pack supplied Wikipedia article HTML with sections, source links, attribution and a bounded text budget. No fetching or generated summary. Entire JSON input: 32768 UTF-8 bytes. Supplied data only; no fetch, payment or automatic paid fallback.

NameRequiredDescriptionDefault
htmlYes
sectionNo
maxCharsNo
sourceUrlYes

Output Schema

NameRequiredDescription
modeYes
limitsYes
resultYes
chargedMicroUsdYes
executionPerformedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the bar is lower. The description adds genuinely useful behavioral context beyond them: no fetch, no generated summary, no payment or automatic paid fallback, and a hard 32768-byte input ceiling with a bounded text budget.

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?

Key constraints are front-loaded in the opening sentence, but the 'no fetching / supplied data only / no fetch' prohibition is stated three times across separate sentences, which is redundant padding rather than earned content.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and annotations cover the safety profile. The description is nearly complete, lacking only per-parameter semantics for 'section' and 'sourceUrl' and any positive usage cue.

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 0%, so the description must compensate. It loosely covers two of four params ('bounded text budget' ~ maxChars, '32768 UTF-8 bytes' ~ html maxLength) but says nothing about 'section' selection or what 'sourceUrl' is for or whether it is validated against the supplied HTML.

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 ('Pack') and resource ('supplied Wikipedia article HTML') plus the outputs it produces: sections, source links, attribution, and a bounded text budget. The word 'supplied' plus 'No fetching' implicitly separates it from fetching siblings like web_wikipedia_read/web_wikipedia_pack, though it never names them.

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

Usage Guidelines3/5

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

Gives a clear negative condition ('No fetching or generated summary', 'Supplied data only'), which implies the tool is for when you already have HTML in hand. But it never states the positive when-to-use case or explicitly names an alternative for agents that don't yet have the HTML.

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

agent_utilities_wikipedia_read_trialB
Read-only
Inspect

FREE bounded source trial. Read a public Wikipedia article through the official API with revision, license, sections and a text budget. Ten supported editions; inspect omissions. No service debit or paid fallback. Reader: maxChars 3000, maxComments 5. Popular links: limit 10. Upstream access/rate limits still apply.

NameRequiredDescriptionDefault
urlYes
sectionNo
maxCharsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, but the description adds genuinely useful behavioral context: 'No service debit or paid fallback' and 'Upstream access/rate limits still apply'. The out-of-scope budget mentions ('maxComments 5', 'Popular links: limit 10') do not map to any parameter of this tool and slightly muddy the signal, keeping this below a 5.

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

Conciseness3/5

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

Front-loaded with the core action and reasonably compact, but the telegraphic fragments ('inspect omissions', 'Ten supported editions') and the parameter-like figures that belong to other tools add noise rather than information.

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?

With no output schema, the description does convey what is returned (revision, license, sections, budget) and the rate-limit constraint. However, key input semantics (url/section format) remain unspecified and the extraneous budget mentions leave the scope of this specific tool ambiguous.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden. It clarifies the maxChars text budget (3000) and implies sections, but never explains whether 'url' is a full URL or an article title, nor the accepted format/values for 'section'. The 'maxComments' figure further confuses the parameter picture.

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: 'Read a public Wikipedia article through the official API', and lists what it returns (revision, license, sections, text budget). It is clear on its own, but it never names or distinguishes itself from the non-trial sibling web_wikipedia_read or from agent_utilities_wikipedia_popular_trial, so an agent cannot route confidently without opening schemas.

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

Usage Guidelines2/5

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

'FREE bounded source trial' gestures at a usage context, but there is no explicit when-to-use, when-not-to-use, or named alternative. The distinction between this trial tool and web_wikipedia_read / agent_utilities_wikipedia_pack_preview is left entirely to inference.

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

commerce_feed_page_compareB
Read-only
Inspect

Compare supplied feed identity, price, currency and availability with selected JSON-LD product evidence; preserve conflicts and unknown fields. Optional availabilityProfile google_merchant applies Google feed mappings; generic is the default. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
checksYes
statusYes
evidenceYes
warningsYes
selectionYes
identityStatusYes
availabilityProfileYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lowered. The description adds genuinely useful non-schema context: conflicts and unknown fields are preserved, the operation is FREE during validation, and it needs no key/credits/wallet. It does not explain limits despite referencing 'existing source and input limits apply'.

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 comparison is front-loaded and earns its place, but trailing sentences ('FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.') are boilerplate and 'Supply your task in input' is vague for an object-typed input. Roughly half the text is filler.

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?

An output schema exists, so return values need no explanation, which reduces the burden. The description adequately conveys the comparison and billing model, but with a nested 1-parameter schema at 0% description coverage it leaves the html/pageUrl/offerUrl inputs unexplained, so it is adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It does name the feed fields (identity, price, currency, availability) and explains the availabilityProfile enum trade-off (google_merchant vs generic default), but it says nothing about the top-level html, pageUrl, and offerUrl parameters, whose roles remain opaque from the schema alone.

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 triple: it compares supplied feed identity/price/currency/availability against selected JSON-LD product evidence. An agent can tell it apart from extraction siblings like commerce_offer_extract or html_jsonld, since this one is a comparison of the two. It does not, however, name its closest sibling (agent_utilities_feed_page_compare_preview) or clarify their difference.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not guidance relative to alternatives. The description only notes 'generic is the default' for the profile and states cost/billing terms, leaving the agent to infer that this tool is for feed-vs-JSON-LD reconciliation. No exclusions or prerequisite conditions are provided.

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

commerce_gtin_validateA
Read-only
Inspect

Validate GTIN-8, UPC/GTIN-12, EAN/GTIN-13 and GTIN-14 check digits; no product lookup. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
validYes
formatYes
expectedCheckDigitYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the read-only, non-destructive, closed-world profile. The description adds genuinely useful context beyond them: pricing ('FREE during validation'), auth requirements ('no key, credits, wallet'), and a rate/limit caveat ('existing source and input limits apply').

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

Conciseness3/5

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

Front-loaded with the useful content (formats + no-lookup scope), but several sentences are boilerplate ('Supply your task in input', 'Existing source and input limits apply') that add little and one is mildly confusing about what 'task' means.

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?

With an output schema present, return values need no explanation, and annotations carry the safety profile. Still, for a tool with a nested required object and 0% schema coverage, the description leaves the input shape unclarified, which is a real gap.

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

Parameters2/5

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

Schema description coverage is 0% and the single nested parameter (input.code, maxLength 32) is undocumented. 'Supply your task in input' is boilerplate that does not tell the agent that input.code should hold the GTIN string, so it fails to compensate for the coverage gap.

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

Purpose5/5

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

States a specific verb (Validate) and resource (GTIN-8/UPC-12/EAN-13/GTIN-14 check digits), and explicitly scopes it with 'no product lookup', which cleanly distinguishes it from siblings like commerce_main_product and commerce_offer_extract.

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?

Implies usage well (pure check-digit validation, not a product lookup) and notes it is free with no key/credits/wallet required. However, it never names an alternative tool or states an explicit when-to-use vs when-not condition, leaving routing to inference.

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

commerce_main_productA
Read-only
Inspect

Identify the main Product or ProductGroup from supplied JSON-LD HTML using identity, mainEntity and canonical evidence; abstain on ambiguity. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
reasonYes
statusYes
selectedYes
warningsYes
pageTypesYes
candidatesYes
selectedIdYes
canonicalUrlYes
distinctProductsYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish the read-only, closed-world, non-destructive profile. The description adds genuine extra context: it abstains on ambiguity, notes it is free during validation with no key/credits/wallet needed, and warns that source and input limits apply. The idempotentHint=false is left unexplained, which is the only notable 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?

Four short sentences, front-loaded with the purpose statement and the abstain rule, with cost/limits trailing. Most sentences earn their place, though 'Supply your task in input' is an awkward, low-information phrasing.

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?

An output schema exists, so return values need not be described. For a single-purpose JSON-LD extraction tool, the description covers purpose, ambiguity behavior, and cost. The main omission is any explanation of the nested input object's fields.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the burden, but it only says 'Supply your task in input.' That is vague and does not clarify the nested html (required) vs. pageUrl fields or the 2048/100000 length constraints the schema imposes without prose.

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 (Identify) and resource (main Product or ProductGroup) and scopes the input domain to supplied JSON-LD HTML. This distinguishes it from generic extractors like html_jsonld or commerce_offer_extract, though it does not explicitly name the sibling it differs from (e.g. agent_utilities_main_product_preview).

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?

Usage is implied by the input condition ('supplied JSON-LD HTML') and the 'abstain on ambiguity' rule gives one behavioral trigger. But there is no explicit when-to-use vs. alternative guidance, no exclusions, and nothing telling the agent why to pick this over the preview sibling or html_jsonld.

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

commerce_money_parseB
Read-only
Inspect

Normalize up to 50 displayed prices with explicit locale, currency and decimal scale; exact amounts, strict grouping and per-price errors. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
localeYes
amountsYes
allValidYes
currencyYes
minorUnitDigitsYes
acceptedCurrencyTokensYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety profile is covered. The description adds some behavioral context: 'FREE during validation', 'No key, credits, wallet or preparation needed', 'strict grouping', and 'per-price errors', which go beyond annotations. However, it does not detail error handling or output structure.

Agents need to know what a tool does to the world before 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 appropriately sized and front-loaded with the main purpose. Every sentence adds some value, though the final sentence 'Existing source and input limits apply' is vague and slightly redundant.

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?

Given the complexity (nested object with multiple required fields, enums, and output schema), the description is moderately complete. It covers the main functionality and some constraints, but lacks details on the required input structure, parameter meanings, and how errors are reported. The presence of an output schema reduces the need to explain return values.

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 0%, so the schema itself provides no parameter descriptions. The description mentions 'explicit locale, currency and decimal scale' and 'up to 50 displayed prices', which maps to some of the nested parameters (locale, currency, minorUnitDigits, amounts, max 50). However, it does not explain the required 'input' object structure, the meaning of 'id' and 'text' within amounts, or enum restrictions.

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 ('Normalize') and resource ('displayed prices') along with scope details (up to 50, explicit locale, currency, decimal scale). It is clear what the tool does, though it does not explicitly differentiate from sibling tools like commerce_price_components or commerce_pack_size_normalize.

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

Usage Guidelines2/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. Sibling tools such as commerce_price_components and commerce_unit_price exist, but the description offers no comparison or exclusions.

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

commerce_offer_extractB
Read-only
Inspect

Extract bounded Product offers from supplied JSON-LD HTML with source pointers, missing-price warnings and separate aggregate ranges. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
offersYes
truncatedYes
invalidBlocksYes
productsFoundYes
unsupportedOffersYes
unresolvedReferencesYes
productsWithoutOffersYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false, so safety is covered. The description adds the bounded nature, missing-price warnings, separate aggregate ranges, and free/no-key auth context, which is useful. It does not state what happens to existing data (nothing, since read-only) or rate limits beyond 'existing source and input limits apply', which is vague.

Agents need to know what a tool does to the world before 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 action in the first sentence and keeps the operational guarantees (free, no key, limits) short. The 'Supply your task in input' clause is filler that could be removed, but overall it is tight.

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?

An output schema exists, so return values need not be explained, and annotations cover safety. However, the 0%-coverage nested schema and the ambiguous 'source and input limits apply' leave the agent without needed detail on html format, baseUrl's role for resolving pointers, or how maxOffers interacts with 'bounded'.

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

Parameters2/5

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

Schema description coverage is 0% for the nested input object (html, baseUrl, maxOffers), and the description does not compensate — it only says 'Supply your task in input', adding no meaning for html, baseUrl, or maxOffers. This is a real gap given maxOffers bounds the 'bounded' output.

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: 'Extract bounded Product offers from supplied JSON-LD HTML'. Distinguishes from sibling html_jsonld (generic JSON-LD) and commerce_offer-related previews, though it doesn't explicitly name the alternative it differs from. The purpose is clear 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 Guidelines3/5

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

Implies when-to-use via 'from supplied JSON-LD HTML' but never states when to prefer it over html_jsonld or commerce_main_product, and offers no exclusions. The 'Supply your task in input' phrasing is misleadingly generic rather than listing preconditions.

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

commerce_pack_planB
Read-only
Inspect

Choose the lowest-cost whole-pack combination for a required count with exact prices and explicit pack limits; up to 20 interchangeable offers. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
linesYes
scopeYes
currencyYes
feasibleYes
packCountYes
totalUnitsYes
excessUnitsYes
itemSubtotalYes
requiredUnitsYes
minorUnitDigitsYes

TDQS

B3.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 openWorldHint=false, so the safety profile is covered. The description adds useful operational context beyond annotations: it is free during validation, requires no key/credits/wallet/preparation, and says existing source and input limits apply. It does not contradict any annotation.

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

Conciseness4/5

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

The purpose is front-loaded and the description is brief with no obvious padding. However, the fragmented credential/payment sentences ('FREE during validation. No key, credits, wallet or preparation needed.') and the vague 'Supply your task in input' are less useful than tighter schema-oriented guidance.

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 tool has a nested input schema with no property descriptions and an output schema. The description conveys the high-level optimization task and some limits, but it leaves important input semantics unexplained, so an agent would need to inspect the schema closely to build a valid call.

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

Parameters2/5

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

Schema description coverage is 0% and the single 'input' parameter is a complex nested object, so the description must carry the burden. It partially maps to the schema by mentioning required count, exact prices, explicit pack limits, and up to 20 interchangeable offers, but it does not explain currency, minorUnitDigits, or the nested offer structure. 'Supply your task in input' adds almost no usable parameter guidance.

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

Purpose4/5

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

The description uses a specific verb phrase ('Choose the lowest-cost whole-pack combination') and states the optimization target, inputs ('required count', 'exact prices', 'explicit pack limits'), and a key constraint ('up to 20 interchangeable offers'). It does not differentiate itself from sibling tools such as commerce_pack_size_normalize or agent_utilities_pack_preview, so an agent cannot route between pack-related siblings from this text alone.

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

Usage Guidelines2/5

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

The description gives operational context ('FREE during validation', no credentials needed) but no explicit when-to-use or when-not-to-use guidance. It never names alternatives, prerequisites, or conditions under which another sibling tool should be selected instead.

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

commerce_pack_size_normalizeB
Read-only
Inspect

Normalize locale-explicit pack-size expressions and multipacks to exact grams, millilitres or counts; reject ambiguous text. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
localeYes
quantitiesYes
allNormalizedYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint true, destructiveHint false and openWorldHint false, so the safety profile is covered. The description adds useful context beyond that: rejection of ambiguous text (error behavior), cost/auth transparency (free, no key/credits/wallet), and an explicit limits caveat. It does not explain rate limits or how partial failures within the quantities array are reported, so it stops short of 5.

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

Conciseness3/5

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

The core purpose is front-loaded and compact, but 'Supply your task in input' is filler and the two pricing sentences ('FREE during validation' / 'No key, credits, wallet or preparation needed') overlap, consuming space that could have documented the input shape.

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?

An output schema exists, so return values need not be described. However, for a nested required input at 0% schema description coverage, the description leaves an agent guessing about how to build the payload, and the sibling preview tool is never referenced.

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

Parameters2/5

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

Schema description coverage is 0% and the single required parameter is a nested object with a locale enum and a quantities array of {id, text} items with item/character caps. The description only says 'locale-explicit' and 'Supply your task in input', leaving structure, the id/text contract, and the 50-item/160-char limits entirely undocumented outside 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 (normalize) and resource (locale-explicit pack-size expressions and multipacks) with a concrete output unit set (grams, millilitres, counts) plus an explicit failure condition (reject ambiguous text). It does not name the obvious sibling agent_utilities_pack_size_normalize_preview, so an agent must infer the preview vs real distinction, which keeps it from a 5.

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

Usage Guidelines3/5

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

'FREE during validation' and 'Existing source and input limits apply' imply this belongs to a validation/preparation workflow, but no alternative tool is named and no when-not condition is given. 'Supply your task in input' adds no selection guidance.

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

commerce_price_componentsB
Read-only
Inspect

Reconcile item, discount, shipping, tax and fee amounts using exact decimals; missing costs stay unknown and declared totals can be checked. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
linesYes
scopeYes
totalYes
currencyYes
differenceYes
knownTotalYes
itemSubtotalYes
lineDiscountsYes
orderDiscountYes
minorUnitDigitsYes
missingComponentsYes
matchesDeclaredTotalYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already establish readOnly/non-destructive/closed-world, and the description adds real behavioral context beyond them: exact-decimal arithmetic, that missing costs 'stay unknown' (null handling), that declared totals can be cross-checked, and that no key/credits/wallet are required. It still does not explain the non-idempotent behavior hinted by 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?

Front-loaded with the core purpose, which is good, but 'FREE during validation' and 'No key, credits, wallet or preparation needed' are redundant, and 'Supply your task in input' / 'Existing source and input limits apply' are filler.

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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. What remains missing is usage guidance and semantics for the required nested fields, leaving the definition adequate but short of complete for a complex nested-input tool.

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

Parameters3/5

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

Schema description coverage is 0% and nested fields are undocumented, so the description must carry the load. It does surface the key components (items, discount, shipping, tax, fees) and the declared-total check, but leaves required fields like currency, minorUnitDigits, quantity, and unitPrice unexplained.

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?

Names a specific verb ('Reconcile') and enumerates the resource components (item, discount, shipping, tax, fee amounts), which distinguishes it from siblings like commerce_money_parse and commerce_unit_price. The purpose is legible, though 'reconcile' is somewhat abstract and it never explicitly contrasts itself with those siblings.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives such as commerce_unit_price or commerce_money_parse. 'Supply your task in input' and 'Existing source and input limits apply' convey nothing about selecting or timing the call.

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

commerce_unit_priceB
Read-only
Inspect

Compare up to 50 explicit pack prices with exact arithmetic across compatible mass, volume or count units; no currency conversion. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
offersYes
currencyYes
referenceYes
cheapestIdsYes

TDQS

B3/5.0
Behavior4/5

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

Beyond the annotations (readOnly, non-destructive, closed-world), the description discloses genuinely useful behavioral facts: no currency conversion is performed, the tool is free during validation, and no key/credits/wallet/preparation is required. These materially change how an agent plans around the call. It stops short of explaining failure modes or what happens on incompatible units.

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?

It is short and the core capability is front-loaded, but the back half degenerates into fragmented boilerplate ('FREE during validation.', 'Supply your task in input.', 'Existing source and input limits apply.') that reads as marketing/legal filler rather than useful specification.

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

Completeness2/5

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

For a tool with a complex nested input object, 0% schema coverage, and many overlapping siblings, the description is too thin. An output schema exists so return values need not be described, but the input contract and the distinction from commerce_pack_size_normalize/commerce_pack_plan are left unaddressed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the burden, and it mostly does not. 'Supply your task in input' explains nothing about the nested currency/reference/offers structure, the decimal-string price format, or the unit enum. Only the '50 offers' cap and 'mass, volume or count units' loosely map to maxItems and the unit enum, which is partial compensation at best.

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: 'Compare up to 50 explicit pack prices with exact arithmetic across compatible mass, volume or count units', plus a scope limit ('no currency conversion'). It is clear on what the tool does, but it never distinguishes itself from close siblings such as commerce_pack_size_normalize, commerce_pack_plan, or agent_utilities_pack_preview.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. 'Existing source and input limits apply' is a vague catch-all rather than actionable routing advice, leaving the agent to guess between several price/pack-related tools.

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

commerce_variant_compareC
Read-only
Inspect

Compare requested product attributes with an offered variant and list missing or mismatched fields. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
extraYes
scopeYes
matchesYes
missingYes
mismatchedYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare the safe-read profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description does add useful context beyond them: the operation is free, requires no key/credits, and is subject to existing source and input limits. It does not explain what the limits actually are or note 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.

Conciseness3/5

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

The purpose sentence is front-loaded and effective, but the following four sentences are largely commercial boilerplate, and "Supply your task in input" is filler that conveys no actionable information. Roughly half the text does not earn its place.

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

Completeness2/5

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

An output schema exists so return values need no explanation, but with a nested 0%-documented parameter the description should carry the format burden and does not. Limits are referenced without being specified, leaving the agent unable to construct a correct 'requested'/'offered' payload from the description alone.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter is a nested object with required 'requested'/'offered' sub-objects capped at 100 properties each. The description only says "Supply your task in input" and vaguely alludes to "input limits", giving no attribute key/value format, no statement of the 100-property cap, and no meaning for the nested structure.

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 (compare) plus both resources (requested product attributes vs. an offered variant) and names the output (missing/mismatched fields), so the operation is unambiguous. It does not, however, distinguish itself from adjacent siblings such as commerce_feed_page_compare or agent_utilities_page_delta_preview.

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

Usage Guidelines2/5

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

The only usage signal is commercial/availability ("FREE during validation", "No key, credits, wallet or preparation needed"), which is not when-to-use guidance. There is no statement of when this comparison applies versus the sibling compare/diff tools, nor any exclusion conditions.

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

contracts_jsonschema_validateB
Read-only
Inspect

Validate data using a bounded JSON Schema 2020-12 subset. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
validYes
issuesYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=true, destructive=false, openWorld=false). The description adds genuinely useful context beyond that: it is free, needs no auth/credits, and notes 'source and input limits apply.' It stops short of explaining what the 'bounded subset' excludes or how limits are enforced.

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

Conciseness3/5

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

Purpose is front-loaded and sentences are short, but 'FREE during validation' and 'No key, credits, wallet or preparation needed' are largely redundant marketing statements that don't earn their space. The genuinely useful constraint ('Existing source and input limits apply') is buried last.

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?

An output schema exists, so return values need not be described. But with a nested 0%-documented input and a vague 'bounded subset' claim, the definition leaves key questions unanswered: what subset of 2020-12 is supported and how schema/data are supplied.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema documents nothing, and the single top-level parameter is a nested object requiring both 'schema' and 'data'. The description only says 'Supply your task in input' and never names or explains the schema/data structure, leaving the actual input contract undocumented.

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: 'Validate data using a bounded JSON Schema 2020-12 subset.' An agent knows immediately this is a schema-validation tool. However, it does not distinguish itself from nearby siblings like contracts_openapi_lint or commerce_gtin_validate, leaving differentiation to inference.

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?

The description conveys operational context ('FREE during validation', 'No key, credits, wallet or preparation needed') but gives no explicit when-to-use or when-not-to-use guidance relative to the many sibling validation/lint tools. Usage is only implied by the free/no-prep framing.

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

contracts_openapi_diffC
Read-only
Inspect

Detect selected direct breaking changes between OpenAPI 3.0 documents. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
changesYes
breakingChangesDetectedYes

TDQS

C2.4/5.0
Behavior2/5

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

The annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false, so safety is already covered. The description adds only commercial terms: 'FREE during validation' and 'no key or credits needed'. It does not say what is compared, how breaking changes are classified, or what the output looks like. 'Existing source and input limits apply' is undefined boilerplate.

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

Conciseness2/5

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

The text is short but front-loads pricing and validation disclaimers rather than the operative behavior. The sentences do not earn their place: they promote the tool's cost and constraints while omitting what it actually compares. The result is under-specified rather than concise.

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

Completeness2/5

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

An output schema exists, so return values need not be explained. But the tool takes nested objects, has a required parameter with no schema documentation, and performs a non-trivial semantic comparison. The description does not cover what 'breaking changes' means, how documents are supplied, or what the output contains. It is not complete enough for an agent to invoke it confidently.

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

Parameters1/5

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

Schema description coverage is 0%. The schema only declares an object with required 'before' and 'after' sub-objects and no field descriptions. The description does not explain what 'input' should contain, what the 'before'/'after' objects represent beyond being OpenAPI documents, or whether full documents or references are expected. With zero coverage, the description should have compensated, and it did not.

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: 'Detect selected direct breaking changes between OpenAPI 3.0 documents.' That is enough to distinguish it from siblings such as contracts_openapi_lint and data_json_diff. The qualifier 'selected direct' is vague, though, and leaves the scope of the comparison unclear.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool instead of alternatives, and it does not name any siblings or point to them. It only says to 'supply your task in input', which offers no selection logic. The agent must infer the right moment to call it from the title alone.

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

contracts_openapi_lintC
Read-only
Inspect

Validate OpenAPI 3.0 JSON structure and internal references. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
validYes
issuesYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false). The description adds some billing/auth context ('FREE during validation', 'No key, credits, wallet or preparation needed') and a rate limit note ('Existing source and input limits apply'), which is genuinely useful beyond annotations, but the phrasing is boilerplate and vague.

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 effectively, but the middle billing sentence ('FREE... No key, credits, wallet or preparation needed') is repetitive and the closing 'Supply your task in input' is awkward filler. Roughly half the sentences do little work.

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

Completeness2/5

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

An output schema exists so return values need not be explained, but this tool's sole input is a nested document object with 0% schema coverage, and the description gives no detail about what the document must contain. For a validator whose correctness depends on input shape, this is incomplete.

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

Parameters2/5

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

Schema description coverage is 0% and there is one required nested parameter (input.document). The description only says 'Supply your task in input,' which tells the agent nothing about the required document object or its structure, so it fails to compensate for the coverage gap.

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: 'Validate OpenAPI 3.0 JSON structure and internal references.' This distinguishes it from the sibling contracts_jsonschema_validate (JSON Schema, not OpenAPI) and contracts_openapi_diff, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no conditions for choosing this over contracts_jsonschema_validate or contracts_openapi_diff, and no prerequisites. 'Supply your task in input' is procedural filler rather than routing guidance.

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

data_json_canonicalB
Read-only
Inspect

Serialize JSON with sorted object keys for deterministic comparison; not RFC 8785 certification. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
textYes
profileYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover read-only/non-destructive, but the description adds genuinely new context: no key, credits, wallet or preparation required, free during validation, and that existing source/input limits apply. The only tension is idempotentHint=false against a tool described as deterministic, though that is an annotation oddity rather than a description that misleads about what the tool does.

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

Conciseness3/5

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

The purpose and the RFC 8785 caveat are correctly front-loaded, but the middle sentences ('FREE during validation. No key, credits, wallet or preparation needed.') are vendor boilerplate, and 'Supply your task in input' consumes space without adding meaning.

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?

Return values are covered by the output schema and safety by annotations, so the description needn't repeat them. Still missing for a single-param, nested-input tool: what the payload should contain and how it relates to the sibling JSON tools an agent would pair it with (diff, patch, pointer).

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter is a nested object whose 'data' property is entirely untyped and undocumented. The description's only guidance is 'Supply your task in input', which is confusing filler that points at the wrapper rather than explaining that input.data carries the JSON document to be canonicalized.

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+effect: 'Serialize JSON with sorted object keys for deterministic comparison', and explicitly bounds it with 'not RFC 8785 certification'. An agent can tell this apart from data_json_diff or data_json_patch in intent, but the description never names or contrasts those siblings, which is what a 5 would require.

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?

'for deterministic comparison' implies the use case, and 'not RFC 8785 certification' implies when this is insufficient. However there is no explicit when-to-use/when-not or routing to alternatives such as data_json_diff, so usage is only inferred rather than stated.

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

data_json_diffB
Read-only
Inspect

Compare JSON structures and return bounded changes at JSON Pointer paths. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
equalYes
scopeYes
changesYes
truncatedYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the useful 'bounded changes' constraint (matching maxChanges) and notes that source/input limits apply, but doesn't describe pagination or how differences are ordered/reported.

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

Conciseness3/5

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

Purpose is front-loaded in the first sentence, which is good, but the two pricing sentences are largely promotional and the phrase 'Supply your task in input' is filler. The definition is short but not fully efficient.

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?

An output schema exists, so return values needn't be explained, and the tool is conceptually simple. However, with 0% schema coverage the description should compensate for the undocumented nested input parameters, and it does not.

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

Parameters2/5

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

Schema description coverage is 0% and the description only says 'Supply your task in input', which is vague and adds no meaning. It never explains the nested before/after/maxChanges fields, so the single nested parameter is undocumented in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (compare), resource (JSON structures) and output shape (bounded changes at JSON Pointer paths), which cleanly distinguishes it from siblings like data_json_patch and data_json_canonical. An agent can tell what this does 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 Guidelines2/5

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

The description gives pricing/availability info ('FREE during validation', 'No key, credits, wallet...') but no guidance on when to use this versus alternatives such as data_json_canonical or data_json_patch. No exclusions or conditions are stated.

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

data_json_patchA
Read-only
Inspect

Apply up to 100 RFC 6902 operations transactionally to supplied JSON, with strict pointers, safe object properties and bounded intermediate results. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
dataNo
scopeYes
documentExistsYes
operationsAppliedYes

TDQS

A3.5/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=false, so the safety profile is covered. Beyond that the description adds real traits: operations are applied transactionally (atomic), pointers are strict, object properties are handled safely, intermediate results are bounded, and the cap is 100 operations. The trailing 'Existing source and input limits apply' is vague and points at undocumented constraints, keeping this short of a 5.

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

Conciseness3/5

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

Purpose is correctly front-loaded, but two of the five sentences are promotional ('FREE during validation', 'No key, credits, wallet or preparation needed') and earn little space for an agent selecting a tool. A tighter sentence or two would carry the same load.

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?

An output schema exists, so return-value explanation is not required, and the schema fully encodes the patch operation union. What is missing is failure behavior: the description asserts transactionality but never says what the agent gets back when a test op fails or a pointer is invalid, and it never differentiates itself from the neighboring data_json_* tools. Adequate, but with visible gaps.

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 0%, so the description must compensate. Citing RFC 6902 is genuinely informative because it implies the op/path/value/from shape the schema encodes, and the 100-operation cap mirrors maxItems. However, 'Supply your task in input' adds nothing about the nested data/patch structure, so compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: apply RFC 6902 patch operations to supplied JSON. The RFC reference pins down exactly what the operation set is, and it is clearly distinguishable from siblings like data_json_diff, data_json_canonical, and data_json_pointer.

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

Usage Guidelines2/5

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

The description never says when to reach for this tool instead of data_json_diff, data_json_pointer, or contracts_jsonschema_validate. The eligible sentences ('FREE during validation', 'No key, credits, wallet or preparation needed') are pricing/access notes, not usage guidance, so the agent gets no routing or prerequisite context.

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

data_json_pointerB
Read-only
Inspect

Select JSON values with up to 100 RFC 6901 pointer strings, preserving missing versus null. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
selectionsYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already establish readOnly, non-destructive, closed-world behavior, and the description adds genuinely new context: preserving missing versus null semantics, the 100-pointer ceiling, no-auth/no-prep, and that source/input limits apply. It still does not describe output shape, but the output schema presumably covers that.

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

Conciseness3/5

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

The purpose is front-loaded, which is good, but the marketing-style lines ('FREE during validation. No key, credits, wallet or preparation needed.') and the filler 'Supply your task in input' consume space without informing invocation. Mixed efficiency.

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?

With an output schema present, return values need no explanation, and the missing-vs-null behavior is a useful addition. However, for a nested one-parameter tool at 0% schema coverage, the input structure (data/paths relationship, expected data types) is under-specified, leaving the agent to infer 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 description coverage is 0%, so the description must carry the load. It does document the paths side ('up to 100 RFC 6901 pointer strings'), but the 'data' field and the nested input wrapper are never explained beyond the vague 'Supply your task in input', leaving a real gap.

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+resource ('Select JSON values') and pins the format to RFC 6901 pointers, which clearly separates it from siblings like data_json_diff, data_json_patch, and data_json_canonical. It does not explicitly name those siblings, so it falls short of the 5 bar, but the operation is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance relative to the other data_json_* tools, and 'Supply your task in input' is vague rather than a usage instruction. 'FREE during validation' hints at a context but never states the conditions under which this tool should be chosen.

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

html_feedsB
Read-only
Inspect

Discover up to 50 RSS, Atom and JSON Feed links declared in supplied HTML. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
feedsYes
truncatedYes

TDQS

B3.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, openWorldHint=false), so the bar is lower. The description adds genuinely useful behavior the annotations do not: the hard cap of 50 discovered links and the fact that it is free with no key, credits or wallet required.

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?

It is short and front-loads the core purpose, but the pricing sentence and the incorrect 'Supply your task in input' line consume space without adding usable information for an agent trying to invoke the tool.

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 presence of an output schema means return values need not be described, and the link cap is a helpful extra. However, for a tool whose sole argument is a nested object at 0% schema coverage, the description leaves baseUrl unexplained and gives a misleading hint about the input format.

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

Parameters2/5

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

Schema description coverage is 0% and the only parameter is a nested object exposing 'html' and 'baseUrl'. The description implies the HTML input but never explains the nested input shape, and 'Supply your task in input' mislabels the parameter (there is no 'task' field), while baseUrl — important for resolving relative feed links — goes completely unmentioned.

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: 'Discover up to 50 RSS, Atom and JSON Feed links declared in supplied HTML.' This clearly separates it from broader siblings like html_links or html_jsonld, though it never names an alternative explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of when to prefer html_links or html_metadata over this tool, and no prerequisites. The phrase 'Supply your task in input' is boilerplate that gives no real routing information.

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

html_formsB
Read-only
Inspect

Describe up to 30 forms and their controls without returning field values or submitting anything. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
formsYes
scopeYes
truncatedYes

TDQS

B3.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, but the description adds real behavior beyond them: it will not return field values, will not submit forms, caps output at 30 forms, needs no auth/credits, and implies existing source/input limits apply. These are meaningful operational traits, though the limits are left vague.

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

Conciseness3/5

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

Purpose is front-loaded and the text is short, but 'No key, credits, wallet or preparation needed' largely restates 'FREE during validation', and 'Supply your task in input' is confusing filler rather than useful information.

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?

An output schema exists, so return values need no explanation, and annotations carry the safety profile. However, for a tool whose sole input is a nested HTML/baseUrl object, the description never describes that input structure and only gestures at 'limits', leaving a real gap for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter is a nested object (html, baseUrl with a 100000 maxLength). The description only says 'Supply your task in input', which mislabels the payload as a 'task' and never explains the html content or baseUrl purpose, failing to compensate for the coverage gap.

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 ('Describe up to 30 forms and their controls') and even defines scope by clarifying it does not return field values or submit. It is easy to tell apart from html_links/html_tables by resource, but no sibling is named explicitly, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use/when-not guidance versus the many other html_* extraction tools. The only contextual cue is cost ('FREE during validation. No key, credits, wallet...'), which is about expense, not tool selection, and 'Supply your task in input' gives no actionable routing guidance.

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

html_headingsC
Read-only
Inspect

Extract up to 200 headings with parent indices and skipped-level indicators. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
totalYes
headingsYes
truncatedYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnly=true, destructive=false and closed-world, so the safety profile is covered. The description adds some non-annotation context: a 200-heading result cap, that output includes parent indices and skipped-level flags, and that no auth is needed. However, the FREE/no-key messaging is repeated redundantly, and idempotentHint=false is left unexplained.

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

Conciseness3/5

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

Purpose is correctly front-loaded in the first sentence, but two subsequent sentences restate the same free/no-key point, and 'Supply your task in input' adds confusion rather than value. Moderate waste for a short description.

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?

An output schema exists, so return-value explanation is not required, and annotations cover safety. Still, the nested input object is undocumented anywhere and there is no usage context against a crowded html_* family, leaving gaps an agent would need to fill by trial.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it does not. Worse, 'Supply your task in input' misdescribes the actual nested parameter (input.html, a raw HTML string, max 100000), which could mislead an agent about what to pass.

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 (Extract) and resource (headings), plus concrete scope details (up to 200, parent indices, skipped-level indicators) that distinguish it from the html_links/html_tables/html_metadata siblings. It never names an alternative explicitly, but the resource noun is unambiguous enough to route correctly.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance relative to the many sibling extractors (html_main_text, html_metadata, html_tables, etc.). 'FREE during validation' and 'No key, credits, wallet or preparation needed' are pricing/auth notes, not usage direction, and 'Supply your task in input' is too generic to guide selection.

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

html_imagesB
Read-only
Inspect

Extract up to 200 image URLs, alt text and source attributes; does not fetch images. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
totalYes
imagesYes
truncatedYes

TDQS

B3.1/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, closed-world), so the description only needs to add behavior beyond that — and it does: a hard 200-result cap, an explicit non-fetch guarantee, and a no-key/no-credits/no-wallet auth posture. 'Existing source and input limits apply' is vague and hints at throttling without quantifying it.

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

Conciseness3/5

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

The extraction capability is front-loaded and the 'does not fetch images' caveat is well placed. But 'Supply your task in input' is meaningless filler and the 'FREE during validation / No key, credits, wallet...' run reads as marketing padding that dilutes the technical content.

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?

An output schema exists, so return-value detail is rightly omitted, and the result cap is disclosed. However, with a nested required input object at 0% schema coverage, the description leaves the agent without any explanation of the html/baseUrl contract or what 'source and input limits' actually constrain.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter is a nested required object with 'html' and 'baseUrl' that carry no documentation anywhere. 'Supply your task in input' adds no meaning about what 'input' must contain or what baseUrl does for relative URL resolution, so the description fails to compensate for the coverage gap.

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 ('Extract ... image URLs, alt text and source attributes') and pins the scope with 'up to 200' plus the negative 'does not fetch images', which separates it from fetch-oriented siblings like web_readable_fetch. It never names an alternative from the html_* family, so it stops short of full sibling differentiation.

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

Usage Guidelines2/5

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

'Supply your task in input' is the only usage instruction and it says nothing about when this tool is preferable to html_links, html_jsonld, or web_readable_fetch. There are no stated prerequisites, exclusions, or alternative-selection rules.

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

html_jsonldC
Read-only
Inspect

Parse up to 50 JSON-LD blocks from supplied HTML. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
itemsYes
invalidBlocksYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the 50-block cap and the no-key/no-credits condition, which is useful, but 'Existing source and input limits apply' is unquantified boilerplate rather than real behavioral disclosure.

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

Conciseness3/5

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

The core purpose is correctly front-loaded in the first sentence, but the next two sentences are repetitive marketing filler ('FREE during validation. No key, credits, wallet or preparation needed') that consume space without adding actionable information.

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?

An output schema exists, so return values need not be explained. However, for a nested-object input with 0% schema description coverage, the missing explanation of the html parameter and the vague 'limits apply' clause leave gaps an agent must guess at.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter is a nested object (input.html, maxLength 100000). The description's only parameter guidance, 'Supply your task in input,' does not match the schema, which requires input.html as a string, and no hint about the HTML string or its size cap is given beyond the vague limits note.

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 (Parse) and resource (JSON-LD blocks from HTML) with a concrete limit of 50 blocks, which clearly separates it from siblings like html_metadata or html_headings. It does not explicitly name a sibling alternative, so it falls short of the 5 tier.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives among the many html_* and web_* siblings are named. The 'FREE during validation' remark hints at a trial context but gives no routing instruction for the agent.

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

html_main_textC
Read-only
Inspect

Extract article text from supplied HTML. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
textYes
titleYes
methodYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine non-schema context (no key, credits, or wallet required; limits apply), which is useful for an agent deciding whether it can call this at all, but it never explains what happens on non-article pages or what the limits actually are.

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 first sentence is well front-loaded and does the real work. The remaining three sentences are largely promotional or vague ('FREE during validation', 'No key, credits, wallet or preparation needed'), and 'Supply your task in input' is filler that creates ambiguity.

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?

An output schema exists, so return-format explanation is not required, and the operation is simple. Still missing is the definition of 'article text' (readability-style main content?), behavior on pages without an article body, and what the referenced input limits concretely are.

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

Parameters2/5

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

The nested object has a single html property at 0% schema description coverage, so the description must carry the load. It says 'supplied HTML' (helpful) but then adds the confusing instruction 'Supply your task in input,' which misleadingly suggests a task string rather than raw HTML, adding noise instead of semantics.

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

Purpose4/5

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

States a specific verb and resource ('Extract article text from supplied HTML'), which distinguishes it from siblings like html_links, html_tables, or html_headings that parse the same input for other artifacts. It does not name a sibling explicitly, but the resource is specific enough to route correctly.

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

Usage Guidelines2/5

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

No guidance on when to choose this over html_readable/readability-style siblings, no description of prerequisites, and no exclusions. The line 'Existing source and input limits apply' gestures at constraints without ever stating them.

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

html_metadataB
Read-only
Inspect

Extract title, description, canonical URL, language and social metadata from supplied HTML. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
titleYes
robotsYes
socialYes
languageYes
descriptionYes
canonicalUrlYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false. The description adds genuinely useful context beyond them: no API key or credits are required, and there are input size limits. It omits, however, what happens to malformed or partially valid HTML and why idempotentHint=false despite a pure extraction.

Agents need to know what a tool does to the world before 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 kept to four short sentences. The pricing sentences earn partial place given the 'no key needed' clarification, but 'Existing source and input limits apply' is filler-level vagueness that could have named the actual limit.

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?

An output schema exists, so return values need not be explained, and the nested input object is simple. Still, for a zero-coverage schema with a nested object the description leaves the baseUrl contract and the size-limit boundary unstated, which is the difference between a viable and a complete definition.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does not. The optional baseUrl parameter is never mentioned, yet it is clearly what resolves relative canonical/social URLs, and the html 100000-char limit is only implied by the vague 'input limits apply'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Extract) and resource (HTML), then enumerates the exact fields returned: title, description, canonical URL, language and social metadata. That enumeration distinguishes it from siblings like html_jsonld, html_headings, html_links and html_main_text without needing their schemas.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no condition selecting this tool over html_jsonld or html_feeds, and no exclusions. The only quasi-guidance is pricing/access ('FREE during validation. No key, credits, wallet or preparation needed'), which tells the agent nothing about choosing this tool over an alternative.

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

html_tablesB
Read-only
Inspect

Extract source table cells without expanding spans. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
tablesYes
spanPolicyYes

TDQS

B3.1/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, closed-world), so the bar is lower. The description adds real behavior beyond them: spans are not expanded, no key/credits/wallet are required, and source/input limits apply. The limits reference is vague but the span-handling and auth-free notes are genuinely useful.

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

Conciseness3/5

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

Short and front-loaded with the purpose, which is good. But two of the sentences ('FREE during validation', 'No key, credits, wallet or preparation needed') are near-duplicative commercial filler that dilute the operational content.

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?

An output schema exists, so return values need not be described, and the tool is structurally simple (one nested input). However, the meaning of the input parameter is left unclear, which is a real gap for a 0%-coverage schema.

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

Parameters2/5

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

Schema description coverage is 0% and the single nested parameter (input.html) is not explained. Worse, the description calls it 'Supply your task in input', which is misleading for what is actually HTML source content, so it fails to compensate for the coverage gap and may confuse the agent.

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: 'Extract source table cells', placing it clearly within the html_* extraction family. It does not name or contrast any sibling tool (e.g. html_main_text, html_links), so differentiation is by subject matter alone rather than explicit routing.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no named alternative. 'Supply your task in input' is a delivery instruction rather than usage context, and the pricing note ('FREE during validation') is commercial, not operational, guidance.

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

security_csp_auditC
Read-only
Inspect

Parse a supplied Content Security Policy and flag selected risky or missing directives. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
findingsYes
directivesYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered without description help. The description adds practical context ('Existing source and input limits apply', no key/credits needed) but does not augment the annotations with anything about the analysis itself.

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

Conciseness3/5

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

The purpose is front-loaded and clear, but two of five sentences are promotional/pricing boilerplate ('FREE during validation', 'No key, credits, wallet or preparation needed') that does not help an agent invoke the tool correctly, and the closing line is filler.

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?

With an output schema present, return-value explanation is not required, and annotations cover the safety profile. However, for a nested-object input with zero schema coverage the description leaves the one parameter essentially undefined, which is the remaining gap.

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

Parameters2/5

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

Schema description coverage is 0% and the schema has a nested object with a maxLength-16000 'policy' string that is undocumented. The description's only hint, 'Supply your task in input', is generic and mildly misleading since the field is a raw CSP policy, not a task, and it says nothing about the size limit or nesting.

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 first sentence states a specific verb (parse, flag) and resource (Content Security Policy) plus the output intent (risky or missing directives), which an agent can distinguish from generic header or cookie audits. It falls short of naming the sibling it complements (security_header_audit), which would have made the boundary explicit.

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

Usage Guidelines2/5

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

There is no when-to-use guidance or comparison to the adjacent security_* auditors; the only routing instruction is the generic 'Supply your task in input.' Nothing tells the agent when a CSP audit is the right choice versus security_header_audit or security_cookie_audit.

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

security_header_auditB
Read-only
Inspect

Review supplied response headers for selected security and CORS issues without echoing values. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
findingsYes
headerNamesYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and closed-world behavior, so the safety profile is covered. The description adds meaningful extra context: it will not echo header values (a privacy guarantee), it is free with no key/credits/wallet, and existing source/input limits apply. The unstated part is what limits actually are and what the audit report contains.

Agents need to know what a tool does to the world before 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 sentence and the remaining sentences are short. The pricing/access sentences ("FREE during validation. No key, credits, wallet...") are somewhat promotional filler but do convey access constraints, so the text largely earns its place.

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?

An output schema exists, so return format need not be explained. However, for a security audit tool with a nested, undocumented input object, the description omits which headers/checks are evaluated and how the header map should be keyed, leaving a real gap given 0% schema coverage.

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

Parameters2/5

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

Schema description coverage is 0% and the single required parameter is a nested object with a headers map, yet the description only says "supply your task in input." It never explains that input.headers is a name-to-value map of response headers, so the most important semantic detail is left only to the schema shape.

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: reviewing supplied response headers for security and CORS issues. The resource (response headers) is distinguishable from sibling audits like security_cookie_audit and security_csp_audit, though the description never names them to sharpen the boundary. "Selected security and CORS issues" is slightly vague about which checks run.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance, and no routing to alternatives such as security_csp_audit or security_cookie_audit for narrower scopes. "Supply your task in input" tells the agent how to call it but not when this tool is the right choice.

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

security_jwt_inspectA
Read-only
Inspect

Decode untrusted JWT claims and optionally compare timestamps; never verifies a signature. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
claimsYes
headerYes
expiredYes
warningsYes
notYetValidYes
signatureVerifiedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly and non-destructive. The description adds genuinely useful behavioral context beyond them: it never verifies the signature, is free during validation, requires no key/credits, and notes that source/input limits apply. However, it doesn't say whether the comparison result is returned or how timestamps are interpreted.

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, which is good, but the definition burns two sentences on pricing/marketing ('FREE during validation', 'No key, credits, wallet or preparation needed') and includes the awkward 'Supply your task in input'. Some fat could be trimmed.

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?

An output schema exists, so return values needn't be explained. Still, for a tool with a nested required object at 0% schema coverage, the description under-documents token format and the atUnixSeconds comparison semantics, leaving the agent to guess how to populate the request.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the burden, and it largely fails to. It hints at 'claims' (token) and 'compare timestamps' (atUnixSeconds), but 'Supply your task in input' is confusing and misdescribes an input object that actually requires a token. Little usable parameter guidance is added.

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

Purpose5/5

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

The description states a specific verb and resource ('Decode untrusted JWT claims') and immediately scopes it with a critical caveat ('never verifies a signature'). No sibling tool operates on JWTs, so it is unmistakably distinct from the security_* audit/scan/redact family.

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?

Usage is implied by the 'untrusted' framing (decode claims you don't fully trust), but there is no explicit when-to-use/when-not statement and no alternatives are named. Adequate but leaves the agent to infer context.

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

security_secret_redactB
Read-only
Inspect

Replace detected credential patterns with redaction markers. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
textYes
caveatYes
findingsYes
limitReachedYes
rulesVersionYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that source and input limits apply, which is useful context, but does not explain what patterns are matched, whether the original text is returned unmodified alongside output, or the size of the limit referenced.

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

Conciseness3/5

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

The purpose is correctly front-loaded in one tight sentence, but the promotional 'FREE during validation. No key, credits, wallet or preparation needed.' consumes half the text without helping an agent invoke the tool, and 'Supply your task in input' is vague filler.

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?

An output schema exists so return values need not be described, and annotations cover the safety profile. Still missing for a redaction tool: what counts as a credential pattern, whether output preserves surrounding text, and the concrete meaning of 'existing source and input limits'.

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 0% schema description coverage the description must carry the load, but 'Supply your task in input' only restates the top-level parameter name and says nothing about the required nested 'input.text' string or its 100000-char cap. Marginal compensation for the coverage gap.

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: 'Replace detected credential patterns with redaction markers'. An agent can distinguish this from the sibling security_secret_scan, though the description never names that sibling or explicitly frames redaction as the post-scan step.

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

Usage Guidelines2/5

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

The only 'when' content is pricing/onboarding (FREE during validation, no key/credits/wallet). There is no guidance on when to use this versus security_secret_scan, or whether scanning should precede redaction. Usage must be inferred entirely from the name.

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

security_secret_scanB
Read-only
Inspect

Detect five families of credential patterns with fully masked findings. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
caveatYes
findingsYes
limitReachedYes
rulesVersionYes

TDQS

B3/5.0
Behavior4/5

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

Annotations already establish readOnly=true and destructive=false, so the safety profile is covered. The description adds meaningful behavior beyond that: findings are 'fully masked' (results will not leak the secrets), it is free during validation, and no key/credits/wallet are required. It stops short of describing limits (only 'Existing source and input limits apply' vaguely).

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

Conciseness3/5

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

Purpose is front-loaded in the first sentence, but the following three sentences ('FREE during validation. No key, credits, wallet or preparation needed. Existing source and input limits apply.') are largely commercial boilerplate that dilutes the actionable content. It is not bloated to the point of harm, but not tight either.

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

Completeness2/5

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

An output schema exists, so return-format detail is not required, but the description never clarifies what the five credential families are or what 'input' should contain — the only real input gap for an agent to call it correctly. For a single-purpose scanner this is a notable omission.

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

Parameters2/5

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

Schema description coverage is 0% for the single nested parameter, so the description must carry the burden. 'Supply your task in input' adds almost nothing and is arguably misleading, since the schema expects a 'text' string field (maxLength 100000) rather than a 'task'. The agent gets no clarity on what text to supply.

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: 'Detect five families of credential patterns with fully masked findings.' That is concrete enough to know this is a secret/credential scanner. It never names or distinguishes itself from the sibling security_secret_redact, so the sibling differentiation required for a 5 is absent.

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

Usage Guidelines2/5

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

There is no when-to-use guidance: nothing says when to scan versus redact, nor what input context is appropriate. The sentences about being 'FREE during validation' and needing 'No key, credits, wallet or preparation' describe pricing/access, not usage selection. The agent is left to infer the sibling routing.

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

text_chunkB
Read-only
Inspect

Split text into at most 200 overlapping chunks with offsets and intact UTF-16 surrogate pairs. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
countYes
chunksYes
offsetUnitYes

TDQS

B3/5.0
Behavior4/5

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

Annotations already cover readOnly/non-destructive, but the description adds genuinely new traits: a hard cap of 200 chunks, offset emission, surrogate-pair safety, and a free/no-credential operating mode during validation. 'Existing source and input limits apply' hints at constraints, though the actual limits are left unspecified.

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 capability is front-loaded correctly and the sentences are short. But the framing sentences are boilerplate ('FREE during validation', 'Supply your task in input') that spend words without informing the call, so efficiency is only middling.

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

Completeness2/5

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

An output schema exists, so return values need not be explained. Yet for a tool with a nested input object and 0% schema description coverage, the description leaves overlap and maxChars entirely undefined and includes a misleading 'task' instruction, so an agent cannot reliably construct a call beyond the minimal required text field.

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

Parameters2/5

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

Schema description coverage is 0% across three nested properties (text, overlap, maxChars), so the description must carry the load. It gestures at overlap ('overlapping chunks') but never explains the overlap or maxChars parameters, their units, defaults, or acceptable ranges, and 'Supply your task in input' actively misdescribes the input shape.

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 ('Split text into at most 200 overlapping chunks with offsets and intact UTF-16 surrogate pairs'), with concrete behavioral detail. No sibling tool performs text chunking, so differentiation is inherent, but the stray line 'Supply your task in input' muddies what the tool actually consumes.

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

Usage Guidelines2/5

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

'FREE during validation. No key, credits, wallet or preparation needed' gives cost/prerequisite context, which is useful. However, there is no when-to-use statement, no trigger condition, and no reference to any alternative tool; the agent gets no guidance on when chunking is the right move.

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

web_page_deltaB
Read-only
Inspect

Return added and removed content blocks from supplied before/after HTML; avoid rereading unchanged text. Explicit shared output budget and scope. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
addedYes
scopeYes
changedYes
removedYes
sourceUrlYes
truncatedYes
titleAfterYes
addedBlocksYes
measurementYes
titleBeforeYes
removedBlocksYes
reorderedOnlyYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds pricing ('FREE during validation') and auth ('No key, credits, wallet') context that is useful, but does not explain the explicit shared output budget or the effect of maxChars beyond what the fragment already hints at.

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

Conciseness3/5

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

The description is short but fragments into disconnected facts ('Explicit shared output budget and scope', 'Supply your task in input') that read like marketing copy rather than a coherent front-loaded statement. Some sentences do not earn their place.

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?

With an output schema present, return-value explanation is not required, so the description need not describe output. However, for a nested-input diff tool with 0% schema coverage, the description omits important parameter guidance and only partially covers behavioral aspects like budget and scope.

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 0% for a nested object with four fields, so the description should compensate. It only repeatedly references 'input' without documenting beforeHtml, afterHtml, maxChars, or sourceUrl, leaving the schema to carry the field semantics. Baseline for poor coverage with some implicit context is 3.

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

Purpose4/5

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

States a specific verb ('return added and removed content blocks') and resource ('before/after HTML'), which is clear. It does not name or distinguish itself from siblings like page_delta_preview or commerce_feed_page_compare, so it lacks explicit sibling differentiation.

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?

'Avoid rereading unchanged text' implies when to use the tool (comparing page versions to save tokens), but there are no explicit when-not-to-use conditions or named alternatives. Usage 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.

web_page_packB
Read-only
Inspect

Pack supplied HTML into bounded readable blocks with source, truncation and size estimates. No model, fetching or guaranteed token savings. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
titleYes
contentYes
selectionYes
sourceUrlYes
truncatedYes
measurementYes
contentCharsYes
omittedCharsYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds context beyond them: no model invocation, no fetching, no guaranteed token savings, and no key/credits/wallet required during validation — useful operational detail about cost and prerequisites.

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

Conciseness3/5

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

The purpose is front-loaded in the first sentence, which is good. But the trailing sentences ('FREE during validation. No key, credits, wallet or preparation needed.') are billing/marketing filler that does not help an agent select or invoke the tool, and 'Supply your task in input' is confusing rather than informative.

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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. The remaining gap is parameter documentation: with 0% schema coverage and a nested input object, an agent gets no guidance on the html payload, maxChars bounds, or sourceUrl from either the schema or the description.

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

Parameters2/5

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

Schema description coverage is 0% and the input is a nested object with html, maxChars and sourceUrl, none of which the description documents. Worse, 'Supply your task in input' conflicts with the schema, which requires input.html to be an HTML string, potentially misleading the agent about what to pass.

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: 'Pack supplied HTML into bounded readable blocks with source, truncation and size estimates.' The phrase 'supplied HTML' plus 'No model, fetching' implicitly distinguishes it from the fetch variant, web_page_pack_fetch, though that sibling is never 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 Guidelines3/5

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

'No model, fetching' implies the tool is for HTML you already hold rather than fetched pages, which points an agent toward web_page_pack_fetch when retrieval is needed. However, no alternative is named and no explicit when/when-not guidance is given, leaving selection to inference.

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

web_page_pack_fetchB
Read-only
Inspect

Retrieve and compact a permitted public docs.python.org HTML page. Curated HTTPS host only; robots and redirect checks; no browser rendering or bypass. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
titleYes
contentYes
selectionYes
sourceUrlYes
truncatedYes
httpStatusYes
measurementYes
retrievedAtYes
contentCharsYes
omittedCharsYes
retrievalScopeYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive, open-world behavior, and the description adds real context beyond them: robots checks, redirect checks, no browser rendering or bypass, curated host allowlist, and that it is FREE with no key/credits/wallet needed. That is a meaningful behavioral layer an agent could not derive from 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.

Conciseness3/5

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

The core action is front-loaded in the first sentence and the policy notes are compact, but 'Supply your task in input' is filler that adds neither clarity nor correct semantics, and the clipped fragment style ('FREE during validation') reads more like marketing than specification.

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?

An output schema exists, so return values need not be explained, and the safety profile is covered by annotations. However, with 0% schema description coverage on a nested 2-field parameter object, the input contract (url requirements, maxChars semantics and default) is left undocumented in both structured fields and prose.

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

Parameters2/5

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

Schema coverage is 0% and the nested input object has two fields (url, maxChars) with no descriptions. The description says only 'Supply your task in input' and 'Existing source and input limits apply', which is both vague and partially misleading — input requires a url and supports maxChars (256-12000, default 6000), none of which is clarified. It fails to compensate for the coverage gap.

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 pair ('Retrieve and compact') and a scoped resource ('permitted public docs.python.org HTML page'), so the host restriction makes it more identifiable than a generic fetcher. It does not, however, name or distinguish itself from close siblings like web_page_pack or web_readable_fetch, so the agent cannot fully disambiguate from the description alone.

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

Usage Guidelines3/5

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

The 'Curated HTTPS host only' clause implies a use condition (docs.python.org pages with robots/redirect compliance), but no explicit when-to-use vs. when-not-to-use and no named alternative (web_page_pack, web_page_delta, web_readable_fetch). Usage is inferable rather than stated.

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

web_readable_fetchB
Read-only
Inspect

Fetch readable text from an approved public HTTPS host. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
urlYes
textYes
titleYes
methodYes
statusYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld and non-destructive, so the bar is lower, yet the description still adds real behavioral context: the host must be approved and public HTTPS, it is free during validation, no key/credits/wallet are needed, and source/input limits apply. It stops short of defining what 'approved' means or what those limits are.

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

Conciseness4/5

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

Purpose is front-loaded and sentences are short. 'FREE during validation' and 'No key, credits, wallet or preparation needed' are near-duplicates about billing, adding slight redundancy without harming readability.

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?

An output schema exists so return values need not be described, and the host constraint plus stated limits are useful. But the sole parameter is unexplained and 'approved public HTTPS host' is left undefined, so the definition is only barely sufficient for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% for the single nested 'input.url' parameter, so the description must compensate — and it does not. 'Supply your task in input' never explains that input.url is the HTTPS URL to fetch, nor mentions the 2048-char cap or required shape.

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 ('fetch readable text') plus a scope constraint ('approved public HTTPS host'), which is more than a tautology. However, it never differentiates itself from close siblings like html_main_text or web_page_pack_fetch, leaving the agent to guess which extractor to pick.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no alternative named. 'Supply your task in input' is not usage guidance; the agent gets no help choosing this over the many sibling fetch/extract tools.

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

web_redirect_traceC
Read-only
Inspect

Trace up to four redirects across approved public HTTPS hosts. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
urlYes
statusYes
redirectsYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnly=true, openWorld=true, idempotent=false, destructive=false. The description adds the redirect cap (four) and host restriction (approved public HTTPS), which is useful beyond annotations. However, it doesn't explain behavior when the cap is exceeded, rate limits, or what 'approved' means operationally.

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

Conciseness2/5

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

Uses four short sentences but wastes space on promotional claims ('FREE during validation', 'No key, credits, wallet or preparation needed') rather than technical behavior. Key constraints are present but buried among marketing copy.

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 covers the redirect limit and host restriction, but with a nested-object parameter at 0% coverage, an output schema (which reduces return-value burden), and no annotation-contradiction, more could be added about the URL input and redirect-failure behavior. Just adequate.

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 0%, so the description must compensate. It mentions supplying 'task in input' and a nested 'url' field, which maps loosely to the schema, but doesn't clarify URL formatting, max length handling, or what 'approved hosts' means for the url parameter.

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 (trace redirects across public HTTPS hosts) with a clear quantitative scope (up to four redirects). Distinguishes itself from siblings like web_readable_fetch by emphasizing redirect tracing. The phrase 'approved public HTTPS hosts' adds a meaningful constraint.

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

Usage Guidelines2/5

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

Offers no when-to-use guidance or explicit alternatives (e.g., web_readable_fetch for content retrieval). 'FREE during validation' is a promotional note rather than a usage condition. An agent must infer context from the description alone.

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

web_robots_evaluateA
Read-only
Inspect

Evaluate supplied robots.txt for a URL and user agent; no network fetch. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
scopeYes
allowedYes
sitemapsYes
crawlDelayYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, non-destructive, non-open-world), and the description usefully adds that there is no network fetch (consistent with openWorldHint=false), that it is free during validation, and that no key/credits/wallet are needed — real operational context. It does not explain what the evaluation returns or how limits are enforced, so it is not a 5.

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

Conciseness3/5

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

It is short and front-loads the core operation, but several sentences are marketing/policy filler ('FREE during validation', 'No key, credits, wallet or preparation needed') and 'Supply your task in input' is redundant with the schema. Every sentence should earn its place; a few here do not.

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?

An output schema exists so return values need no explanation, and annotations carry the safety profile. However, the nested required input object has zero documented fields in either schema or description, and the 'existing source and input limits apply' clause is left unexplained, leaving a real gap for a nested-parameter tool.

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

Parameters3/5

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

Schema description coverage is 0% and the single parameter is a nested object (url, robots, userAgent) with no per-field documentation. The description partially compensates by naming 'supplied robots.txt', 'URL' and 'user agent', but 'Supply your task in input' is vague and does not clarify the nested structure or field constraints.

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: 'Evaluate supplied robots.txt for a URL and user agent', with the key scope qualifier 'no network fetch' that separates it from the many web_* fetch/read siblings. It does not name a specific alternative tool, so it falls short of the 5 bar, but an agent can tell what operation this is.

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?

Usage is implied rather than stated: the 'supplied robots.txt' / 'no network fetch' phrasing tells the agent this is for content it already has, not for fetching. There is no explicit when-to-use, when-not-to-use, or named alternative among the sibling tools, so the guidance remains inferential.

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

web_thread_packB
Read-only
Inspect

Format supplied Reddit comments JSON into a bounded post and reply tree with original Markdown, authors and direct links. No fetch or generated consensus. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
postYes
scopeYes
titleYes
sourceYes
commentsYes
truncatedYes
measurementYes
moreChildrenYes
omittedCommentsYes
bodyOmittedCharsYes
availableCommentsYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that — 'No fetch or generated consensus' (it will not synthesize), 'bounded', and 'No key, credits, wallet or preparation needed' — but says little about the 'Existing source and input limits' it vaguely references.

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 the text is fragmented into choppy sentences and padded with promotional framing ('FREE during validation') and the redundant 'Supply your task in input', which do little to help invocation.

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?

An output schema exists, so return values need no explanation, and the description covers the general data contract. However, the non-obvious input structure — a required nested object whose thread must contain exactly two items — is left entirely to the schema with no explanatory help, which is the main completeness gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden, yet it only vaguely refers to 'bounded' (hinting at maxChars/maxComments) and 'input'. It never explains sourceUrl, the thread array's exact-two-item constraint, maxComments default of 30, or the 12000-char ceiling, leaving significant constraints undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Format) and resource (supplied Reddit comments JSON) with the exact output (a bounded post and reply tree with Markdown, authors, and direct links). The clause 'No fetch' differentiates it from sibling fetch tools like web_readable_fetch and web_page_pack without needing the schemas.

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?

'No fetch' implies the caller must supply the data rather than retrieve it, which is useful context. However, there is no explicit when-to-use vs alternatives routing, and 'Supply your task in input' does not clarify the conditions or prerequisites for choosing this tool over a preview or fetch sibling.

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

web_wikipedia_packA
Read-only
Inspect

Pack supplied Wikipedia article HTML with sections, source links, attribution and a bounded text budget. No fetching or generated summary. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
linksYes
scopeYes
titleYes
sourceYes
contentYes
sectionsYes
selectionYes
truncatedYes
measurementYes
omittedCharsYes
linksTruncatedYes
outlineTruncatedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, closed-world behavior, so the bar is lower. The description still adds meaningful context beyond them: no network fetching, no generated summary, free/no-key/no-credits during validation, and that source and input limits apply. The only weakness is that 'bounded text budget' and 'limits apply' are left vague.

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 well, but two of the five sentences are promotional/pricing filler ('FREE during validation', 'No key, credits, wallet or preparation needed') and 'Existing source and input limits apply' is vague padding. The description is short overall but not every sentence earns its place.

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

Completeness4/5

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

An output schema exists, so return values needn't be documented, and annotations cover the safety profile. The description supplies the key behavioral facts (no fetch, no summary, constraint on text size). The main residual gap is the ambiguous 'Supply your task in input' instruction for a nested object with 0% schema description 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 0%, so the description carries the full burden. It gestures at the parameters conceptually ('Wikipedia article HTML' for html, 'sections' for section, 'bounded text budget' for maxChars, 'source links' for sourceUrl), but gives no syntax, default, or bounds information. 'Supply your task in input' is actively confusing since input is an html/sourceUrl object, not a task.

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 (pack) and resource (supplied Wikipedia article HTML) and enumerates what the pack contains: sections, source links, attribution, bounded text. The explicit 'No fetching or generated summary' distinguishes it from sibling fetchers like web_wikipedia_read. It doesn't directly name the sibling pack_preview or web_page_pack, so sibling 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 Guidelines3/5

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

'No fetching or generated summary' implies the caller must already hold the HTML, which channels usage toward a fetch-then-pack flow, and 'FREE during validation' hints at availability constraints. But no alternative tool is named for the fetch step and there is no explicit when-to-use statement. Usage 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.

web_wikipedia_readB
Read-only
Inspect

Read a public Wikipedia article through the official API with revision, license, sections and a text budget. Ten supported editions; inspect omissions. FREE during validation. No key, credits, wallet or preparation needed. Supply your task in input. Existing source and input limits apply.

NameRequiredDescriptionDefault
inputYes

Output Schema

NameRequiredDescription
linksYes
scopeYes
titleYes
sourceYes
contentYes
sectionsYes
selectionYes
truncatedYes
measurementYes
retrievedAtYes
omittedCharsYes
linksTruncatedYes
retrievalScopeYes
outlineTruncatedYes

TDQS

B3.1/5.0
Behavior4/5

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

The annotations already cover the safety profile (readOnly=true, destructive=false, openWorld=true), so the description earns credit for the extra context it adds: no key/credits/wallet required, free during validation, content limited by a text budget, and returned material including revision and license. These are operational traits the annotations do not express.

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

Conciseness3/5

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

Purpose is front-loaded in the first sentence, but the remainder is a choppy run of fragments ('FREE during validation.', 'No key, credits, wallet or preparation needed.', 'Existing source and input limits apply.') with promotional phrasing and a vague trailing limit statement that adds little actionable value.

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?

An output schema exists so return format need not be restated, and the description covers the API source, credential-free access, and budget. However, for a tool with a nested input and 0% schema coverage, it omits url format, section selector syntax, and edition selection, leaving real gaps an agent would need.

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

Parameters2/5

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

Schema description coverage is 0% for a one-param nested object with three sub-fields, so the description carries the full burden. It loosely maps 'sections' to the section param and 'text budget' to maxChars, but the required url field is never explained and 'Supply your task in input' is misleading since input requires a URL, not a task.

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 first sentence gives a specific verb (Read), resource (public Wikipedia article), and channel (official API), plus scope details ('Ten supported editions'). It is clearly a single-article read, but it never contrasts itself with its close siblings like web_wikipedia_pack or web_wikipedia_popular, so the agent must infer the distinction from the name alone.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance and no naming of alternatives such as web_wikipedia_pack for multi-article needs. 'FREE during validation' and 'Existing source and input limits apply' gesture at prerequisites but describe billing/limits rather than tool selection, and 'inspect omissions' is too vague to route the agent.

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. 47 tool updates
    • Changedagents_config_audit2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedagents_env_template_check2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedagents_tool_name_conflicts2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_feed_page_compare2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_gtin_validate2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_main_product2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_money_parse2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_offer_extract2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_pack_plan2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_pack_size_normalize2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_price_components2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_unit_price2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcommerce_variant_compare2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcontracts_jsonschema_validate2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcontracts_openapi_diff2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedcontracts_openapi_lint2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changeddata_json_canonical2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changeddata_json_diff2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changeddata_json_patch2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changeddata_json_pointer2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_feeds2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_forms2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_headings2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_images2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_jsonld2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_links2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_main_text2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_metadata2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedhtml_tables2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedsecurity_cookie_audit2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedsecurity_csp_audit2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedsecurity_header_audit2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedsecurity_jwt_inspect2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedsecurity_secret_redact2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedsecurity_secret_scan2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedtext_chunk2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_link_shortlist2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_page_delta2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_page_pack2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_page_pack_fetch2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_readable_fetch2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_redirect_trace2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_robots_evaluate2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_thread_pack2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_wikipedia_pack2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_wikipedia_popular2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
    • Changedweb_wikipedia_read2 fields changed
      • removedInput schema / properties / maxPriceMicroUsd
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "Optional legacy field; ignored in free mode.",
        -  "type": "string"
        -}
  2. 1 tool update
    • Changedagent_utilities_seo_audit2 fields changed
      • addedInput schema / properties / coverage / properties / refreshRequestedUrls
        Added value: +{
        +  "maximum": 20,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / coverage / properties / sitemapDiscovery
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "discoveredPageUrls": {
        +      "maximum": 200,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "excludedEntries": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "limited": {
        +      "type": "boolean"
        +    },
        +    "pendingSitemaps": {
        +      "maximum": 200,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "sitemapsAttempted": {
        +      "maximum": 5,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "sitemapsBlocked": {
        +      "maximum": 200,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "sitemapsEnabled": {
        +      "type": "boolean"
        +    },
        +    "sitemapsFailed": {
        +      "maximum": 5,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "sitemapsRead": {
        +      "maximum": 5,
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [],
        +  "type": "object"
        +}
  3. 1 tool update
    • Changedagent_utilities_seo_audit1 field changed
      • addedInput schema / properties / capturedAt
        Added value: +{
        +  "maxLength": 100,
        +  "type": "string"
        +}
  4. 47 tool updates
    • Changedagents_config_audit5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedagents_env_template_check5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedagents_tool_name_conflicts5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_feed_page_compare5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_gtin_validate5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_main_product5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_money_parse5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_offer_extract5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_pack_plan5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_pack_size_normalize5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_price_components5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_unit_price5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcommerce_variant_compare5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcontracts_jsonschema_validate5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcontracts_openapi_diff5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedcontracts_openapi_lint5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changeddata_json_canonical5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changeddata_json_diff5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changeddata_json_patch5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changeddata_json_pointer5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_feeds5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_forms5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_headings5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_images5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_jsonld5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_links5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_main_text5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_metadata5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedhtml_tables5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedsecurity_cookie_audit5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedsecurity_csp_audit5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedsecurity_header_audit5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedsecurity_jwt_inspect5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedsecurity_secret_redact5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedsecurity_secret_scan5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedtext_chunk5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_link_shortlist5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_page_delta5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_page_pack5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_page_pack_fetch5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_readable_fetch5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_redirect_trace5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_robots_evaluate5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_thread_pack5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_wikipedia_pack5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_wikipedia_popular5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
    • Changedweb_wikipedia_read5 fields changed
      • changedInput schema / properties / maxPriceMicroUsd / description
        Previous value: -"Explicit maximum new debit; 0 means recovery only."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / maxPriceMicroUsd / maximum
        Removed value: -999999999999
      • changedInput schema / properties / requestId / description
        Previous value: -"Persist the ID returned by agent_utilities_prepare. Reuse after uncertainty."New value: +"Optional legacy field; ignored in free mode."
      • removedInput schema / properties / requestId / pattern
        Removed value: -"^\\d{13}_[A-Za-z0-9_-]{16,80}$"
      • changedInput schema / required
        Previous value: -[
        -  "input",
        -  "requestId",
        -  "maxPriceMicroUsd"
        -]New value: +[
        +  "input"
        +]
  5. 5 tool updates
    • Changedagent_utilities_prepare1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_readable_fetch",
        -  "web_redirect_trace",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "web_page_pack",
        -  "web_link_shortlist",
        -  "web_page_delta",
        -  "web_page_pack_fetch",
        -  "web_wikipedia_pack",
        -  "web_thread_pack",
        -  "web_wikipedia_read",
        -  "web_wikipedia_popular",
        -  "web_reddit_thread",
        -  "web_reddit_popular",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components",
        -  "commerce_main_product",
        -  "commerce_pack_size_normalize",
        -  "commerce_feed_page_compare"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_readable_fetch",
        +  "web_redirect_trace",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "web_page_pack",
        +  "web_link_shortlist",
        +  "web_page_delta",
        +  "web_page_pack_fetch",
        +  "web_wikipedia_pack",
        +  "web_thread_pack",
        +  "web_wikipedia_read",
        +  "web_wikipedia_popular",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Removedagent_utilities_reddit_popular_trial
    • Removedagent_utilities_reddit_thread_trial
    • Removedweb_reddit_popular
    • Removedweb_reddit_thread
  6. 1 tool update
    • Addedagent_utilities_seo_audit
  7. 1 tool update
    • Changedweb_wikipedia_popular2 fields changed
      • addedOutput schema / properties / namespaceFilter
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "mainPage": {
        +      "type": "string"
        +    },
        +    "retrievedAt": {
        +      "type": "string"
        +    },
        +    "sourceUrl": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "sourceUrl",
        +    "retrievedAt",
        +    "mainPage"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "sourceUrl",
        -  "date",
        -  "language",
        -  "retrievedAt",
        -  "ranking",
        -  "entries",
        -  "availableEntries"
        -]New value: +[
        +  "sourceUrl",
        +  "date",
        +  "language",
        +  "retrievedAt",
        +  "namespaceFilter",
        +  "ranking",
        +  "entries",
        +  "availableEntries"
        +]
  8. 14 tool updates
    • Changedagent_utilities_example1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "web_page_pack",
        -  "web_link_shortlist",
        -  "web_page_delta",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components",
        -  "commerce_main_product",
        -  "commerce_pack_size_normalize",
        -  "commerce_feed_page_compare"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "web_page_pack",
        +  "web_link_shortlist",
        +  "web_page_delta",
        +  "web_wikipedia_pack",
        +  "web_thread_pack",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Changedagent_utilities_prepare1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_readable_fetch",
        -  "web_redirect_trace",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "web_page_pack",
        -  "web_link_shortlist",
        -  "web_page_delta",
        -  "web_page_pack_fetch",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components",
        -  "commerce_main_product",
        -  "commerce_pack_size_normalize",
        -  "commerce_feed_page_compare"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_readable_fetch",
        +  "web_redirect_trace",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "web_page_pack",
        +  "web_link_shortlist",
        +  "web_page_delta",
        +  "web_page_pack_fetch",
        +  "web_wikipedia_pack",
        +  "web_thread_pack",
        +  "web_wikipedia_read",
        +  "web_wikipedia_popular",
        +  "web_reddit_thread",
        +  "web_reddit_popular",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Addedagent_utilities_reddit_popular_trial
    • Addedagent_utilities_reddit_thread_trial
    • Addedagent_utilities_thread_pack_preview
    • Addedagent_utilities_wikipedia_pack_preview
    • Addedagent_utilities_wikipedia_popular_trial
    • Addedagent_utilities_wikipedia_read_trial
    • Addedweb_reddit_popular
    • Addedweb_reddit_thread
    • Addedweb_thread_pack
    • Addedweb_wikipedia_pack
    • Addedweb_wikipedia_popular
    • Addedweb_wikipedia_read
  9. 11 tool updates
    • Changedagent_utilities_example1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components",
        -  "commerce_main_product",
        -  "commerce_pack_size_normalize",
        -  "commerce_feed_page_compare"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "web_page_pack",
        +  "web_link_shortlist",
        +  "web_page_delta",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Changedagent_utilities_feed_page_compare_preview4 fields changed
      • addedInput schema / properties / availabilityProfile
        Added value: +{
        +  "description": "Default generic preserves existing vocabulary distinctions. google_merchant maps non-vehicle Schema.org availability to Google feed categories; not an eligibility check.",
        +  "enum": [
        +    "generic",
        +    "google_merchant"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / result / properties / availabilityProfile
        Added value: +{
        +  "enum": [
        +    "generic",
        +    "google_merchant"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / result / properties / evidence / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "offerSources": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "offerBlock": {
        -              "type": "number"
        -            },
        -            "offerPointer": {
        -              "type": "string"
        -            },
        -            "productBlock": {
        -              "type": "number"
        -            },
        -            "productPointer": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "productBlock",
        -            "productPointer",
        -            "offerBlock",
        -            "offerPointer"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "productSources": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "block": {
        -              "type": "number"
        -            },
        -            "pointer": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "block",
        -            "pointer"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "productSources",
        -      "offerSources"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "offerSources": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "offerBlock": {
        +              "type": "number"
        +            },
        +            "offerPointer": {
        +              "type": "string"
        +            },
        +            "productBlock": {
        +              "type": "number"
        +            },
        +            "productPointer": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "productBlock",
        +            "productPointer",
        +            "offerBlock",
        +            "offerPointer"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "originalAvailability": {
        +        "items": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "type": "array"
        +      },
        +      "productSources": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "block": {
        +              "type": "number"
        +            },
        +            "pointer": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "block",
        +            "pointer"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "productSources",
        +      "offerSources",
        +      "originalAvailability"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / result / required
        Previous value: -[
        -  "status",
        -  "identityStatus",
        -  "selection",
        -  "checks",
        -  "evidence",
        -  "warnings",
        -  "scope"
        -]New value: +[
        +  "status",
        +  "identityStatus",
        +  "availabilityProfile",
        +  "selection",
        +  "checks",
        +  "evidence",
        +  "warnings",
        +  "scope"
        +]
    • Addedagent_utilities_link_shortlist_preview
    • Addedagent_utilities_page_delta_preview
    • Addedagent_utilities_page_pack_preview
    • Changedagent_utilities_prepare1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_readable_fetch",
        -  "web_redirect_trace",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components",
        -  "commerce_main_product",
        -  "commerce_pack_size_normalize",
        -  "commerce_feed_page_compare"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_readable_fetch",
        +  "web_redirect_trace",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "web_page_pack",
        +  "web_link_shortlist",
        +  "web_page_delta",
        +  "web_page_pack_fetch",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Changedcommerce_feed_page_compare4 fields changed
      • addedInput schema / properties / input / properties / availabilityProfile
        Added value: +{
        +  "description": "Default generic preserves existing vocabulary distinctions. google_merchant maps non-vehicle Schema.org availability to Google feed categories; not an eligibility check.",
        +  "enum": [
        +    "generic",
        +    "google_merchant"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / availabilityProfile
        Added value: +{
        +  "enum": [
        +    "generic",
        +    "google_merchant"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / evidence / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "offerSources": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "offerBlock": {
        -              "type": "number"
        -            },
        -            "offerPointer": {
        -              "type": "string"
        -            },
        -            "productBlock": {
        -              "type": "number"
        -            },
        -            "productPointer": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "productBlock",
        -            "productPointer",
        -            "offerBlock",
        -            "offerPointer"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "productSources": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "block": {
        -              "type": "number"
        -            },
        -            "pointer": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "block",
        -            "pointer"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "productSources",
        -      "offerSources"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "offerSources": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "offerBlock": {
        +              "type": "number"
        +            },
        +            "offerPointer": {
        +              "type": "string"
        +            },
        +            "productBlock": {
        +              "type": "number"
        +            },
        +            "productPointer": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "productBlock",
        +            "productPointer",
        +            "offerBlock",
        +            "offerPointer"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "originalAvailability": {
        +        "items": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "type": "array"
        +      },
        +      "productSources": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "block": {
        +              "type": "number"
        +            },
        +            "pointer": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "block",
        +            "pointer"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "productSources",
        +      "offerSources",
        +      "originalAvailability"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "status",
        -  "identityStatus",
        -  "selection",
        -  "checks",
        -  "evidence",
        -  "warnings",
        -  "scope"
        -]New value: +[
        +  "status",
        +  "identityStatus",
        +  "availabilityProfile",
        +  "selection",
        +  "checks",
        +  "evidence",
        +  "warnings",
        +  "scope"
        +]
    • Addedweb_link_shortlist
    • Addedweb_page_delta
    • Addedweb_page_pack
    • Addedweb_page_pack_fetch
  10. 8 tool updates
    • Changedagent_utilities_example1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Addedagent_utilities_feed_page_compare_preview
    • Addedagent_utilities_main_product_preview
    • Addedagent_utilities_pack_size_normalize_preview
    • Changedagent_utilities_prepare1 field changed
      • changedInput schema / properties / name / enum
        Previous value: -[
        -  "html_main_text",
        -  "html_jsonld",
        -  "html_tables",
        -  "web_readable_fetch",
        -  "web_redirect_trace",
        -  "web_robots_evaluate",
        -  "contracts_openapi_lint",
        -  "contracts_openapi_diff",
        -  "contracts_jsonschema_validate",
        -  "security_secret_scan",
        -  "security_secret_redact",
        -  "agents_config_audit",
        -  "data_json_patch",
        -  "html_metadata",
        -  "html_links",
        -  "html_headings",
        -  "html_forms",
        -  "html_images",
        -  "html_feeds",
        -  "data_json_pointer",
        -  "data_json_diff",
        -  "data_json_canonical",
        -  "security_jwt_inspect",
        -  "security_csp_audit",
        -  "security_header_audit",
        -  "security_cookie_audit",
        -  "agents_env_template_check",
        -  "agents_tool_name_conflicts",
        -  "text_chunk",
        -  "commerce_gtin_validate",
        -  "commerce_variant_compare",
        -  "commerce_pack_plan",
        -  "commerce_money_parse",
        -  "commerce_offer_extract",
        -  "commerce_unit_price",
        -  "commerce_price_components"
        -]New value: +[
        +  "html_main_text",
        +  "html_jsonld",
        +  "html_tables",
        +  "web_readable_fetch",
        +  "web_redirect_trace",
        +  "web_robots_evaluate",
        +  "contracts_openapi_lint",
        +  "contracts_openapi_diff",
        +  "contracts_jsonschema_validate",
        +  "security_secret_scan",
        +  "security_secret_redact",
        +  "agents_config_audit",
        +  "data_json_patch",
        +  "html_metadata",
        +  "html_links",
        +  "html_headings",
        +  "html_forms",
        +  "html_images",
        +  "html_feeds",
        +  "data_json_pointer",
        +  "data_json_diff",
        +  "data_json_canonical",
        +  "security_jwt_inspect",
        +  "security_csp_audit",
        +  "security_header_audit",
        +  "security_cookie_audit",
        +  "agents_env_template_check",
        +  "agents_tool_name_conflicts",
        +  "text_chunk",
        +  "commerce_gtin_validate",
        +  "commerce_variant_compare",
        +  "commerce_pack_plan",
        +  "commerce_money_parse",
        +  "commerce_offer_extract",
        +  "commerce_unit_price",
        +  "commerce_price_components",
        +  "commerce_main_product",
        +  "commerce_pack_size_normalize",
        +  "commerce_feed_page_compare"
        +]
    • Addedcommerce_feed_page_compare
    • Addedcommerce_main_product
    • Addedcommerce_pack_size_normalize
  11. 1 tool update
    • Changedagent_utilities_pack_preview4 fields changed
      • changedInput schema / properties / offers / items / properties / unitsPerPack / maximum
        Previous value: -50New value: +1000
      • changedInput schema / properties / requiredUnits / maximum
        Previous value: -50New value: +1000
      • changedOutput schema / properties / limits / properties / maxRequiredUnits / const
        Previous value: -50New value: +1000
      • changedOutput schema / properties / limits / properties / maxUnitsPerPack / const
        Previous value: -50New value: +1000
  12. 1 tool update
    • Addedagent_utilities_payment_options
  13. 1 tool update
    • Addedagent_utilities_offer_preview
  14. 1 tool update
    • Changedagent_utilities_pack_preview2 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "currency": "USD",
        +    "minorUnitDigits": 2,
        +    "offers": [
        +      {
        +        "id": "six-pack",
        +        "maxPacks": 10,
        +        "price": "7.99",
        +        "unitsPerPack": 6
        +      },
        +      {
        +        "id": "ten-pack",
        +        "maxPacks": 10,
        +        "price": "11.99",
        +        "unitsPerPack": 10
        +      }
        +    ],
        +    "requiredUnits": 12
        +  }
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "chargedMicroUsd": {
        +      "const": "0",
        +      "type": "string"
        +    },
        +    "executionPerformed": {
        +      "const": true,
        +      "type": "boolean"
        +    },
        +    "limits": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "maxInputBytes": {
        +          "const": 4096,
        +          "type": "integer"
        +        },
        +        "maxOffers": {
        +          "const": 3,
        +          "type": "integer"
        +        },
        +        "maxPacksPerOffer": {
        +          "const": 50,
        +          "type": "integer"
        +        },
        +        "maxRequiredUnits": {
        +          "const": 50,
        +          "type": "integer"
        +        },
        +        "maxUnitsPerPack": {
        +          "const": 50,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "maxOffers",
        +        "maxRequiredUnits",
        +        "maxUnitsPerPack",
        +        "maxPacksPerOffer",
        +        "maxInputBytes"
        +      ],
        +      "type": "object"
        +    },
        +    "mode": {
        +      "const": "free-preview",
        +      "type": "string"
        +    },
        +    "result": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "currency": {
        +          "type": "string"
        +        },
        +        "excessUnits": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "feasible": {
        +          "type": "boolean"
        +        },
        +        "itemSubtotal": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "lines": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "id": {
        +                "type": "string"
        +              },
        +              "lineSubtotal": {
        +                "type": "string"
        +              },
        +              "packs": {
        +                "type": "number"
        +              },
        +              "units": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "id",
        +              "packs",
        +              "units",
        +              "lineSubtotal"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "minorUnitDigits": {
        +          "type": "number"
        +        },
        +        "packCount": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "requiredUnits": {
        +          "type": "number"
        +        },
        +        "scope": {
        +          "type": "string"
        +        },
        +        "totalUnits": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "currency",
        +        "minorUnitDigits",
        +        "requiredUnits",
        +        "feasible",
        +        "totalUnits",
        +        "excessUnits",
        +        "itemSubtotal",
        +        "packCount",
        +        "lines",
        +        "scope"
        +      ],
        +      "type": "object"
        +    },
        +    "scope": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "mode",
        +    "executionPerformed",
        +    "chargedMicroUsd",
        +    "result",
        +    "limits",
        +    "scope"
        +  ],
        +  "type": "object"
        +}
  15. 1 tool update
    • Addedagent_utilities_pack_preview

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A collection of self-hosted, open-source tools that enable AI agents to perform web searching, content crawling, and code analysis tasks like linting and security scanning. It provides power-user capabilities for MCP-compatible clients without requiring external accounts or third-party infrastructure.
    440 PyPI
    5
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with free web tools for converting HTML to Markdown, running EU compliance scans, profiling pages, and checking security headers, with no authentication or dependencies.
    4
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to perform live Google SERP searches, run on-page and full-site SEO audits with prioritized fixes, and check brand visibility in AI answer engines via four MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Web scraping MCP server for Al agents. 6 tools: extract clean text/markdown from any URL, structured scraping with CSS selectors, full-page screenshots via Playwright, link extraction with regex filtering, metadata extraction (OG tags, Twitter cards), and Google search. Free tier: 50 requests/IP/day.
    8
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources