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 AM
변경됨
costo_spedizione
2026년 9월 25일 2:51 AM
변경됨
sede_del_negozio
2026년 9월 25일 2:51 AM
변경됨
elenco_categorie
2026년 9월 25일 2:51 AM
변경됨
spiega_regola
2026년 9월 25일 2:51 AM
변경됨
calcola_costo_totale
2026년 9월 25일 2:51 AM
추가됨
costo_totale_dal_negozio
2026년 9월 17일 12:41 PM
추가됨
costo_spedizione
2026년 9월 17일 12:41 PM
추가됨
sede_del_negozio
2026년 9월 17일 12:41 PM
추가됨
elenco_categorie
2026년 9월 17일 12:41 PM
추가됨
spiega_regola
2026년 9월 17일 12:41 PM
추가됨
calcola_costo_totale
2026년 9월 17일 12:41 PM