MCP server: One MCP server.

Plain Freight

@plainfreightRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

All-in DDP quotes for China to USA shipments, 100 g to 2,000 kg, from a live rate card

Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

3 read2 other

Grouped by tool name. At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

5 · grouped by tool name · checked 8 Oct 2026

Read · 3Look things up

  • estimate_price
  • check_goods
  • check_offer_status

Other · 2Neither hinted nor named

  • generate_offer
  • track_shipment
Try it in the Inspector
README4 min read

Plain Freight MCP server

A hosted Model Context Protocol server that quotes real freight. Ask it what it costs to ship something from China to the United States and it returns an all-in delivered-duty-paid price from the same pricing engine a human customer is quoted from: freight, US customs clearance, import duty and delivery to a US door, in one number.

No API key. No signup. Nothing to install.

https://plainfreight.com/api/mcp

Transport is Streamable HTTP, stateless, protocol version 2025-06-18 (also accepts 2025-03-26 and 2024-11-05).

Add it to a client

Claude Code:

bash
claude mcp add --transport http plain-freight https://plainfreight.com/api/mcp

Claude Desktop, Cursor, or anything reading a JSON config:

json
{
  "mcpServers": {
    "plain-freight": {
      "type": "http",
      "url": "https://plainfreight.com/api/mcp"
    }
  }
}

Check it by hand:

bash
curl -s -X POST https://plainfreight.com/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools

Five tools. Only generate_offer records anything; the other four only read. No tool books or charges anything.

ToolWhat it does
estimate_priceA rough door to door cost in USD for air (and sea from 100 kg chargeable weight), from the same pricing engine. Needs weight_kg; product, carton sizes (carton_length_cm, carton_width_cm, carton_height_cm, carton_count) or total_cbm sharpen it. Returns 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. Records nothing, contacts no one, needs no email. Goods that need a person to review them get no figure.
check_goodsSays whether a product (product, in the user's words) is priced at once or reviewed by a person first (for example batteries, chemicals, food, cosmetics, seeds, vapes or weapons), with a plain explanation and what documents to have ready. Same screen as generate_offer, so it predicts what an offer will do. Records nothing. Not legal or customs advice.
generate_offerThe firm offer. Needs product and weight_kg (0.1 to 2000); dimensions, origin, destination_zip, urgency, email, name and notes all improve the answer. Pass carton sizes when you have them: for light bulky cargo the volumetric weight sets the price, not the scale weight. Each call records a quote request, and if an email is given the written offer is mailed there once the second check settles (at most one offer email per address per day). Returns the options, a quote_id and a link to a booking form on plainfreight.com prefilled with the shipment.
check_offer_statusPolls an offer by quote_id until settled is true. Every quote gets a second check, which can add follow-up questions, change the options, or set needs_review. Read-only.
track_shipmentReads the live record for a booked shipment from its tracking_link (https://plainfreight.com/track/<token>, or the bare token): current stage on the 10-stage lifecycle, route and dated events. Read-only.

Booking happens outside the chat: the user opens the prefilled booking form, replies to the offer email, or writes to hello@plainfreight.com quoting the quote_id. Nothing is paid before the goods are weighed at the warehouse.

Two behaviours worth knowing before you build on it:

  • needs_review means the prices are withheld on purpose. The goods look restricted (batteries, food, chemicals) and a person has to clear them first. Do not present a number to the user in that case; Plain Freight follows up by email.
  • The tracking token is the credential. Anyone holding the link can read that shipment, and the record deliberately excludes cost and margin fields.

Rate limits: 20 offers per hour per IP, 4 per email address, 30 across all agents per hour. For bulk or programmatic access, email hello@plainfreight.com.

There is also a plain REST version of the same pricing call at POST https://plainfreight.com/api/v1/offer, described in openapi.json, and human documentation at plainfreight.com/for-agents.

Published reference data

The same engine feeds three pages that are free to cite, with CSV and JSON where it makes sense:

The price-index data is also published as a dataset at plainfreight-com/china-usa-freight-price-index.

What Plain Freight is

A China to USA freight agency for small importers: one all-in DDP price on shipments from 100 g to 2,000 kg, quoted before pickup. Plain Freight is a trading name of Fisto LLC, a Wyoming limited liability company. The price does not include cargo insurance, which the customer arranges separately.

Questions, or a shipment that needs a human: hello@plainfreight.com

Licence

MIT for the contents of this repository. The MCP server itself is a live commercial service; using it means quoting real freight, so treat the prices as real.

Similar modules

Browse Customs & trade