Triplicate – export documents
Export invoices, packing list, SI from order data; HS codes; port codes; CBM; Incoterms prices.
Should I use this
Quality & Safety
Findings (1)
- LOWin calculate_shipment
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"triplicate": {
"url": "https://api.triplicatedocs.com/mcp"
}
}
}Remote endpoints
https://api.triplicatedocs.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢create_trade_documents(language, open_document, document, seller, buyer, ...)
Create a matching proforma invoice, commercial invoice, packing list and shipping instruction from one set of order data. Returns a link to Triplicate's free generator with everything filled in (the user reviews it and saves the PDF), plus totals (amount, cartons, net/gross weight, CBM) and checks (missing fields, HS code format, Incoterms freight/insurance consistency). Nothing is stored.
Input Schema
{
"type": "object",
"properties": {
"language": {
"type": "string",
"enum": [
"en",
"zh",
"ar",
"fr",
"es",
"pt",
"ru",
"tr",
"hi",
"ur",
"bn",
"id",
"vi",
"ja",
"ko"
],
"description": "Language of the generator page the link opens (documents are in English)",
"default": "en"
},
"open_document": {
"type": "string",
"enum": [
"pi",
"ci",
"pl",
"si"
],
"description": "pi proforma invoice, ci commercial invoice, pl packing list, si shipping instruction",
"default": "ci"
},
"document": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "Invoice number"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"po": {
"type": "string",
"description": "Buyer's PO / contract number"
},
"valid_days": {
"type": "number",
"description": "Proforma validity in days"
}
}
},
"seller": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string",
"description": "Full address, lines separated by \\n"
},
"tel": {
"type": "string"
},
"email": {
"type": "string"
},
"tax_id": {
"type": "string",
"description": "Tax / VAT / business registration number"
}
},
"required": [
"name"
],
"description": "Seller / shipper / exporter"
},
"buyer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string",
"description": "Full address, lines separated by \\n"
},
"tel": {
"type": "string"
},
"email": {
"type": "string"
},
"tax_id": {
"type": "string",
"description": "Tax / VAT / business registration number"
}
},
"required": [
"name"
],
"description": "Buyer / consignee / importer"
},
"notify": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
}
},
"description": "Notify party, if different from the buyer"
},
"terms": {
"type": "object",
"properties": {
"incoterm": {
"type": "string",
"enum": [
"EXW",
"FCA",
"FAS",
"FOB",
"CFR",
"CIF",
"CPT",
"CIP",
"DAP",
"DPU",
"DDP"
]
},
"place": {
"type": "string",
"description": "Named place, e.g. 'Busan' for FOB Busan"
},
"payment": {
"type": "string",
"description": "e.g. 'T/T 30% deposit, 70% before shipment'"
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"JPY",
"CNY",
"KRW",
"VND",
"AUD",
"CAD",
"CHF",
"HKD",
"SGD",
"INR",
"PKR",
"BDT",
"IDR",
"THB",
"MYR",
"PHP",
"AED",
"SAR",
"TRY",
"BRL",
"MXN",
"ZAR",
"NGN",
"KES",
"EGP"
]
}
}
},
"shipment": {
"type": "object",
"properties": {
"port_of_loading": {
"type": "string"
},
"port_of_discharge": {
"type": "string"
},
"vessel_or_flight": {
"type": "string"
},
"etd": {
"type": "string",
"description": "YYYY-MM-DD"
},
"country_of_origin": {
"type": "string"
}
}
},
"charges": {
"type": "object",
"properties": {
"freight": {
"type": "number"
},
"insurance": {
"type": "number"
},
"discount": {
"type": "number"
}
}
},
"items": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"hs_code": {
"type": "string"
},
"quantity": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"PCS",
"SETS",
"BOXES",
"PAIRS",
"KG",
"M"
]
},
"unit_price": {
"type": "number"
},
"pieces_per_carton": {
"type": "number"
},
"net_weight_per_carton_kg": {
"type": "number"
},
"gross_weight_per_carton_kg": {
"type": "number"
},
"carton_length_cm": {
"type": "number"
},
"carton_width_cm": {
"type": "number"
},
"carton_height_cm": {
"type": "number"
}
},
"required": [
"description",
"quantity"
]
}
},
"shipping_marks": {
"type": "string",
"description": "Optional; generated from buyer, destination and carton count if empty"
},
"remarks": {
"type": "string",
"description": "Optional remarks printed on the documents, e.g. 'SAMPLES OF NO COMMERCIAL VALUE, NOT FOR RESALE. VALUE FOR CUSTOMS PURPOSES ONLY.'"
},
"bank": {
"type": "object",
"properties": {
"bank_name": {
"type": "string"
},
"swift": {
"type": "string"
},
"account": {
"type": "string"
},
"beneficiary": {
"type": "string"
},
"bank_address": {
"type": "string"
}
}
},
"signer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"title": {
"type": "string"
}
}
}
},
"required": [
"seller",
"buyer",
"items"
]
}🟢lookup_hs_code(query, limit)
Search the HS 2022 nomenclature (6-digit international level) by English product description or by code prefix. Returns candidate codes with chapter and heading text. Codes are suggestions to confirm in the destination country's tariff, not rulings.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "English description (e.g. 'face cream', 'cotton t-shirts') or a code prefix (e.g. '3304')"
},
"limit": {
"type": "number",
"default": 8
}
},
"required": [
"query"
]
}🟢calculate_shipment(cartons)
From carton sizes, quantities and gross weights: total CBM, gross weight, air and express volumetric and chargeable weight, LCL revenue tons and which standard containers the volume fits.
Input Schema
{
"type": "object",
"properties": {
"cartons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"length_cm": {
"type": "number"
},
"width_cm": {
"type": "number"
},
"height_cm": {
"type": "number"
},
"quantity": {
"type": "number"
},
"gross_weight_kg": {
"type": "number",
"description": "Gross weight of ONE carton"
}
},
"required": [
"length_cm",
"width_cm",
"height_cm",
"quantity"
]
}
}
},
"required": [
"cartons"
]
}🟢calculate_export_price(quantity, unit_cost, markup_percent, currency, mode, ...)
Build an export quotation price from unit cost, markup and shipment costs: totals and per-unit prices under EXW, FCA, FOB/FCA terminal, CFR/CPT, CIF/CIP, DAP, DPU and DDP, with the insurance premium (110% basis), import duty and VAT, and for each rule a link that opens Triplicate's generator with a proforma invoice at that price.
Input Schema
{
"type": "object",
"properties": {
"quantity": {
"type": "number",
"description": "Units in the shipment"
},
"unit_cost": {
"type": "number",
"description": "Seller's cost per unit (product cost)"
},
"markup_percent": {
"type": "number",
"description": "Markup on cost, e.g. 25 for +25%",
"default": 0
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"JPY",
"CNY",
"KRW",
"VND",
"AUD",
"CAD",
"CHF",
"HKD",
"SGD",
"INR",
"PKR",
"BDT",
"IDR",
"THB",
"MYR",
"PHP",
"AED",
"SAR",
"TRY",
"BRL",
"MXN",
"ZAR",
"NGN",
"KES",
"EGP"
],
"default": "USD"
},
"mode": {
"type": "string",
"enum": [
"sea",
"any"
],
"description": "sea: FOB/CFR/CIF (loaded on board at a port); any: containers handed over at a terminal, air or road: FCA/CPT/CIP",
"default": "sea"
},
"costs": {
"type": "object",
"description": "Shipment totals in the same currency (omit what does not apply)",
"properties": {
"packing_loading": {
"type": "number",
"description": "Export packing and loading at the seller's premises"
},
"export_clearance": {
"type": "number",
"description": "Export customs clearance and documents"
},
"inland_to_port": {
"type": "number",
"description": "Transport to the port, airport or terminal"
},
"origin_terminal": {
"type": "number",
"description": "Terminal handling and loading at origin"
},
"main_freight": {
"type": "number",
"description": "Sea or air freight to the destination port/airport"
},
"insurance_rate_percent": {
"type": "number",
"description": "Cargo insurance rate in %; premium = rate x 110% x CIF/CIP value"
},
"destination_charges": {
"type": "number",
"description": "Destination terminal charges and delivery to the named place"
},
"unloading": {
"type": "number",
"description": "Unloading at the destination (DPU)"
},
"import_clearance": {
"type": "number",
"description": "Import customs clearance fees (DDP)"
},
"import_duty_percent": {
"type": "number"
},
"import_vat_percent": {
"type": "number",
"description": "Import VAT/GST %"
}
}
},
"duty_basis": {
"type": "string",
"enum": [
"cif",
"fob"
],
"description": "Customs value basis: cif (EU, UK, most countries) or fob (US, Canada, Australia)",
"default": "cif"
},
"include_vat_in_ddp": {
"type": "boolean",
"default": false
},
"language": {
"type": "string",
"enum": [
"en",
"zh",
"ar",
"fr",
"es",
"pt",
"ru",
"tr",
"hi",
"ur",
"bn",
"id",
"vi",
"ja",
"ko"
],
"default": "en",
"description": "Language of the generator page the proforma links open"
}
},
"required": [
"quantity",
"unit_cost"
]
}🟢lookup_port_code(query, country, type, limit)
Find the 5-character UN/LOCODE of a seaport, airport or inland container depot by place name (or check a code): returns code, name, country, subdivision, type and Triplicate's country page, for the port of loading or discharge on bookings, bills of lading and invoices. UN/LOCODE 2024-2, 37,000+ places.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Port, city or airport name in English (e.g. 'Haiphong', 'Jebel Ali', 'Busan'), or a 5-character UN/LOCODE (e.g. 'NLRTM')"
},
"country": {
"type": "string",
"description": "Optional 2-letter ISO country code to search in, e.g. 'VN'"
},
"type": {
"type": "string",
"enum": [
"port",
"airport",
"inland_depot"
],
"description": "Optional: only seaports, airports or inland container depots"
},
"limit": {
"type": "number",
"default": 8
}
},
"required": [
"query"
]
}🟢search_trade_guides(query, language, limit)
Search Triplicate's practical trade guides (over 50 notes in 15 languages, checked against official sources: cosmetics registration by country, US tariffs and refunds, EORI, certificates of origin, HS classification, Incoterms mistakes, letters of credit, dangerous goods, invoices and packing lists) and tool guides. Returns titles, page links and excerpts to cite.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Question or topic in any of the 15 site languages, e.g. 'EORI number for UK imports', 'sheet mask HS code', 'CIF insurance 110%'"
},
"language": {
"type": "string",
"enum": [
"en",
"zh",
"ar",
"fr",
"es",
"pt",
"ru",
"tr",
"hi",
"ur",
"bn",
"id",
"vi",
"ja",
"ko"
],
"description": "Optional: language of the guides to search (detected from the query otherwise)"
},
"limit": {
"type": "number",
"default": 5
}
},
"required": [
"query"
]
}Community
Evidence