IFC India Import Duty & Landed Cost
Server Details
India import duty (BCD, SWS, AIDC, IGST) by HS code and China-to-India landed cost estimates.
- Status
- Healthy
- Uptime
- 99.4% over 15 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool has a distinct role: contact, CBM estimation, landed-cost estimation, exchange rates, HS-code search, and HS-code lookup. Search vs. lookup and CBM vs. landed-cost are related but descriptions clearly separate their inputs and outputs.
All names use snake_case with verb-first patterns such as contact_ifc, estimate_*, get_*, lookup_*, and search_*. The convention is consistent and readable across the entire set.
Six tools fit the narrow China-to-India import duty and landed-cost domain without obvious redundancy. Each tool serves a distinct step in the estimation workflow.
The set covers finding HS codes, retrieving duty profiles, exchange rates, CBM approximation, landed-cost estimation, and contact escalation. A minor gap is that estimate_landed_cost does not explicitly take an HS code or product, so exact duty calculation may rely on undocumented inference or manual confirmation.
Available Tools
6 toolscontact_ifcGet a confirmed quote from IFCARead-onlyIdempotentInspect
Returns how to contact IFC - Imports From China (WhatsApp, calculator, website) for a confirmed China to India shipping and customs clearance quote.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value beyond them by disclosing the return content (contact channels: WhatsApp, calculator, website), which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the purpose and the payload are stated immediately, and the parenthetical efficiently enumerates the returned channels.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only retrieval with rich annotations and no output schema, the description adequately covers what the agent needs: the action, the vendor, and the returned contact methods. Minor gap: it doesn't say whether the returned details are static or refreshed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies a no-input invocation by describing only a returned result, with no parameter semantics needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns how to contact IFC - Imports From China'. It also names the concrete channels returned (WhatsApp, calculator, website), so an agent knows exactly what comes back. It doesn't explicitly contrast itself with siblings like estimate_landed_cost, but the purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a confirmed China to India shipping and customs clearance quote' implies the trigger condition, distinguishing it implicitly from estimate_landed_cost's estimated quote. However, no explicit when-to-use/when-not statement or named alternative is given, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_cbm_from_weightEstimate shipment volume (CBM) from weightARead-onlyIdempotentInspect
Gives an approximate shipping volume in cubic metres (CBM) for goods from China from their total gross weight and product type. Use it when the buyer knows the weight but not the CBM. Approximate idea only: if the buyer has the exact CBM from the supplier (packing list), that should be used instead.
| Name | Required | Description | Default |
|---|---|---|---|
| cartons | No | Optional number of cartons; improves the estimate | |
| hs_code | No | Optional Indian HS code (2 to 8 digits) to help pick the product category | |
| product | No | Product name or type, e.g. office chairs, LED lights, garments, bluetooth speakers | |
| weight_kg | Yes | Total gross weight in kg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context by flagging the result as approximate and clarifying it is a fallback to authoritative packing-list data. It does not, however, say anything about accuracy range or what happens when product/hs_code are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler; the output definition is front-loaded, followed by the usage condition and then the exclusion. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only estimator with no output schema, the description covers purpose, inputs and the fallback rule adequately. The only gap is that it doesn't characterize the return value (e.g. whether it returns just a number or also a matched category/confidence), which would help since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters, including that cartons 'improves the estimate' and hs_code's 2-to-8-digit format. The description restates weight and product type but adds no syntax or format detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (estimates) and resource (shipping volume in CBM), plus the two inputs it derives from (gross weight and product type) and the geographic scope (goods from China). This is clearly distinguishable from siblings like estimate_landed_cost or lookup_hs_code without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the triggering condition ('when the buyer knows the weight but not the CBM') and the when-not-to-use case with the preferred alternative ('if the buyer has the exact CBM from the supplier (packing list), that should be used instead'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_landed_costEstimate China to India landed costARead-onlyIdempotentInspect
Estimates the door-to-door landed cost in INR of importing goods from China to India with IFC: invoice value, IFC freight/clearance/delivery, insurance, customs duties (BCD, SWS, AIDC) and IGST, using the same engine as the calculator on importsfromchina.com. Estimate only; IFC confirms the final quote. Give weight_kg, cbm or both. If one is not known, leave it out and IFC uses an approximate figure for it (approx idea only; use the exact values from the supplier if available).
| Name | Required | Description | Default |
|---|---|---|---|
| cbm | No | Total volume in cubic metres. Optional: if left out, IFC estimates it from weight_kg and the product type. | |
| mode | No | sea | |
| cartons | No | Optional number of cartons (improves the CBM estimate when cbm is not given) | |
| hs_code | Yes | 8-digit Indian ITC-HS code | |
| currency | No | USD | |
| weight_kg | No | Total gross weight in kg. Optional if cbm is given (then an approximate weight is used). | |
| product_name | No | Optional product name for the cost sheet | |
| invoice_value | Yes | Supplier invoice value in the chosen currency |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds useful context beyond them: the estimate-only nature, the machine-authoritative caveat that IFC confirms the final quote, the shared engine with the online calculator, and the fallback approximation when weight or CBM is omitted. No auth/rate-limit detail, but those are not central here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then cost components, then the estimate caveat and input guidance. The component list is dense but informative; every sentence carries a fact an agent would otherwise have to infer. Slightly long but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description is appropriately complete: it outlines the returned cost components and the input fallback rules. It leaves mode default (sea), cartons, and hs_code semantics entirely to the schema, which is acceptable given the 75% coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are documented, but the description still adds meaning by explaining the weight_kg/cbm either-or relationship and the fallback approximation behavior, plus the recommendation to use supplier-exact values. This clarifies the optionality interplay beyond what the schema alone states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (estimates) and resource (door-to-door landed cost in INR for China-to-India imports) with a concrete cost breakdown (BCD, SWS, AIDC, IGST, freight, insurance). The scope is distinctive enough that an agent can distinguish it from estimate_cbm_from_weight, lookup_hs_code or get_exchange_rates without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: it is an estimate and 'IFC confirms the final quote', and it tells the agent how to supply weight_kg/cbm. It does not, however, name any alternative tool or state explicit when-not-to-use conditions, so it stops short of the 5-level routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exchange_ratesIFC exchange ratesARead-onlyIdempotentInspect
Returns the exchange rates IFC uses for landed-cost estimates (INR per unit of USD, CNY and INR).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds genuinely new behavioral context by disclosing the quote convention of the returned data (INR per unit of USD, CNY and INR), which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, and the core fact (what is returned and in what unit convention) is front-loaded. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return semantics, and it does specify the currencies and the per-unit quoting convention. It does not describe the response shape (e.g., map keyed by currency) or whether rates are static or periodically refreshed, which is a minor remaining gap for a zero-parameter getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. Schema coverage is 100% on an empty object, so no parameter detail is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the exchange rates') and scopes it to IFC's landed-cost estimates, which ties it to the sibling estimate_landed_cost. It stops short of explicitly distinguishing itself from siblings, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The link to 'landed-cost estimates' implies the context in which the tool is useful, but there is no explicit when-to-use statement, no prerequisite, and no mention of alternatives among the siblings. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_hs_codeLook up Indian import duty for an HS codeARead-onlyIdempotentInspect
Returns the Indian customs duty profile for an 8-digit ITC-HS code on goods imported from China: product description, Basic Customs Duty (BCD), Social Welfare Surcharge (SWS), Agriculture Infrastructure and Development Cess (AIDC), IGST, anti-dumping duty, minimum import price, import policy and compliance notes (BIS, WPC, FSSAI, EPR). Data maintained by IFC - Imports From China.
| Name | Required | Description | Default |
|---|---|---|---|
| hs_code | Yes | 8-digit Indian ITC-HS code, e.g. 85395200 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by enumerating exactly which duty components come back (BCD, SWS, AIDC, IGST, anti-dumping, MIP, policy, compliance notes) and naming the data maintainer, which is meaningful for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that opens with the verb and resource before listing returned fields. The long duty-component enumeration is justified because there is no output schema, and nothing in the sentence is filler or redundant with the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description supplies the scope, return contents and data provenance an agent needs. Minor gaps remain: it does not say what happens for an unknown or non-China-origin code, nor how current the duty rates are, both of which would matter for a compliance lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single hs_code parameter, and the schema already specifies the 8-digit ITC-HS pattern with an example. The description restates the domain constraint ('8-digit ITC-HS code') and adds the China-import scope, but contributes no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the Indian customs duty profile for an 8-digit ITC-HS code') and narrows the scope to goods imported from China. The 8-digit lookup framing separates it cleanly from search_hs_code, which implies keyword-based discovery, without the agent needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the scoping ('8-digit ITC-HS code', 'imported from China'), which does tell an agent it needs an exact code rather than a keyword. However, it never names search_hs_code as the tool to use when the code is unknown, nor estimate_landed_cost for downstream cost calculation, and states no exclusions (e.g. non-China origins are out of scope).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hs_codeFind the HS code for a productARead-onlyIdempotentInspect
Searches IFC's Indian import duty database by product words (e.g. "bluetooth speaker", "office chair") or by the first digits of an HS code, and returns up to 10 matching 8-digit codes with descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Product words or the start of an HS code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds value beyond that: it names the underlying data source (IFC's Indian import duty database), the result cap (up to 10 matches), and the returned unit (8-digit codes with descriptions). It stops short of describing ranking/relevance or what an empty result means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler: verb and data source first, then input modes, then output shape. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, no nested objects and no output schema, the description adequately covers input modes, data scope and return shape, and annotations cover the safety profile. Only minor gaps remain, such as result ordering or whether partial/no matches are possible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains the single parameter, so the baseline is 3. The description earns a bump by supplying concrete example queries ("bluetooth speaker", "office chair") that show the expected phrasing granularity, which the schema's terse 'Product words or the start of an HS code' does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: searches IFC's Indian import duty database for HS codes, with two concrete input modes and the result shape (up to 10 matching 8-digit codes). It is clear what the tool does, but it never names or contrasts itself with the sibling lookup_hs_code, which is the natural point of confusion for an agent choosing between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by enumerating the two acceptable query forms (product words such as "bluetooth speaker", or the leading digits of an HS code), which is genuine guidance on how to invoke it. However it gives no explicit when-to-use/when-not conditions and does not point to lookup_hs_code or estimate_landed_cost as alternatives, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
estimate_landed_cost2 fields changed- changed
Input schema / properties / weight_kg / descriptionPrevious value: -"Total gross weight in kg"New value: +"Total gross weight in kg. Optional if cbm is given (then an approximate weight is used)." - changed
Input schema / requiredPrevious value: -[ - "hs_code", - "invoice_value", - "weight_kg" -]New value: +[ + "hs_code", + "invoice_value" +]
2 tool updates
- Added
estimate_cbm_from_weight - Changed
estimate_landed_cost3 fields changed- added
Input schema / properties / cartonsAdded value: +{ + "description": "Optional number of cartons (improves the CBM estimate when cbm is not given)", + "minimum": 0, + "type": "number" +} - changed
Input schema / properties / cbm / descriptionPrevious value: -"Total volume in cubic metres"New value: +"Total volume in cubic metres. Optional: if left out, IFC estimates it from weight_kg and the product type." - changed
Input schema / requiredPrevious value: -[ - "hs_code", - "invoice_value", - "cbm", - "weight_kg" -]New value: +[ + "hs_code", + "invoice_value", + "weight_kg" +]
5 tool updates
- First observed
contact_ifc - First observed
estimate_landed_cost - First observed
get_exchange_rates - First observed
lookup_hs_code - First observed
search_hs_code
Related MCP Connectors
Free landed cost estimates and import requirements for US businesses buying from China.
UK import duty, landed cost, anti-dumping and compliance checks for China-sourced goods.
Landed cost, fees & profit calculators for cross-border Amazon, TikTok Shop and Shopify sellers.
Find HS codes and UK/US import duty rates for goods. $0.004/call via x402.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceCalculates estimated import duties, taxes, and customs clearance rules for overseas purchases, with all tools being read-only and operating without external API calls.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search Chinese HS commodity codes, retrieve detailed tariff and regulatory information, and calculate import taxes using 2026 import/export tariff data.MIT
- AlicenseAqualityCmaintenanceLive US import tariff calculator covering 19,856 HTS codes, allowing AI to look up stacked tariff rates and project the November 10, 2026 cliff impact on any product.21,151 npmMIT
- AlicenseNot gradedqualityDmaintenanceIndian HSN/GST code lookup by description (4,676 entries)MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.