Japan Logistics MCP 🇯🇵 — How can my AI agent ship a parcel in Japan (Yamato / Sagawa / Japan Post via Ship&co)?
Use it in 60 seconds
Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):
{
"mcpServers": {
"japan-logistics": {
"type": "http",
"url": "https://logi-jp.wishpool.app/mcp"
}
}
}
Nothing to install. Credentials, when you need them, travel as HTTP headers on each request and are never stored — see the threat model.
Or run it yourself
Would you rather not send production credentials to a server you do not control? Deploy this identical code to your own account and point your agent at your own URL:
git clone https://github.com/junter1989k-ai/japan-logistics-mcp && cd japan-logistics-mcp && npx vercel --prod
MIT-licensed. Self-hosting removes us from the picture entirely, at no cost and with no loss of function.
Remote MCP server that lets any AI agent ship parcels in Japan — over Yamato (ヤマト運輸), Sagawa (佐川急便), Japan Post (日本郵便) and Seino (西濃運輸), plus international DHL / UPS / FedEx — through the Ship&co shipping API. Estimate carrier rates, create a shipment and its label in one call, track parcels and void labels. Stateless, bring-your-own Ship&co API token, never stores anything.
Live endpoint: https://logi-jp.wishpool.app/mcp · Registry: app.wishpool/japan-logistics-mcp
Quick start
{
"mcpServers": {
"japan-logistics": {
"type": "http",
"url": "https://logi-jp.wishpool.app/mcp",
"headers": {
"x-shipandco-token": "your_shipandco_api_token"
}
}
}
}
No shared demo — use your own Ship&co account. Get an API token self-serve in the Ship&co Dashboard (API menu → Create New Token) and send it in the header above. The server is stateless: on every call it forwards the token to api.shipandco.com as the x-access-token header and stores nothing.
No carrier contract needed for test mode
create_shipment defaults to test:true, which prints a free, non-billable virtual label end-to-end. Yamato and Sagawa need no extra carrier account for test mode — an agent can validate the whole flow with no carrier contract. Set test:false to buy a real billable label.
Tools
| Tool | What it does |
|---|---|
get_rates | Estimate rates before creating a label (read-only, spends nothing). from_address, to_address, weight (grams) and products → available carrier services with amount (JPY), cheapest flagged. /rates quotes carriers registered in your Ship&co account. |
create_shipment | Create a shipment and issue the label in one call. carrier (yamato/sagawa/japanpost/seino/dhl/ups/fedex) + from_address + to_address + weight + products. Returns shipment_id, carrier, tracking_number(s), label_url (PDF). test defaults true (free); test:false buys a real label. |
query_tracking | Track by carrier + tracking_number. Status enum (Ship&co): collected / transit / out_for_delivery / delivered / exception / returned, each with a plain-English hint; non-terminal statuses carry next_steps. Raw current status + history always included. |
void_label | Void/cancel a shipment + label by shipment_id. TEST labels always; real labels only before pickup. |
Owner policy guardrails ride optional headers (x-agentpay-max-amount, x-agentpay-approval-above, x-agentpay-allowed-tools) — set by the human owner in client config; the agent cannot relax them. The declared goods value (JPY) is gated before the label is created: approval-above returns an unsigned draft with no label created.
Units & addresses
Weight in grams (g), parcel dimensions in centimetres (cm), money in JPY. Japanese addresses use a 7-digit postal code (郵便番号), prefecture (都道府県) and city/ward (市区町村).
Develop
node test/serve.js # local server on :3252 (/mcp)
node test/e2e.js # protocol + schema + validation + policy/shipandco units + CORS + fake-token live probe to api.shipandco.com (expects native Ship&co 403 auth error)
How it talks to Ship&co
Base URL https://api.shipandco.com/v1, auth header x-access-token. create_shipment is POST /shipments (creates the shipment and the label in one call → delivery.label PDF + delivery.tracking_numbers). get_rates is POST /rates. query_tracking is GET /tracking/{carrier}/{tracking_number}. void_label is DELETE /shipments/{id}. Test labels are requested with setup.test:true.
Safety
Pure stateless translation layer. Shipments, labels and tracking are held by Ship&co and the carriers; the API token travels per-request in a header, is forwarded as the x-access-token header, and nothing is stored. Parcels flow sender ↔ carrier ↔ recipient directly. Privacy policy.
Sister servers
USA labels (USPS/UPS/FedEx) via EasyPost in usa-logistics-mcp; Indonesia (JNE/J&T/SiCepat) via Biteship in indonesia-logistics-mcp; Taiwan CVS pickup + home delivery in taiwan-logistics-mcp. One family of stateless BYO local-commerce MCP servers: local payments in 81 countries at mcp.wishpool.app and electronic invoicing at inv.wishpool.app.
MIT licensed.