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

A
Description quality
100%
Schema completeness
99%
Naming quality
100%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin track_shipment

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~755Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (0.59% of 128k context)

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-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools