# Shippo MCP connector

The Shippo connector brings addresses, live rates, shipment batches, carrier accounts and customs declarations to Claude, ChatGPT, Cursor and the Elaichi Agent, so once connected your team can quote, validate and ship by asking a plain question.

Source: https://elaichi.ai/connectors/shippo/

## Facts

| | |
| --- | --- |
| Application | Shippo |
| Category | Logistics |
| AI tools | 71 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Shippo is connected

- Validate this address and fix the postal code if it is wrong
- Get live rates for a 2 kg box to Berlin
- Add today's unshipped orders to a batch and purchase labels

## Connect Shippo in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Shippo.
2. Optionally set Share with, then press Connect.
3. Paste a Shippo API key. One person generates a token in Shippo and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Shippo tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Shippo MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Shippo MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Shippo MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Shippo to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Shippo tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Shippo through Elaichi

### Ship the morning orders in one batch

Fulfillment. Gather the day's shipments into a Shippo batch, add or remove the ones that changed, and purchase the labels together instead of one at a time.

### Fix a bad address before it ships

Support. When a customer writes in with a typo in their street or postal code, validate the corrected address in Shippo and save it so the parcel goes to the right door.

### Quote shipping costs while a customer waits

Ecommerce. Ask for a live rate across your connected carriers for a given parcel and destination, and give the customer a real price on the spot.

### Prepare customs paperwork for international orders

Trade compliance. Create customs items and the customs declaration for a cross-border shipment in Shippo, then look up any declaration later when a carrier or a customer asks.

### Keep carrier accounts current

Operations. List the carrier accounts connected to Shippo, register a new one, check whether its registration went through, and update account details when a contract changes.

### Compare carrier rates before committing spend

Finance. Pull live rates for typical parcel sizes and lanes from Shippo to see which carrier is cheapest this week, and check what a batch cost before it was purchased.

## Frequently asked questions

### How do I connect Shippo to Claude?

Connect Shippo in Elaichi first: Shippo connects with an API key, so you paste the key from your Shippo account settings into Elaichi and you are done. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in to Elaichi when Claude asks, and Shippo is available in your conversation.

### Does Shippo work with ChatGPT and Cursor as well as Claude?

Yes. Once Shippo is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Shippo once and every client picks it up.

### What can an AI agent actually do with my Shippo data?

With Shippo connected, an agent can look up and validate addresses, get live shipping rates for a parcel, build a batch of shipments and purchase the labels, and create or look up customs declarations and customs items. It can also list your carrier accounts, register a new one and check on its status. Short concrete asks, such as "validate this address" or "rate a 2 kg box to Berlin", work better than long paragraphs.

### Does connecting Shippo give the AI access to every carrier account and shipment?

The AI can only do what the connected Shippo account can do, and every request still runs as the Elaichi user who asked for it, so the audit log names a person and not a shared key. Elaichi can then narrow that further, for example letting support validate addresses and quote rates but not purchase batches or change carrier accounts. Elaichi never widens what the Shippo account itself allows.

### Can my team share one Shippo connection?

Yes. One person connects Shippo with the API key, shares the connection with a team in Elaichi, and nobody else on the team ever sees or handles that key. Each teammate still signs in to Elaichi as themselves, so every batch purchase or address change in Shippo is recorded under their own name.

### Can I stop an agent from deleting or changing things in Shippo?

Yes. Restrictions in Elaichi apply per action, so you can allow reading addresses and rates from Shippo while blocking batch purchases, carrier account updates or removing shipments from a batch. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt, however worded, can reach it.

### What happens to a Shippo connection when someone leaves?

Offboarding that person in Elaichi ends their access to Shippo at once, across Claude, ChatGPT, Cursor and every other client, with no keys to rotate. A shared Shippo connection keeps working for everyone else on the team. If you ever want Shippo gone entirely, disconnecting it once in Elaichi removes it from every client at the same time.

### Does the Shippo MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Shippo is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 71 Shippo tools

Every tool below is callable through https://api.elaichi.ai/mcp once Shippo is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Shippo addresses** (List). List all address objects created in your Shippo account. Returns: object_id, is_complete, object_created, object_updated, object_owner, validation_results, name, company, street_no, street1, street2, street3, city, state, zip, country, longitude, latitude, phone, email, is_residential, metadata, test.
- **Create a Shippo address** (Create). Create a new address in Shippo for use with shipments, rates, and orders. Returns: object_id, is_complete, object_created, object_updated, object_owner, validation_results, name, company, street_no, street1, street2, street3, city, state, zip, country, longitude, latitude, phone, email, is_residential, metadata, test. Requires: name, street1, city, state, zip, and country. Required: country.
- **Get single Shippo address by ID** (Get). Retrieve a single Shippo address by its object ID. Returns: object_id, is_complete, object_created, object_updated, object_owner, validation_results, company, street_no, street1, street2, street3, city, state, zip, country, longitude, latitude, phone, email, is_residential, metadata, test, name. Required: id.
- **Shippo addresses validate** (Validate). Validate an existing Shippo address by its object ID. Returns: object_id, is_complete, object_created, object_updated, object_owner, validation_results, name, company, street_no, street1, street2, street3, city, state, zip, country, longitude, latitude, phone, email, is_residential, metadata, test. Required: address_id.
- **Create a Shippo batch** (Create). Create a Shippo batch for purchasing shipping labels for many shipments at once. Batches are created asynchronously, so the response won't include the batch shipments yet — retrieve the batch later to verify its shipments are valid. Returns: object_id, object_created, object_updated, object_owner. Required: default_carrier_account, default_servicelevel_token, batch_shipments.
- **Get single Shippo batch by ID** (Get). Retrieve a Shippo batch by id. Returns: object_id, object_created, object_updated, object_owner. Batch shipments are displayed 100 at a time, paginated with page and filterable with object_results. Required: id.
- **Shippo batches add shipments** (Add). Add shipments to an existing Shippo batch. Returns the updated batch object including object_id, object_created, status, and batch_shipments. Required: batch_id.
- **Shippo batches purchase** (Action). Purchase a Shippo batch that has a status of VALID. The batch status moves to PURCHASING, then to PURCHASED once all shipments are bought and a batch_purchased webhook is sent. Returns the batch object including object_id, object_created, object_updated, status, and batch_shipments. Required: batch_id.
- **Shippo batches remove shipments** (Delete). Remove shipments from an existing Shippo batch. Returns the updated batch object including object_id, object_created, status, and batch_shipments. Required: batch_id.
- **List all Shippo carrier accounts** (List). List all carrier accounts connected to your Shippo account, including both Shippo carrier accounts and your own connected carrier accounts. Returns: object_id, carrier, object_owner, account_id, test, active, is_shippo_account, metadata, service_levels. Pass service_levels=true to append service levels to each account.
- **Create a Shippo carrier account** (Create). Create a new carrier account in Shippo or connect an existing carrier account to your Shippo account. Returns the created account object with object_id, carrier, account_id, parameters, active, test, and metadata. Required: account_id, carrier, parameters.
- **Get single Shippo carrier account by ID** (Get). Get a single Shippo carrier account by its object id. Returns: object_id, carrier, object_owner, account_id, test, active, is_shippo_account, metadata, service_levels. Required: id.
- **Update a Shippo carrier account by ID** (Update). Update an existing Shippo carrier account by id. The account_id and carrier cannot be changed because together they form the unique identifier. Returns the updated account object with carrier, object_id, account_id, parameters, active, test, and metadata. Required: id, account_id, carrier.
- **Shippo carrier accounts initiate signin** (Action). Initiate OAuth 2.0 sign-in to set up or reconnect a carrier account with carriers that support OAuth 2.0. Redirects the user to the carrier's login page to approve the authorization. Required: carrier_account_id, redirect_uri.
- **Shippo carrier accounts register** (Action). Register a new Shippo carrier account by submitting the carrier token (e.g. usps, ups, fedex, canada_post) and its carrier-specific credentials in parameters. Returns the created carrier account: carrier, object_id, account_id, active, is_shippo_account, test, parameters, metadata, and object_owner.
- **Shippo carrier accounts registration status** (Action). Get the registration status of your Shippo account for a given carrier (ups, usps, or canada_post). Returns the carrier account details: carrier, object_id, account_id, active, is_shippo_account, test, parameters, metadata, and object_owner. Required: carrier.
- **List all Shippo customs declarations** (List). List all Shippo customs declarations for your account. Returns each declaration with object_id, object_created, object_updated, contents_type, certify, certify_signer, incoterm, and items. Supports page and results query parameters (results defaults to 5 per page).
- **Create a Shippo customs declaration** (Create). Create a new Shippo customs declaration for international shipments. Returns: object_id, object_created, object_updated, object_owner, is_complete, validation_results, metadata. Required: certify, certify_signer, contents_type, items, non_delivery_option.
- **Get single Shippo customs declaration by ID** (Get). Get an existing Shippo customs declaration by its object ID. Returns the declaration object with object_id, object_created, object_updated, contents_type, certify, certify_signer, incoterm, and items. Required: id.
- **List all Shippo customs items** (List). List all customs items.
- **Create a Shippo customs item** (Create). Create a new customs item. Required: description, mass_unit, net_weight, origin_country, quantity, value_amount, value_currency.
- **Get single Shippo customs item by ID** (Get). Retrieve a customs item. Required: id.
- **Create a Shippo embedded authze** (Create). Create a short-lived Shippo JWT that client-side applications can use to authenticate without exposing a long-lived API token. Returns: token, expiresIn. The returned token is valid for 12 hours. Required: scope.
- **Create a Shippo live rate** (Create). Create a live rates request in Shippo to fetch carrier rates at checkout. Returns: object_id. Required: address_to, line_items.
- **List all Shippo settings parcel templates** (List). Get the currently configured default parcel template for live rates in Shippo. Returns the default parcel template setting including its object_id, object_created, object_updated, and name.
- **Shippo settings parcel templates bulk update** (Update). Update the default parcel template for live rates in Shippo. Pass the object_id of the user parcel template to set as the new default in the request body. Returns the updated setting including its object_id, object_created, object_updated, and name.
- **Shippo settings parcel templates bulk delete** (Delete). Clear the currently configured default parcel template for live rates in Shippo. Returns an empty 204 response on success.
- **List all Shippo manifests** (List). List all manifests.
- **Create a Shippo manifest** (Create). Create a new manifest. Required: carrier_account, shipment_date, address_from.
- **Get single Shippo manifest by ID** (Get). Retrieve a manifest. Required: id.
- **List all Shippo orders** (List). List all Shippo orders, filterable by status, shop app, and placed-date range. Returns each order's object_id, order_status, placed_at, order_number, to_address, line_items, and total_price. Optional filters: order_status[], shop_app, start_date, end_date.
- **Create a Shippo order** (Create). Create a new Shippo order with the recipient address and line items. Returns the created order object including object_id, order_status, placed_at, to_address, line_items, and total_price. Required: placed_at, to_address.
- **Get single Shippo order by ID** (Get). Retrieve an existing Shippo order by its object ID. Returns the order object including object_id, order_status, placed_at, to_address, line_items, and total_price. Required: id.
- **List all Shippo parcel templates** (List). List all Shippo carrier parcel template objects, optionally filtered by carrier (e.g. fedex, usps) and by whether templates come from user-added or enabled carriers. Returns: name, token, carrier, is_variable_dimensions, length, width, height, distance_unit.
- **Get single Shippo parcel template by ID** (Get). Get a single Shippo carrier parcel template by its token. Returns: name, token, carrier, is_variable_dimensions, length, width, height, distance_unit.g. FedEx_Box_Small_1). Required: id.
- **List all Shippo parcels** (List). List all Shippo parcels. Returns parcel objects with fields like object_id, object_created, length, width, height, distance_unit, weight, mass_unit, template, and metadata. Pagination is handled automatically.
- **Create a Shippo parcel** (Create). Create a new Shippo parcel, either from package dimensions or from a carrier parcel template. Returns the created parcel object including object_id, object_created, length, width, height, distance_unit, weight, mass_unit, and metadata. Requires either the package dimensions (length, width, height, distance_unit, weight, mass_unit) or a template token.
- **Get single Shippo parcel by ID** (Get). Get an existing Shippo parcel by id. Returns parcel details including object_id, object_created, length, width, height, distance_unit, weight, mass_unit, and template. Note: parcel details are not returned for un-purchased shipment or rate parcel object IDs. Required: id.
- **Create a Shippo pickup** (Create). Create a Shippo pickup so a carrier comes to a specified location to collect packages for shipping. Only USPS and DHL Express pickups are supported, for eligible shipments you have already created. Returns the pickup object including object_id, location, requested_start_time, and requested_end_time. Required: carrier_account, location, requested_end_time, requested_start_time, transactions.
- **Get single Shippo rate by ID** (Get). Get a single Shippo rate by id. Returns the rate object including its object_id, amount and amount_local pricing with currency and currency_local, provider, carrier_account, servicelevel_name, servicelevel_token, and object_created/object_updated timestamps. Rates older than 390 days are not returned. Required: id.
- **Create a Shippo refund** (Create). Create a refund. Required: transaction.
- **List all Shippo refunds** (List). List all refunds.
- **Get single Shippo refund by ID** (Get). Retrieve a refund. Required: id.
- **List all Shippo service groups** (List). List all service groups.
- **Create a Shippo service group** (Create). Create a new service group. Required: description, name, type, service_levels.
- **Delete a Shippo service group by ID** (Delete). Delete a service group. Required: id.
- **Shippo service groups bulk update** (Update). Update an existing service group. Required: description, name, type, object_id, is_active, service_levels.
- **List all Shippo shipments** (List). List all Shippo shipments. Returns shipment objects with object_id, address_to/address_from, parcels, rates, status, object_created, and test. Filter by creation date with object_created_gt/gte/lt/lte (ISO 8601 UTC, max 90-day range); shipments older than 390 days are not returned.
- **Create a Shippo shipment** (Create). Create a new Shippo shipment. Returns the created shipment object including object_id, address_to, address_from, parcels, rates, status, object_created, and test. Requires address_to, address_from, and parcels; pass async=false to calculate rates synchronously. Required: address_from, address_to, parcels.
- **Get single Shippo shipment by ID** (Get). Get a single Shippo shipment by id (the shipment object_id). Returns the shipment object including object_id, address_to, address_from, parcels, rates, status, object_created, and test; shipments older than 390 days are not returned. Required: id.
- ...and 21 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
