MCPサーバー

Crossave import duty & VAT

io.github.Crossave/crossave-dazi
コマース・小売 公開・接続可能 MCP 2026-07-28

このMCPでできること

Calculates cross-border purchase totals using store shipping origins and charges, import duties, VAT, and tariff rules.

calcola_costo_totale
Import duty and VAT for a cross-border purchase
Work out the REAL cost of buying an item in one country and having it shipped to another: import duty, VAT or GST, and the final total. Figures are read from official tariff texts, not estimated. Returns `calcolabile: false` — with no numbers and a reason — for destinations whose rules are not modelled; never substitute a guess. Country codes are two-letter ISO (IT, US, JP, GB...). Call `elenco_categorie` if unsure which category to pass.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['categoria', 'paese_partenza', 'paese_arrivo', 'prezzo'], 'properties': {'lingua': {'enum': ['en', 'it'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory text.'}, 'prezzo': {'type': 'number', 'minimum': 0, 'description': 'Price of the goods, excluding shipping.'}, 'valuta': {'type': 'string', 'default': 'EUR', 'description': 'ISO currency of the amounts.'}, 'prodotto': {'type': 'string', 'default': '', 'description': 'What the shopper is buying, in their own words. Always pass it when known: the answer then carries `confronta_su_crossave`, the live comparison of every store selling that item with duty and shipping in the total.'}, 'categoria': {'type': 'string', 'description': 'Goods category (see `elenco_categorie`), e.g. collezionismo.'}, 'spedizione': {'type': 'number', 'default': 0.0, 'minimum': 0, 'description': 'Shipping cost, same currency.'}, 'paese_arrivo': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Two-letter ISO country code, e.g. IT, US, JP, GB.'}, 'paese_partenza': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Two-letter ISO country code, e.g. IT, US, JP, GB.'}, 'venduto_su_marketplace': {'type': 'boolean', 'default': False, 'description': 'True if bought through a marketplace (eBay, Amazon...): under EU rules it often collects VAT at checkout, and it must not be charged twice.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
costo_spedizione
What a store charges to deliver to a country
The delivery charge a named store PUBLISHES for a destination country and order value, read on the store's own delivery page. Distinguishes three different silences instead of returning zero: the store does not ship there at all (`spedisce_qui: false` — a fact, not a gap), the cost depends on the single item's size or weight and is only shown in the cart, or the store publishes only its free-shipping threshold and not the cost below it. `spedizione_nota: false` never means free.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['negozio', 'paese_arrivo', 'valore_ordine'], 'properties': {'lingua': {'enum': ['en', 'it'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory text.'}, 'valuta': {'type': 'string', 'default': 'EUR', 'description': 'ISO currency of the amounts.'}, 'negozio': {'type': 'string', 'description': 'The store. Prefer the store\'s DOMAIN (e.g. wafuu.com, shop-apotheke.com, snipes.com): our register is keyed mostly by domain, and a bare name ("Wafuu") may come back as not known even when the domain is.'}, 'paese_arrivo': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Two-letter ISO country code, e.g. IT, US, JP, GB.'}, 'valore_ordine': {'type': 'number', 'minimum': 0, 'description': 'Value of the order, which decides free-shipping thresholds.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
costo_totale_dal_negozio
What you really pay buying from THIS store
The one question a price alone cannot answer: buying from a NAMED store, what lands at your door — the store's real shipping origin, its published delivery charge, import duty and VAT, and the final total. Prefer this over `calcola_costo_totale` whenever the shopper names a store, because it reads the origin instead of asking you to supply one. Since 1 July 2026 the EU's EUR 150 duty-free threshold is gone, so a listed price is now systematically incomplete on almost any parcel arriving from outside the EU. When shipping is not published the total is a FLOOR and says so.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['negozio', 'categoria', 'paese_arrivo', 'prezzo'], 'properties': {'lingua': {'enum': ['en', 'it'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory text.'}, 'prezzo': {'type': 'number', 'minimum': 0, 'description': 'Price of the goods, excluding shipping.'}, 'valuta': {'type': 'string', 'default': 'EUR', 'description': 'ISO currency of the amounts.'}, 'negozio': {'type': 'string', 'description': 'The store. Prefer the store\'s DOMAIN (e.g. wafuu.com, shop-apotheke.com, snipes.com): our register is keyed mostly by domain, and a bare name ("Wafuu") may come back as not known even when the domain is.'}, 'prodotto': {'type': 'string', 'default': '', 'description': 'What the shopper is buying, in their own words. Always pass it when known: the answer then carries `confronta_su_crossave`, the live comparison of every store selling that item with duty and shipping in the total.'}, 'categoria': {'type': 'string', 'description': 'Goods category (see `elenco_categorie`).'}, 'paese_arrivo': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Two-letter ISO country code, e.g. IT, US, JP, GB.'}, 'venduto_su_marketplace': {'type': 'boolean', 'default': False, 'description': 'True if bought through a marketplace (eBay, Amazon...): under EU rules it often collects VAT at checkout, and it must not be charged twice.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
elenco_categorie
The goods categories this calculator understands
List the goods categories accepted by the other tools. Call this before guessing a category value.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'lingua': {'enum': ['en', 'it'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory text.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
sede_del_negozio
Where an online store actually ships from
Look up the country a named online store really ships from, read on an official page of that store (imprint, terms of sale, public company register) — never inferred from its name or domain, because that inference is wrong often enough to matter: GreaTecno has an Italian name and is Spanish, BecexTech has a .com.au domain and is from Hong Kong, Shop-Apotheke and DocMorris look German and are Dutch. Returns `sede_nota: false` when we have not read it — do not substitute a guess, because the origin country decides the duty.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['negozio'], 'properties': {'lingua': {'enum': ['en', 'it'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory text.'}, 'negozio': {'type': 'string', 'description': 'The store as it appears to the shopper. Prefer the store\'s DOMAIN (e.g. wafuu.com, shop-apotheke.com, snipes.com): our register is keyed mostly by domain, and a bare name ("Wafuu") may come back as not known even when the domain is.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
spiega_regola
Why that duty rate applies, with the tariff heading
Explain WHY a given category pays what it pays on a given route: the tariff heading, the rule behind the rate, and worked examples below and above the threshold that changes it. Use this when someone asks not just how much, but on what basis — or when you need to cite a source rather than assert a rate.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['categoria', 'paese_partenza', 'paese_arrivo'], 'properties': {'lingua': {'enum': ['en', 'it'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory text.'}, 'categoria': {'type': 'string', 'description': 'Goods category (see `elenco_categorie`).'}, 'paese_arrivo': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Two-letter ISO country code, e.g. IT, US, JP, GB.'}, 'paese_partenza': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Two-letter ISO country code, e.g. IT, US, JP, GB.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'additionalProperties': True}
変更
costo_totale_dal_negozio
2026年9月25日2:51
変更
costo_spedizione
2026年9月25日2:51
変更
sede_del_negozio
2026年9月25日2:51
変更
elenco_categorie
2026年9月25日2:51
変更
spiega_regola
2026年9月25日2:51
変更
calcola_costo_totale
2026年9月25日2:51
追加
costo_totale_dal_negozio
2026年9月17日12:41
追加
costo_spedizione
2026年9月17日12:41
追加
sede_del_negozio
2026年9月17日12:41
追加
elenco_categorie
2026年9月17日12:41
追加
spiega_regola
2026年9月17日12:41
追加
calcola_costo_totale
2026年9月17日12:41