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 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.1/5.0

Scored across 64 tools

Disambiguation2/5

Many tools are near-duplicates or variants, especially the `agent_utilities_*_preview` tools versus their full `commerce_*`/`web_*` counterparts. Descriptions add limits, but an agent can easily misselect between preview/full or overlapping HTML/Web utilities.

Naming Consistency4/5

Tool names are overwhelmingly snake_case with predictable category prefixes such as `commerce_`, `contracts_`, `data_`, `html_`, `security_`, and `web_`. Minor inconsistency exists between `agents_` and `agent_utilities_`, but the overall convention is readable.

Tool Count1/5

64 tools is far too many for a coherent MCP server, with numerous redundant preview/full and trial/full variants. The surface is bloated, and count alone creates decision overhead and selection risk.

Completeness4/5

The server covers a broad utility domain: agent config checks, commerce normalization, contracts, JSON, HTML, security, text, and web retrieval. Most obvious operations are present, though duplicate variants reduce clarity rather than adding meaningful coverage.

Available Tools

64 tools
agents_config_auditB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
caveatYes
findingsYes
rulesVersionYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the audit uses five fixed (non-configurable) heuristics, runs free with no key/credits/wallet, and is subject to existing source and input limits.

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

Conciseness4/5

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

Three short sentences, front-loaded with the action and method, then pricing, then constraints. Efficient, though 'Existing source and input limits apply' is boilerplate that carries little actionable 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?

With annotations covering safety and an output schema present, the description needn't explain returns. It is minimally complete, but leaves two gaps an agent would care about: what the five heuristics detect and how this differs from the adjacent agent-config checkers.

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

Parameters3/5

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

Schema coverage is 67%, and the two legacy fields (requestId, maxPriceMicroUsd) are already documented as ignored in free mode. The description's only parameter-relevant line, 'Existing source and input limits apply', vaguely gestures at the text maxLength without adding format or syntax detail, so it stays at baseline.

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 ('Review agent configuration text') and the method ('five fixed risk heuristics'), so an agent can tell it audits config text rather than fetching or parsing it. It does not, however, distinguish itself from close siblings like agents_env_template_check or agents_tool_name_conflicts, which also target agent configuration.

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 prerequisites beyond 'input limits apply', and no routing to alternatives among the many agent_* siblings. The 'FREE during validation' note is a pricing fact, not a selection condition.

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

agents_env_template_checkA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
extraYes
scopeYes
missingYes
duplicateNamesYes
unrecognizedLinesYes
templateDuplicateNamesYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely useful context beyond annotations: it returns name comparisons but not values (a privacy property), and it is free with no key/credits/wallet. It does not disclose pagination or size-limit behavior, keeping it below a 5.

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

Conciseness4/5

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

Four short clauses, front-loaded with the core comparison and the values-not-returned guarantee. 'Existing source and input limits apply' is vague filler, slightly diluting an otherwise tight statement.

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-shape explanation is unnecessary, and the description covers the privacy guarantee, cost, and legacy-field implications. For a 3-param comparison tool this is nearly complete; only pagination/limit specifics are left implicit via 'existing limits apply'.

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

Parameters3/5

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

Schema coverage is 67%. The two meaningful inputs (template, actual) are self-explanatory from their names, and the two legacy fields carry their own 'ignored in free mode' descriptions in the schema. The description's note that no key/credits are needed reinforces the legacy-field behavior, but adds no format or semantic detail for template/actual.

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

Purpose5/5

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

States a specific verb and resource ('Compare environment-variable names against a template') and immediately names the key exclusion ('never returns assignment values'). This distinguishes it from sibling audit/scan tools like security_secret_scan and agents_config_audit without needing their schemas.

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

Usage Guidelines3/5

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

Usage is implied by 'Compare ... against a template', but there is no explicit when-to-use or when-not-to-use versus the many sibling comparison tools (e.g., commerce_variant_compare, data_json_diff, agents_tool_name_conflicts). The 'FREE during validation' note hints at a workflow stage but does not name an alternative tool.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
conflictsYes

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, openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: it is free during validation with no key, credits or wallet required, and that existing source/input limits still apply. The limits phrase is vague but this is genuine added value.

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

Conciseness4/5

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

Three short, front-loaded sentences with no filler; the core action is stated first and the cost/limits caveats follow. The closing 'existing source and input limits apply' is vague rather than wasteful, so it just misses the top mark.

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, the description needn't explain return values, and it does cover purpose, normalization semantics and the free-mode constraint. However, for a tool with a nested required object and partial schema coverage, it omits any description of the input shape or what the conflict report contains, leaving gaps for an agent assembling the payload.

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 67%, and the description says nothing about the parameters at all. It never mentions that the input is a nested 'names' array (max 200 items) nor the legacy requestId/maxPriceMicroUsd fields, leaving the schema to carry the entire burden with a partial 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?

The description states a specific verb+resource ('Find duplicate or easily confused tool names') and adds the normalization criteria (Unicode, case, separator), which makes the detection semantics unambiguous. It does not explicitly contrast itself with the agents_*/contracts_* siblings, but the function is distinct enough to be selectable.

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?

It states the tool is free during validation and requires no key/credits/wallet, which hints at a trial context, but gives no when-to-use/when-not guidance and names no alternative tool. Nothing tells an agent when this name-conflict check is preferable to other validation siblings.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes
pageUrlNo

Output Schema

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes
baseUrlNo
maxOffersNo

Output Schema

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
offersYes
currencyYes
requiredUnitsYes
minorUnitDigitsYes

Output Schema

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeYes
quantitiesYes

Output Schema

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxCharsNo
afterHtmlYes
sourceUrlNo
beforeHtmlYes

Output Schema

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes
maxCharsNo
sourceUrlNo

Output Schema

ParametersJSON 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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
threadYes
maxCharsNo
sourceUrlYes
maxCommentsNo

Output Schema

ParametersJSON 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes
sectionNo
maxCharsNo
sourceUrlYes

Output Schema

ParametersJSON 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.

ParametersJSON Schema
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_compareA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
checksYes
statusYes
evidenceYes
warningsYes
selectionYes
identityStatusYes
availabilityProfileYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, closed-world, non-destructive behavior, so the bar is lower. The description earns credit for adding non-obvious traits: conflicts and unknown fields are preserved rather than dropped, google_merchant remaps availability (explicitly 'not an eligibility check'), and free-mode has no key/credit/wallet requirement. It does not explain the not-idempotent flag, which is slightly surprising for a read-only compare.

Agents need to know what a tool does to the world before 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 compact sentences, each carrying distinct information: the comparison scope, the profile option, the billing state, and the limit caveat. Scope is front-loaded and there is no filler, though the two free-mode sentences could be merged.

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 nested-object, read-only comparison tool with an output schema and safety annotations, the description covers scope, mode selection, cost, and limits adequately. Return-value shape is rightly delegated to the output schema; only sibling differentiation and named alternatives are missing.

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

Parameters3/5

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

Schema coverage is 67%, so the baseline is 3. The description usefully enumerates which feed fields are compared (identity, price, currency, availability) and clarifies the generic-vs-google_merchant availabilityProfile tradeoff, but adds nothing about pageUrl, offerUrl, or the legacy requestId/maxPriceMicroUsd semantics beyond what the schema already states.

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 (compare) and the two resources being reconciled: the supplied feed identity/price/currency/availability and the JSON-LD product evidence on the page. That is far more than a restatement of the name, though it stops short of explicitly distinguishing itself from siblings like commerce_variant_compare or 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?

Usage is implied: you use this when you have both a feed record and a page whose JSON-LD you want cross-checked. The FREE/no-key note is a useful selection signal, but no alternative tool is named and no explicit when-not condition is given, so the agent must infer routing.

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

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
validYes
formatYes
expectedCheckDigitYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description earns credit by adding billing and access context: free during validation, no key/credits/wallet required, and inherited source/input limits. It does not explain what a failed or malformed check digit returns, but with an output schema present that burden is reduced.

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

Conciseness4/5

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

Purpose and scope are front-loaded, and the remaining sentences are short and information-dense. 'FREE during validation' and 'No key, credits or wallet' overlap somewhat, a minor redundancy.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the description covers scope, cost, auth, and accepted formats. The phrase 'Existing source and input limits apply' is vague about the actual constraints, which is the only real gap for a single-purpose validation tool.

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

Parameters4/5

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

Schema coverage is only 67% and the required 'code' field carries no description, so the enumeration of accepted formats (GTIN-8, UPC/GTIN-12, EAN/GTIN-13, GTIN-14) genuinely adds meaning beyond the bare string/maxLength definition. The legacy requestId and maxPriceMicroUsd fields are documented in the schema itself rather than the description.

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

Purpose5/5

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

States a specific verb (validate) and a precise resource (GTIN-8/UPC-12/EAN-13/GTIN-14 check digits), and immediately delimits scope with 'no product lookup,' which cleanly separates it from product-oriented siblings like commerce_main_product and commerce_offer_extract. An agent can route to this tool without opening the schema.

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

Usage Guidelines4/5

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

The 'no product lookup' clause functions as a when-not-this condition, steering agents away from expecting product data, and the free/no-key statements clarify the cost and auth context. It does not name a specific alternative tool for product resolution, so it stops short of full alternative routing.

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

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
reasonYes
statusYes
selectedYes
warningsYes
pageTypesYes
candidatesYes
selectedIdYes
canonicalUrlYes
distinctProductsYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered structurally. The description adds genuine behavioral context beyond that: the abstain-on-ambiguity policy, the free/no-key/no-credits billing state, and that existing source and input limits still apply.

Agents need to know what a tool does to the world before 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, purpose front-loaded, with cost and limit notes trailing. No filler, though the billing sentence is somewhat repetitive ('FREE', 'No key, credits or wallet').

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, and annotations carry the safety profile. The description covers purpose, cost state, and ambiguity handling; only the parameter-level detail is thin, which is minor given a 3-param schema with 67% 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 coverage is 67%, and the description adds nothing about the html/pageUrl inputs or the two legacy fields. It gestures at 'supplied JSON-LD HTML' and the evidence sources, but adds no format, size, or semantics detail beyond what the schema already documents.

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

Purpose4/5

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

States a specific verb+resource ('Identify the main Product or ProductGroup from supplied JSON-LD HTML') and names the evidence it uses (identity, mainEntity, canonical). It does not, however, distinguish itself from the near-identical sibling agent_utilities_main_product_preview, so an agent cannot tell the two apart from the text alone.

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

Usage Guidelines3/5

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

Provides useful context ('abstain on ambiguity', 'FREE during validation') but never states when to choose this tool over the sibling preview variant or other commerce_* extractors. Usage is implied rather than directed.

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

commerce_money_parseA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
localeYes
amountsYes
allValidYes
currencyYes
minorUnitDigitsYes
acceptedCurrencyTokensYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, non-open-world), and the description adds genuine context beyond them: exact-amount handling, strict grouping, per-price error reporting, the 50-item cap, and that no key/credits/wallet are needed in free mode. It does not, however, explain the unusual idempotentHint=false for what looks like a pure normalization operation.

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

Conciseness4/5

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

Front-loaded with the core action and its limits, followed by two short sentences on cost and constraints. Slightly telegraphic phrasing ('exact amounts, strict grouping and per-price errors') but no wasted sentences.

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 explained, and the description covers limits, free-mode behavior, and error semantics adequately. It leaves the non-idempotent annotation and the legacy parameter handling unaddressed, which keeps it short of a 5.

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

Parameters3/5

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

At 67% schema description coverage, the schema carries most of the parameter burden, and the description's mention of locale, currency and decimal scale just restates the required nested fields. The legacy requestId/maxPriceMicroUsd fields are documented only in the schema, so the description adds no compensating detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Normalize ... displayed prices') plus scope ('up to 50', 'explicit locale, currency and decimal scale'). This clearly separates it from adjacent siblings like commerce_price_components and commerce_unit_price, which decompose rather than normalize whole displayed prices.

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 or when-not-to-use guidance and names no alternative tool. The 'FREE during validation' line describes pricing/access, not the conditions under which this tool should be selected over siblings such as commerce_price_components.

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

commerce_offer_extractA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
offersYes
truncatedYes
invalidBlocksYes
productsFoundYes
unsupportedOffersYes
unresolvedReferencesYes
productsWithoutOffersYes

TDQS

A3.7/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 still adds real value by disclosing bounded output, missing-price warnings, separate aggregate ranges, and the free/no-key/no-wallet access model. It does not contradict the annotations, though the non-idempotent hint for a pure extraction is unexplained.

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

Conciseness4/5

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

Front-loaded with the purpose, followed by compact access-model notes. Every clause carries information, though the three short access-mode sentences could be merged without loss.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description still flags aggregate-range separation and missing-price warnings. The free-mode/limit context is present; only the relationship to sibling extraction tools is left implicit.

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

Parameters3/5

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

Schema coverage is 67%, and the two legacy fields are already documented inline. The description hints at "bounded" offers (maxOffers) and "input limits," but adds no meaning for baseUrl or maxOffers beyond what the schema states, so it neither compensates for nor extends the partial coverage.

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

Purpose4/5

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

Specific verb ("Extract") plus resource ("bounded Product offers from supplied JSON-LD HTML") and the output characteristics (source pointers, missing-price warnings, aggregate ranges). An agent can tell it apart from a generic JSON-LD or page extractor, though no sibling is named to sharpen the distinction.

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 implies the usage context (you already have JSON-LD HTML and want Product offers), but it never states when to choose this over html_jsonld, commerce_main_product, or agent_utilities_offer_preview. No exclusions or alternatives are given, so routing relies on inference.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
linesYes
scopeYes
currencyYes
feasibleYes
packCountYes
totalUnitsYes
excessUnitsYes
itemSubtotalYes
requiredUnitsYes
minorUnitDigitsYes

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 (readOnlyHint=true, destructiveHint=false, openWorldHint=false), and the description adds genuinely new context: free during validation, no key/credits/wallet required, and the 20-offer cap. It does not explain what happens when no valid pack combination exists for the required count, which would be useful for a solver.

Agents need to know what a tool does to the world before 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 compact sentences, front-loaded with the core purpose before the pricing/limit caveats. No filler, though the trailing 'Existing source and input limits apply' is somewhat vague.

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 description covers the offer cap and cost constraints. However, for a constrained optimization tool it omits what happens on infeasibility (e.g., maxPacks too low to reach requiredUnits) and how ties or interchangeable offers are resolved.

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 67%, so the schema carries most of the burden. The description adds light meaning — 'required count' maps to requiredUnits, 'up to 20 interchangeable offers' maps to the maxItems cap, and 'exact prices / explicit pack limits' gesture at price and maxPacks — but adds no format or syntax detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb+resource ('Choose the lowest-cost whole-pack combination for a required count') and names the key constraints (exact prices, explicit pack limits, up to 20 offers). It is clear what the tool does, though it never names a sibling to distinguish itself from the many pack-related tools like agent_utilities_pack_preview 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 says the tool is FREE and requires no key/credits/wallet, but gives no guidance on when to use this tool instead of the pack-preview siblings (agent_utilities_pack_preview, agent_utilities_page_pack_preview). No alternatives, prerequisites, or exclusion criteria are stated.

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

commerce_pack_size_normalizeA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
localeYes
quantitiesYes
allNormalizedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly/destructive/closed-world, so the bar is lower, and the description still adds real context: it is free during validation with no key/credits/wallet, it rejects ambiguous text rather than guessing, and source/input limits apply. It does not explain the non-obvious idempotentHint=false, which is a minor remaining gap.

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

Conciseness4/5

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

Three short, front-loaded clauses: purpose first, then cost, then limits. No filler, and every clause carries information. Slightly clipped telegraphic style but nothing extraneous.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the description covers purpose, cost, rejection behavior and limits. The vague 'Existing source and input limits apply' is the only under-specified element; constraints like min/max items live in the schema.

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

Parameters3/5

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

Schema description coverage is 67%, so the schema baseline is 3. The description contributes only indirectly ('locale-explicit' gestures at the locale enum; 'No key, credits or wallet' relates to the legacy requestId/maxPriceMicroUsd fields) and never clarifies the quantities array, id/text semantics, or the 50-item cap.

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

Purpose4/5

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

States a precise verb (normalize) and resource (locale-explicit pack-size expressions and multipacks) and names the output units (grams, millilitres, counts), plus the failure mode (reject ambiguous text). This is far more specific than a restated name, though it never names the sibling tools (commerce_pack_plan, commerce_unit_price) it must be distinguished from.

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 only implied: an agent can infer it should run this before trusting raw pack-size strings, and that ambiguous input is refused. There is no explicit when-to-use, when-not, or alternative routing vs commerce_pack_plan / agent_utilities_pack_preview. The FREE phrasing is cost guidance, not usage guidance.

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

commerce_price_componentsA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

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

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnly/non-destructive/openWorld=false, so the bar is lower, and the description still adds real behavior: missing costs remain unknown rather than being coerced to zero, and a declaredTotal can be checked against the computed sum. The auth/cost disclosure ('No key, credits or wallet') is useful, though 'FREE during validation' is ambiguous about what changes afterward.

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

Conciseness4/5

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

The core purpose is front-loaded in the first clause and the whole thing is only three short sentences. The cost/auth sentence is telegraphic and slightly noisy for a read-only reconciliation tool, but nothing is redundant.

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

Completeness5/5

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

An output schema exists, so return values need not be described. Given a read-only annotation set, the description covers the operation, the null-handling rule, the optional total check, and access requirements, leaving no gap an agent must fill before calling it.

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

Parameters3/5

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

Schema coverage is 67%, so the schema does most of the work on the nested input object. The description adds 'exact decimals' (hinting at the string-decimal pattern) and names the component fields and declaredTotal, but it explains nothing about currency/minorUnitDigits semantics or how the optional legacy fields (requestId, maxPriceMicroUsd) are handled beyond the schema 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 (reconcile) and enumerates the resource components it operates on (item, discount, shipping, tax, fee amounts), plus the mechanism (exact decimals). This is far more informative than a tautology, but it never distinguishes itself from adjacent siblings such as commerce_unit_price or commerce_money_parse, which an agent could plausibly confuse it with.

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

Usage Guidelines2/5

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

There is no statement of when to pick this tool over the many commerce_* siblings, nor any precondition or exclusion. The only usage-flavored sentence, 'Existing source and input limits apply,' is too vague to route an agent, and 'FREE during validation' is a pricing note rather than guidance.

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

commerce_unit_priceA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
offersYes
currencyYes
referenceYes
cheapestIdsYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context beyond annotations: it is free, requires no key or wallet, operates on up to 50 offers, performs exact arithmetic, and does not convert currencies. It does not disclose output details, but an output schema exists.

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

Conciseness5/5

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

The description is two compact sentences that front-load the comparison scope and then list operational constraints. Every clause contributes: limits, arithmetic behavior, pricing mode, and prerequisites.

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

Completeness5/5

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

Given an output schema exists, the description need not explain return values. It covers the key behavioral constraints an agent needs: read-only, free access, no currency conversion, exact arithmetic, 50-item limit, and that legacy parameters are ignored. This is sufficient for correct invocation.

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

Parameters4/5

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

Schema description coverage is 67%, with two legacy parameters clearly described as ignored in free mode. The description adds meaning by clarifying the 50-offer limit and the exact-arithmetic/no-currency-conversion constraint, which helps interpret the required input fields. It does not explain the reference unit semantics in detail, but the schema provides enums and patterns.

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: comparing up to 50 pack prices with exact arithmetic across compatible mass, volume or count units, and explicitly excludes currency conversion. This distinguishes it from siblings like commerce_pack_size_normalize or commerce_price_components, though the core action of normalizing to a reference unit is left implicit.

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

Usage Guidelines4/5

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

The description gives clear context: comparing explicit pack prices with no currency conversion and within compatible units. It does not explicitly name sibling tools or state when to prefer alternatives like commerce_pack_plan, but the constraints and scope provide strong usage boundaries.

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

commerce_variant_compareA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
extraYes
scopeYes
matchesYes
missingYes
mismatchedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful context beyond them: it is FREE during validation, requires no key/credits/wallet, and is subject to existing source and input limits. This pricing/auth context is exactly the kind of non-annotation behavior an agent needs.

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

Conciseness4/5

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

Four short sentences with the core purpose front-loaded. The free/limit notes are slightly repetitive ('FREE during validation' and 'No key, credits or wallet' overlap), but nothing is padded or wasted.

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

Completeness4/5

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

For a read-only comparison tool with an output schema present, the description covers purpose, cost/auth model, and limits adequately, so return values need not be explained. Only the absence of usage routing to alternatives leaves a minor gap.

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

Parameters4/5

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

Schema coverage is 67%, and the description usefully maps the semantics of the two nested 'input' keys (requested = requested product attributes, offered = offered variant). The legacy params are documented in the schema itself as ignored, so the description's added value over the schema is modest but real.

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') and resource ('requested product attributes' vs 'an offered variant') and names the concrete output ('missing or mismatched fields'). It is clear and self-contained, though it does not differentiate itself from any sibling tool by name.

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

Usage Guidelines2/5

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

It gives the condition 'during validation' and notes free access, but there is no explicit when-to-use vs when-not, and no alternative sibling is referenced (e.g., commerce_feed_page_compare or commerce_pack_size_normalize). 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.

contracts_jsonschema_validateB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
validYes
issuesYes

TDQS

B3/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). The description usefully adds that validation runs against a 'bounded JSON Schema 2020-12 subset' and that existing source/input limits apply, but it never says which subset or what the limits actually are, so the added context is directionally useful but 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?

Four short sentences with the core purpose front-loaded, and no sentence is obviously padding. The repeated free/pricing framing ('FREE during validation' plus 'No key, credits or wallet') is slightly redundant but compact.

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 validator the unsupported portion of the 'bounded subset' is exactly the information an agent needs to avoid misusing it, and neither the subset boundaries nor any usage routing are provided.

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 only 67% and the description adds no parameter-level detail: it never explains the required nested schema/data pair or the semantics of the two legacy fields. The 'no key, credits or wallet' line only loosely corroborates that requestId and maxPriceMicroUsd are ignored, which is already stated in 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 (validate) and resource (data using a bounded JSON Schema 2020-12 subset), which is clear and actionable. It does not explicitly distinguish itself from siblings like contracts_openapi_lint or data_json_diff, 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 description spends its guidance budget on pricing (FREE, no key/credits/wallet) rather than on when to choose this tool over alternatives. There is no stated when-to-use, when-not-to-use, or named alternative among the many sibling validation tools.

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

contracts_openapi_diffB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
changesYes
breakingChangesDetectedYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds useful non-schema context (free during validation, no key/credits/wallet, limits apply), but never clarifies what 'selected direct' changes are detected or the nature of the diff output, leaving real behavioral gaps.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core capability before the pricing/limits caveats. No waste, though the 'FREE' framing is more promotional 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 needn't be explained, and the read-only nature is covered by annotations. However, the scope of 'selected direct breaking changes' and what limits 'apply' remain undefined, which is a meaningful gap for a diff tool.

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

Parameters3/5

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

Schema coverage is 67% and the description says nothing about the parameters, relying on the schema's before/after nested objects and the legacy requestId/maxPriceMicroUsd fields. It only implicitly confirms the inputs are OpenAPI documents, so it adds little beyond the schema; baseline 3.

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

Purpose4/5

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

States a specific verb+resource: detecting breaking changes between OpenAPI 3.0 documents, which cleanly separates it from siblings like contracts_openapi_lint and contracts_jsonschema_validate. The qualifier 'selected direct breaking changes' is slightly ambiguous about which changes are covered, keeping 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 Guidelines2/5

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

No indication of when to choose this over contracts_openapi_lint or contracts_jsonschema_validate, and no prerequisites beyond the vague 'existing source and input limits apply'. The pricing note is not usage guidance.

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

contracts_openapi_lintB
Read-only
Inspect

Validate OpenAPI 3.0 JSON structure and internal references. FREE during validation. No key, credits or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
validYes
issuesYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, non-destructive, non-open-world behavior. The description usefully adds that the call is free and that 'existing source and input limits apply', which is real operational context, but it says nothing about failure modes or what validation output/errors look like.

Agents need to know what a tool does to the world before 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 with the purpose front-loaded; nothing is padded. The two pricing sentences are slightly redundant but still compact.

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, an agent still lacks guidance on alternatives and on what the referenced 'input limits' are, leaving it only minimally equipped.

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 67% and the description adds no parameter meaning at all. The central nested input.document has no description anywhere, and the vague 'input limits apply' does not compensate for that 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 (validate) plus the resource and scope (OpenAPI 3.0 JSON structure and internal references). This clearly separates it from contracts_openapi_diff and contracts_jsonschema_validate, though it does not name 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?

The description focuses on pricing ('FREE during validation. No key, credits or wallet') rather than when to use this tool versus contracts_jsonschema_validate or contracts_openapi_diff. No context, prerequisites, or exclusions for selection are provided.

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

data_json_canonicalA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYes
profileYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, non-open-world), so the description earns credit for adding context they don't: 'FREE during validation. No key, credits or wallet' discloses pricing/payment behavior, and 'Existing source and input limits apply' flags limits. These are genuinely beyond what the structured annotations convey.

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?

Reasonably short and the core purpose is front-loaded, but the trailing fragments ('FREE during validation. No key, credits or wallet. Existing source and input limits apply.') are choppy and partly redundant with each other, diluting structure.

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 explained. For a canonicalization tool the description conveys the key facts an agent needs: deterministic key ordering, non-certification scope, free mode, and applied limits. The nested input structure is left entirely to the schema.

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

Parameters3/5

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

Schema coverage is 67%, so the schema already documents most parameters. The description's 'FREE' and 'No key, credits or wallet' implies the cost/legacy params are inert in free mode, but it adds no format or structural detail for the input.data payload beyond the schema.

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

Purpose4/5

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

States a specific verb and resource: serialize JSON with sorted object keys for deterministic comparison. The purpose is clear and the 'not RFC 8785 certification' clause bounds it. It doesn't explicitly name a sibling to route against (e.g. data_json_diff), so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'for deterministic comparison' implies when to use it, but there is no explicit when-not guidance or named alternative such as data_json_diff or data_json_patch. Usage context is present but left to inference.

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

data_json_diffA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
equalYes
scopeYes
changesYes
truncatedYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint and destructiveHint, lowering the bar. The description still adds useful context, noting results are 'bounded', that it is free with no key/credits/wallet, and that source and input limits apply, which the structured fields do not convey.

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

Conciseness4/5

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

Three short sentences with the core purpose front-loaded and zero filler. The free-mode sentence is slightly promotional but still informative about auth/cost, so it earns most of 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 need not be explained. Given the nested input and read-only annotations, the description covers the essentials (comparison, bounded output, free/no-key operation, limits) without leaving a critical gap.

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

Parameters3/5

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

Schema description coverage is 67%; the two legacy fields are documented in the schema and the before/after pair is self-evident. The description's 'bounded changes' loosely maps to maxChanges and 'JSON Pointer paths' to the output, but it adds little concrete parameter meaning, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb (compare) and resource (JSON structures) and even describes the return (bounded changes at JSON Pointer paths), which clearly distinguishes it from sibling tools like data_json_patch and data_json_canonical. It stops short of explicitly naming which JSON sibling to prefer, so it is clear but not sibling-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 guidance on when to use this tool versus alternatives such as data_json_patch, data_json_pointer, or contracts_openapi_diff. The 'FREE during validation' note is pricing context, not a usage condition, so an agent gets no when/when-not signal.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON 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 cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds genuinely useful behavior: execution is transactional (all-or-nothing), pointers are strict, object properties are handled safely, and intermediate results are bounded. It does not disclose error/rollback reporting, but it meaningfully enriches the annotation baseline.

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

Conciseness4/5

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

Three tight sentences; the capability statement (verb, standard, limits) is front-loaded, followed by behavior and pricing. No filler or repetition.

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-value detail is unnecessary. The description supplies the operation cap, transactional semantics, and pricing context. It is nearly complete but lacks sibling routing and error-behavior notes for a mutation-style tool.

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

Parameters3/5

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

Schema coverage is 67%; the description references RFC 6902, which gives useful semantics for the patch array and its per-op pointers, and confirms the 100-op ceiling. It says nothing about requestId/maxPriceMicroUsd beyond what the schema already documents as legacy/ignored, so baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('Apply ... RFC 6902 operations ... to supplied JSON') and quantifies the scope (up to 100 operations). It is clear what the tool does, but it never distinguishes itself from siblings like data_json_diff, data_json_pointer, or data_json_canonical, so an agent must infer when this is the right patch tool.

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 guidance offered is commercial ('FREE during validation. No key, credits or wallet'), not operational. There is no statement of when to choose this over data_json_diff/data_json_pointer, nor when-not to use it, despite three closely related JSON siblings.

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

data_json_pointerA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
selectionsYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuinely non-obvious behavioral context: the 100-pointer cap, the missing-vs-null preservation semantics, the free-during-validation pricing model, and that no key/credits/wallet are required. It does not explain what happens when a pointer matches nothing beyond the missing/null note, but that is a minor residual 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?

Roughly three short sentences, front-loaded with the core operation before the pricing/auth caveats. It is slightly choppy and the 'No key, credits or wallet' fragment partly restates 'FREE during validation', but there is no real padding.

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

Completeness4/5

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

An output schema exists, so return-value shape need not be described. For a read-only extraction tool with nested input (data + paths) and legacy optional fields, the description covers the cap, authorization/pricing model, and a subtle semantic guarantee, leaving only the no-match behavior as an unaddressed edge case.

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

Parameters4/5

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

Schema description coverage is 67% and the description compensates by clarifying the pointer format (RFC 6901), the maximum number of paths (100, matching schema maxItems), and the null-vs-missing distinction that governs how an absent match is reported. The two legacy fields (requestId, maxPriceMicroUsd) are already documented in the schema as ignored in free mode.

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

Purpose5/5

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

Specific verb ('Select') plus resource ('JSON values') plus mechanism ('RFC 6901 pointer strings'), and it names the count limit (100). The clause 'preserving missing versus null' distinguishes it behaviorally from data_json_canonical, data_json_diff, and data_json_patch, which are the nearest siblings in the data_json family.

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 a cost/auth condition ('FREE during validation. No key, credits or wallet') and that existing limits apply, which is useful context, but it gives no guidance on when to choose this over data_json_canonical/diff/patch or what kinds of inputs are inappropriate. No when-not or alternative routing is present.

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

html_feedsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feedsYes
truncatedYes

TDQS

A3.7/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 a closed-world scope. The description adds genuinely useful behavioral context beyond that: a hard cap of 50 discovered feeds, no key/credits/wallet required, and that existing source and input limits apply. It does not, however, explain what happens when no feeds are found or how relative URLs are handled.

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

Conciseness4/5

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

Three short sentences with the core capability front-loaded and no redundancy. The two pricing sentences are relevant but slightly less essential than the discovery-scope statement, keeping it just short of ideal prioritization.

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-value explanation is not required, and annotations cover the safety profile. Given modest tool complexity, the remaining gaps (baseUrl semantics, empty-result behavior) are minor rather than crippling.

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

Parameters3/5

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

Schema coverage is a moderate 67%, with the nested input.html and input.baseUrl documented only implicitly and the two legacy fields marked as ignored. The description says 'supplied HTML' but never mentions baseUrl's role in resolving relative feed URLs or the 100k/2048 length caps, so it adds little beyond the schema.

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

Purpose5/5

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

States a specific verb (Discover) and resource (RSS, Atom and JSON Feed links declared in supplied HTML) with a concrete scope cap of 50. This clearly separates it from siblings like html_links and html_metadata, which extract other HTML artifacts.

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?

Contains no when-to-use or when-not-to-use guidance and names no alternatives. The pricing and limit sentences ('FREE during validation', 'Existing source and input limits apply') describe cost constraints rather than selection guidance, so an agent still has to infer when this tool is appropriate.

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

html_formsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formsYes
scopeYes
truncatedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=true, destructive=false, openWorld=false, so the safety profile is covered. The description adds real behavioral context beyond that: it caps output at 30 forms, guarantees no field values are returned, confirms nothing is submitted, and notes free/no-key billing plus '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.

Conciseness4/5

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

Front-loaded with the core action, then constraints. Four short sentences, though the pithy 'FREE during validation. No key, credits or wallet.' fragments are slightly telegraphic rather than flowing prose.

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-value shape need not be described. Combined with annotations covering safety and the description covering scope, limits, and billing, the definition gives an agent enough to call it correctly, with only parameter intent left underspecified.

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

Parameters3/5

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

Schema coverage is only 67% and the description never mentions the html or baseUrl inputs, leaving their intent to the schema. It does contextualize the legacy requestId and maxPriceMicroUsd fields via 'No key, credits or wallet,' but this is thin for a nested-object schema.

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

Purpose4/5

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

States a specific verb and resource ('Describe up to 30 forms and their controls') and scopes the output with 'without returning field values or submitting anything.' The 'forms' resource distinguishes it from sibling html_* tools like html_tables and html_links without needing to name them 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?

Usage is only implied: an agent infers it should call this to understand form structure in HTML. There is no explicit when-to-use, no exclusion condition, and no named alternative among the html_* siblings, though the cost notes ('FREE during validation') hint at a context.

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

html_headingsB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
headingsYes
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, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: a hard 200-heading result cap and a free-mode note (no key, credits or wallet). It still says nothing about the nested input shape or failure behavior.

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

Conciseness4/5

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

Four short sentences with the core action front-loaded; each carries a distinct fact (cap, free mode, no auth, limits). 'No key, credits or wallet' is slightly redundant but clarifies the free-tier claim.

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, and the annotations carry the safety profile. The description covers scope, cost, and limits; the only real gap is that the nested input.html parameter is left undocumented.

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

Parameters3/5

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

Schema coverage is 67%, so requestId and maxPriceMicroUsd are already documented as ignored legacy fields in the schema. The description does not explain the required nested input.html (a 100,000-char HTML string) at all, adding only the vague 'input limits apply' clause.

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') and even qualifies the output (parent indices, skipped-level indicators) plus a 200-item cap. The resource is distinct enough from siblings like html_metadata, html_links, and html_tables that an agent can tell it apart, though no sibling is named explicitly.

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

Usage Guidelines2/5

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

There is no statement of when to choose this tool over html_metadata or the other html_* extractors, nor any exclusions. The 'FREE during validation' and 'input limits apply' lines describe cost/constraints, not usage selection.

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

html_imagesA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
totalYes
imagesYes
truncatedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/destructive hints, but the description adds real context beyond them: it will not fetch the images (no outbound network work), it is free with no key, credits or wallet, and result count is capped at 200. It does not discuss failure modes or what happens with malformed HTML.

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 short sentences, front-loading the extraction scope before the cost and limit notes. No filler or repeated information.

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

Completeness4/5

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

An output schema exists, so return-format detail is unnecessary, and the description still names what is extracted. Cost/pricing and the item cap are covered; the only gap is input parameter semantics such as baseUrl.

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 only 67% and the description contributes nothing about inputs. Notably baseUrl — which determines how relative image sources are resolved — is undocumented in both the schema and the description, so an agent gets no help here.

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 bounds the output ('up to 200'). The clause 'does not fetch images' implicitly separates it from the web_* fetch siblings, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Gives no explicit when-to-use or when-not-to-use guidance and does not name an alternative such as html_links or web_readable_fetch. Usage is only implied by the extraction verb, plus a vague 'Existing source and input limits apply'.

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

html_jsonldA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
invalidBlocksYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare the safe read-only profile (readOnlyHint=true, destructiveHint=false), so the bar is lower. The description adds genuine behavioral context beyond them: a parsing cap of 50 blocks, no auth/cost requirement, and that source and input limits apply. It stops short of a 5 because the referenced '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.

Conciseness4/5

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

Four short sentences with the purpose front-loaded and no wasted preamble. There is mild redundancy: 'FREE during validation' and 'No key, credits or wallet' both convey the same cost-free point, which slightly dilutes tightness.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and annotations carry the safety profile. The description covers purpose, the 50-block cap, and the free/no-auth model, which is close to complete for a parse tool. The unspecified 'input limits' leaves a minor gap.

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

Parameters3/5

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

Schema coverage is 67%, and the schema already documents requestId and maxPriceMicroUsd as 'ignored in free mode.' The description adds nothing about the required input.html beyond loosely gesturing at 'supplied HTML' and 'input limits.' Baseline 3 is appropriate since the schema does the substantive work.

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

Purpose4/5

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

States a specific verb and resource with scope: 'Parse up to 50 JSON-LD blocks from supplied HTML.' The resource (JSON-LD) is specific enough to distinguish it from sibling html_* tools like html_metadata and html_links. It doesn't explicitly name a sibling it differs from, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance or alternatives; it never says when to reach for html_jsonld over html_metadata or html_main_text. The 'FREE during validation' and 'No key, credits or wallet' lines are cost/pricing notes, not usage guidance. The agent is left to infer context.

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

html_main_textA
Read-only
Inspect

Extract article text from supplied HTML. FREE during validation. No key, credits or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYes
titleYes
methodYes

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, openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond the schema: it is free during validation with no key, credits, or wallet required, and that source/input limits still apply — useful operational facts an agent cannot infer from annotations.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action, then cost/auth facts, then limits. Nothing is wasted, though the pricing detail is somewhat promotional rather than task-critical.

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, and readOnly annotations cover the safety profile. The description supplies auth/cost and limit context, leaving only minor gaps such as what "article text" extraction does with non-article HTML.

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

Parameters3/5

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

Schema coverage is 67%; the nested input.html object carries no inline description, though the top-level requestId and maxPriceMicroUsd fields are documented as ignored legacy fields. The description adds no parameter-level meaning (e.g. accepted HTML form, what maxLength 100000 means), so the baseline 3 applies.

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

Purpose4/5

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

"Extract article text from supplied HTML" gives a specific verb (extract) and resource (article text), which cleanly distinguishes it from siblings like html_links, html_tables, and html_metadata that extract other facets. It does not name a sibling explicitly, but the target output 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?

The description says nothing about when to choose this tool over the many other html_* extractors. "FREE during validation" and "Existing source and input limits apply" are pricing/limit notes, not usage routing guidance, so the agent gets no when-to-use or when-not-to-use signal.

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

html_metadataA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYes
robotsYes
socialYes
languageYes
descriptionYes
canonicalUrlYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already establish readOnly=true, destructive=false, openWorld=false, so the safety profile is covered. The description adds genuinely useful non-schema context: it is free during validation with no key or credits, and that source/input limits apply. It does not explain the contradictory-looking idempotentHint=false or failure behavior.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose before the pricing note. The 'FREE during validation' and 'No key, credits or wallet' sentences overlap somewhat, a minor redundancy in an otherwise efficient description.

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, and the description covers purpose plus the auth/pricing reality an agent needs. The main omission is any hint about the baseUrl parameter or how relative canonical URLs are resolved, but overall it is sufficient.

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

Parameters3/5

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

Schema description coverage is 67%, and the description adds nothing about any parameter, not even the required nested html or the undocumented baseUrl. The schema documents the legacy requestId/maxPriceMicroUsd fields, so the baseline of 3 applies with no compensating detail from the description.

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

Purpose5/5

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

States a specific verb ('Extract') and an enumerated set of resources (title, description, canonical URL, language, social metadata) from supplied HTML. This cleanly distinguishes it from siblings like html_main_text, html_jsonld, and html_headings that pull different content from the same input.

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 scope ('from supplied HTML') but there is no explicit when-to-use guidance and no routing to alternatives such as html_jsonld for structured social data or html_main_text for page body. The agent must infer the choice from the resource list alone.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tablesYes
spanPolicyYes

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, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context: span-expansion behavior, no key/credits required, and that source/input limits still apply. It does not explain output structure, but the presence of an output schema lowers that burden.

Agents need to know what a tool does to the world before 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 core behavior. The cost/pricing sentences are relevant to this specific free-mode tool but are somewhat repetitive ('FREE' and 'No key, credits or wallet' say similar things), which is the only minor redundancy.

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?

Covered: read-only nature via annotations, span behavior, cost, and limits. Missing: any statement of what the output contains or what input.html should look like (raw HTML string vs. fragment). With an output schema present and 67% param coverage, the gap is moderate rather than critical.

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

Parameters3/5

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

Schema coverage is 67%, with the two legacy fields documented inline as ignored in free mode. The description adds nothing about the nested input.html object or its 100000 maxLength. Baseline 3 is appropriate since the schema does most of the work, but the description does not compensate for the uncovered portion.

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'. The qualifier 'without expanding spans' meaningfully distinguishes behavior from a generic table extractor. It does not name or contrast with any sibling explicitly, but the resource is specific enough to place it among the html_* family.

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 guidance and no alternatives named. The only usage-adjacent signal is 'FREE during validation', which addresses cost, not task selection. An agent cannot tell from the description when to prefer this over html_main_text or html_links.

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

security_csp_auditA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
findingsYes
directivesYes

TDQS

A3.7/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, so the bar is lower. The description adds genuine behavior beyond that: it is free during validation, requires no key/credits/wallet, and is subject to input limits. It does not describe handling of a malformed or empty policy, but the cost/auth context is valuable.

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

Conciseness4/5

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

The core purpose is front-loaded in the first sentence, with pricing/limits as short supporting clauses. There is no wasted prose, though the final fragment 'Existing source and input limits apply' is a bit vague about what those limits are.

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 structure needn't be explained, and annotations carry the safety profile. The description covers purpose and cost/auth context; the remaining gap is that 'selected risky or missing directives' does not say which directives are checked, leaving an agent without concrete expectations.

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

Parameters3/5

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

Schema coverage is 67% and the two undocumented-by-description legacy fields (requestId, maxPriceMicroUsd) are explicitly marked 'ignored in free mode' in the schema. The description's 'No key, credits or wallet' reinforces why those are ignored and loosely implies the 'policy' input, but adds no syntax or format detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: 'Parse a supplied Content Security Policy and flag selected risky or missing directives.' An agent can identify the operation clearly. However, it does not differentiate from siblings like security_header_audit or security_cookie_audit, which also audit security artifacts.

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 only implied: the agent infers it should supply an existing CSP string to be audited. There is no explicit when-to-use, when-not-to-use, or pointer to the header/cookie audit siblings for related checks. 'Existing source and input limits apply' is a constraint note, not selection guidance.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON 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=true, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context beyond annotations: it will not echo header values, it is free during validation, and requires no key, credits, or wallet. The vague 'existing source and input limits apply' is a minor gap.

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

Conciseness4/5

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

Front-loaded with the purpose sentence, followed by concise cost and access notes. The two sentences 'FREE during validation' and 'No key, credits or wallet' are somewhat redundant, and the final limits sentence is vague, slightly reducing 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?

The tool has an output schema and annotations covering safety, so the description need not explain return values or read-only behavior. However, it leaves 'selected security and CORS issues' undefined and does not clarify input format or limits, which are meaningful gaps for an audit tool.

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

Parameters2/5

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

Schema description coverage is 67%, and the key 'input.headers' parameter has no schema description. The description only says 'supplied response headers' and vaguely mentions 'existing source and input limits', adding no format, structure, or limit details beyond what the schema already defines.

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 ('Review') and resource ('supplied response headers') with scope ('selected security and CORS issues'). Clear purpose, but it does not name or distinguish itself from sibling security_csp_audit or security_cookie_audit, so sibling differentiation is missing.

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 cost and privacy context ('FREE during validation', 'No key, credits or wallet') but provides no explicit when-to-use guidance or alternatives. It does not say when to choose this tool over security_csp_audit, security_cookie_audit, or other security tools.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
claimsYes
headerYes
expiredYes
warningsYes
notYetValidYes
signatureVerifiedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive/openWorld/idempotent, so the safety bar is low, and the description adds genuinely useful behavior: results are unauthenticated ("never verifies a signature"), it is free during validation, and no key/credits/wallet are required. Input-limit behavior is only gestured at vaguely ("Existing source and input limits apply"), which keeps it from a 5.

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

Conciseness4/5

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

Front-loaded with the core action and the critical "never verifies a signature" caveat, and it is short. The cost information is split across two sentences ("FREE during validation" / "No key, credits or wallet") with mild redundancy, but nothing is padded.

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

Completeness4/5

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

An output schema exists so return values need no explanation, and annotations cover the safety profile; the description fills the remaining gaps (no signature verification, free/credit-free operation). The only omission is a concrete statement of the "existing source and input limits" it references, which is too vague to act on.

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

Parameters3/5

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

Schema coverage is 67%: requestId and maxPriceMicroUsd carry "legacy, ignored in free mode" descriptions, while token and atUnixSeconds have none. The description partially compensates by tying the optional timestamp comparison to atUnixSeconds, but adds no format or semantic detail (e.g., what timestamps are compared, JWT format expectations). Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ("Decode untrusted JWT claims") plus a scope qualifier ("optionally compare timestamps"). It is clearly distinct from the other security_* siblings (secret_scan, cookie_audit, csp_audit), though it never names or contrasts 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?

The line "never verifies a signature" implicitly tells the agent not to use this for trust/verification decisions, and the cost framing ("FREE during validation. No key, credits or wallet") signals a low-friction context. But there is no explicit when-to-use/when-not-to-use guidance or named alternative.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYes
caveatYes
findingsYes
limitReachedYes
rulesVersionYes

TDQS

B3.2/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 a closed-world scope, so the safety profile is covered. The description adds genuinely useful non-annotation context (free during validation, no key/credits/wallet, source and input limits apply), but says nothing about which credential patterns are matched, what the markers look like, or whether surrounding text/structure is preserved.

Agents need to know what a tool does to the world before 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 with the purpose front-loaded and no padding. The telegraphic pricing/limits fragments are efficient, though they crowd out more useful invocation 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?

An output schema exists so return values need not be explained, and annotations cover safety. Still, for a redaction tool the agent lacks sibling differentiation and any sense of pattern coverage or marker format, leaving the definition minimally 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 coverage is 67%, so the schema documents requestId and maxPriceMicroUsd as ignored legacy fields. The description's 'Existing source and input limits apply' is vague and adds little beyond the schema's maxLength of 100000; the nested input.text object itself remains undocumented in the 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?

States a specific verb+resource: 'Replace detected credential patterns with redaction markers.' An agent knows exactly what transformation is performed. However, it never distinguishes itself from the sibling security_secret_scan, so the agent must guess which of the two 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?

The description spends its budget on pricing ('FREE during validation. No key, credits or wallet') rather than on when to use this tool versus security_secret_scan or any alternative. No conditions, prerequisites, or exclusions are given, leaving usage entirely to inference.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
caveatYes
findingsYes
limitReachedYes
rulesVersionYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint=false, and the description layers on genuinely useful behavior: findings are fully masked, there is no key/credit/wallet requirement, and existing source/input limits apply. These add real value beyond the structured hints, though the pattern families themselves are undisclosed.

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

Conciseness4/5

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

Front-loaded with the core capability followed by compact auth/pricing notes; three short sentences with little waste. The pricing statements are somewhat peripheral but still functional within a validation context.

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-format details are not the description's burden, and it does cover masking and no-auth. However it omits what the five pattern families are and what the input limits actually are, leaving meaningful gaps for a security-scanning tool.

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

Parameters3/5

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

Schema coverage is 67%, with text/requestId/maxPriceMicroUsd partly documented in-schema (and the legacy fields marked ignored). The description only alludes to 'source and input limits' without defining the text parameter or naming the five credential families, so baseline 3 is warranted.

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 (Detect) and resource (credential patterns, five families) with the added qualifier that findings are fully masked. This distinguishes it reasonably from security_secret_redact, but it never names the sibling or explains the detect-vs-redact division 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?

It supplies pricing/auth context (FREE during validation, no key/credits/wallet) but gives no when-to-use guidance and no routing to alternatives such as security_secret_redact. An agent still has to infer which secret tool to pick.

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

text_chunkA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
chunksYes
offsetUnitYes

TDQS

A3.7/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 genuinely non-derivable behavior: a hard 200-chunk ceiling, offset-bearing output, surrogate-pair-safe boundaries, and the fact that no key, credits, or wallet are required. It does not explain chunk-boundary policy or defaults, which keeps it from a 5.

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

Conciseness4/5

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

Front-loaded with the core action and short overall, with no filler sentences. The three clipped fragments about free mode are slightly redundant with each other, but they are informative rather than wasted.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and the description instead covers constraints, auth/pricing, and encoding safety. What remains missing — default overlap/maxChars values and boundary behavior — is minor for a straightforward text utility.

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

Parameters3/5

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

Schema coverage is 67%, so the schema documents some fields but not all semantics. The description implies overlap exists ('overlapping chunks') and that offsets are returned, but it never explains what maxChars controls, what the default overlap is, or how the 200-chunk cap relates to maxChars. That is baseline-level compensation, not more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Split text') plus the concrete output shape (overlapping chunks with offsets, surrogate pairs intact) and the 200-chunk cap. No sibling tool does chunking, so there is no ambiguity to resolve — an agent can immediately tell this is the text-splitting utility.

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 statement of when to choose this tool, no prerequisites, and no alternative named. The only contextual hints are pricing ('FREE during validation') and 'existing source and input limits apply', neither of which tells the agent which situation calls for chunking.

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

web_page_deltaA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

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

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful non-annotation context: FREE during validation, no key/credits/wallet, and that 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.

Conciseness4/5

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

Compact and front-loaded: the core behavior leads, followed by the budget/scope and free-mode facts. Slightly telegraphic ("Explicit shared output budget and scope") but no wasted sentences.

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 prose. Given the nested input, readOnly annotations, and output schema, the description covers the essentials (billing mode, limits, diff purpose); minor gaps remain around input size/format expectations.

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 67%; beforeHtml/afterHtml and maxChars carry no inline descriptions. The description hints that maxChars is a shared output budget and references scope, adding marginal meaning, but does not clarify the required before/after inputs beyond their names.

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: returning added/removed content blocks from supplied before/after HTML. An agent can distinguish this from data_json_diff or commerce_feed_page_compare by the HTML page-delta framing, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

"Avoid rereading unchanged text" implies the scenario (diffing two HTML captures to save re-reading), but there is no explicit when-to-use, when-not, or named alternative among the many diff/compare siblings. Usage is inferable but not guided.

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

web_page_packA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
titleYes
contentYes
selectionYes
sourceUrlYes
truncatedYes
measurementYes
contentCharsYes
omittedCharsYes

TDQS

A3.7/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 genuine non-annotation context: no model inference, no fetching, no guaranteed token savings, free during validation, and no key/credits/wallet required. This is meaningful behavioral 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.

Conciseness4/5

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

Six short, front-loaded sentences with the core action first and the caveats/pricing after. Slightly fragmented ('No key, credits or wallet.') but nothing is padded.

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

Completeness4/5

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

An output schema exists so return values need not be explained, and annotations carry the safety profile. The description supplies the operationally important caveats (no fetching, no model, no guaranteed savings, free) an agent needs to select this over web_page_pack_fetch.

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 67% and the description never discusses html, maxChars, or sourceUrl directly. Terms like 'bounded', 'size estimates', and 'source' loosely map to maxChars and sourceUrl, but no syntax, defaults, or constraints are added beyond what the schema already states.

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 word 'supplied' and the phrase 'No ... fetching' implicitly separate it from the fetching sibling (web_page_pack_fetch), but the sibling is not named explicitly, so it falls short of a full 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?

'No model, fetching or guaranteed token savings' plus 'Existing source and input limits apply' implies this tool is for HTML you already hold, and the presence of web_page_pack_fetch as a sibling makes the split inferable. However, no explicit when-to-use or when-to-prefer-the-alternative statement is given.

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

web_page_pack_fetchA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

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

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, openWorld, non-destructive), and the description adds real operational context: a curated host allowlist, robots.txt and redirect gating, no browser rendering/bypass, no key/credits/wallet needed. It stops short of describing compaction behavior or failure modes.

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

Conciseness4/5

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

Front-loaded with the core action, then a compact clause chain of constraints. The closing 'Existing source and input limits apply' is vague filler that costs it a point.

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

Completeness4/5

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

Given an output schema exists (so return values need not be explained) and annotations carry the safety profile, the description covers host scope, gating behavior, and cost model adequately. What 'compact' actually produces is left unstated but is inferable from the pack format.

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 67% and the description adds no parameter-level meaning - it never explains url or maxChars, only gesturing at 'Existing source and input limits apply'. With the schema doing most of the work, this is a baseline 3.

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

Purpose4/5

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

States a specific verb+resource ('Retrieve and compact ... HTML page') and narrows scope to docs.python.org, so the agent knows exactly what it returns. It does not explicitly distinguish itself from near-siblings like web_readable_fetch or web_page_pack, 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?

Constraints imply the use case ('Curated HTTPS host only; robots and redirect checks'), and the free-tier note is useful context, but there is no explicit when-to-use or when-to-prefer-an-alternative statement against web_readable_fetch/web_page_pack.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON 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/non-destructive, so the bar is lower, and the description adds real value: the cost model (FREE during validation, no key/credits/wallet) and the host restriction (approved public HTTPS only). It does not explain what makes a host 'approved' or what the source 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?

Four short, front-loaded sentences with no filler; the cost statement leads. The telegraphic fragments are efficient, though they read as notes rather than a coherent spec.

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 free-tier behavior is covered. However, the two most consequential constraints for successful invocation ('approved host' and 'source/input limits') are left undefined for a nested, open-world fetch tool.

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

Parameters2/5

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

Schema coverage is 67%, and the one undocumented parameter is the required, nested 'url', whose semantics (allowed schemes, host restrictions, size limits) matter most. The description adds no parameter meaning beyond what the schema already states about the legacy ignored fields.

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 (fetch) and resource (readable text) plus a scoping constraint (approved public HTTPS host). It is clear what the tool does, though it does not explicitly distinguish itself from text-extraction siblings like html_main_text or web_page_pack_fetch.

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?

Provides no when-to-use guidance, no alternatives, and no conditions for selecting it over html_main_text or the other web fetch tools. 'Existing source and input limits apply' gestures at constraints without explaining them.

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

web_redirect_traceA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
statusYes
redirectsYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered and the description does not contradict it. It adds real behavioral context beyond the annotations: a hard four-hop cap, an HTTPS/approved-host restriction, and confirmation that auth/credits are not consumed. It stops short of saying what happens when the four-hop limit is exceeded or whether non-HTTP redirect mechanisms are followed.

Agents need to know what a tool does to the world before 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, front-loaded with the core capability before the free-tier note. Very little waste, though "Existing source and input limits apply" is vague enough that it does not fully earn 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 values need not be explained, and annotations carry the safety profile. However, the key operational unknowns for a redirect tracer remain unaddressed: how "approved public HTTPS hosts" is determined, and behavior when a chain exceeds four hops. Adequate but with clear 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 67%, so the URL parameter and both legacy fields are partly documented in-schema. The description mentions "source and input limits" generically but adds no format, protocol, or host-constraint detail for the url parameter. Baseline 3 is appropriate when the schema does most of the work.

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

Purpose4/5

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

States a specific verb and resource ("Trace ... redirects") plus concrete scope: up to four hops, restricted to approved public HTTPS hosts. An agent can tell this is a redirect-chain tracer rather than a page fetcher. It does not name a sibling to differentiate against, but the purpose itself 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 Guidelines3/5

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

The description covers cost/prerequisites ("FREE during validation. No key, credits or wallet") but says nothing about when to pick this over web_readable_fetch or web_link_shortlist, nor any exclusions. Usage is only implied by the word "Trace".

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeYes
allowedYes
sitemapsYes
crawlDelayYes

TDQS

A3.8/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), and the description adds real operational context beyond them: no network access, free during validation, and no key/credits/wallet required. It does not describe how malformed or empty robots input is handled, which is the remaining behavioral gap.

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

Conciseness4/5

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

Front-loaded with the core purpose, followed by three terse clauses on cost and limits. No wasted words, though the 'FREE during validation / No key, credits or wallet' pair is mildly redundant.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and annotations carry the safety profile. The description covers offline behavior, cost, and limits — enough for an agent to call it correctly, with only parsing/edge-case semantics left unstated.

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 67% with the three required nested fields (url, robots, userAgent) carrying only maxLength constraints and no prose. The description merely restates those three inputs and adds no format, default, or interpretation guidance to compensate for the 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 and resource ('Evaluate supplied robots.txt for a URL and user agent') and immediately distinguishes itself from the fetch-based siblings with 'no network fetch'. An agent can tell this is an offline, pure-evaluation tool without inspecting any schema.

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

Usage Guidelines3/5

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

'Supplied robots.txt' implies the caller must already have the robots content, and 'no network fetch' implies the fetch siblings are the alternative — but neither is stated explicitly, and no sibling is named. Usage is inferable rather than spelled out.

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

web_thread_packA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

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

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld=false/destructive=false, and the description adds real value beyond them: it clarifies no fetching occurs, no consensus is generated, output is bounded, and no key/credits/wallet are needed. It does not address the idempotentHint=false or pagination, but the added operational context is solid.

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

Conciseness4/5

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

The purpose is front-loaded in the first sentence, and the remaining clauses add constraints efficiently. The 'FREE during validation. No key, credits or wallet.' pair is slightly redundant but short enough to earn its place as cost guidance.

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 annotations covering safety and an output schema covering return values, the description only needs to convey the non-fetch nature, bounding, and cost model, which it does. Minor gaps around the fixed-size thread array and the idempotency hint remain but are not critical.

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

Parameters3/5

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

Schema coverage is 67%, and the description only vaguely gestures at limits via 'Existing source and input limits apply' and 'bounded' output. It does not explain maxChars/maxComments defaults or why the thread array is fixed at exactly 2 items, leaving those semantics to the schema.

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

Purpose4/5

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

The description names a specific verb (Format) and resource (supplied Reddit comments JSON) and states the output shape (bounded post and reply tree with Markdown, authors, links). The 'No fetch' clause usefully distinguishes it from fetching siblings like web_page_pack_fetch, though it does not explicitly contrast with agent_utilities_thread_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 Guidelines3/5

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

Usage is only implied: it tells the agent it must supply JSON rather than fetch, and that source/input limits apply. No explicit when-to-use, when-not-to-use, or named alternative is given, so the agent must infer this is the formatting-only companion to a fetch step.

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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

ParametersJSON 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 read-only, non-destructive and non-open-world behavior, and the description is consistent with them. It adds genuinely new context beyond the structured fields: no fetching, no generated summary, free during validation, and no key/credits/wallet required. It still omits what happens when the HTML or maxChars bounds are exceeded.

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

Conciseness4/5

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

Six short, front-loaded sentences with no filler; the core packing behavior leads and pricing/limit caveats follow. The telegraphic style ('FREE during validation. No key, credits or wallet.') is efficient, if slightly fragmented.

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. For a nested-input packing tool the description is adequate but leaves gaps: it does not explain the section-selection behavior, the maxChars truncation semantics, or the sibling it replaces.

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 67% but the required html/sourceUrl and the section/maxChars fields carry no inline descriptions. The description gestures at them ('sections', 'source links', 'bounded text budget') but adds no format or selection semantics beyond naming the concepts.

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: it 'packs' supplied Wikipedia article HTML into sections, source links, attribution and a bounded text budget. The phrase 'No fetching' implicitly separates it from the read/fetch siblings, but no sibling is named explicitly, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

'No fetching or generated summary' tells the agent this tool consumes HTML rather than retrieving it, and 'Existing source and input limits apply' hints at prerequisites. However, it never names the alternative (e.g. web_wikipedia_read) that should supply the HTML, so the when-to-use routing is only implied.

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

web_wikipedia_readA
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 or wallet. Existing source and input limits apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
requestIdNoOptional legacy field; ignored in free mode.
maxPriceMicroUsdNoOptional legacy field; ignored in free mode.

Output Schema

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

TDQS

A3.6/5.0
Behavior4/5

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

Annotations cover read-only/open-world safety, and the description still adds real behavior: official API source, free during validation, no key/credits/wallet required, a text budget, and that source/input limits apply. 'Inspect omissions' usefully warns the agent that truncated content must be checked. It leaves the odd idempotentHint=false unaddressed.

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 core purpose, but the back half is a choppy stack of fragments ('FREE during validation. No key, credits or wallet.') that partially restate the same cost point and read more like marketing copy than operational 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?

An output schema exists, so return-value explanation is not required, and the description covers editions, license, revision, and budget. However, for a tool with nested input and a required url, it omits the supported-edition list and url/section format expectations, leaving some call-time ambiguity.

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

Parameters4/5

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

With 67% schema coverage, the description compensates by mapping concepts to parameters: 'sections' to section, 'text budget' to maxChars, and 'Existing source and input limits apply' to the legacy requestId/maxPriceMicroUsd fields. It does not give syntax details (URL format, section naming), but it meaningfully extends the schema.

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

Purpose4/5

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

States a specific verb and resource ('Read a public Wikipedia article through the official API') and names the payload it returns (revision, license, sections, text budget). It is clearly distinct from pack/popular siblings, though it never explicitly contrasts itself with web_wikipedia_pack or web_wikipedia_popular.

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?

Hints at context: 'Ten supported editions' and 'inspect omissions' tell the agent the output may be truncated and limited in coverage, and 'FREE during validation' signals cost. But it never says when to pick this over web_wikipedia_pack or web_readable_fetch, so the routing guidance is only implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • 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"
        +}
  2. 1 tool update
    • Changedagent_utilities_seo_audit1 field changed
      • addedInput schema / properties / capturedAt
        Added value: +{
        +  "maxLength": 100,
        +  "type": "string"
        +}
  3. 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"
        +]
  4. 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
  5. 1 tool update
    • Addedagent_utilities_seo_audit
  6. 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"
        +]
  7. 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
  8. 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
  9. 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
  10. 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
  11. 1 tool update
    • Addedagent_utilities_payment_options
  12. 1 tool update
    • Addedagent_utilities_offer_preview
  13. 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"
        +}
  14. 1 tool update
    • Addedagent_utilities_pack_preview
  15. 39 tool updates
    • First observedagent_utilities_balance
    • First observedagent_utilities_example
    • First observedagent_utilities_prepare
    • First observedagents_config_audit
    • First observedagents_env_template_check
    • First observedagents_tool_name_conflicts
    • First observedcommerce_gtin_validate
    • First observedcommerce_money_parse
    • First observedcommerce_offer_extract
    • First observedcommerce_pack_plan
    • First observedcommerce_price_components
    • First observedcommerce_unit_price
    • First observedcommerce_variant_compare
    • First observedcontracts_jsonschema_validate
    • First observedcontracts_openapi_diff
    • First observedcontracts_openapi_lint
    • First observeddata_json_canonical
    • First observeddata_json_diff
    • First observeddata_json_patch
    • First observeddata_json_pointer
    • First observedhtml_feeds
    • First observedhtml_forms
    • First observedhtml_headings
    • First observedhtml_images
    • First observedhtml_jsonld
    • First observedhtml_links
    • First observedhtml_main_text
    • First observedhtml_metadata
    • First observedhtml_tables
    • First observedsecurity_cookie_audit
    • First observedsecurity_csp_audit
    • First observedsecurity_header_audit
    • First observedsecurity_jwt_inspect
    • First observedsecurity_secret_redact
    • First observedsecurity_secret_scan
    • First observedtext_chunk
    • First observedweb_readable_fetch
    • First observedweb_redirect_trace
    • First observedweb_robots_evaluate

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    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.
    42 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
    9 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