Plain Freight
All-in DDP quotes for China to USA shipments, 100 g to 2,000 kg, from a live rate card
Should I use this
Quality & Safety
Findings (2)
- HIGH
- MEDIUMin track_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": {
"quotes": {
"url": "https://plainfreight.com/api/mcp"
}
}
}Remote endpoints
https://plainfreight.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢generate_offer(product, weight_kg, dimensions, origin, destination_zip, ...)
Get an all-in DDP offer (freight, US customs clearance, duties, and US door delivery in one USD number) for a shipment from China to the USA, 100 g to 2,000 kg. Prices come from Plain Freight's live pricing engine. Provide dimensions when known: for light bulky cargo volumetric weight governs the price. After this returns, an async agent double-checks the shipment; call check_offer_status with the quote_id to pick up its verdict, extra questions, or a needs_review flag.
Input Schema
{
"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 in China"
},
"destination_zip": {
"type": "string",
"description": "US destination ZIP code"
},
"urgency": {
"type": "string",
"enum": [
"Not urgent",
"Need best balance of cost and speed",
"Urgent"
]
},
"email": {
"type": "string",
"description": "The user's email. The written offer is mailed there once the check settles (one offer email per address per day), and replying to it is how they book. Optional, but without it no one can follow up."
},
"name": {
"type": "string",
"description": "Customer name"
},
"company": {
"type": "string",
"description": "Customer company"
},
"notes": {
"type": "string",
"description": "HS code, FBA requirements, delivery constraints, certifications held"
}
},
"required": [
"product",
"weight_kg"
]
}🟢check_offer_status(quote_id)
Poll a generated offer until the async agent check settles. Returns settled (true once the check finished), possibly updated options and summary text, follow-up questions whose answers change the price or customs channel, and needs_review. If needs_review is true the prices are withheld on purpose: the goods look restricted (batteries, food, chemicals) and a human must clear them first. Tell the user Plain Freight will follow up by email; do not present a number. Branded goods are never held; they are priced on the branded channel.
Input Schema
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote_id returned by generate_offer"
}
},
"required": [
"quote_id"
]
}🟢track_shipment(tracking_link)
Read the live tracking record for a booked shipment. Requires 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: to change a booking or ask a question, email [email protected] and include the shipment reference.
Input Schema
{
"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"
]
}Community
Evidence