Israeli customs duty by tariff code and origin, cited to the gazette. Pay per call via x402.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Every reading of the duty on one Israeli tariff line, with its dates and the gazette issue and page that set it. A temporary version overrides a permanent one while it applies; suppressions list windows in which permanent versions are hidden. HS tariff code: "07.10.210000", "0710210000" or the old 8-digit "07102100". Israel customs import duty read from the official gazette, by code only (no search by product name). Amounts are in ILS. A duty of kind ending in _bounded, or with a min or max, has a floor or cap (for example 12% but not less than 1.27 ILS/kg): a caller that ignores min and max will compute the wrong duty. purchase_tax and surcharge are the table's raw cells, not parsed. VAT is not included. Free trade agreement (preferential) rates are NOT included in the general-duty reading (preferential_rates_included is false); agreement_tags only names agreements mentioned on the line. status is "verified" when confidence is "high". An origin answer with a source-reviewed preferential option has status "options_only" (see get_tariff_line). Otherwise it is "needs_review" when confidence is "low" (review_reasons is non-empty): some gazette instruction touching the line could not be applied, the duty text could not be parsed, a check digit failed, or an annual amount reading needs its next update. annual_update_required means the annual general-duty reading has passed its verification year. A year-end valid_to before that held continuation is a source verification horizon, not a statutory expiry of the code or duty. The held continuation remains found:true; no earlier rate is substituted. For a general-rate needs_review line duty, purchase_tax and surcharge are null and the reading we have is in unverified_reading: do not rely on it, check the gazette issue and page in source. needs_review answers are not charged; a history containing any needs_review version is not charged. For get_tariff_history status and unverified_reading are on each element of versions, not on the top-level object. found:false NEVER means the duty is zero (a fully exempt line is found:true with duty.kind "free"): not_found.reason says whether the code is not in the tariff, is not yet in force, has ended, or has no applicable version on that date. Renumbering: replaced_by (for an ended code) and replaces (for a new code) list the other code(s), the date and the gazette issue and page, exactly as the gazette states them; kind is one_to_one, split (one old code, several new), merge (several old codes, one new) or group (a whole subtree was rewritten: the old code is replaced by that group of codes, not equal to any one of them). An ended code with no replaced_by has no successor stated in the gazette (not_found.successor says so); none is guessed. A suppression window means a temporary instruction stands in for the permanent codes, named in temporarily_replaced_by. The data runs through gazette issue data_through_issue, and history starts on 2017-01-01. Not legal or customs advice.
HS tariff code: "07.10.210000", "0710210000" or the old 8-digit "07102100".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http israel-customs-duty https://duty.tidymcp.com/mcp
Every reading of the duty on one Israeli tariff line, with its dates and the gazette issue and page that set it. A temporary version overrides a permanent one while it applies; suppressions list windows in which permanent versions are hidden. HS tariff code: "07.10.210000", "0710210000" or the old 8-digit "07102100". Israel customs import duty read from the official gazette, by code only (no search by product name). Amounts are in ILS. A duty of kind ending in _bounded, or with a min or max, has a floor or cap (for example 12% but not less than 1.27 ILS/kg): a caller that ignores min and max will compute the wrong duty. purchase_tax and surcharge are the table's raw cells, not parsed. VAT is not included. Free trade agreement (preferential) rates are NOT included in the general-duty reading (preferential_rates_included is false); agreement_tags only names agreements mentioned on the line. status is "verified" when confidence is "high". An origin answer with a source-reviewed preferential option has status "options_only" (see get_tariff_line). Otherwise it is "needs_review" when confidence is "low" (review_reasons is non-empty): some gazette instruction touching the line could not be applied, the duty text could not be parsed, a check digit failed, or an annual amount reading needs its next update. annual_update_required means the annual general-duty reading has passed its verification year. A year-end valid_to before that held continuation is a source verification horizon, not a statutory expiry of the code or duty. The held continuation remains found:true; no earlier rate is substituted. For a general-rate needs_review line duty, purchase_tax and surcharge are null and the reading we have is in unverified_reading: do not rely on it, check the gazette issue and page in source. needs_review answers are not charged; a history containing any needs_review version is not charged. For get_tariff_history status and unverified_reading are on each element of versions, not on the top-level object. found:false NEVER means the duty is zero (a fully exempt line is found:true with duty.kind "free"): not_found.reason says whether the code is not in the tariff, is not yet in force, has ended, or has no applicable version on that date. Renumbering: replaced_by (for an ended code) and replaces (for a new code) list the other code(s), the date and the gazette issue and page, exactly as the gazette states them; kind is one_to_one, split (one old code, several new), merge (several old codes, one new) or group (a whole subtree was rewritten: the old code is replaced by that group of codes, not equal to any one of them). An ended code with no replaced_by has no successor stated in the gazette (not_found.successor says so); none is guessed. A suppression window means a temporary instruction stands in for the permanent codes, named in temporarily_replaced_by. The data runs through gazette issue data_through_issue, and history starts on 2017-01-01. Not legal or customs advice.
| Argument | Type | Description |
|---|---|---|
| code* | string | HS tariff code: "07.10.210000", "0710210000" or the old 8-digit "07102100". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "HS tariff code: \"07.10.210000\", \"0710210000\" or the old 8-digit \"07102100\"."
}
}
}Look up the duty on one Israeli tariff line on a date. HS tariff code: "07.10.210000", "0710210000" or the old 8-digit "07102100". Israel customs import duty read from the official gazette, by code only (no search by product name). Amounts are in ILS. A duty of kind ending in _bounded, or with a min or max, has a floor or cap (for example 12% but not less than 1.27 ILS/kg): a caller that ignores min and max will compute the wrong duty. purchase_tax and surcharge are the table's raw cells, not parsed. VAT is not included. Free trade agreement (preferential) rates are NOT included in the general-duty reading (preferential_rates_included is false); agreement_tags only names agreements mentioned on the line. status is "verified" when confidence is "high". An origin answer with a source-reviewed preferential option has status "options_only" (see get_tariff_line). Otherwise it is "needs_review" when confidence is "low" (review_reasons is non-empty): some gazette instruction touching the line could not be applied, the duty text could not be parsed, a check digit failed, or an annual amount reading needs its next update. annual_update_required means the annual general-duty reading has passed its verification year. A year-end valid_to before that held continuation is a source verification horizon, not a statutory expiry of the code or duty. The held continuation remains found:true; no earlier rate is substituted. For a general-rate needs_review line duty, purchase_tax and surcharge are null and the reading we have is in unverified_reading: do not rely on it, check the gazette issue and page in source. needs_review answers are not charged; a history containing any needs_review version is not charged. For get_tariff_history status and unverified_reading are on each element of versions, not on the top-level object. found:false NEVER means the duty is zero (a fully exempt line is found:true with duty.kind "free"): not_found.reason says whether the code is not in the tariff, is not yet in force, has ended, or has no applicable version on that date. Renumbering: replaced_by (for an ended code) and replaces (for a new code) list the other code(s), the date and the gazette issue and page, exactly as the gazette states them; kind is one_to_one, split (one old code, several new), merge (several old codes, one new) or group (a whole subtree was rewritten: the old code is replaced by that group of codes, not equal to any one of them). An ended code with no replaced_by has no successor stated in the gazette (not_found.successor says so); none is guessed. A suppression window means a temporary instruction stands in for the permanent codes, named in temporarily_replaced_by. The data runs through gazette issue data_through_issue, and history starts on 2017-01-01. Not legal or customs advice. date is YYYY-MM-DD (default today in Israel). origin_country is the goods' ISO 3166-1 alpha-2 country of origin, not the shipping country. Origin-specific rates and quotas are conditional on eligibility and documentation; the country alone does not establish entitlement. The general_rate is the separate general reading; country_treatment lists sourced options and import levies. An origin-aware answer includes general_rate only when that reading needs review; request without origin for a verified general rate. conditional_duty_scenarios are hypothetical customs-duty components under stated assumptions, not payable or final duties; other measures remain separate. Scenarios require a country-scoped preference rule that requires qualifying origin; wildcard and no-origin rules remain options only. Canada preference rules carry an audit field marked withhold, so they remain options and do not produce scenarios. A matching preference coverage row with `complete` other than true or malformed/nonempty `review_reasons` suppresses a scenario and adds preference_coverage_unusable; missing coverage remains an unresolved assumption. An origin answer is charged only when the line is verified and it returns at least one source-reviewed preferential option with no overlapping or unverified preference, quota or levy rule, no failed quota audit and no unusable coverage (status "options_only"; confidence high means the options are source-reviewed, not that the shipment qualifies); it never asserts entitlement, quotas, levies or a final shipment duty, whose gaps stay in review_reasons. An origin answer with no such option is status needs_review and is not charged.
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
A very long tool description (over 4,000 characters) is hard to review and easy to hide instructions in.
Fix: Keep the description to what the tool does and when to use it; move reference material to resources or docs.
| Argument | Type | Description |
|---|---|---|
| code* | string | HS tariff code: "07.10.210000", "0710210000" or the old 8-digit "07102100". |
| date | string | YYYY-MM-DD, default today in Asia/Jerusalem |
| origin_country | string | Goods' country of origin, ISO 3166-1 alpha-2 (e.g. US), not shipping country |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "HS tariff code: \"07.10.210000\", \"0710210000\" or the old 8-digit \"07102100\"."
},
"date": {
"type": "string",
"description": "YYYY-MM-DD, default today in Asia/Jerusalem"
},
"origin_country": {
"type": "string",
"description": "Goods' country of origin, ISO 3166-1 alpha-2 (e.g. US), not shipping country"
}
}
}