shippo_list_ carrier_ accountsList the carrier accounts connected to this Shippo account.
Rate a parcel across every connected carrier, buy the cheapest label, register the tracking number, and refund the ones that never shipped — from the Shippo account you connect.
PopMCPShippo
Every address, parcel, rate, label, refund, customs form, manifest and batch call the agent can make, plus the webhooks it can watch.
shippo_list_ carrier_ accountsList the carrier accounts connected to this Shippo account.
shippo_create_ batchCreate a batch to buy many labels at once.
shippo_create_ webhookRegister a webhook endpoint.
shippo_get_ batchRetrieve a batch by object_id, including its status and paginated batch_shipments.
shippo_list_ webhooksList all webhook endpoints registered on the account.
shippo_purchase_ batchPurchase all VALID labels in a batch.
shippo_create_ addressCreate an address object.
shippo_get_ addressRetrieve a single address by its object_id.
shippo_list_ addressesList all shipping addresses on the account, most recent first.
shippo_validate_ addressValidate a previously created address against carrier/USPS data.
shippo_create_ customs_ declarationCreate a customs declaration for an international shipment, then attach its object_id (or inline) as `customs_declaration` on the shipment.
shippo_create_ customs_ itemCreate a customs item (one line of an international shipment's contents).
shippo_create_ manifestCreate a manifest (end-of-day / SCAN form) that closes out labels for a carrier account on a given ship date.
shippo_create_ orderCreate an order in Shippo (e.g.
shippo_create_ parcelCreate a parcel (package dimensions + weight) used to generate rates.
shippo_create_ refundRequest a refund (void) of a purchased label.
shippo_create_ shipmentCreate a shipment and generate rates.
shippo_create_ transactionPurchase a shipping label.
shippo_get_ orderRetrieve a single order by object_id.
shippo_get_ rateRetrieve a single rate by object_id.
shippo_get_ shipmentRetrieve a single shipment by object_id, including its rates[].
shippo_get_ transactionRetrieve a single transaction (label) by object_id.
shippo_list_ ordersList orders (imported or created in Shippo), most recent first.
shippo_list_ parcelsList all parcel objects (package dimensions + weight), most recent first.
shippo_list_ shipment_ ratesList all rates generated for a shipment.
shippo_list_ shipmentsList all shipment objects, most recent first.
shippo_list_ transactionsList all transactions (purchased shipping labels), most recent first.
shippo_get_ tracking_ statusGet live tracking status for a tracking number.
shippo_register_ tracking_ numberRegister a tracking number so Shippo sends `track_updated` webhooks as its status changes.
shippo_create_ pickupSchedule a carrier pickup for already-purchased labels.
shippo_create_ carrier_ accountConnect your OWN carrier account (bring-your-own credentials).
shippo_get_ carrier_ accountRetrieve a single carrier account by object_id.
shippo_get_ carrier_ account_ registration_ statusGet the registration status for a Shippo-managed carrier account signup.
shippo_initiate_ carrier_ oauthBegin the OAuth carrier-connect flow (UPS, FedEx, etc.).
shippo_register_ carrier_ accountRegister a NEW Shippo-managed carrier account.
shippo_update_ carrier_ accountUpdate a carrier account (e.g.
shippo_add_ shipments_ to_ batchAdd shipments to an existing batch.
shippo_create_ user_ parcel_ templateCreate a saved (reusable) parcel template.
shippo_delete_ user_ parcel_ templateDelete a saved parcel template by object_id.
shippo_delete_ webhookDelete a webhook by object_id.
shippo_get_ user_ parcel_ templateRetrieve one of the account's saved parcel templates by object_id.
shippo_get_ webhookRetrieve a single webhook by object_id.
shippo_list_ user_ parcel_ templatesList the account's own saved parcel templates (custom reusable package sizes).
shippo_remove_ shipments_ from_ batchRemove shipments from a batch.
shippo_update_ user_ parcel_ templateUpdate a saved parcel template's name or dimensions.
shippo_update_ webhookUpdate a webhook's event, url, or active/test flags.
shippo_create_ live_ rateGet real-time shipping rates for a checkout (Rates at Checkout).
shippo_create_ service_ groupCreate a service group for Rates at Checkout.
shippo_create_ shippo_ accountPLATFORM/PARTNER feature: provision a managed Shippo sub-account under your platform.
shippo_delete_ default_ parcel_ templateClear the default parcel template used for Rates at Checkout.
shippo_delete_ service_ groupDelete a service group by object_id.
shippo_get_ default_ parcel_ templateGet the default parcel template used for Rates at Checkout when no parcel is supplied.
shippo_get_ shippo_ accountPLATFORM/PARTNER feature: retrieve a managed Shippo sub-account by object_id.
shippo_list_ service_ groupsList service groups (checkout shipping options that map service levels to a customer-facing method, e.g.
shippo_list_ shippo_ accountsPLATFORM/PARTNER feature: list the managed Shippo sub-accounts under your platform account.
shippo_update_ default_ parcel_ templateSet the default parcel template used for Rates at Checkout.
shippo_update_ service_ groupUpdate a service group.
shippo_update_ shippo_ accountPLATFORM/PARTNER feature: update a managed Shippo sub-account.
shippo_get_ customs_ declarationRetrieve a single customs declaration by object_id.
shippo_get_ customs_ itemRetrieve a single customs item by object_id.
shippo_get_ manifestRetrieve a single manifest by object_id.
shippo_get_ parcelRetrieve a single parcel by its object_id.
shippo_get_ refundRetrieve a single refund by object_id.
shippo_list_ customs_ declarationsList all customs declarations, most recent first.
shippo_list_ customs_ itemsList all customs items (line items describing international contents), most recent first.
shippo_list_ manifestsList all manifests (carrier end-of-day / SCAN forms), most recent first.
shippo_list_ refundsList all refunds, most recent first.
shippo_list_ shipment_ rates_ by_ currencyList a shipment's rates converted to a specific ISO-4217 currency (e.g.
shippo_get_ carrier_ parcel_ templateRetrieve a single carrier parcel template by its token (e.g.
shippo_list_ carrier_ parcel_ templatesList Shippo's built-in carrier parcel templates (standard carrier box/envelope sizes).
Credentials off one Shippo screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste your API Token, copied from the Shippo dashboard under API → API Keys. There is no OAuth popup, redirect URL or token refresh. The token is scoped to one Shippo account, so the server is locked to that account.
••••••••••••3f7aRead-only keeps the agent reading shipments, tracking and orders — rating a parcel needs a write. Full access adds those; keep approval on so buying a label, purchasing a batch or refunding postage waits for a yes.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Shippo credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Break down what we spent on labels last month by carrier account
shippo_list_transactionsok
Then just ask for the work
“Break down what we spent on labels last month by carrier account”
“Batch up today's unshipped orders and buy all the valid labels”
“Rate a 5 lb box from our warehouse to Berlin and buy the cheapest label”
“Which labels we bought last month are still in transit, and where are they”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Shippo behind an AI client.
The connect form asks for one field, API Token, and Shippo scopes that token to a single account, so the server is locked to it. Within that account the coverage is the full API: addresses, parcels, shipments and rate shopping, buying and refunding labels, tracking, customs, orders, manifests, pickups, batches, carrier accounts and webhooks. Authentication happens server-side over HTTPS, with the token sent as an Authorization: ShippoToken header. To hand the agent less than that, use PopMCP's access mode rather than the token.
Yes. Paste a test token — the one that starts with shippo_test_ — instead of your live token, and the connection behaves the same way without real labels being purchased. It is the cleanest way to watch an agent run create_shipment, list_shipment_rates and create_transaction end to end before you point it at live money. Swap in the live token from the same API Keys screen when you are satisfied.
This is the part of the Shippo API that trips people up. Rates do not exist on their own: create_shipment generates them, get_shipment returns them in its rates[] array, and list_shipment_rates enumerates them. Buying a label with create_transaction means passing one of those rate objects, so a from address, a to address and a parcel have to exist first — which is why create_parcel and create_address usually run ahead of it.
Yes, and it follows Shippo's own order of operations. create_customs_item builds each line of the contents, create_customs_declaration wraps those lines into a declaration, and the resulting object_id is then attached as customs_declaration on the shipment — either by reference or inline. Ask for the paperwork before you ask for international rates, or the shipment will rate without it.
Both. create_carrier_account connects a carrier where you bring your own credentials, and register_carrier_account sets up a new Shippo-managed one. For carriers that use an OAuth connect flow, such as UPS and FedEx, initiate_carrier_oauth starts it, and get_carrier_account_registration_status tells you where a Shippo-managed signup has got to. list_carrier_accounts shows what the account can currently rate against.
Yes. get_tracking_status returns live status for a tracking number on demand, and register_tracking_number tells Shippo to send track_updated webhooks as that parcel moves. On top of those, PopMCP watches webhook triggers for tracking status changed, parcel delivered, delivery problem, label purchased, label status changed, and both batch created and batch purchased, plus polled and change-detection triggers for new shipments, imported orders, refunds, manifests, new carrier accounts, customs declarations and saved addresses.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 70 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 30-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 70 here. A trigger is something PopMCP watches for you: 15 Shippo events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Shippo.
Launch a hosted MCP endpoint for Shippo, keep tool access under control, and start testing real workflow prompts right away.