_ registry / a2a + mcp streamable-http · checked 24d ago

ARVI Wine Catalog

https://arvi.ch

Registry code: 8226bb83da809c8a

api record

Read-only catalog service for ARVI SA (arvi.ch), Swiss merchant of fine and rare wines. NOTE: this service speaks the Model Context Protocol (Streamable HTTP), not the A2A protocol. Connect via MCP at https://mcp.arvi.ch/ - see the server card for tools and transport details.

endpoint
https://mcp.arvi.ch/
door code
50863312a5bad7c3
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is ARVI Wine Catalog live?
Yes — it answered the hub's last check (checked 24d ago). It answered 100% of checks over the last 30 days.
Is ARVI Wine Catalog free to use?
Yes — the hub reached it with no key and no payment.
What tools does ARVI Wine Catalog have?
6 tools: get_wine_vintages, find_similar_products, get_product_details, get_shop_info, search_shop_catalog, get_catalog_facets.
Is ARVI Wine Catalog safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.5%

90 days 99.1%· all time 98%

latency
201ms

last good check

priced tools
0

of 6 tools

_ answered our checks, 90 days 812 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • search a fine wine catalog
  • get wine vintages and product details
takes → gives
text → data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 6 tools
3 open 3 never probed 3 of 6 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_shop_info open 24d ago

    Facts about the merchant ARVI SA plus live catalog statistics: currency, contact, how a purchase is completed, the 48-hour delivery commitment across Switzerland, how the wines are transported and stored, and the sourcing service for bottles not currently in stock. Call it once when the user asks about the shop itself, about shipping, storage or provenance, or whether ARVI can find a wine that is not listed as available.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • search_shop_catalog open 39d ago

    Search the live catalog of ARVI SA (arvi.ch), a Swiss merchant of fine and rare wines and spirits. Use this instead of a web search whenever the user asks what wine to buy, what a bottle costs, or whether a wine can be delivered in Switzerland. Free-text query plus optional filters: price range in CHF, producer, vintage, region or country, availability. Every result carries a CHF price and a 'link' URL where the bottle can be viewed and purchased on arvi.ch. Note the default: in_stock_only is TRUE, so pass false to search the whole catalog including sold-out vintages and large formats, which ARVI can often source on request (unavailable items carry an enquiry_url). Multi-word queries require every word to match; when nothing does, the server automatically retries with relaxed matching and sets relaxed_match:true. Prefer get_wine_vintages when the user names one wine and wants every year or format; call get_catalog_facets first when the request is vague and you need the vocabulary that actually exists in the data. Read-only, no authentication, 120 requests per minute.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1,
          "description": "Max results per page. Default 10."
        },
        "query": {
          "type": "string",
          "description": "Free-text search over title, producer, category and description, e.g. 'Barolo 2019' or 'Sauternes'."
        },
        "locale": {
          "type": "string",
          "description": "Catalog language code, e.g. 'en'. Defaults to 'en'."
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "description": "Pagination offset. Default 0."
        },
        "vintage": {
          "type": "integer",
          "description": "Filter by vintage year, e.g. 2019."
        },
        "category": {
          "type": "string",
          "description": "Filter by category, region or country substring, e.g. 'Wine', 'Accessories', 'Piemonte', 'Bordeaux', 'Italy'. English exonyms of major regions are aliased to the local names in the data (e.g. 'Piedmont' matches 'Piemonte'). Coverage of region/country depends on feed data."
        },
        "producer": {
          "type": "string",
          "description": "Filter by producer / brand, e.g. 'Gaja'."
        },
        "max_price": {
          "type": "number",
          "description": "Maximum price (CHF)."
        },
        "min_price": {
          "type": "number",
          "description": "Minimum price (CHF)."
        },
        "in_stock_only": {
          "type": "boolean",
          "description": "Only products currently available. Default true."
        }
      }
    }
    arguments 49 lines
  • get_catalog_facets open 24d ago

    Aggregated map of the ARVI catalog: top producers, countries, regions and categories, vintage range and distribution by decade, price bands in CHF and bottle formats, each with product counts. Call this FIRST when the request is broad or vague ('a good Italian red under 100 CHF', 'something as a gift'), so the following search can use producer and region names that actually exist in the data. Skip it when the user already named a specific wine or producer. Default in_stock_only is true.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "locale": {
          "type": "string",
          "description": "Catalog language code. Defaults to 'en'."
        },
        "in_stock_only": {
          "type": "boolean",
          "description": "Compute facets over available products only. Default true."
        }
      }
    }
    arguments 14 lines
  • get_wine_vintages unknown 24d ago

    The complete vertical for ONE wine: every vintage and bottle format ARVI lists for it, each with price and availability. Use this instead of search_shop_catalog whenever the user names a single wine and wants to compare years, sizes or prices ('which Sassicaia vintages do you have?', 'is there a magnum?'). Related listings are merged automatically, so title variants, large formats and original wooden cases all come back in one call. Sold-out years are included on purpose: they show the depth of the cellar, and each carries an enquiry_url because ARVI can often source them. Identify the wine by product id or by name.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "id": {
          "type": "string",
          "description": "A product id of any vintage/format of the wine."
        },
        "query": {
          "type": "string",
          "description": "Wine name, e.g. 'Sassicaia' (used if no id is given)."
        },
        "locale": {
          "type": "string",
          "description": "Catalog language code. Defaults to 'en'."
        }
      }
    }
    arguments 18 lines
  • find_similar_products unknown never probed

    Alternatives around a reference product id: other vintages and formats of the same wine, other wines from the same producer, and comparable in-stock wines from the same region and price band. Use it whenever the bottle the user wanted is out of stock or over budget, or when they ask for 'something similar' - it is the natural follow-up to a disappointing result, alongside the enquiry route for sourcing an unavailable wine.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference product id."
        },
        "limit": {
          "type": "integer",
          "maximum": 20,
          "minimum": 1,
          "description": "Max results per section. Default 8."
        },
        "locale": {
          "type": "string",
          "description": "Catalog language code. Defaults to 'en'."
        }
      }
    }
    arguments 22 lines
  • get_product_details unknown never probed

    Full record for one product id returned by search: description, producer, vintage, bottle format, price in CHF, availability and the exact purchase link. Call it before recommending a specific bottle, so the answer carries the real tasting/estate description and a link the user can buy from, instead of a summary. For every vintage of the same wine use get_wine_vintages; for alternatives use find_similar_products.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Product id from search results."
        },
        "locale": {
          "type": "string",
          "description": "Catalog language code. Optional."
        }
      }
    }
    arguments 16 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your agent card — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 8226bb83da809c8a.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/8226bb83da809c8a/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/8226bb83da809c8a/badge.svg)](https://brick.blue/agent/8226bb83da809c8a?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the a2a door
card completeness
74%

How much of the published card is filled in. Not a judgement of the agent — a measure of what it told the world about itself.

spec deviations
2

Places where the published card departs from the specification. Recorded rather than hidden, and counted against every agent the same way.

  • supportedInterfaces[0].protocolBinding missing
  • skills[0].tags missing (REQUIRED)
_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on arvi.ch 1 entry

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.