# Shippo MCP

> Shippo MCP Server gives your AI client full control over global logistics and e-commerce shipping. Compare real-time rates from dozens of carriers, validate addresses, generate required labels, and track packages—all through natural conversation. It replaces logging into multiple carrier portals with a single API workflow.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** shipping-rates, label-generation, multi-carrier, parcel-tracking, logistics-api, e-commerce-shipping

## Description

Shippo gives your agent total control over global shipping logistics. You don't gotta log into a dozen carrier websites; you just talk to your AI client, and it handles the whole process.

Before anything else, you need solid data. First, the system lets you run `check_api_health` to verify that the core Shippo connection is active and working right. For addressing, you can use `create_and_validate_address` to add a brand-new shipping location or validate an existing one; this step's mandatory before you quote any rates. If you've used addresses before, you can pull from your stored list using `list_saved_addresses`.

To figure out costs, the agent runs `create_shipment_get_rates`. It compares real-time shipping prices from dozens of carriers based on package size and where it’s going. You'll see live rates immediately. Before calculating anything, you can check which carrier accounts are linked to your system by calling `list_connected_carriers`, or pull up a list of daily manifest records provided by the carriers using `list_carrier_manifests`.

When you're ready to ship, you purchase the label with `purchase_shipping_label`. This buys and prints the physical, compliant shipping label for that confirmed rate. You can keep track of everything you’ve paid for by viewing a list of all your past transactions using `list_purchased_labels`.

For international stuff, compliance is key. The agent accesses specific tools to manage customs data; it pulls up required customs declarations via `list_customs_declarations`, and you can view the granular details about the items themselves using `list_customs_items`. That’s how you handle cross-border shipments.

Tracking packages is straightforward. Just give your tracking number to `track_package_status` and it pulls up the real-time status and last known location of that package. You can also check on a history of recent requests by calling `list_recent_shipments`. If you need to see all the addresses you've used in the past, you’ll find them listed with `list_saved_addresses`.

## Tools

### check_api_health
Verifies if the core Shippo API connection is active and responding correctly.

### create_and_validate_address
Adds a new shipping address or validates an existing one for use in shipments. This is required before quoting rates.

### create_shipment_get_rates
Calculates real-time, comparative shipping costs from various carriers based on package details and addresses.

### list_carrier_manifests
Retrieves a list of daily shipment manifest records provided by the carriers.

### list_connected_carriers
Lists all active shipping accounts and carrier profiles linked to your Shippo account.

### list_customs_declarations
Retrieves a list of necessary customs declarations for international shipments.

### list_customs_items
Lists specific details about the items included in an international shipment's customs paperwork.

### list_purchased_labels
Generates a list of all shipping label transactions you have previously completed through Shippo.

### list_recent_shipments
Pulls up details on the most recent shipment requests made via the platform.

### list_saved_addresses
Displays all shipping addresses you have previously saved for quick reuse.

### purchase_shipping_label
Buys and generates the physical, printable label for a confirmed shipment rate.

### track_package_status
Gets the real-time tracking status and last known location of any package using its tracking number.

## Prompt Examples

**Prompt:** 
```
Check the tracking status for USPS package 1234567890.
```

**Response:** 
```
I've retrieved the tracking info. Your USPS package is currently 'In Transit' and is expected to be delivered by tomorrow, June 15th. Would you like to see the full milestone history?
```

**Prompt:** 
```
List all my active carrier accounts in Shippo.
```

**Response:** 
```
Retrieving carrier accounts... You have 4 active accounts configured: FedEx, UPS, DHL, and USPS. Would you like to check the settings for any of them?
```

**Prompt:** 
```
Validate this address: 123 Main St, San Francisco, CA 94105.
```

**Response:** 
```
Processing address validation... The address is valid and identified as a commercial location. Should I use it to get shipping rates for your next package?
```

## Capabilities

### Validate Addresses
The agent verifies sender or recipient addresses to ensure they meet carrier standards before rates are quoted.

### Get Live Shipping Rates
It compares current shipping costs from multiple carriers based on package dimensions and origin/destination.

### Generate Labels
The agent purchases the required service and prints a physical, compliant shipping label for immediate use.

### Track Packages
It retrieves the current status and estimated delivery date for any package using its tracking number.

### Manage Customs Data
The agent accesses specific tools to list and manage required customs declarations and items for international shipments.

## Use Cases

### The Urgent Rate Check
A customer needs a quote right now. The user asks their agent: 'What's the cheapest way to send this from Dallas to Miami?' The agent runs `create_shipment_get_rates`, pulls data from multiple carriers, and reports the lowest cost immediately, solving the rate shopping problem without manual effort.

### The International Order
A fulfillment team receives a shipment going to France. The user asks: 'What customs paperwork do I need for this electronics item?' The agent uses `list_customs_declarations` and `list_customs_items`, giving the necessary compliance steps before label generation.

### The Bulk Label Run
It's peak season, and 50 orders need labels. The user tells their agent to 'Process all pending shipments for today.' The agent first validates addresses (`create_and_validate_address`), then uses `purchase_shipping_label` sequentially for each order.

### Post-Sale Tracking Audit
A client calls asking about a package sent last week. Instead of the client having to call 3 carriers, the agent runs `track_package_status` using the tracking number and provides one single, comprehensive status update.

## Benefits

- Stop guessing on shipping costs. Calling `create_shipment_get_rates` gives you live rate comparisons across all your linked carriers instantly, ensuring the customer pays only what's necessary.
- Eliminate data entry errors. You use `create_and_validate_address` first; this guarantees that every address used for quoting or labeling is accurate and accepted by the carrier network.
- Never lose a label again. The agent can call `list_purchased_labels` to give you an immediate record of every paid transaction, simplifying accounting and auditing.
- Handle international shipping compliance easily. You don't have to consult a customs guide; simply asking about declarations lets the agent use tools like `list_customs_items` to gather required data points.
- Automate fulfillment oversight. Instead of checking 5 different carrier websites, you ask your agent to run `track_package_status`, and it aggregates the status for one clean answer.

## How It Works

The bottom line is: You talk to your agent once, and it handles address validation, rate comparison, purchase, and labeling across multiple carriers automatically.

1. First, ask your AI client to run `create_and_validate_address` with the necessary sender/recipient details. This confirms the address is usable.
2. Next, instruct it to call `create_shipment_get_rates`, providing the validated addresses and package specifics to get a list of real-time options from available carriers.
3. Finally, tell your agent which rate you want, and it will use `purchase_shipping_label` to buy the label and execute the shipment.

## Frequently Asked Questions

**How do I use create_shipment_get_rates with Shippo MCP Server?**
You provide the agent with a package's dimensions, weight, and origin/destination. The tool runs instantly to return comparative rate data from all your linked carriers.

**Does I need to run create_and_validate_address before purchasing a label?**
Yes. Running `create_and_validate_address` first ensures the address is structurally correct and recognized by the carrier network, preventing failed purchases later.

**How do I track a package status using track_package_status?**
Just provide the tracking number to your agent. It calls `track_package_status` and returns the current location and expected delivery date from the carrier's live feed.

**Can I list my connected carriers using Shippo MCP Server?**
Absolutely. Use `list_connected_carriers`. This command shows you all active accounts (like FedEx, UPS, etc.) that are ready to quote rates or purchase labels.

**What is list_customs_declarations for international shipping?**
It retrieves the mandatory customs paperwork requirements. You use this tool when your shipment crosses a border to ensure compliance and prevent delays.

**How do I use the `purchase_shipping_label` tool to finalize a shipment?**
This tool generates the final, printable label. After you get real-time rates using `create_shipment_get_rates`, calling this function submits payment and creates the official shipping document for your package.

**What is the purpose of running `check_api_health`?**
Running `check_api_health` verifies your API token and connection status before you make any expensive calls. It confirms that the server can talk to Shippo's main system, saving you time when debugging.

**How do I use `list_purchased_labels` to track my transaction history?**
This tool pulls a complete list of every label purchased through the server. It’s essential for accounting and auditing, giving you an overview of all past shipping transactions.

**Can my AI automatically find the tracking status for a package using only the carrier and tracking number?**
Yes! Use the `get_tracking` tool. Provide the carrier name (e.g., 'usps', 'fedex') and the tracking number, and your agent will return the real-time status and estimated delivery date.

**How do I compare shipping rates for a new shipment?**
Simply ask the agent to run the `create_shipment` action with the package details and addresses. It will retrieve and compare pricing from all configured carrier accounts.

**How do I find my Shippo API Token?**
Log in to your Shippo account, navigate to **Settings** > **API**, and you will find your unique Live or Test API Token there.