A2A Grocery — the agentic hub for retail grocery procurement
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
A2A Grocery — the agentic commerce hub for retail grocery, at its original address
| Author | io.github.greencore-solutions |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 400 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"A2A Grocery — the agentic hub for retail grocery procurement": {
"url": "https://mcp.cpgknowledgegraph.ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (19)
resolve_jurisdictionread-onlyWhere 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.
Parameters:
ship_to(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
resolve_actorread-onlyWho 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.
Parameters:
actor_class(required) — stringcredential
Hints: read-only yes · destructive no · idempotent yes · open-world no
gate_transactionread-onlyAllow 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.
Parameters:
ship_to(required) — stringactor_class(required) — stringclaimschannelproductcredentialingredientsproduct_type
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_cleared_itemsread-onlyFind 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.
Parameters:
market(required) — stringlanelimit— integerquerydepartmentdecision_idtemperatureproduct_type
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_itemread-onlyProduct 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.
Parameters:
gtin(required) — stringmarketdecision_id
Hints: read-only yes · destructive no · idempotent yes · open-world no
verify_gtinread-onlyProduct 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.
Parameters:
gtin(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_label_and_claimsread-onlyWhat 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.
Parameters:
market(required) — stringclaimsproduct_type
Hints: read-only yes · destructive no · idempotent yes · open-world no
compare_itemsread-onlyCompare items, variants and pack sizes side by side (two to eight GTINs or catalogue ids).
Parameters:
gtins(required) — arraymarketdecision_id
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_verified_buyerread-onlyRetail 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.
Parameters:
market(required) — stringdecision_id(required) — stringlimit— integerquerychanneldepartment
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_verified_supplierread-onlyVerified 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.
Parameters:
market(required) — stringdecision_id(required) — stringgtinlanelimit— integerquery
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_product_documentsread-onlyCertificates 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.
Parameters:
gtin(required) — stringdecision_id(required) — stringmarket
Hints: read-only yes · destructive no · idempotent yes · open-world no
log_auditWrite a line to the audit record for a gate decision, an order intent or a handoff (returns the line id).
Parameters:
kind(required) — stringreference_id(required) — stringnote
Hints: read-only no · destructive no · idempotent no · open-world no
get_priceread-onlyThe 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.
Parameters:
gtin(required) — stringdecision_id(required) — stringmarket
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_availabilityread-onlyIn 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).
Parameters:
gtin(required) — stringdecision_id(required) — stringmarket
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_order_intentOpen 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.
Parameters:
gtin(required) — stringquantity(required) — integerdecision_id(required) — stringmarketship_to
Hints: read-only no · destructive no · idempotent no · open-world no
a2a_handoffHand 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.
Parameters:
intent_iddecision_idcounterparty_card_url
Hints: read-only no · destructive no · idempotent no · open-world no
get_market_statusread-onlyIs 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.
Parameters:
product_type(required) — stringmarket(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_notification_requirementsread-onlyWhat 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.
Parameters:
market(required) — stringproduct_type
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_enforcement_watchread-onlyRecalls, withdrawals and food-safety alerts, dated: enforcement events by market, category, brand or since a date, each with its source page.
Parameters:
querysincemarket
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.