100+ integrations are ready to connect to your AI.Connect your first MCP

Shippo MCP server for your AI

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

Break down what we spent on labels last month by carrier account

Supported Shippo tools

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_accounts

List the carrier accounts connected to this Shippo account.

shippo_create_batch

Create a batch to buy many labels at once.

shippo_create_webhook

Register a webhook endpoint.

shippo_get_batch

Retrieve a batch by object_id, including its status and paginated batch_shipments.

shippo_list_webhooks

List all webhook endpoints registered on the account.

shippo_purchase_batch

Purchase all VALID labels in a batch.

shippo_create_address

Create an address object.

shippo_get_address

Retrieve a single address by its object_id.

shippo_list_addresses

List all shipping addresses on the account, most recent first.

shippo_validate_address

Validate a previously created address against carrier/USPS data.

shippo_create_customs_declaration

Create a customs declaration for an international shipment, then attach its object_id (or inline) as `customs_declaration` on the shipment.

shippo_create_customs_item

Create a customs item (one line of an international shipment's contents).

shippo_create_manifest

Create a manifest (end-of-day / SCAN form) that closes out labels for a carrier account on a given ship date.

shippo_create_order

Create an order in Shippo (e.g.

shippo_create_parcel

Create a parcel (package dimensions + weight) used to generate rates.

shippo_create_refund

Request a refund (void) of a purchased label.

shippo_create_shipment

Create a shipment and generate rates.

shippo_create_transaction

Purchase a shipping label.

shippo_get_order

Retrieve a single order by object_id.

shippo_get_rate

Retrieve a single rate by object_id.

shippo_get_shipment

Retrieve a single shipment by object_id, including its rates[].

shippo_get_transaction

Retrieve a single transaction (label) by object_id.

shippo_list_orders

List orders (imported or created in Shippo), most recent first.

shippo_list_parcels

List all parcel objects (package dimensions + weight), most recent first.

shippo_list_shipment_rates

List all rates generated for a shipment.

shippo_list_shipments

List all shipment objects, most recent first.

shippo_list_transactions

List all transactions (purchased shipping labels), most recent first.

shippo_get_tracking_status

Get live tracking status for a tracking number.

shippo_register_tracking_number

Register a tracking number so Shippo sends `track_updated` webhooks as its status changes.

shippo_create_pickup

Schedule a carrier pickup for already-purchased labels.

shippo_create_carrier_account

Connect your OWN carrier account (bring-your-own credentials).

shippo_get_carrier_account

Retrieve a single carrier account by object_id.

shippo_get_carrier_account_registration_status

Get the registration status for a Shippo-managed carrier account signup.

shippo_initiate_carrier_oauth

Begin the OAuth carrier-connect flow (UPS, FedEx, etc.).

shippo_register_carrier_account

Register a NEW Shippo-managed carrier account.

shippo_update_carrier_account

Update a carrier account (e.g.

shippo_add_shipments_to_batch

Add shipments to an existing batch.

shippo_create_user_parcel_template

Create a saved (reusable) parcel template.

shippo_delete_user_parcel_template

Delete a saved parcel template by object_id.

shippo_delete_webhook

Delete a webhook by object_id.

shippo_get_user_parcel_template

Retrieve one of the account's saved parcel templates by object_id.

shippo_get_webhook

Retrieve a single webhook by object_id.

shippo_list_user_parcel_templates

List the account's own saved parcel templates (custom reusable package sizes).

shippo_remove_shipments_from_batch

Remove shipments from a batch.

shippo_update_user_parcel_template

Update a saved parcel template's name or dimensions.

shippo_update_webhook

Update a webhook's event, url, or active/test flags.

shippo_create_live_rate

Get real-time shipping rates for a checkout (Rates at Checkout).

shippo_create_service_group

Create a service group for Rates at Checkout.

shippo_create_shippo_account

PLATFORM/PARTNER feature: provision a managed Shippo sub-account under your platform.

shippo_delete_default_parcel_template

Clear the default parcel template used for Rates at Checkout.

shippo_delete_service_group

Delete a service group by object_id.

shippo_get_default_parcel_template

Get the default parcel template used for Rates at Checkout when no parcel is supplied.

shippo_get_shippo_account

PLATFORM/PARTNER feature: retrieve a managed Shippo sub-account by object_id.

shippo_list_service_groups

List service groups (checkout shipping options that map service levels to a customer-facing method, e.g.

shippo_list_shippo_accounts

PLATFORM/PARTNER feature: list the managed Shippo sub-accounts under your platform account.

shippo_update_default_parcel_template

Set the default parcel template used for Rates at Checkout.

shippo_update_service_group

Update a service group.

shippo_update_shippo_account

PLATFORM/PARTNER feature: update a managed Shippo sub-account.

shippo_get_customs_declaration

Retrieve a single customs declaration by object_id.

shippo_get_customs_item

Retrieve a single customs item by object_id.

shippo_get_manifest

Retrieve a single manifest by object_id.

shippo_get_parcel

Retrieve a single parcel by its object_id.

shippo_get_refund

Retrieve a single refund by object_id.

shippo_list_customs_declarations

List all customs declarations, most recent first.

shippo_list_customs_items

List all customs items (line items describing international contents), most recent first.

shippo_list_manifests

List all manifests (carrier end-of-day / SCAN forms), most recent first.

shippo_list_refunds

List all refunds, most recent first.

shippo_list_shipment_rates_by_currency

List a shipment's rates converted to a specific ISO-4217 currency (e.g.

shippo_get_carrier_parcel_template

Retrieve a single carrier parcel template by its token (e.g.

shippo_list_carrier_parcel_templates

List Shippo's built-in carrier parcel templates (standard carrier box/envelope sizes).

Connect Shippo to your AI

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.

API Token••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Break down what we spent on labels last month by carrier account

    • list_transactions
    • list_carrier_accounts
  • Batch up today's unshipped orders and buy all the valid labels

    • list_orders
    • create_batch
    • add_shipments_to_batch
    • purchase_batch
  • Rate a 5 lb box from our warehouse to Berlin and buy the cheapest label

    • create_parcel
    • create_shipment
    • list_shipment_rates
    • create_transaction
  • Which labels we bought last month are still in transit, and where are they

    • list_transactions
    • get_transaction
    • get_tracking_status

Use Shippo from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Shippo MCP server questions

What teams ask before putting Shippo behind an AI client.

What does the API Token give the agent access to?

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.

Can I try this without buying real postage?

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.

Why does the agent have to create a shipment before it can buy a label?

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.

Can it handle international shipments and customs paperwork?

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.

Does it work with my own UPS or FedEx account, or only Shippo's carriers?

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.

Can it watch for deliveries and delivery problems on its own?

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.

Do I have to run or host the Shippo MCP server myself?

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.

Which AI clients can use this MCP server?

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.

Why do only 30 of the 70 tools load by default?

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.

What is the difference between a tool and a trigger?

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.

Connect Shippo to your AI in minutes

Launch a hosted MCP endpoint for Shippo, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP