ARVI Wine Catalog
REMOTE · MCP.ARVI.CH · SCANNED AUG 3
Swiss merchant ARVI SA: 27,000+ fine & rare wine labels, 300,000+ bottles ready to ship. No auth.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security60
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 6 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1355 tokens (~225/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.arvi.ch
claude mcp add --transport http ch-arvi-catalog https://mcp.arvi.ch/
[mcp_servers.ch-arvi-catalog] url = "https://mcp.arvi.ch/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ch-arvi-catalog": {
"type": "remote",
"url": "https://mcp.arvi.ch/",
"enabled": true
}
}
} openclaw mcp add ch-arvi-catalog --url https://mcp.arvi.ch/ --transport streamable-http
mcp_servers:
ch-arvi-catalog:
url: "https://mcp.arvi.ch/" {
"mcpServers": {
"ch-arvi-catalog": {
"type": "http",
"url": "https://mcp.arvi.ch/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.arvi.ch/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=arvi.ch | CN=WE1,O=Google Trust Services,C=US | 13 Jun 2026 | 11 Sept 2026 | ECDSA 256 | ECDSA-SHA256 | f3973a80cbe805780e8745f0d9bc6495 |
| SANs: arvi.ch, *.arvi.ch | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC secure
Validation of mcp.arvi.ch. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ch. | present | 58745 | 13 | Verified |
| arvi.ch. | present | 2371 | 13 | Verified |
| mcp.arvi.ch. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.arvi.ch/ | Verified | 200 | |
| http (plaintext) | http://mcp.arvi.ch/ | HTTPS enforced | 301 | https://mcp.arvi.ch/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
find_similar_products Alternatives to a product ~134
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Reference product id. |
| limit | integer | — | Max results per section. Default 8. |
| locale | string | — | Catalog language code. Defaults to 'en'. |
No output schema declared.
No examples provided.
get_catalog_facets Catalog overview (facets) ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| in_stock_only | boolean | — | Compute facets over available products only. Default true. |
| locale | string | — | Catalog language code. Defaults to 'en'. |
No output schema declared.
No examples provided.
get_product_details Get one product ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Product id from search results. |
| locale | string | — | Catalog language code. Optional. |
No output schema declared.
No examples provided.
get_shop_info About the shop ~93
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_wine_vintages Vintages & formats of one wine ~200
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | — | A product id of any vintage/format of the wine. |
| locale | string | — | Catalog language code. Defaults to 'en'. |
| query | string | — | Wine name, e.g. 'Sassicaia' (used if no id is given). |
No output schema declared.
No examples provided.
search_shop_catalog Search the ARVI wine catalog ~471
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | 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. 'Piedmo… |
| in_stock_only | boolean | — | Only products currently available. Default true. |
| limit | integer | — | Max results per page. Default 10. |
| locale | string | — | Catalog language code, e.g. 'en'. Defaults to 'en'. |
| max_price | number | — | Maximum price (CHF). |
| min_price | number | — | Minimum price (CHF). |
| offset | integer | — | Pagination offset. Default 0. |
| producer | string | — | Filter by producer / brand, e.g. 'Gaja'. |
| query | string | — | Free-text search over title, producer, category and description, e.g. 'Barolo 2019' or 'Sauternes'. |
| vintage | integer | — | Filter by vintage year, e.g. 2019. |
No output schema declared.
No examples provided.