Plain Freight
All-in DDP quotes for China to USA shipments, 100 g to 2,000 kg, from a live rate card
我該用這個嗎
品質與安全性
發現項目(2)
- HIGH
- MEDIUM在 track_shipment 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"quotes": {
"url": "https://plainfreight.com/api/mcp"
}
}
}遠端端點
https://plainfreight.com/api/mcpstreamable-http它能做什麼
工具清單
工具(5)
🟢estimate_price(weight_kg, product, carton_length_cm, carton_width_cm, carton_height_cm, ...)
Rough price estimate for shipping goods from China to a US address, 100 g to 2,000 kg. Records nothing, contacts no one and needs no email. Inputs: total weight, and optionally the product and carton sizes or total volume. Returns estimated door to door prices in USD for air (and sea from 100 kg chargeable weight), the chargeable weight used (the greater of actual weight and carton volume in cm3 / 6,000), transit estimates, and whether US import duty is included. Figures come from Plain Freight's pricing engine for densely packed goods, priced on the applicable rate; goods that need a review get no figure. The exact ZIP code, pickup city and cartons can move the price, so the result is an estimate, not an offer.
輸入結構描述
{
"type": "object",
"properties": {
"weight_kg": {
"type": "number",
"minimum": 0.1,
"maximum": 2000,
"description": "Total actual weight of the shipment in kg"
},
"product": {
"type": "string",
"description": "What is being shipped, in a few words (sets the goods rate)"
},
"carton_length_cm": {
"type": "number",
"description": "One carton's length in cm"
},
"carton_width_cm": {
"type": "number",
"description": "One carton's width in cm"
},
"carton_height_cm": {
"type": "number",
"description": "One carton's height in cm"
},
"carton_count": {
"type": "integer",
"minimum": 1,
"description": "Number of cartons of that size"
},
"total_cbm": {
"type": "number",
"description": "Total volume in cubic meters, if known instead of carton sizes"
}
},
"required": [
"weight_kg"
]
}輸出結構描述
{
"type": "object",
"properties": {
"estimate": {
"type": "boolean",
"description": "Always true: a rough figure, not an offer"
},
"chargeable_kg": {
"type": "number"
},
"actual_kg": {
"type": "number"
},
"volumetric_kg": {
"type": [
"number",
"null"
]
},
"priced_as": {
"type": "string",
"enum": [
"general",
"branded"
]
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"air",
"sea"
]
},
"label": {
"type": "string"
},
"estimate_usd": {
"type": "number",
"description": "Estimated price in USD for the whole shipment"
},
"per_kg_usd": {
"type": "number"
},
"transit": {
"type": "string"
},
"duty_included": {
"type": "boolean"
}
}
}
},
"goods": {
"type": "object",
"properties": {
"verdict": {
"type": "string",
"enum": [
"instant_offer",
"branded_rate",
"person_checks_first"
],
"description": "instant_offer: priced at once; branded_rate: priced at once on its applicable rate; person_checks_first: no price until a person reviews the goods"
},
"category": {
"type": [
"string",
"null"
]
},
"explanation": {
"type": "string"
},
"have_ready": {
"type": [
"string",
"null"
],
"description": "Documents or details the person will ask for"
}
}
},
"priced_on": {
"type": "string",
"description": "Date the pricing engine produced these figures"
},
"next_step": {
"type": "string"
},
"error": {
"type": "string"
}
}
}🟢check_goods(product)
Checks whether Plain Freight can ship a product from China to the US, and which documents it needs. Records nothing. Input: the product description. Returns a verdict: instant_offer or branded_rate (priced at once, each on its applicable rate) or person_checks_first (for example batteries, chemicals, food, cosmetics, seeds, vapes or weapons: a person reviews the goods before any price), with a plain explanation and the documents or details to have ready. It applies the same goods screen as Plain Freight's offers; it is not legal or customs advice.
輸入結構描述
{
"type": "object",
"properties": {
"product": {
"type": "string",
"description": "The product, in the user's words (materials and whether it has a battery help)"
}
},
"required": [
"product"
]
}輸出結構描述
{
"type": "object",
"properties": {
"verdict": {
"type": "string",
"enum": [
"instant_offer",
"branded_rate",
"person_checks_first"
],
"description": "instant_offer: priced at once; branded_rate: priced at once on its applicable rate; person_checks_first: no price until a person reviews the goods"
},
"category": {
"type": [
"string",
"null"
]
},
"explanation": {
"type": "string"
},
"have_ready": {
"type": [
"string",
"null"
],
"description": "Documents or details the person will ask for"
},
"next_step": {
"type": "string"
},
"error": {
"type": "string"
}
}
}🔴generate_offer(product, weight_kg, dimensions, origin, destination_zip, ...)
Prices a real shipment from China to a US address, 100 g to 2,000 kg, on Plain Freight's live pricing engine. Returns door to door prices in USD: each option covers freight, US customs clearance and delivery, and says whether US import duty is included (DDP) or paid at import. Carton dimensions affect the price: for light, bulky cargo the volumetric weight sets it. Side effects: each call records a separate quote request with Plain Freight, and if an email is given the written offer is emailed to that address once a second check settles (at most one offer email per address per day). Nothing is booked or charged. The result carries a quote_id, by which the second check's verdict can be read.
輸入結構描述
{
"type": "object",
"properties": {
"product": {
"type": "string",
"description": "What is being shipped, e.g. 'LED desk lamps, 500 units'"
},
"weight_kg": {
"type": "number",
"minimum": 0.1,
"maximum": 2000,
"description": "Total weight in kg (0.1 to 2000)"
},
"dimensions": {
"type": "string",
"description": "Cartons and size, e.g. '4 cartons, 60x40x35 cm each'"
},
"origin": {
"type": "string",
"description": "Pickup city or supplier's city in China"
},
"destination_zip": {
"type": "string",
"description": "US destination ZIP code of the shipment"
},
"urgency": {
"type": "string",
"enum": [
"Not urgent",
"Need best balance of cost and speed",
"Urgent"
]
},
"email": {
"type": "string",
"description": "Optional. Address the written offer is mailed to; replying to that email is one way to book."
},
"name": {
"type": "string",
"description": "Optional. The name to address the offer email to"
},
"notes": {
"type": "string",
"description": "Optional shipment facts: HS code, Amazon FBA requirements, delivery constraints, certifications held"
}
},
"required": [
"product",
"weight_kg"
]
}輸出結構描述
{
"type": "object",
"properties": {
"quote_id": {
"type": [
"string",
"null"
],
"description": "Reference for the offer's second check and for booking"
},
"needs_review": {
"type": "boolean",
"description": "true: prices withheld until a person clears the goods"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "air, sea or express"
},
"label": {
"type": "string"
},
"price": {
"type": "number",
"description": "Price in USD for the whole shipment"
},
"transit": {
"type": "string",
"description": "Door to door transit estimate"
},
"firm": {
"type": "boolean",
"description": "false means an estimate confirmed before booking"
},
"duties_included": {
"type": "boolean",
"description": "true when US import duty is inside the price (DDP); false when duty is paid to the government at import"
},
"includes": {
"type": "string",
"description": "Exactly what this price covers"
}
}
}
},
"summary": {
"type": "string"
},
"questions": {
"type": "array",
"items": {
"type": "string"
}
},
"valid_days": {
"type": "number"
},
"agent_review": {
"type": "string",
"enum": [
"pending",
"not_running"
]
},
"shipment": {
"type": "object",
"properties": {
"product": {
"type": "string"
},
"weight_kg": {
"type": "number"
},
"chargeable_kg": {
"type": "number",
"description": "weight the price is computed on: the greater of actual and volumetric weight"
},
"dimensions": {
"type": "string"
},
"destination_zip": {
"type": "string"
}
}
},
"book_url": {
"type": "string",
"description": "plainfreight.com booking form, prefilled with this shipment and quote"
},
"next_step": {
"type": "string"
},
"contact": {
"type": "string"
},
"error": {
"type": "string"
}
}
}🟢check_offer_status(quote_id)
Reads the result of the second check on a Plain Freight offer, by the offer's quote_id. Read-only. Returns settled (true once the check finished), possibly updated options and summary, follow-up questions whose answers change the price or customs channel, the offer email status, and needs_review. When needs_review is true, prices are withheld until a person at Plain Freight reviews the goods (for example batteries, food or chemicals), and Plain Freight follows up by email.
輸入結構描述
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote_id of a Plain Freight offer (a UUID)"
}
},
"required": [
"quote_id"
]
}輸出結構描述
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"settled": {
"type": "boolean"
},
"needs_review": {
"type": "boolean"
},
"text": {
"type": [
"string",
"null"
]
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "air, sea or express"
},
"label": {
"type": "string"
},
"price": {
"type": "number",
"description": "Price in USD for the whole shipment"
},
"transit": {
"type": "string",
"description": "Door to door transit estimate"
},
"firm": {
"type": "boolean",
"description": "false means an estimate confirmed before booking"
},
"duties_included": {
"type": "boolean",
"description": "true when US import duty is inside the price (DDP); false when duty is paid to the government at import"
},
"includes": {
"type": "string",
"description": "Exactly what this price covers"
}
}
}
},
"questions": {
"type": "array",
"items": {
"type": "string"
}
},
"email": {
"type": [
"string",
"null"
],
"description": "Offer email status: sent, queued, deferred, skipped or failed"
},
"error": {
"type": "string"
}
}
}🟢track_shipment(tracking_link)
Reads a booked Plain Freight shipment from its tracking link. Input: the tracking link from the booking email (https://plainfreight.com/track/<token>) or the bare token; the token is the credential, so only someone the customer shared the link with can read the record. Returns the shipment reference, the current stage on the 10-stage lifecycle (Booking through Delivered), shipment details and the dated event log. Read-only; changes to a booking go by email to [email protected] with the shipment reference.
輸入結構描述
{
"type": "object",
"properties": {
"tracking_link": {
"type": "string",
"description": "The tracking URL from the booking email (https://plainfreight.com/track/<token>), or the token by itself"
}
},
"required": [
"tracking_link"
]
}輸出結構描述
{
"type": "object",
"properties": {
"reference": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"status_label": {
"type": "string"
},
"stage": {
"type": [
"string",
"null"
],
"description": "e.g. '7 of 10'; null when cancelled"
},
"lifecycle": {
"type": "array",
"items": {
"type": "string"
}
},
"goods": {
"type": [
"string",
"null"
]
},
"origin_city": {
"type": [
"string",
"null"
]
},
"destination_city": {
"type": [
"string",
"null"
]
},
"weight_kg": {
"type": [
"number",
"null"
]
},
"carrier": {
"type": [
"string",
"null"
],
"description": "Shown only once the invoice is paid"
},
"tracking_number": {
"type": [
"string",
"null"
],
"description": "Shown only once the invoice is paid"
},
"updated_at": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"type": [
"string",
"null"
],
"description": "Lifecycle status the event belongs to"
},
"customer_note": {
"type": "string"
},
"happened_at": {
"type": "string"
}
}
}
},
"record_url": {
"type": "string"
},
"contact": {
"type": "string"
},
"error": {
"type": "string"
}
}
}社群
證據