Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Shippo in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
AnythingMCP is listed in Claude's connector directory: add it to Claude in one click (opens in a new tab), then sign in and choose which MCP servers Claude may use.
Summary
Let your AI handle shipping through Shippo: validate addresses, compare live rates from your carriers, buy and refund labels, track parcels, prepare customs paperwork and create scan forms. Test mode is free.
Try asking
Example prompts for Shippo
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Shippo, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Shippo + Claude
Let your AI handle shipping through Shippo: validate addresses, compare live rates from your carriers, buy and refund labels, track parcels, prepare customs paperwork and create scan forms. Test mode is free.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
SHIPPO_API_TOKEN
Step 1 — Get credentials
- Sign up for a free Shippo account at apps.goshippo.com/join, then open the API portal at portal.goshippo.com/api-config/api and go to API Configuration → Developer keys.
- Click Create new test key to try everything for free, or Create new live key to buy real labels. Copy the key right away: Shippo shows it only once. Test keys start with
shippo_test_, live keys withshippo_live_. - Paste the key into
SHIPPO_API_TOKENexactly as shown, without the word ShippoToken, then install the connector. - Start with
shippo_list_carrier_accounts: it should list Shippo's own carrier accounts (for example USPS), which are ready to use in the US, along with the carrier names thatshippo_get_trackingexpects.
Test or live: the key decides. With a test key labels are free and watermarked "SAMPLE - DO NOT MAIL", tracking numbers never update, refunds always succeed, and manifests (scan forms) are not available. A test key sees only test data and a live key only live data. Carrier accounts you connect in Shippo with your own carrier credentials work only in the mode in which they were added.
Buying a label costs money: with a live key, shippo_buy_label charges the label price (plus any insurance) to your Shippo account at once, so the AI first names the carrier, service, price and both addresses and waits for your yes. shippo_create_shipment only fetches live rates and buys nothing. The label link expires after a while; shippo_get_label returns a fresh one. shippo_request_refund voids a label, which can then no longer be used, and asks the carrier for the money back. Only unused labels up to 90 days old qualify, and the refund takes days to weeks.
Permissions and read-only setup: a key can do everything your Shippo account can. For a setup that never spends money or voids labels, disable shippo_buy_label, shippo_request_refund and shippo_create_manifest. The AI can then still validate addresses, compare rates, track parcels and look up past labels.
International shipments: they need a customs declaration. The AI creates one line per product with shippo_create_customs_item (description, quantity, net weight, value, origin country, tariff number), then shippo_create_customs_declaration with a signer who certifies the data, and attaches it to the shipment. Have the tariff numbers and values of your products at hand.
Address validation: shippo_validate_address saves the checked, standardized address (for example with the ZIP+4 code) as a new address and leaves the original as it was; shipments then go to the new one. With a test key, addresses outside the US come back unchecked; with a live key, validating them is charged.
Limits: per minute Shippo allows 500 creates and 4,000 reads of single objects, but only 50 list calls (10 with a test key). Over a limit Shippo answers 429: wait a minute and try again.
Common errors: 401 Token does not exist means the key is wrong or was deleted: create a new one under API Configuration → Developer keys and paste it without the word ShippoToken. 400 names the field that is missing or invalid, for example an address the carrier rejects. 422, or a label with status ERROR, means the carrier refused, for example because the service does not cover that route or customs data is missing; the messages say why. A label or refund that comes back as QUEUED or WAITING is still being processed: ask again a few seconds later.
The connector does not handle batches, orders, pickups, webhooks other than tracking registration, or connecting your own carrier accounts.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Claude
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Recommended path: works on claude.ai web without editing any config file.
- In Claude, open Customize → Connectors.
- Click +, then Add custom connector.
- Enter a name, e.g.
Shippo, and the remote MCP server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID, then click Add. - Click Connect and sign in to AnythingMCP (OAuth) to allow access.
All tools below appear in your chat: start typing prompts.
Available tools
| Tool | What it does |
|---|---|
shippo_create_address | Save an address, optionally validated |
shippo_get_address | Read a saved address by object_id, with its fields, completeness and any validation results |
shippo_validate_address | Validate a saved address |
shippo_list_addresses | List saved addresses, newest first, with next and previous page links |
shippo_create_parcel | Save a parcel (dimensions and weight, or a carrier parcel template plus weight) |
shippo_get_parcel | Read a saved parcel by object_id: dimensions, weight, units and template |
shippo_list_parcel_templates | List carrier parcel templates (flat rate boxes and envelopes): token, name, carrier and dimensions |
shippo_create_shipment | Create a shipment and get live rates from the account's carriers |
shippo_get_shipment | Read a shipment with its addresses, parcels, rates and messages |
shippo_list_shipments | List shipments, newest first, with status and addresses (Shippo keeps the last 390 days) |
shippo_list_shipment_rates | List the rates of a shipment again (the same rates[] shippo_create_shipment returned), with paging |
shippo_get_rate | Read one rate: amount, currency, provider, service level, estimated days, duration terms and zone |
shippo_buy_label | Buy a shipping label for a rate |
shippo_list_labels | List purchased labels (transactions), newest first, with status, tracking number and tracking status |
shippo_get_label | Read one purchased label (transaction): status, tracking number and status, ETA, a fresh label_url and commercial invoice URL, and messages |
shippo_get_tracking | Read the tracking status and history of a parcel by carrier and tracking number, for labels bought anywhere |
shippo_register_tracking | Register a tracking number for status updates, which Shippo then sends to the account's "track updated" webhook (set up in the Shippo… |
shippo_list_carrier_accounts | List the carrier accounts usable for rates and labels: object_id, carrier, account_id, active, whether it is a Shippo-provided account, and… |
shippo_get_carrier_account | Read one carrier account by object_id: carrier, account number, active flag and parameters |
shippo_create_customs_item | Create a customs item (one line of a customs declaration) |
shippo_get_customs_item | Read a customs item by object_id: description, quantity, weight, value, origin and tariff number |
shippo_create_customs_declaration | Create a customs declaration for an international shipment from customs items |
shippo_get_customs_declaration | Read a customs declaration by object_id, with its items, contents type, incoterm and signer |
shippo_list_customs_declarations | List customs declarations, newest first, with contents type, items and certification details |
shippo_request_refund | Void a purchased label and ask for its price back |
shippo_list_refunds | List label refunds with their status (QUEUED, PENDING, SUCCESS, ERROR) and the label they belong to |
shippo_get_refund | Read one label refund by object_id: status, label (transaction) and dates |
shippo_create_manifest | Create a manifest (scan form) for a carrier pickup: one document listing the labels of one carrier account, ship date and origin address |
shippo_list_manifests | List manifests (scan forms), newest first, with carrier account, ship date, status and documents |
shippo_get_manifest | Read one manifest (scan form) with its status, the labels on it, document URLs and errors |
Example prompts
- "Compare UPS and USPS rates for a 2 kg parcel (30 x 20 x 15 cm) from our saved warehouse address to 350 5th Ave, New York, NY 10118, and show me the cheapest and the fastest option."
- "Where is the parcel with USPS tracking number 9400111899223197428490 right now, and when is it expected to arrive?"
- "Buy the cheapest USPS label for the Acme Ltd order going to 233 S Wacker Dr, Chicago, IL 60606, and give me the tracking number and the label link."
- "Prepare the customs paperwork for 3 ceramic mugs worth 45 USD in total going to a customer in Toronto, Canada, then show me the available rates."
FAQ
Does it work with Claude Code as well as Claude Desktop? Yes, point both at https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID.
Next steps
Was this guide helpful?