A2A Grocery — the agentic hub for retail grocery procurement

io.github.greencore-solutionsPublished by GitHub account greencore-solutionsv1.3.0Updated Oct 26, 2026

A2A Grocery — the agentic commerce hub for retail grocery, at its original address

The publisher's own server: agentic.no

VerifiedStreamable HTTPWeb executableFinanceSecurity & MonitoringBusiness & Commerce

Overview

AI-generated overview

B2B grocery procurement hub that lets an assistant check market rules, gate a transaction, find cleared SKUs, buyers and suppliers, and hand off orders…

What you can do
  • Resolve the ship-to market and the actor class, then gate a transaction with an allow or deny reason code
  • Search, retrieve, verify and compare cleared SKU records, labels, claims and product documents
  • Find verified buyer desks and suppliers for an item or category in a market
  • Read price and availability, create an order intent and hand off to a counterparty agent over A2A
  • Check market status, notification requirements and enforcement or recall events, and log audit lines
When to use it
For business-to-business grocery sourcing and selling across twenty markets, where an assistant must confirm that a product is cleared for a market and that the counterparty is licensed before quoting price, availability or an order. Also useful for label, claims and notification research per market.
Requirements
Remote streamable-HTTP endpoint; no local install. Reads are open, but transacting tools need a client-credentials Bearer token from the issuer a2a-registry.ai with scope grocery.transact. Product facts are served live from gtinfetch.ai, and order intents settle via x402.
Before you install
The transacting tools require an OAuth client-credentials token from a third-party issuer. Order intents settle by x402 payment in USDC on Base, so real money can move. log_audit writes audit lines, and create_order_intent and a2a_handoff act on the counterparty's side. Product data and signatures come from an external resolver, and the server states that AI makes mistakes and that it is not a recommendation.

Installation

In SourceWeft

  1. Open A2A Grocery — the agentic hub for retail grocery procurement in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.greencore-solutions%2Fcpg-knowledge-graph/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "a2a-grocery-the-agentic-hub-for-retail-g": {
      "type": "http",
      "url": "https://mcp.cpgknowledgegraph.ai/mcp"
    }
  }
}

README

A2A Grocery — the agentic hub for retail grocery procurement

Powered by SCHEMA algo for grocery agentic commerce

Agent-to-Agent (A2A) + Model Context Protocol (MCP) hub for retail grocery. Business to business: makers, brand owners, private label, distributors, importers, retailers and their AI agents. Twenty markets on the SCHEMA algo grocery record; ambient, chilled, frozen and fresh; organic, free-from, plant-based, artisan, origin and premium lanes. Call resolve_jurisdiction, then resolve_actor, then gate_transaction before any availability, price, documents, order or handoff tool; those tools refuse without an allow decision. Every record field carries its source page; every response carries notice; every record carries claim_status (listed · claimed · verified). Artificial intelligence makes mistakes. A2A Grocery is an agentic information source, not a recommendation. No ads, ever. No rank for sale. Trade only.

A2A Grocery is built and run by GreenCore Solutions Corp. (github.com/greencore-solutions). This is the public connect kit, MIT.

The door

streamable-HTTP, stateless, server name `a2a-grocery`, door version 1.0.0, 19 tools (read from the wire 2026-10-02) Product facts on this hub are served live from gtinfetch.ai, the GTIN resolver for AI agents; every answer carries its source page, date read and gtinfetch’s signature. Paid resolves at x402.gtinfetch.ai.
  • Endpoint: https://mcp.a2a-grocery.ai/mcp — any client that speaks streamable-HTTP: { "url": "https://mcp.a2a-grocery.ai/mcp", "transport": "streamable-http" }
  • A2A 0.3.0 JSON-RPC: https://a2a-grocery.ai/a2a (the hub) and https://<country code>.a2a-grocery.ai/a2a (one market agent per market, for example fr.a2a-grocery.ai for France)
  • Agent Card: https://a2a-grocery.ai/.well-known/agent-card.json (ES256, kid a2ag-2026-10; keyring /.well-known/jwks.json)
  • Setup: https://a2a-grocery.ai/setup · Docs: https://a2a-grocery.ai/docs · Support: https://a2a-grocery.ai/support
  • Official MCP Registry: io.github.greencore-solutions/a2a-grocery (server.json in this repo)

The twenty markets

Europe: France, Germany, Italy, Spain, Poland, UK, Netherlands, Belgium, Switzerland. Americas: United States, Canada, Mexico, Brazil. Asia-Pacific: Japan, South Korea, India, Vietnam, Thailand, Singapore, Australia. Every market is a jurisdiction on the record from day one, on one of fourteen rule sets (the seven European Union markets share one food-law set with national riders).

The gate

Three calls before any price: resolve_jurisdiction → resolve_actor → gate_transaction. 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 tools

  • Gate — resolve_jurisdiction, resolve_actor, gate_transaction
  • SKUs — search_cleared_items, get_item, verify_gtin, get_label_and_claims, compare_items
  • Chains — find_verified_buyer, find_verified_supplier
  • HITL (the auditor and documents lane) — get_product_documents, log_audit
  • Economics — get_price, get_availability, create_order_intent, a2a_handoff
  • Acts — get_market_status, get_notification_requirements, get_enforcement_watch

Reads are open. The transacting tools take a client-credentials Bearer from the issuer, https://a2a-registry.ai (register at /oauth/register; scope grocery.transact; see https://a2a-grocery.ai/auth.md).

Two worked prompts

Buy side — "Find cleared organic dry pasta suppliers for a discounter in Germany, with certificates and availability."

Sell side — "Which retail buyer desks in France take artisan chilled products, and what does each market require on the label?"

Examples

Stock clients, no adapter: examples/aws_strands.py · examples/azure_semantic_kernel.py · examples/google_genai.py · examples/generic_mcp_client.py; A2A: examples/a2a_aws_strands.py · examples/a2a_azure_agent_framework.py · examples/a2a_google_sdk.py.

Search words

grocery · retail grocery · procurement · supplier · buyer · private label · GTIN · discounter · supermarket · speciality foods · organic · cleared · orderable · AI agent · agent-to-agent · 20 markets · SCHEMA algo · A2A Grocery · agentic hub · Estate AI Agent · GSC Agentic Core

Pay on it

x402 on https://a2a-x402.ai (USDC on Base, settlement after the gate; a refused order intent is not settled and not charged). Front door: https://a2a-pay.ai.

Contact

[email protected] — the registry contact for every listing this hub files. A person reads the form at https://a2a-grocery.ai/support.

Built and run by GreenCore Solutions Corp. Artificial intelligence makes mistakes. A2A Grocery is an agentic information source, not a recommendation. No ads, ever. No rank for sale. Trade only.

Source: README.md at commit 02c0fd1

Tools

19

resolve_jurisdiction

Resolve Jurisdiction

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.

Parametersship_torequired

resolve_actor

Resolve Actor

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.

Parameterscredentialactor_classrequired

gate_transaction

Gate Transaction

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.

Parametersclaimschannelproductship_torequiredcredentialactor_classrequiredingredientsproduct_type

search_cleared_items

Search Cleared Items

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.

Parameterslanelimitquerymarketrequireddepartmentdecision_idtemperatureproduct_type

get_item

Get Item

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.

Parametersgtinrequiredmarketdecision_id

verify_gtin

Verify Gtin

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.

Parametersgtinrequired

get_label_and_claims

Get Label And Claims

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.

Parametersclaimsmarketrequiredproduct_type

compare_items

Compare Items

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

Parametersgtinsrequiredmarketdecision_id

find_verified_buyer

Find Verified Buyer

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.

Parameterslimitquerymarketrequiredchanneldepartmentdecision_idrequired

find_verified_supplier

Find Verified Supplier

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.

Parametersgtinlanelimitquerymarketrequireddecision_idrequired

get_product_documents

Get Product Documents

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.

Parametersgtinrequiredmarketdecision_idrequired

log_audit

Log Audit

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

Parameterskindrequirednotereference_idrequired

get_price

Get Price

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.

Parametersgtinrequiredmarketdecision_idrequired

get_availability

Get Availability

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

Parametersgtinrequiredmarketdecision_idrequired

create_order_intent

Create Order Intent

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.

Parametersgtinrequiredmarketship_toquantityrequireddecision_idrequired

a2a_handoff

A2A Handoff

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.

Parametersintent_iddecision_idcounterparty_card_url

get_market_status

Get Market Status

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.

Parametersmarketrequiredproduct_typerequired

get_notification_requirements

Get Notification Requirements

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.

Parametersmarketrequiredproduct_type

get_enforcement_watch

Get Enforcement Watch

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

Parametersquerysincemarket

Version history

6
  1. v1.3.0LatestOct 5, 2026
  2. v1.2.4Sep 17, 2026
  3. v1.2.3Sep 17, 2026
  4. v1.2.2Sep 17, 2026
  5. v1.2.1Sep 16, 2026
  6. v1.1.1Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Agentic integrations