protogrid

Search / io.github.greencore-solutions/a2a-retailmedia

A2A Retailmedia — the agentic retail-media hub for grocery

R0· no sign-in

Connecting grocery retail to 350k makers for media buys.

v1.0.2 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality79good
Trust97of 100
Uptime, 30 days100%
Latency p50530 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "a2a-retailmedia": {
      "type": "http",
      "url": "https://mcp.a2a-retailmedia.ai/mcp"
    }
  }
}
claude mcp add --transport http a2a-retailmedia https://mcp.a2a-retailmedia.ai/mcp
[mcp_servers.a2a-retailmedia]
url = "https://mcp.a2a-retailmedia.ai/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "a2a-retailmedia": {
      "type": "remote",
      "url": "https://mcp.a2a-retailmedia.ai/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "a2a-retailmedia": {
      "type": "http",
      "url": "https://mcp.a2a-retailmedia.ai/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=a2a-retailmedia&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmEyYS1yZXRhaWxtZWRpYS5haS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "a2a-retailmedia": {
      "type": "http",
      "url": "https://mcp.a2a-retailmedia.ai/mcp"
    }
  }
}
{
  "mcpServers": {
    "a2a-retailmedia": {
      "httpUrl": "https://mcp.a2a-retailmedia.ai/mcp"
    }
  }
}
extensions:
  "a2a-retailmedia":
    enabled: true
    name: "a2a-retailmedia"
    type: streamable_http
    uri: "https://mcp.a2a-retailmedia.ai/mcp"
    timeout: 300

Quality 79 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations19 of 19 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,203 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes25 tool changes in 30 days
  • fail
    stability.rug_pull2 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

19 tools, about 2,203 tokens to load them all · tool set f3a0858edeba · tools last changed 2026-10-20 · checked 2026-10-20 17:34 UTC

Tool changes

  • get_banner_cardchangeddescription
    before

    The signed card of one banner and its status (unclaimed, claimed or registered). banner = the banner's slug, id or name.

    after · 79% of words in common

    The signed card of one banner and its status (listed · claimed · verified). banner = the banner's slug, id or name.

  • resolve_gtinchangeddescription
    before

    Confirm the product is real: is this Global Trade Item Number (GTIN) well-formed, and is it on the grocery record, with its brand and maker. Read live from the A2A Grocery door.

    after · 73% of words in common

    Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. Confirm the product is real: is this Global Trade Item Number (GTIN) well-formed, and is it on the grocery record, with its brand and maker. Read live from the A2A Grocery door.

  • enrol_makerchangedinput schema, output schema
  • log_auditchangedinput schema, output schema
  • renew_packagechangedinput schema, output schema
  • pull_measurementchangedinput schema, output schema
  • a2a_handoffchangedinput schema, output schema
  • receive_demandchangedinput schema, output schema
  • submit_demandchangedinput schema, output schema
  • find_buyerchangedinput schema, output schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-16d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.a2a-retailmedia.ai/mcp streamable-httpnoneyes100%530 ms2026-07-282026-10-20

Tools (19)

a2a_handoffread-onlyHand to a person: the state of a handoff and its Navigator desk ticket, where the media program has no agent.
check_eligibilityread-onlyConfirm it is on the shelf: does the grocery record list this GTIN at this banner in this market? No listing, no media pitch. Read live from the A2A Grocery door.
enrol_makerMakers: be seen. Enrol a maker for media exposure in grocery: its name, its markets (one or more of the 20), the tick, and a contact a person can answer. Enrolment only — a handoff waits for a budget a person has approved.
find_buyerread-onlyQualify the buyer: find a maker on the grocery record by name, with its own website where the record has one.
find_makersread-onlyFind the brand: makers on the grocery record of one market (node = one of the 20 markets). segment is taken as a lane where it names one (organic, free-from, plant-based, artisan, origin, premium). Read live from the A2A Grocery door.
gate_transactionThe gate before a handshake: allow or deny for one market and one actor class. Returns a decision_id the handshake tools ask for. A deny is not charged.
get_banner_cardread-onlyThe signed card of one banner and its status (listed · claimed · verified). banner = the banner's slug, id or name.
list_banner_cardsread-onlyThe cards of one market, optionally by status (unclaimed, claimed, registered): banner, media program, status and the card's address.
list_bannersread-onlyPick the banners: the grocery banners of one market with each one's media program (or "none listed") and card status. with_program=true returns only banners with a program listed.
list_packagesread-onlyMatch a package: what one banner's media program says it sells, in the program's own words, each tagged onsite, offsite or in-store. Offsite is tagged so it is never taken for a shelf slot. Empty where no program is listed — the agent stops.
log_auditWrite one audit line for a step of the chain; returns its id.
pull_measurementread-onlyRead the till: results of a campaign, returned by the retailer's program. Available only after the program returns a campaign id for a handoff.
quote_packageread-onlyPrice it: returns where the banner's own media program publishes its rates or takes an enquiry. GSC never prices; a quote comes from the retailer's program.
receive_demandRetailer side: a registered program agent takes a qualified packet. Only a card in the registered state can receive; any other card is refused and nothing is charged.
renew_packageRenew: a prior quote id from the retailer's program and a new approved budget. Without a quote id from the program there is nothing to renew.
resolve_actorread-onlyWho is asking? maker, brand_owner, agency, distributor or retailer_media_team (trade); auditor (read only). The consumer is never the counterparty.
resolve_gtinread-onlyProduct record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. Confirm the product is real: is this Global Trade Item Number (GTIN) well-formed, and is it on the grocery record, with its brand and maker. Read live from the A2A Grocery door.
resolve_jurisdictionread-onlyWhere is the media bought? Resolve a market (e.g. FR, UK, US, Japan) to one of the 20 markets on the record. UK is the label; GB is accepted.
submit_demandHand off: the packet — the maker, a budget a person has approved, one or more GTINs, a market and a list of banners — or a gap naming what is missing. Routes each banner by its card status: unclaimed is a referral, claimed goes to the retailer's media team, registered goes agent to agent. Settles at the door.

Schemas: list_tools.

Similar MCP servers

More from io.github.greencore-solutions

And 3 more from this publisher.

Official server.json
{
  "name": "io.github.greencore-solutions/a2a-retailmedia",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "x402": "https://a2a-retailmedia.ai/api",
      "setup": "https://a2a-retailmedia.ai/docs#door",
      "terms": "https://gsc-em.com/legal",
      "title": "A2A Retailmedia — the agentic retail-media hub for grocery",
      "tools": 19,
      "health": "https://mcp.a2a-retailmedia.ai/health.json",
      "notice": "Artificial intelligence makes mistakes. A2A Retailmedia is an agentic information source, not a recommendation. No ads, ever. No rank for sale. Trade only.",
      "contact": "[email protected]",
      "privacy": "https://gsc-em.com/privacy",
      "support": "https://gsc-em.com/#contact",
      "line_two": "Connecting grocery retail to 350k makers for media buys. Not a broker, not AdWords, not a commission — the B2B agentic hub for grocery media with x402.",
      "publisher": "GreenCore Solutions Corp.",
      "transport": "streamable-http",
      "agent_card": "https://a2a-retailmedia.ai/.well-known/agent-card.json",
      "card_index": "https://a2a-retailmedia.ai/agents/index.json",
      "description": "Connecting grocery retail to 350k makers for media buys. Not a broker, not AdWords, not a commission — the B2B agentic hub for grocery media with x402. A2A Retailmedia is operated by GreenCore Solutions Corp.: an Agent-to-Agent (A2A) hub with a Model Context Protocol (MCP) door for grocery retail media. The retailer is the seller of media and the maker's agent is the buyer. Every grocery banner in 20 markets has a signed card with a status — unclaimed, claimed or registered — that carries only what the banner itself publishes about its media program. GreenCore Solutions Corp. owns no inventory, runs no auction, makes no creative and quotes no price. Reads are open. Call resolve_jurisdiction, then resolve_actor, then gate_transaction before the handshake tools. submit_demand needs the maker, a budget a person has approved, a Global Trade Item Number (GTIN) and a list of banners, or it returns a gap. Artificial intelligence makes mistakes. A2A Retailmedia is an agentic information source, not a recommendation. No ads, ever. No rank for sale. Trade only.",
      "documentation": "https://a2a-retailmedia.ai/docs",
      "publisher_url": "https://gsc-em.com"
    }
  },
  "icons": [
    {
      "src": "https://a2a-retailmedia.ai/favicon.svg",
      "sizes": [
        "any"
      ],
      "theme": "light",
      "mimeType": "image/svg+xml"
    },
    {
      "src": "https://a2a-retailmedia.ai/favicon-512.png",
      "sizes": [
        "512x512"
      ],
      "theme": "light",
      "mimeType": "image/png"
    }
  ],
  "title": "A2A Retailmedia — the agentic retail-media hub for grocery",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.a2a-retailmedia.ai/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.2",
  "repository": {
    "url": "https://github.com/greencore-solutions/a2a-retailmedia",
    "source": "github"
  },
  "websiteUrl": "https://a2a-retailmedia.ai",
  "description": "Connecting grocery retail to 350k makers for media buys."
}