A2A Grocery — the agentic hub for retail grocery procurement
Server Details
A2A Grocery — the agentic commerce hub for retail grocery, at its original address
- Status
- Healthy
- Uptime
- 97.9% over 63 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- greencore-solutions/a2a-grocery
- GitHub Stars
- 0
- Server Listing
- a2a-grocery
TDQS
Scored across 19 tools
Most tools target a distinct facet (gate vs. resolve_actor vs. resolve_jurisdiction vs. the get_availability/get_price/get_product_documents data blocks), and the find_verified_buyer/supplier pair is cleanly parallel. The main soft spot is get_item vs. verify_gtin, whose descriptions open with the identical sentence 'Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability,' forcing an agent to read further to separate 'full record' from 'is this GTIN real'.
Names follow a predictable snake_case verb_noun pattern (get_*, find_*, resolve_*, create_*, compare_*, search_*, verify_*, log_*), which is easy to scan. The single deviation is a2a_handoff, a noun-style name that breaks the verb-first convention used everywhere else.
At 19 tools the surface sits above the comfortable 3-15 band, but the domain genuinely spans identity, jurisdiction, compliance, product data, pricing, availability, documents, discovery, ordering and audit, and each tool maps to a distinct step. It is slightly heavy but not padded.
The procurement lifecycle is well covered end to end: discovery (search_cleared_items, find_verified_*), verification (verify_gtin, get_item), compliance (gate_transaction, get_market_status, get_label_and_claims, get_notification_requirements), commerce (get_price, get_availability, create_order_intent, a2a_handoff) and audit. The visible gap is order lifecycle after creation — no tool to read, update, or cancel an order intent.
Available Tools
19 toolsa2a_handoffA2A HandoffCInspect
Hand the buyer to the right agent over Agent-to-Agent (A2A): with an allow decision the order intent goes to the counterparty's agent (envelope + card URL); with a deny, the market agent of the ship-to — a referral, never a sale to a consumer.
| Name | Required | Description | Default |
|---|---|---|---|
| intent_id | No | ||
| decision_id | No | ||
| counterparty_card_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world operation. The description adds real behavioral context beyond that: the allow branch forwards an order-intent envelope plus card URL to the counterparty's agent, the deny branch routes only as a referral ('never a sale to a consumer'). It still omits permission/auth requirements and any retry or failure semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is good structurally. The heavy clause stacking and domain jargon ('market agent of the ship-to', 'envelope + card URL') reduce readability enough that density becomes a cost rather than an asset.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations carry the safety profile. What remains missing is guidance on parameter selection and preconditions for a write-style handoff tool with zero required, zero-described parameters — the agent cannot be confident what to pass or when the call is valid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three nullable, non-required parameters, so the description must compensate. It does partially map them implicitly — 'order intent' to intent_id, the allow/deny 'decision' to decision_id, and 'card URL' to counterparty_card_url — but never states which are required, how they pair, or what happens when one is omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a recognizable verb+resource pairing ('Hand the buyer to the right agent over Agent-to-Agent'), so the core action is graspable. However, phrases like 'the market agent of the ship-to' and the nested allow/deny routing make the actual purpose murky, and it never distinguishes itself from siblings such as gate_transaction or create_order_intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what happens internally for an allow versus a deny decision, but that is tool behavior keyed to decision_id, not guidance on when to invoke this tool versus alternatives. No prerequisites, no trigger conditions, and no named sibling to prefer for a different case are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_itemsCompare ItemsBRead-onlyIdempotentInspect
Compare items, variants and pack sizes side by side (two to eight GTINs or catalogue ids).
| Name | Required | Description | Default |
|---|---|---|---|
| gtins | Yes | ||
| market | No | ||
| decision_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds one genuine behavioral constraint — the two-to-eight item bound — but says nothing about what is returned or the effect of market/decision_id. Annotations lower the bar, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence, front-loaded with the verb and scope, with the cardinality constraint in parentheses where it belongs. Nothing is wasted, though it is arguably too brief given the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. Still, for a three-parameter tool with zero schema description coverage, the undefined market and decision_id parameters leave the definition only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It usefully clarifies that gtins accepts either GTINs or catalogue ids and constrains the count to two to eight, which the bare string-array schema does not convey. However, the market and decision_id parameters receive no explanation at all, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) and resource (items, variants, pack sizes) with the mode of comparison (side by side). It is clear what the tool does, though it does not explicitly differentiate itself from siblings like get_item or get_price that also retrieve item data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (side-by-side comparison of two to eight items) which suggests when an agent would reach for it over a single-item lookup. However, it names no alternatives and gives no explicit when-not-to-use guidance or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_order_intentCreate Order IntentBInspect
Open an order between two agents: an order intent for a cleared item after the gate; the intent carries reason_code + rule_set_version and settles by x402 on a2a-x402.ai.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | Yes | ||
| market | No | ||
| ship_to | No | ||
| quantity | Yes | ||
| decision_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, idempotent=false, so the write-safety profile is covered. The description usefully adds that the intent 'settles by x402', disclosing a financial settlement side effect not visible in the annotations, but it does not clarify reversibility, auth requirements, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the core action ('Open an order between two agents'), though the trailing clause about x402 settlement and the stray field names make it read as slightly run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a five-parameter creation tool with 0% schema coverage the description leaves the required inputs (gtin, quantity, decision_id) entirely unexplained and cites fields that are not parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and none of the five parameters (gtin, market, ship_to, quantity, decision_id) are explained in the description. Worse, it references 'reason_code + rule_set_version', which do not map to any actual parameter, so it adds no usable meaning for the real inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb+resource ('Open an order between two agents') and differentiates itself from siblings by tying the intent to 'a cleared item after the gate', which positions it downstream of gate_transaction. It is somewhat jargon-laden ('order intent', 'a2a-x402.ai') but an agent can tell it creates a new order rather than reading or verifying one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'after the gate' signals a precondition relative to gate_transaction, and 'for a cleared item' implies the item must already be cleared. No alternatives are named and no explicit when-not-to-use is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_verified_buyerFind Verified BuyerARead-onlyIdempotentInspect
Retail buyer desks for this market: banner records (banner, parent group, channel discounter · e-commerce · local · in-store · traditional, local format, cited POS count or NULL, buyer desk by department) with their claim status — verified first, then claimed, then listed. Filters: channel, department. Takes the decision_id of an allow decision.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| market | Yes | ||
| channel | No | ||
| department | No | ||
| decision_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, closed-world. Beyond those, the description discloses meaningful behavior: results are ordered verified → claimed → listed, and POS count may be NULL. That adds value the annotations don't cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and the prerequisite lands last, which is reasonable. However, the long parenthetical enumerating return fields is largely redundant given an output schema exists, and its mid-sentence interpuncts read awkwardly for an agent parsing quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover the safety profile and an output schema covers returns, so the description's main remaining duties are param meaning and prerequisites. It delivers the decision_id gating context but misses limit/query semantics, leaving the six-parameter surface only partially explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It covers market ('for this market'), decision_id, and the channel/department filters, but says nothing about limit or query — two of six params remain undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource — retail buyer desks for a market — and enumerates the banner-record fields it returns (banner, parent group, channel, format, POS count, buyer desk). This distinguishes it from the supplier-side sibling, but the dense parenthetical makes the core verb ('find') less immediately legible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a real prerequisite — it takes the decision_id of an allow decision, implying a prior gating step — and names the available filters (channel, department). It does not, however, contrast with alternatives like find_verified_supplier or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_verified_supplierFind Verified SupplierARead-onlyIdempotentInspect
Verified makers, brand owners, private-label owners, distributors and importers for this item or category in a market: maker records with their claim status — verified first, then claimed, then listed. Takes the decision_id of an allow decision.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | No | ||
| lane | No | ||
| limit | No | ||
| query | No | ||
| market | Yes | ||
| decision_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 real behavioral value on top: the result ordering rule ('verified first, then claimed, then listed') and the dependency on a prior allow decision, neither of which the annotations express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load the returned entity types and then the ordering rule, with no filler. Slightly compressed phrasing ('claim status — verified first, then claimed, then listed') asks the reader to parse a lot in one breath, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not owed. The prerequisite and ordering are covered, but with 0% parameter description coverage the description leaves lane and limit unexplained, which is a real gap for a six-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across six parameters, so the description must carry the load. It does explain decision_id and implies the item/category alternates (gtin/query) and market, but leaves lane and limit entirely undescribed and gives no market format or query-matching semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (verified makers/brand owners/distributors/importers) and what it returns (maker records with claim status), so the agent knows it retrieves supplier-side entities rather than buyers. It never states the verb explicitly ('find') nor distinguishes itself from the sibling find_verified_buyer beyond the supplier/buyer noun, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Takes the decision_id of an allow decision' is a genuine prerequisite that tells the agent this tool is only callable downstream of an allow decision. However, no alternative tools are named (e.g., when to prefer search_cleared_items or find_verified_buyer) and no when-not condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gate_transactionGate TransactionARead-onlyIdempotentInspect
Allow or deny, with the reason and the rule. Takes an item (GTIN or catalogue id; optional), the ship-to market, the actor class and, when no record exists yet, the product type, ingredients and claims. Returns one of twelve reason codes (ALLOW · REQUIRE_NOTIFICATION · REQUIRE_RESPONSIBLE_PERSON · DENY_NOT_PERMITTED_HERE · DENY_INGREDIENT_BANNED · DENY_INGREDIENT_LIMIT · DENY_CLAIM · DENY_MARKET · DENY_ACTOR_CLASS · DENY_UNLICENSED_AGENT · DENY_NO_GTIN · DENY_NOT_VERIFIED), the rule-set version, the source page and a decision_id for the downstream tools.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | ||
| channel | No | ||
| product | No | ||
| ship_to | Yes | ||
| credential | No | ||
| actor_class | Yes | ||
| ingredients | No | ||
| product_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, but the description adds genuine context beyond them: the full set of twelve decision codes, the rule-set version and source page for traceability, and the decision_id intended for downstream tools. It does not explain the credential parameter's auth role or whether the decision is cached/versioned per call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and the return contract, with no filler. The twelve-code enumeration is long but is the tool's actual return vocabulary, so it earns its space rather than being padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations cover the safety profile, the description is nearly complete: it names the inputs, the conditional inputs, and the decision_id chaining to downstream tools. The remaining gaps are the undocumented channel and credential parameters and the absence of any guidance on valid actor_class or market values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage the description must carry all meaning, and it explains six of eight parameters: product (GTIN or catalogue id, optional), ship_to market, actor_class, and the conditional product_type/ingredients/claims trio. It leaves channel and credential completely unexplained, and gives no hint about the expected values or format for actor_class and ship_to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Allow or deny, with the reason and the rule' states a specific decision action on a transaction, and the enumeration of twelve reason codes makes the tool's scope unmistakable. It is clearly distinguishable from narrower lookups like get_market_status or get_notification_requirements, though it never explicitly names those siblings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real conditional guidance — the item identifier is optional and product_type, ingredients and claims are needed 'when no record exists yet' — which tells the agent how to shape a call. However, there is no statement of when to use this gate versus composing the individual lookup tools, and no prerequisites for the credential parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_availabilityGet AvailabilityBRead-onlyIdempotentInspect
In stock, and where: the availability block of an item (banners on the shelf of record, product URLs read live at load, POS counts where the banner record carries a cited one) once gate_transaction has answered allow (decision_id).
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | Yes | ||
| market | No | ||
| decision_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered. The description adds that product URLs are read live at load and POS counts are included only if the banner record carries a cited one, which is useful context. However, it doesn't clarify authentication or rate limits beyond the decision_id requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but it's overly long and parenthetical-heavy, which hurts readability. Information is front-loaded with 'In stock, and where', but the rest is cluttered with jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description needn't explain return values. However, it should still clarify parameters and behavioral aspects. The gate_transaction dependency is covered, but parameter semantics are lacking, and the overall domain context is opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but doesn't. It implies a gtin and decision_id are needed, but doesn't explain market parameter, its format, or its impact. No meaning is added beyond what's in the schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description attempts to convey the purpose but the phrasing is convoluted and non-standard. It includes domain-specific terms (banners on the shelf of record, product URLs read live at load) that are jargon-heavy and don't clearly distinguish it from siblings like get_price or get_item. A reader can infer it returns availability data, but the delivery is muddled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the prerequisite: 'once gate_transaction has answered allow (decision_id)'. This clearly tells the agent when to use the tool (after gate_transaction) and what's needed. However, it doesn't specify alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_enforcement_watchGet Enforcement WatchBRead-onlyIdempotentInspect
Recalls, withdrawals and food-safety alerts, dated: enforcement events by market, category, brand or since a date, each with its source page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| since | No | ||
| market | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive, closed-world read, so the safety profile is covered. The description adds that each event carries its source page, which is useful return context, but says nothing about result volume, date defaults, or what happens when no filters are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the resource type before the filtering options. It is appropriately sized, with only minor awkwardness in the 'dated:' construction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still, with three all-optional parameters, the description never says what happens when called with no arguments, which is a meaningful gap for an agent deciding whether to filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It maps reasonably well: 'market' matches the market param, 'since a date' matches since, and 'category or brand' implicitly routes through the free-text query param. However, it never states that query is free-text or what it accepts, leaving the mapping partly ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (recalls, withdrawals and food-safety alerts) with the retrieval scope, so an agent immediately knows this returns enforcement events. It is clearly distinct from the other siblings like get_item, get_price, or verify_gtin, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by market, category, brand or since a date' hints at how to narrow results, but there is no statement of when to use this tool versus alternatives and no prerequisites or exclusions. Usage must be inferred entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_itemGet ItemBRead-onlyIdempotentInspect
Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. One item by GTIN (EAN in European copy), fully resolved: temperature, department → super category → category, attribute lanes, pack, brand and maker, market, claim status, market status, availability; after the gate also ingredients, allergens, claims, origin, certificates, variants and offers.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | Yes | ||
| market | No | ||
| decision_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower; the description adds useful context such as the 'signed' hub source and the two-tier response ('gate' gating additional fields like ingredients, allergens, certificates). It still omits auth/permission requirements and rate-limit or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single sprawling sentence that front-loads a confusing clause ('Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability') before the actual purpose. Listing many return fields is low-value filler, though it is not egregiously long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, enumerating return fields is redundant, and the description leaves decision_id and the market parameter ambiguous. Annotations cover the safety profile adequately, but parameter-level completeness for a 3-param tool is only marginal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It partially helps: gtin is clarified as GTIN/EAN in European copies, and market is at least mentioned, but decision_id is entirely unexplained and the market parameter is indistinguishable from the market field in the return payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource: retrieving one product record by GTIN, described as 'fully resolved.' However, it is heavy with internal jargon ('hub layer: seat, market, claim, price, availability') and never distinguishes itself from siblings like get_price, get_availability, or get_label_and_claims, so an agent must infer the scope difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no named alternatives against the many sibling tools that cover overlapping facets (price, availability, market status, claims). The phrase 'after the gate also...' hints at a gating prerequisite but leaves the condition unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_label_and_claimsGet Label And ClaimsBRead-onlyIdempotentInspect
What the label must say, and which claims are allowed: the labelling requirements of the market (food information, allergens, origin, nutrition) and the claims rules of record (nutrition and health claims, organic, free-from), each with its source page. Optional claims are checked against the rules.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | ||
| market | Yes | ||
| product_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a safe, read-only, idempotent, non-destructive operation. The description adds that results include source pages and that optional claims are checked against the rules, which is useful context about output structure and validation behavior. However, it doesn't specify error handling, rate limits, or the granularity of the checks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the core purpose and packs in the scope. No fluff, though slightly dense. It could be structured better with a clear 'use when' clause, but it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, one required, zero schema descriptions, and no output schema details, the description is incomplete. It doesn't cover parameter specifics or return structure, though it does mention source pages. For a tool with such sparse schema metadata, more guidance is needed to ensure correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints that 'market' is required (via 'of the market') and that 'claims' are optional and checked against rules. It does not explain what 'product_type' does, what format 'market' expects (e.g., ISO code), or what 'claims' should contain. This leaves significant gaps for an agent to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource retrieval: labelling requirements and claims rules by market. The verb 'get' is implicit through 'what the label must say', and the dual scope (label requirements + claims rules) is clear. It doesn't explicitly differentiate from siblings like get_notification_requirements or get_product_documents, but the domain is distinct enough to be inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that optional claims are checked against the rules, which implies a conditional behavior, but there is no explicit guidance on when to use this tool versus alternatives like get_notification_requirements. No prerequisites (e.g., market must be known) or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_statusGet Market StatusBRead-onlyIdempotentInspect
Is this product type a food here, and under which regime? Product type by market: food, special class (novel food, food supplement, infant formula, fortified, organic-certified, alcohol excise) or not permitted — with the rule-set version and the regulator's page.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| product_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 a real behavioral detail — that the answer is tied to a rule-set version and the regulator's page — but says nothing about freshness, caching, or auth, so it only modestly exceeds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the question leading, followed by the outcome taxonomy. Dense but every clause carries information; only the 'Product type by market' fragment is slightly redundant with the preceding sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations cover the safety profile. What remains missing is the input contract for two mandatory, undocumented, enum-less parameters — a real gap for a lookup tool, but not a crippling one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and neither parameter has an enum, yet the description does not state the expected format for 'market' (ISO code? name?) or what values 'product_type' accepts. The enumeration of food/special-class/not-permitted reads as outcomes rather than accepted inputs, leaving both required parameters semantically ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a market's classification of a product type) and enumerates the exact outcome classes it returns: food, special class (with subcategories), or not permitted. That is far more concrete than the name alone, though it never states the action as a verb and relies on a rhetorical question to frame the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use condition is given, and no sibling is named or contrasted. With near neighbors like resolve_jurisdiction, get_notification_requirements and gate_transaction in the same family, the agent gets no help deciding whether this lookup is the right one or whether it precedes or follows those tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notification_requirementsGet Notification RequirementsARead-onlyIdempotentInspect
What must be filed before sale in a market: the food business registration or import notification scheme, the food business operator of record, and, for a product type in a special class, the extra step (novel-food authorisation, organic certification, supplement notification) — each with its source page.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| product_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint=false, so the safety profile is covered. The description adds that results are cited back to source pages and that special-class product types trigger extra steps, which is useful output context, but it says nothing about unsupported markets or error behavior given the closed-world annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with the core payload and no filler. The em-dash parentheticals are slightly heavy but every clause adds content rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be enumerated, yet the description summarizes them accurately; annotations cover the safety profile. The main gap is which markets are in scope, relevant given openWorldHint=false, but overall it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. It meaningfully explains 'market' as the sale jurisdiction and clarifies that 'product_type' is optional and only changes the answer for products in a special class (novel food, organic, supplements), which is real semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (get notification requirements) and unpacks exactly what the response contains: registration/import notification scheme, food business operator of record, and special-class extra steps. This is clearly distinguishable from siblings like get_label_and_claims or get_market_status, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the framing ('what must be filed before sale in a market'), which tells the agent this is a pre-market-entry compliance lookup. However, there is no explicit when-to-use, when-not-to-use, or reference to an alternative tool for adjacent questions (e.g., enforcement or market status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_priceGet PriceARead-onlyIdempotentInspect
The price for this buyer: the price basis (list · contract · promotion window) from the maker's offers on the record, once gate_transaction has answered allow (decision_id). Plain $ on human surfaces. Tiers buy services, never rank.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | Yes | ||
| market | No | ||
| decision_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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), and the description adds genuine behavioral context beyond them: the result is gated on a prior gate_transaction allow and is derived from the maker's offers on the record. It does not disclose caching, staleness, or failure behavior if no decision exists, so not 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the gate precondition are front-loaded, which is good, but the trailing fragments 'Plain $ on human surfaces' and 'Tiers buy services, never rank' are cryptic domain asides whose value is unclear at first read. Roughly half the text earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, returns need not be described, and the critical gate/decision_id dependency is documented. However, two of three parameters are undocumented and no fallback is given for the case where gate_transaction did not return allow, leaving gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across three parameters, so the description carries the full burden. It explains decision_id (produced by gate_transaction) but leaves gtin and market completely undefined, and even decision_id's format is left implicit. It compensates for only one of three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (the price for this buyer) and its basis (list · contract · promotion window from the maker's offers), which distinguishes it from sibling getters like get_availability. The verb is only implied, and slogans like 'Tiers buy services, never rank' muddle rather than sharpen the statement, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit precondition: the tool must be called once gate_transaction has answered allow, with the resulting decision_id. That is a concrete sequencing rule an agent needs. It offers no when-not guidance or sibling alternatives (e.g., where to get a price without a gate decision), so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_documentsGet Product DocumentsBRead-onlyIdempotentInspect
Certificates and paper: the documents on an item record (organic certificate, PDO/PGI, halal, kosher, specification, allergen statement, origin declaration, lot where it applies), each a URL with its read date and source class; decision_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | Yes | ||
| market | No | ||
| decision_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds a prerequisite (decision_id required) and the result shape (URL plus read date and source class), but since an output schema exists those return details are largely redundant and no auth/rate-limit/permission context is added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the resource and its contents ahead of the required-parameter note. Every clause carries information, though the parenthesis of document types is long enough to slightly dilute the sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, for a 3-parameter tool with 0% schema description coverage, leaving market unexplained and not naming gtin explicitly means the definition is only marginally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description must carry the burden. It notes that decision_id is required (already visible in the schema's required list) and vaguely implies gtin via 'on an item record', but the market parameter is never mentioned or explained, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (documents on an item record) and enumerates the document classes it returns (organic certificate, PDO/PGI, halal, kosher, specification, allergen statement), which is far more informative than the bare title. It does not explicitly contrast itself with the close sibling get_label_and_claims, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'each a URL with its read date and source class' phrasing tells the agent what to expect, and 'decision_id required' signals a prerequisite. There is no statement of when to call this versus get_label_and_claims, get_item, or get_market_status, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_auditLog AuditBInspect
Write a line to the audit record for a gate decision, an order intent or a handoff (returns the line id).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| note | No | ||
| reference_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-readonly, non-idempotent write, and the description's 'Write a line' is consistent with that. It adds the useful detail that the line id is returned, but it does not disclose side effects, append-only behavior, or whether duplicates are created on repeated calls. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core behavior, includes the relevant record types, and mentions the return value. Every element earns its place with no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with an output schema, the description conveys the core purpose and return value. However, it leaves the required fields under-specified and provides no guidance about valid values for 'kind' or what 'reference_id' should reference, so the agent is not fully equipped to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only partially does. It implies that 'kind' relates to gate decisions, order intents, or handoffs, yet it never maps those to the parameter, and it gives no meaning or format for 'reference_id' or the optional 'note'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Write') and resource ('audit record'), and clarifies the scope by naming the three record types: gate decision, order intent, and handoff. It is clear enough, but it does not explicitly differentiate itself from the sibling action tools such as create_order_intent or gate_transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by listing the three event types it logs, but it never states explicit conditions, exclusions, or alternatives. An agent must infer that this is for audit logging rather than for performing the underlying gate/order/handoff actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_actorResolve ActorARead-onlyIdempotentInspect
Who is asking? Maker, brand owner, private label, distributor, importer, broker or retail buyer (trade only); auditor (read-only); agent (inherits the class of the credential it presents — none returns DENY_UNLICENSED_AGENT). The consumer is never the counterparty. Returns communication_class: trade_information or public.
| Name | Required | Description | Default |
|---|---|---|---|
| credential | No | ||
| actor_class | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/openWorld=false/idempotent/non-destructive, but the description adds real behavioral context beyond them: the DENY_UNLICENSED_AGENT failure path when no credential class is present, the inheritance rule for agents, and the communication_class outcome. That failure-mode disclosure is genuinely useful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but compact, using parentheticals to pack scoping rules into a few sentences with little waste. The 'Who is asking?' opener is a touch informal but front-loads the intent efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the return values need not be explained, yet the description still names communication_class and its two values. Combined with the failure path, enumerated actor classes, and trade/consumer scoping, it covers most of what an agent needs for a 2-parameter identity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning, and it partially does: the enumerated actor classes effectively document the actor_class values, and 'the class of the credential it presents' hints at the credential parameter's role. It still gives no format or syntax guidance for credential, so it only partly compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Who is asking?' plus the full enumeration of actor classes (maker, brand owner, private label, distributor, importer, broker, retail buyer, auditor, agent) makes it clear this resolves the requester's identity class. It is specific about the resource, though it never names or contrasts a sibling such as resolve_jurisdiction, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance or alternatives; it never says 'call this before gate_transaction' or similar. Fragments like '(trade only)', 'auditor (read-only)', and 'The consumer is never the counterparty' are scoping facts, not routing instructions, so usage is only weakly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_jurisdictionResolve JurisdictionARead-onlyIdempotentInspect
Where is this going? Resolve a ship-to (e.g. 'DE', 'US-CA', 'UK', 'FR', 'EU-NL', 'JP') to one of the 20 markets and its rule set (14 rule sets; the seven EU markets share one food-law set with national riders). UK is the label; machine fields carry the ISO code GB.
| Name | Required | Description | Default |
|---|---|---|---|
| ship_to | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/no-destructive, so the safety profile is covered. The description adds genuine domain behavior beyond that: 20 markets collapse to 14 rule sets, the seven EU markets share one food-law set with national riders, and UK is a label while machine fields carry ISO GB. The only gap is what happens for an unmapped input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the intent question, then compresses scope, rule-set counts and the UK/GB edge case into one tight block. The parenthetical is information-dense but slightly crammed; no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description covers input formats, scope and the label/ISO distinction. Only the failure behavior for unknown destinations is unaddressed, which is a minor gap for a single-param read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the single parameter. It does so well with six examples ('DE', 'US-CA', 'UK', 'FR', 'EU-NL', 'JP') that reveal accepted formats (bare country, subdivision, region-prefixed) and the UK-vs-GB mapping quirk. It still doesn't specify how invalid or ambiguous values are handled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Resolve') plus precise resource ('a ship-to ... to one of the 20 markets and its rule set'), with concrete input examples. An agent can immediately distinguish this from siblings like get_market_status or resolve_actor without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening 'Where is this going?' implies the intent (routing a destination to its rule set) and the examples show valid inputs, but there is no explicit when-to-use/when-not-to-use guidance and no sibling is named as an alternative. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cleared_itemsSearch Cleared ItemsARead-onlyIdempotentInspect
Find items cleared for this market: validated SKU records in a market (query by product name, brand, maker or category; filters: temperature ambient · chilled · frozen · fresh, attribute lane organic · free-from · plant-based · artisan · origin · premium, department). Only validated rows are served; each item carries its claim status, market status and source class.
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No | ||
| limit | No | ||
| query | No | ||
| market | Yes | ||
| department | No | ||
| decision_id | No | ||
| temperature | No | ||
| product_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar is lower, and the description adds a real constraint beyond them: 'Only validated rows are served,' plus that each item carries claim status, market status and source class. It stops short of 5 because pagination/limit behavior and the meaning of a 'validated' row are left implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core verb and resource, and the filter enumeration is contained in a single parenthetical. The mid-dot filter list is dense but every element carries a distinct value, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations carry the safety profile. But for an 8-parameter search tool with zero schema documentation, three parameters (limit, decision_id, product_type) remain undefined anywhere, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 params, so the description must compensate. It clarifies query (product name, brand, maker, category), lane, temperature and department, and implies market, but leaves limit, decision_id and product_type entirely undocumented — a substantial portion of the surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: finds validated, market-cleared SKU records, and scopes the resource ('cleared for this market') in a way that separates it from generic lookups like get_item. It does not explicitly name a sibling to steer away from, so it stops just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys the searchable fields and available filters (temperature, lane, department), implying this is the search/browse entry point, but never says when to use this versus get_item, compare_items, or get_market_status, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_gtinVerify GtinARead-onlyIdempotentInspect
Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. Is this GTIN real, and whose is it? Check-digit validation, the GS1 prefix, and the validated record(s) that carry it on this hub with their brand, maker and claim status.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful context beyond that: the record is signed from gtinfetch.ai, validation includes check-digit and GS1 prefix checks, and validated records carry brand, maker, and claim status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the key validation/ownership purpose. The initial fragment about the gtinfetch.ai record and hub layer is somewhat terse and jargon-heavy, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be fully documented, and annotations cover the safety profile. Still, the description omits explicit usage routing versus siblings and does not clarify accepted GTIN input formats, leaving gaps for an agent choosing how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single gtin parameter is 0%, so the description must compensate. It supplies semantic context by identifying the input as a GTIN subject to check-digit and GS1 prefix validation, but it does not specify accepted GTIN formats, lengths, or string constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: check-digit validation, GS1 prefix checking, and returning validated records with brand, maker, and claim status. It clearly distinguishes a GTIN verification tool from generic item retrieval, though it does not explicitly name or contrast itself with sibling tools like get_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the question 'Is this GTIN real, and whose is it?' and by the validation/ownership framing. However, there is no explicit when-to-use, when-not-to-use, or alternative routing to siblings such as get_item or get_label_and_claims.
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.
33 tool updates
- Added
a2a_handoff - Removed
check_eligibility - Added
compare_items - Removed
count_gtin_coverage - Added
create_order_intent - Removed
find_makers - Removed
find_retailers - Added
find_verified_buyer - Added
find_verified_supplier - Added
gate_transaction - Added
get_availability - Added
get_enforcement_watch - Added
get_item - Removed
get_kernel - Added
get_label_and_claims - Added
get_market_status - Added
get_notification_requirements - Added
get_price - Added
get_product_documents - Removed
get_signal_chain - Removed
list_brands_by_node - Removed
list_nodes - Removed
list_sku_types - Added
log_audit - Removed
node_market - Added
resolve_actor - Removed
resolve_gtin - Added
resolve_jurisdiction - Removed
resolve_node - Removed
resolve_scope - Removed
resolve_sparks - Added
search_cleared_items - Added
verify_gtin
14 tool updates
- Changed
check_eligibility1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
count_gtin_coverage1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
find_makers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
find_retailers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
get_kernel1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
get_signal_chain1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
list_brands_by_node1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
list_nodes1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
list_sku_types1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
node_market1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
resolve_gtin1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
resolve_node1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
resolve_scope1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
resolve_sparks1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
11 tool updates
- Changed
check_eligibility3 fields changed- added
Input schema / properties / banner / descriptionAdded value: +"Retail banner name exactly as registered in the graph (the retailer_name returned by find_retailers)." - added
Input schema / properties / country_iso / descriptionAdded value: +"ISO 3166-1 alpha-2 code of the selling market (e.g. FR), case-insensitive." - added
Input schema / properties / gtin / descriptionAdded value: +"GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624)."
- Changed
find_makers5 fields changed- added
Input schema / properties / has_website / descriptionAdded value: +"true = only makers with a website on record; false = only makers without one; omit for both." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return, 1 to 500 (default 25)." - added
Input schema / properties / node / descriptionAdded value: +"Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes. Omit for all nodes." - added
Input schema / properties / region / descriptionAdded value: +"Region label as stored on the registry row (e.g. EU, ASIA), case-insensitive. Omit for all regions." - added
Input schema / properties / segment / descriptionAdded value: +"Maker segment label as stored on the registry row (e.g. Haircare, Skincare); exact match. Omit for all segments."
- Changed
find_retailers4 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return, 1 to 500 (default 25)." - added
Input schema / properties / node / descriptionAdded value: +"Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes. Omit for all nodes." - added
Input schema / properties / parent_banner / descriptionAdded value: +"Parent banner name, case-insensitive substring match (e.g. Carrefour). Omit for all banners." - added
Input schema / properties / region / descriptionAdded value: +"Region label as stored on the registry row (e.g. EU, ASIA), case-insensitive. Omit for all regions."
- Changed
get_kernel2 fields changed- added
Input schema / properties / brand / descriptionAdded value: +"Brand name as marketed (e.g. Nivea); normalized exact match, fail-closed." - added
Input schema / properties / node / descriptionAdded value: +"Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes."
- Changed
get_signal_chain1 field changed- added
Input schema / properties / gtin / descriptionAdded value: +"GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624)."
- Changed
list_brands_by_node1 field changed- added
Input schema / properties / node / descriptionAdded value: +"Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes."
- Changed
node_market1 field changed- added
Input schema / properties / code / descriptionAdded value: +"Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes."
- Changed
resolve_gtin1 field changed- added
Input schema / properties / gtin / descriptionAdded value: +"GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624)."
- Changed
resolve_node1 field changed- added
Input schema / properties / code / descriptionAdded value: +"Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes."
- Changed
resolve_scope1 field changed- added
Input schema / properties / scope_id / descriptionAdded value: +"Scoped agent id to resolve: Era 1 sa-{parent}-{jurisdiction}-m{mcp}-{seq} or Era 2 sa2-{namespace}-m{mcp}-d{station}-w{seq}. Omit for the registry summary."
- Changed
resolve_sparks1 field changed- added
Input schema / properties / gtin / descriptionAdded value: +"GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624)."
Related MCP Connectors
A2A + MCP hub for retail grocery procurement — 20 markets on the SCHEMA algo record. Trade only.
Agentic commerce with 58 MCP tools for product search, checkout, A2A negotiation, C-Suite analytics.
The independent agent-commerce protocol for AI-agent checkout on any online store.
Related MCP Servers
AlicenseBqualityBmaintenanceInfrastructure layer for agentic commerce, website AI-readiness scanning, and protocol connectivity.7MIT- AlicenseBqualityAmaintenanceThe autonomous commerce platform where AI agents and human curators operate real e-commerce storefronts, curate scouted physical items, appraise collectibles, manage orders, and route customer inquiries.23MIT

Nexbidofficial
AlicenseNot gradedqualityCmaintenanceAgentic commerce infrastructure for AI agents. MCP-native product discovery, contextual ad matching, and purchase facilitation with European privacy compliance (nDSG/GDPR).MIT- AlicenseNot gradedqualityDmaintenanceEnables AI agents to discover and order food from multiple delivery services (DoorDash, UberEats, Grubhub) using A2A protocol and process payments via Stripe with AP2 protocol mandates for cryptographically signed user authorization.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.