ParcelHub for AI assistants

Ship by just asking your AI assistant

Connect Claude, ChatGPT or any assistant that supports MCP to your ParcelHub account. It can do what you do in the dashboard — compare carriers, buy labels, track parcels, book pickups, handle returns, top up your wallet, answer billing questions — using your own account, prices and wallet.

Server URL https://mcp.parcelhub.ca/mcp

Connect in two minutes

You need a ParcelHub account (sign up free). When you connect, ParcelHub asks you to sign in, choose which account the assistant may use, and choose its access: Ship for me (can buy and change things) or Look only (can only look things up).

Claude (claude.ai, desktop & mobile)

  1. Open Settings → Connectors and choose Add custom connector.
  2. Name: ParcelHub. URL: the server URL above.
  3. Click Connect, sign in to ParcelHub and click Allow.
  4. In a chat, open the tools menu and make sure ParcelHub is turned on.

On Team and Enterprise plans an owner may need to add the connector for the organization first.

ChatGPT (chatgpt.com)

  1. Open Settings → Apps & Connectors → Advanced settings and turn on Developer mode.
  2. Back in Apps & Connectors, choose Create.
  3. Name: ParcelHub. URL: the server URL above. Authentication: OAuth.
  4. Sign in to ParcelHub when asked and click Allow. In a chat, pick ParcelHub from the + menu.

Custom connectors need a ChatGPT plan that includes developer mode.

Claude Code

claude mcp add --transport http parcelhub https://mcp.parcelhub.ca/mcp

Then run /mcp, choose ParcelHub and sign in.

Cursor, VS Code & others

{
  "mcpServers": {
    "parcelhub": { "url": "https://mcp.parcelhub.ca/mcp" }
  }
}

Apps that can't sign in can send an API key instead (make one under Account → API keys): Authorization: Bearer <client_id>:<client_secret>. A read-only key gives a Look only connection.

What to ask

Talk to it the way you would talk to a colleague who knows your ParcelHub account:

  • “What’s the cheapest way to send a 2 kg box from my warehouse to Vancouver?”
  • “Ship order #1042 to the customer with the cheapest 2-day option.”
  • “Where is the parcel I sent to Sarah last week?”
  • “Book a UPS pickup tomorrow afternoon for today’s labels.”
  • “Import my new Shopify orders and quote them all.”
  • “Make a return label for order #1042 — the item arrived damaged.”
  • “Top up my wallet with $100 from my Visa.”
  • “Do I owe anything? Show me unpaid invoices.”
  • “What HS code should I use for cotton t-shirts going to the US?”
  • “Open a support ticket: my FedEx parcel shows an exception.”

Tip: it uses your default sender address unless you say otherwise. Set one under Addresses or just ask the assistant to save it.

You stay in control

  • It asks before it spends money or does something final. Labels, pickups, top-ups, invoice payments, cancellations, deletions and refunds all need your clear go-ahead in the chat.
  • It never sees card numbers. To add a card it gives you a secure link to Stripe's own form; card details never go through the chat. It can top up from a card you already saved.
  • Some things stay with you. It can't change your login, email, phone or password, invite or remove team members, manage API keys, upload ID documents, or accept new terms for you.
  • Same rules as the dashboard. It works inside the account you picked, with your prices, your wallet balance and your role on the team.
  • Labels bought by an assistant are marked with its name in your shipments list.

Everything it can do

Ship for me marks tools that buy or change something; a Look only connection doesn't have them.

Rates & labels

  • get_ratesLive quotes from every carrier (or only the ones you name), cheapest first, with delivery estimates
  • check_priceThe exact total with tax, discount and prepaid duties, before buying
  • check_duties_availabilityWhether duties can be prepaid so the recipient pays nothing
  • buy_labelBuy a label, paid from your walletShip for me
  • cancel_shipmentVoid an unused label and refund it to your walletShip for me
  • create_return_labelBuy a return label for a shipmentShip for me

Shipments & tracking

  • list_shipmentsFind shipments by order number, tracking number, recipient, status or date
  • get_shipmentEverything about one shipment: tracking, timeline, comments
  • trackWhere a parcel is, by tracking number
  • get_labelA fresh download link for a label, one box, or the commercial invoice
  • archive_shipmentMove a shipment to the Archived tab (or back)Ship for me
  • add_shipment_comment / delete_shipment_commentNotes on a shipmentShip for me

Drafts & batches

  • list_drafts / get_draftShipments you started but have not bought yet
  • save_draftStart or update a draft, with the rate you pickedShip for me
  • buy_draftBuy the label for a draftShip for me
  • delete_draftDelete a draftShip for me
  • list_batches / get_batchYour batches and what is in them
  • get_batch_labelsOne PDF with every label in a batch
  • create_batch / update_batch / add_to_batch / remove_from_batchGroup labels into batchesShip for me

Pickups & drop-offs

  • get_pickup_optionsWhich carriers, days and times can be booked, and the cut-off times
  • quote_pickupThe pickup fee, before booking
  • list_pickups / get_pickupUpcoming and past pickups
  • book_pickupBook a carrier pickup (the fee is charged to your wallet)Ship for me
  • cancel_pickup / retry_pickup / archive_pickupManage a pickupShip for me
  • add_shipments_to_pickup / remove_shipment_from_pickupChange what the driver collectsShip for me
  • find_dropoff_locationsNearest carrier drop-off points

Address book, boxes & defaults

  • list_addresses / get_addressYour saved addresses and default sender
  • save_address / delete_address / set_default_addressManage the address bookShip for me
  • list_presetsSaved boxes, standard carrier boxes and saved customs items
  • save_package_preset / save_item_preset / delete_presetManage saved boxes and itemsShip for me
  • get_shipping_preferencesYour default label size, signature and notes
  • update_shipping_preferencesChange those defaultsShip for me

Wallet, cards & billing

  • get_accountWhich account is connected, wallet balance, anything owed
  • get_wallet_transactionsWallet history
  • get_top_up_optionsTop-up limits and any bonus you can get
  • top_up_walletAdd funds from a saved cardShip for me
  • list_cardsSaved cards (brand and last 4 digits only)
  • add_cardA secure link to add a card on Stripe’s form
  • set_default_card / remove_cardManage saved cardsShip for me
  • request_wallet_refund / list_wallet_refundsAsk for unused funds back to your card
  • list_invoices / get_invoiceAdjustment invoices and receipts, with PDF links
  • pay_invoicePay an invoice from your walletShip for me

Stores & returns

  • list_storesYour connected Shopify, WooCommerce, eBay and other stores
  • list_store_orders / get_store_orderOrders waiting in those stores
  • import_store_ordersTurn store orders into drafts ready to shipShip for me
  • sync_store / connect_store / disconnect_storeManage store connectionsShip for me
  • get_returns / get_return / get_return_itemReturnHub: returned items in storage
  • set_return_dispositionDecide what happens to a returned itemShip for me

Support, notifications & more

  • list_tickets / get_ticket / get_support_availabilityYour support conversations
  • open_ticket / reply_to_ticket / set_ticket_status / rate_ticketTalk to ParcelHub supportShip for me
  • list_notifications / get_notification_settingsNotifications and email/SMS settings
  • mark_notifications_read / update_notification_settingsChange themShip for me
  • get_dashboardSpending, savings and volume over time
  • searchSearch across shipments, pickups, payments and more
  • lookup_hs_codesFind the tariff (HS) code for what you are shipping
  • get_team / get_account_statusTeam members, verification and approval status
  • list_shop_products / get_shop_product / list_shop_orders / get_design_and_print_ordersThe print shop
  • price_shop_product / request_designPrice prints or ask for a designShip for me
  • get_referrals / check_discount_code / claim_offerReferrals, discount codes and promos
  • leave_feedbackTell us how we are doingShip for me
  • get_pending_policy_updatesTerms changes waiting for you (you accept them yourself in the dashboard)

Disconnect

Every connected assistant appears under Account → API keys as “<app name> (AI connector)”. Delete it there and the assistant loses access straight away. You can also remove the connector in the assistant's own settings.

Troubleshooting

The assistant says the connection expired

Reconnect ParcelHub in the assistant's connector settings. This also happens if you changed your password, signed out everywhere, or deleted the connection.

It says it isn't allowed to buy or change something

The connection is Look only. Remove it and connect again choosing Ship for me. Some actions, like topping up the shared wallet, also need you to be an owner or admin of the account.

It's using the wrong account

Each connection is tied to the account you picked when you clicked Allow. To use another account, connect again and pick it — you can have one connection per account.

A top-up needs “extra verification”

Your bank asked for 3-D Secure, which only you can approve. Open the link the assistant gives you and finish the top-up in the dashboard.

I don't see all the tools

Some apps only load a limited number of tools, or let you switch individual tools on and off in the connector settings. Look only connections have fewer tools by design.

Still stuck? Contact support — or ask the assistant to open a ticket.

For developers

  • REST API guide · API reference · Changelog
  • The same features are a REST API at https://api.parcelhub.ca/v1/<resource> — for example /v1/rates, /v1/shipments, /v1/pickups, /v1/wallet. Create a key under Account → API keys, exchange it at POST /v1/api-clients/token, and send Authorization: Bearer <token>.
  • The full, always-current spec is GET /v1/openapi.json (with your token); a public overview is at api.parcelhub.ca/docs.
  • Changed on 2026-10-31: the old /v1/my/… prefix was removed. Call the same path without /my (/v1/my/shipments → /v1/shipments); bodies are unchanged. Old paths answer 404 endpoint_moved with the new path in error.moved_to.
  • MCP details: Streamable HTTP at https://mcp.parcelhub.ca/mcp, OAuth 2.1 with PKCE and dynamic client registration (metadata at /.well-known/oauth-authorization-server), or a static API-key header as above.