shipstation_add_ tag_ to_ orderAdd a tag to an order.
Pull orders from every connected store, rate-shop across carriers, buy or void labels, hold and tag what isn't ready, and assign the rest to the right teammate — without opening the dashboard.
PopMCPShipStation
Every order, shipment, label, carrier, store, product and webhook call the connector exposes, plus the order and label events your AI can watch for.
shipstation_add_ tag_ to_ orderAdd a tag to an order.
shipstation_create_ label_ for_ orderBuy a real shipping label for an EXISTING ShipStation order and mark it shipped.
shipstation_create_ orderCreate OR update one order (upsert).
shipstation_get_ orderGet a single order by its ShipStation orderId.
shipstation_hold_ orderPut an order on hold until a future date.
shipstation_list_ ordersList/search orders.
shipstation_list_ orders_ by_ tagList orders that carry a specific tag, filtered by status.
shipstation_mark_ order_ shippedMark an order shipped WITHOUT buying a ShipStation label (e.g.
shipstation_remove_ tag_ from_ orderRemove a tag from an order.
shipstation_restore_ order_ from_ holdImmediately release an on_hold order back to awaiting_shipment status.
shipstation_get_ storeGet one store's full configuration by storeId.
shipstation_list_ storesList the selling channels/stores connected to the account (Shopify, Amazon, WooCommerce, Manual, etc.), each with its storeId and marketplace.
shipstation_get_ warehouseGet one Ship From Location by warehouseId, including its originAddress and returnAddress objects.
shipstation_list_ carrier_ servicesList the shipping services (serviceCode values) offered by a carrier — needed for label and rate requests.
shipstation_list_ carriersList all shipping carriers connected to the account, with each carrier's code, nickname, account balance, and whether it needs a funded account.
shipstation_list_ warehousesList the account's Ship From Locations (formerly 'warehouses'), each with its warehouseId, originAddress, returnAddress, and isDefault flag.
shipstation_create_ shipment_ labelBuy a shipping label WITHOUT an existing order (supply shipFrom + shipTo directly).
shipstation_get_ ratesRate-shop: get available shipping rates for a package from one carrier.
shipstation_list_ shipmentsList shipments that have ShipStation labels.
shipstation_void_ labelVoid a purchased shipping label by shipmentId.
shipstation_get_ productGet one product by its ShipStation productId.
shipstation_list_ productsList products in the ShipStation catalog.
shipstation_list_ webhooksList the account's webhook subscriptions.
shipstation_subscribe_ webhookSubscribe to a webhook so ShipStation POSTs to your URL when an event fires (new orders, shipments, fulfillments).
shipstation_unsubscribe_ webhookDelete (unsubscribe) a webhook by its id.
shipstation_update_ productUpdate a product.
shipstation_get_ customerGet one customer by their ShipStation customerId.
shipstation_list_ customersList customers (auto-derived from imported orders).
shipstation_list_ tagsList all order tags defined on the account, each with its tagId, name, and color.
shipstation_list_ fulfillmentsList fulfillments (shipments recorded by external fulfillment providers).
shipstation_list_ usersList the account's ShipStation users, each with userId (a GUID), userName, and name.
shipstation_assign_ userAssign one or more orders to a ShipStation user.
shipstation_create_ ordersCreate or update MULTIPLE orders in one call (upsert each).
shipstation_delete_ orderDelete an order by orderId.
shipstation_unassign_ userRemove the assigned user from one or more orders.
shipstation_deactivate_ storeDeactivate (disable) a store by storeId.
shipstation_get_ store_ refresh_ statusCheck the current order-import refresh status of a store (in-progress / last result) by storeId.
shipstation_list_ marketplacesList the marketplaces/selling channels ShipStation can integrate with, each with its marketplaceId, name, and capability flags (canRefresh, supportsCustomMappings, supportsCustomStatuses, canConfirmShipments).
shipstation_reactivate_ storeReactivate a previously deactivated store by storeId (stores are active by default).
shipstation_refresh_ storeTrigger an order-import refresh for a store (pull new orders from the channel now).
shipstation_update_ storeUpdate a store's settings (name, auto-refresh, status mappings, etc.).
shipstation_add_ carrier_ fundsAdd postage funds to a carrier account (e.g.
shipstation_create_ warehouseCreate a new Ship From Location (warehouse).
shipstation_delete_ warehouseDelete a Ship From Location by warehouseId.
shipstation_get_ carrierGet one carrier's details (balance, account number, primary flag) by carrierCode.
shipstation_list_ carrier_ packagesList the package types (packageCode values) available for a carrier — needed for label and rate requests.
shipstation_update_ warehouseUpdate a Ship From Location.
shipstation_register_ accountPARTNER-ONLY: register a brand-new ShipStation account (reseller flow).
Credentials off one ShipStation screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In ShipStation, open Settings → Account → API Settings and paste both values into API Key and API Secret. No OAuth popup or redirect URL. The pair is scoped to one account, so the connection reaches only its stores.
••••••••••••3f7a••••••••••••3f7aRead-only keeps the agent at reporting. Full access adds writes — turn on approval so buying a label, voiding one, deleting an order or deactivating a store waits for you. The full catalog toggle exposes the rest.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your ShipStation 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.
Show me every order tagged Fragile that hasn't shipped yet
shipstation_list_tagsok
Then just ask for the work
“Show me every order tagged Fragile that hasn't shipped yet”
“Put every pre-order on hold until March 15 and tag them Backorder”
“Create a manual order for the phone sale I just took and buy it a label”
“Which stores do our on-hold orders come from, and who's assigned to them?”
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 ShipStation behind an AI client.
You paste two values, API Key and API Secret, which ShipStation shows together on one screen under Settings → Account → API Settings. There is no OAuth popup, no redirect URL and no token refresh to keep alive. PopMCP authenticates server-side over HTTPS using HTTP Basic, and the key pair is scoped to a single ShipStation account, so the MCP server is locked to that account.
Yes. shipstation_create_label_for_order buys a real label against an existing order and marks that order shipped, and shipstation_create_shipment_label buys one with no order behind it when you supply shipFrom and shipTo directly. Both spend against the connected carrier account, which is a good reason to require approval for writes on this connection. A purchased label can be voided with shipstation_void_label using its shipmentId.
shipstation_mark_order_shipped records the order as shipped without buying a ShipStation label, for parcels that went out some other way. shipstation_create_label_for_order does both at once: it buys the label and flips the order to shipped. One costs money and one does not, so it is worth telling your agent which of the two you expect it to use before you enable write access.
shipstation_get_rates quotes one carrier at a time, so comparing two carriers means two calls. It also needs a serviceCode from shipstation_list_carrier_services and a Ship From Location, which shipstation_list_warehouses returns with its warehouseId, originAddress, returnAddress and isDefault flag — the API still uses the older name warehouses for what the UI calls Ship From Locations. shipstation_list_carriers shows which carriers are connected, their account balance, and whether a carrier needs a funded account.
Yes. shipstation_list_stores returns every connected store with its storeId and marketplace, whether that is Shopify, Amazon, WooCommerce or a manual store, and shipstation_list_marketplaces reports what each channel supports through flags like canRefresh and canConfirmShipments. When the last sync is too old to answer a question, shipstation_refresh_store pulls new orders from the channel immediately and shipstation_get_store_refresh_status says whether that import is still running.
The server covers V1 with 48 operations across 11 API modules, 22 read and 26 write, plus 17 events PopMCP can watch. 31 of those operations load into your AI client by default and the rest stay searchable, so a long tool list does not crowd the context window. Orders is the largest module at 14 operations, followed by Stores at 8.
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 48 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 31-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 48 here. A trigger is something PopMCP watches for you: 17 ShipStation 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 ShipStation.
Launch a hosted MCP endpoint for ShipStation, keep tool access under control, and start testing real workflow prompts right away.