Skip to main content
Glama

A2A Grocery — the agentic hub for retail grocery procurement

Server Details

A2A + MCP hub for retail grocery procurement — 20 markets on the SCHEMA algo record. Trade only.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
greencore-solutions/a2a-grocery
GitHub Stars
0
Server Listing
a2a-grocery
ChatGPT
–
Claude
–

TDQS

B3.3/5.0

Scored across 23 tools

Disambiguation3/5

A cluster of product-retrieval tools overlaps heavily: get_item, verify_gtin, get_product, lookup_catalog, search_catalog and search_cleared_items all return GTIN-keyed product records, distinguished mainly by provenance (gtinfetch signed record vs UCP priced subset vs validated cleared rows) rather than by action. The descriptions do explain the partition (e.g. 'every other row stays on search_cleared_items'), so a careful agent can recover, but misselection is likely without reading closely. The gate/verification/actor tools are otherwise cleanly separable.

Naming Consistency4/5

Almost every tool follows a snake_case verb_noun pattern (get_item, search_catalog, resolve_jurisdiction, create_order_intent), which is predictable and readable. The only deviation is a2a_handoff, which is noun-first with a protocol prefix, plus the get_product/get_item near-duplicate stems.

Tool Count3/5

At 23 tools this is on the heavy side for a single hub, and the weight comes largely from offering three parallel catalogue interfaces (hub-native, UCP single/batch/search) plus a separate compare tool. Each tool has a defensible role in a regulated procurement workflow, but the surface would benefit from consolidating the catalog-lookup family.

Completeness4/5

Coverage is broad: identity/actor and jurisdiction resolution, GTIN validation, market status, notifications, labelling, gating, price, availability, documents, enforcement watch, order intents, A2A handoff and audit logging form a coherent end-to-end procurement flow. Gaps remain around the post-intent lifecycle (no order status, settlement or cancellation), seat management beyond initial claim (no revocation or re-listing tool), and no way to enumerate markets, departments or categories.

Available Tools

23 tools
a2a_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.

Inputs: intent_id, decision_id, counterparty_card_url. Returns: object

claim_seatClaim SeatAInspect

A brand's agent claims its seat on A2A Grocery. Give the agent's card URL and the GTINs the brand claims: every GTIN must resolve on gtinfetch.ai to the maker the card names, and the category comes first (grocery proceeds; a beauty record is referred to a2a-cosmetics.ai; peptides to a2a-peptides.ai; beer, wine and spirits are refused; an unresolved GTIN is refused). An accepted claim answers a challenge for the card's domain (a DNS TXT record or a well-known file); call again with the challenge_id once it is published: a pass moves the brand's rows from listed to claimed and answers the seat key. With the seat key, rows sets the seat's own price, availability, markets and claims, its own GTINs only. Every claim, accepted or refused, is logged. Verified is a person's step, never a tool's.

Inputs: card_url (required), rows, gtins, seat_key, +1 more. Returns: object

compare_itemsCompare ItemsB
Read-onlyIdempotent
Inspect

Compare items, variants and pack sizes side by side (two to eight GTINs or catalogue ids).

Inputs: gtins (required), market, decision_id. Returns: object

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.

Inputs: gtin (required), quantity (required), decision_id (required), market, +1 more. Returns: object

find_verified_buyerFind Verified BuyerA
Read-onlyIdempotent
Inspect

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.

Inputs: market (required), decision_id (required), limit, query, +2 more. Returns: object

find_verified_supplierFind Verified SupplierA
Read-onlyIdempotent
Inspect

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.

Inputs: market (required), decision_id (required), gtin, lane, +2 more. Returns: object

gate_transactionGate TransactionA
Read-onlyIdempotent
Inspect

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.

Inputs: ship_to (required), actor_class (required), claims, channel, +4 more. Returns: object

get_availabilityGet AvailabilityB
Read-onlyIdempotent
Inspect

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

Inputs: gtin (required), decision_id (required), market. Returns: object

get_enforcement_watchGet Enforcement WatchB
Read-onlyIdempotent
Inspect

Recalls, withdrawals and food-safety alerts, dated: enforcement events by market, category, brand or since a date, each with its source page.

Inputs: query, since, market. Returns: object

get_itemGet ItemB
Read-onlyIdempotent
Inspect

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.

Inputs: gtin (required), market, decision_id. Returns: object

get_label_and_claimsGet Label And ClaimsB
Read-onlyIdempotent
Inspect

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.

Inputs: market (required), claims, product_type. Returns: object

get_market_statusGet Market StatusB
Read-onlyIdempotent
Inspect

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.

Inputs: market (required), product_type (required). Returns: object

get_notification_requirementsGet Notification RequirementsA
Read-onlyIdempotent
Inspect

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.

Inputs: market (required), product_type. Returns: object

get_priceGet PriceA
Read-onlyIdempotent
Inspect

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.

Inputs: gtin (required), decision_id (required), market. Returns: object

get_productGet ProductB
Read-onlyIdempotent
Inspect

Universal Commerce Protocol (UCP) product detail, version 2026-08-25 (dev.ucp.shopping.catalog.lookup). arguments: meta {'ucp-agent': {profile}} (required) and catalog {id: a GTIN or a variant id :; context; filters}. One product of the priced subset with its variants per market, list price and claim_status; outside the subset, ucp.status error and not_found.

Inputs: meta, catalog. Returns: object

get_product_documentsGet Product DocumentsB
Read-onlyIdempotent
Inspect

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.

Inputs: gtin (required), decision_id (required), market. Returns: object

log_auditLog AuditBInspect

Write a line to the audit record for a gate decision, an order intent or a handoff (returns the line id).

Inputs: kind (required), reference_id (required), note. Returns: object

lookup_catalogLookup CatalogA
Read-onlyIdempotent
Inspect

Universal Commerce Protocol (UCP) catalogue lookup, version 2026-08-25 (dev.ucp.shopping.catalog.lookup). arguments: meta {'ucp-agent': {profile}} (required) and catalog {ids: product ids (GTIN) or variant ids (:), up to 50; context; filters}. Found rows come back as products with their claim_status; an id outside the priced subset answers an info not_found message.

Inputs: meta, catalog. Returns: object

resolve_actorResolve ActorA
Read-onlyIdempotent
Inspect

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.

Inputs: actor_class (required), credential. Returns: object

resolve_jurisdictionResolve JurisdictionA
Read-onlyIdempotent
Inspect

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.

Inputs: ship_to (required). Returns: object

search_catalogSearch CatalogA
Read-onlyIdempotent
Inspect

Universal Commerce Protocol (UCP) catalogue search, version 2026-08-25 (dev.ucp.shopping.catalog.search). arguments: meta {'ucp-agent': {profile}} (required) and catalog {query, context {address_country}, filters {categories, price {min, max} in minor units}, pagination {limit, cursor}}. Serves the priced subset: rows whose maker's list price is on the record (claimed seats with a listed price), keyed by GTIN, each with its claim_status. Every other row stays on search_cleared_items.

Inputs: meta, catalog. Returns: object

search_cleared_itemsSearch Cleared ItemsA
Read-onlyIdempotent
Inspect

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.

Inputs: market (required), lane, limit, query, +4 more. Returns: object

verify_gtinVerify GtinA
Read-onlyIdempotent
Inspect

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.

Inputs: gtin (required). Returns: object

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      An MCP server that automates B2B deal matching: publish supply/demand, AI-driven cruise matching, and agent-based negotiation, with real-time notifications and reputation tracking.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables informal market traders and buyers to share live inventory and demand, find compatible matches for surplus or time-sensitive stock, and draft offers or purchase requests for human approval, with payment and pickup handled offline.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables autonomous agricultural market arbitrage analysis by combining live mandi prices, weather covariates, routing, spoilage physics, policy retrieval, and statutory warehouse-credit execution through a multi-agent pipeline with human approval.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.