Create Thailand Post shipments, print labels, and track parcels in Thailand via ProShip.
One address for any MCP client. No sign-in needed on this server.
5 read3 act3 other
Grouped by tool name. At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Stateless MCP (Model Context Protocol) server that lets any AI agent create Thailand Post shipments, print labels, and track parcels through ProShip.
POST https://mcp.proship.me/mcp (JSON-RPC 2.0, application/json)https://mcp.proship.me/mcp in a browser — the docs page is generated from the live tool registryAuthorization: Bearer <ProShip API token>, passed through verbatim to api.proship.me. Nothing is stored server-side. New users can call the public signup tool to get a token.Public: track_parcel, get_order_statuses, signup.
Authenticated: list_shops, create_order, list_orders, get_order, update_order_status, cancel_order, check_duplicate, print_label.
The browser docs page at /mcp is the canonical, always-current tool reference.
npm install
npm start # listens on PORT (default 3000)
npm test # node:test suite, upstream fully mocked
| Var | Purpose | Default |
|---|---|---|
PORT | listen port | 3000 |
PUBLIC_URL | absolute base used in label URLs and docs | https://mcp.proship.me |
PROSHIP_API_BASE | upstream API base | https://api.proship.me |
PROSHIP_UTRACK_TOKEN | optional server-side token enabling unauthenticated track_parcel | unset |
PROSHIP_SYNTH_EMAIL_DOMAIN | domain for synthesized signup emails | proship.me |
Fly.io app proship-mcp (region sin):
fly deploy # add --depot=false if the Depot builder fails
order-xxx|123). GET/PUT/DELETE strip the suffix internally; print_label requires the full id. Always pass the full id between tools.get_order_statuses); code 6 means out for delivery despite upstream labeling it "ERROR".print_label can return a URL.