# Shippify MCP

> Shippify manages your entire last-mile delivery pipeline directly from your AI agent. Use this server to quote new shipments, schedule deliveries instantly, track active packages in real time, and manage warehouse inventory. It gives you complete control over dispatching, tracking status, and route planning without leaving your chat window.

## Overview
- **Category:** order-management
- **Price:** Free
- **Tags:** last-mile-delivery, logistics-technology, delivery-management, courier-network, real-time-tracking, warehouse-management

## Description

You gotta connect **Shippify** to your agent if you wanna run your whole logistics operation through natural conversation. Forget logging into a clunky dashboard just to check a package's status or schedule a pickup—your AI client handles all that for you, right in the chat window.

This server gives you total control over every part of last-mile delivery. You can get initial pricing and plan routes before you even ship anything, then track packages live until they hit the curb. It's about getting full visibility into your active deliveries and all your necessary assets—drivers and warehouses included—without writing a single line of code.

**Getting Quotes and Planning:**
You can calculate the exact shipping price, estimated time, and available service options between any two addresses using `get_delivery_quote`. If you're planning complex routes with multiple stops, running through `list_routes` pulls up predefined or optimal paths for all your pickups and drop-offs. You also need to know where everything is stored; calling `list_warehouses` gives you a list of every physical warehouse and pickup point linked to your account.

**Scheduling and Managing Shipments:**
When you're ready to move, you use `create_delivery` to schedule and start a new shipment. You just provide the package dimensions and both locations, and it gets initiated in the system. If plans change or a delivery hasn't left yet, you can stop it completely by running `cancel_delivery`, which marks the specific delivery as canceled in the system records.

**Tracking Live Status:**
To see what's happening right now, you have two main ways to check on packages. If you need the current geographical location and estimated time of arrival for a package already moving, use `get_delivery_tracking` or `get_delivery_details`. You can also run `get_tracking` if you just want the real-time location data for any specific shipment ID that's in transit. For one deep dive on status—getting the full history and current status for a single delivery ID—you use `get_delivery_details`.

**Reviewing Your Network:**
You can get an overview of everything happening by running `list_deliveries`, which pulls up every single delivery associated with your account, no matter if it's active, completed, or just scheduled. To see who's moving the freight, you call `list_drivers` to list every available driver assigned to your network. If you need specific info on a worker—like their name or what availability zone they operate in—you run `get_driver`. Every single tool here lets you manage dispatching, track status, and plan routes instantly.

## Tools

### cancel_delivery
Stops a delivery that hasn't started yet by marking it as canceled in the system.

### get_driver
Retrieves specific details about a driver, like their name or availability zone.

### get_delivery_quote
Calculates the exact shipping price, estimated time, and service options between two addresses.

### get_tracking
Gets the real-time location data for any shipment ID you provide.

### list_drivers
Lists every available delivery driver assigned to your network.

### list_routes
Retrieves predefined or proposed optimal routes for multiple pickups and drop-offs.

### create_delivery
Schedules and initiates a new shipment with specified package dimensions and locations.

### get_delivery_details
Pulls the full history and status information for one specific delivery ID.

### get_delivery_tracking
Checks the current real-time location of an active package in transit.

### list_deliveries
Provides a full list of all deliveries associated with your account, regardless of status.

### list_warehouses
Lists all physical warehouses and pickup points linked to your account.

## Prompt Examples

**Prompt:** 
```
List all my active deliveries in Shippify.
```

**Response:** 
```
I've retrieved your deliveries. You have 5 active shipments, including 'Shipment #123' (In Transit) and 'Shipment #456'.
```

**Prompt:** 
```
Show me all active deliveries in progress with real-time tracking and driver assignments.
```

**Response:** 
```
18 active deliveries. En route (12): Driver Carlos near destination for DEL-8923 (ETA 8 min). Driver Maria picking up DEL-8934 at warehouse. 10 others in transit across 3 zones. Waiting pickup (4): assigned to drivers, avg wait 12 min. Scheduled (2): departing in 1 hour. Today's stats: 45 deliveries completed, avg delivery time 34 min, on-time rate 92%. Fastest today: 18 min (DEL-8901). 2 deliveries had route changes due to traffic. Total active drivers: 14 of 20.
```

**Prompt:** 
```
Get a delivery quote for a same-day package from downtown to the airport district.
```

**Response:** 
```
Delivery quote generated. Route: Downtown (pickup) → Airport District (dropoff). Distance: 14.2 km. Estimated time: 28 minutes. Options: Standard (45 min window): $8.50. Express (30 min window): $12.90. Priority (15 min window): $18.50. Package size: Small (up to 5kg). Insurance included up to $100. Real-time tracking: included in all options. Available drivers in area: 6. Recommended: Express at $12.90 (best availability, 2 drivers nearby). Surge: none (normal demand).
```

## Capabilities

### Get Delivery Quotes
Calculate the cost of shipping between two points based on package size and required service level.

### Schedule Deliveries
Create a new, pending delivery order in your system by providing pickup and drop-off details.

### Track Packages Live
Check the current geographical location and estimated time of arrival for any active shipment.

### View Delivery Lists
Retrieve lists of all deliveries—active, completed, or scheduled—for a quick operational overview.

### Manage Inventory Assets
List available warehouses and pickup points connected to your account.

## Use Cases

### The sudden cancellation request
A client calls and needs to cancel an active shipment immediately. Instead of logging in and navigating complex menus, the agent runs `cancel_delivery` using the ID provided by the user. The system confirms the cancellation instantly, and the change is logged.

### The quarterly audit check
A fulfillment lead needs to confirm inventory availability across all locations for a massive sale. They ask the agent to run `list_warehouses` and then cross-reference that data with available capacity from `list_deliveries`. It generates a single, actionable report.

### The emergency quote
Sales needs a price for an urgent same-day package. They provide the start/end points and package size to their agent. The agent runs `get_delivery_quote`, returns all available service tiers (Standard, Express, Priority), and recommends the best option.

### The status update for a key client
A customer service rep asks: 'Where is package DEL-9001?' The agent runs `get_delivery_tracking` (or `get_tracking`) and returns the live location, ETA, and driver info in seconds. No manual lookups needed.

## Benefits

- Saves time by eliminating dashboard hopping. Instead of checking the main portal, your agent handles all data requests—from `list_deliveries` to specific status checks—in one chat interaction.
- Get pricing immediately before committing. Use `get_delivery_quote` anytime you need a rate check. It calculates costs based on distance and package size right away.
- Real-time visibility is instant. Tools like `get_tracking` or `get_delivery_tracking` pull live location data for active shipments, letting you give accurate updates to customers instantly.
- Build structured workflows fast. Need to plan a complex drop-off? You can call `list_routes` and then use that output to feed into `create_delivery`, making scheduling reliable.
- Know your assets on demand. Use `list_warehouses` or `list_drivers` to confirm capacity before committing to a large job, ensuring you don't schedule against unavailable resources.

## How It Works

The bottom line is that you manage complex logistics operations simply by talking to your AI client.

1. Subscribe to the server on Vinkius and input your Shippify API Key and Secret.
2. Your AI client connects, allowing it to see all available delivery tools (quoting, listing, tracking, etc.).
3. You talk naturally to your agent—'What's the quote for a package from Downtown to the Airport?'—and the agent executes the necessary tool calls automatically.

## Frequently Asked Questions

**How do I find out how much a delivery will cost using get_delivery_quote?**
You provide the pickup and drop-off locations, plus package dimensions to your agent. The tool returns all available service tiers (Standard, Express, Priority) with associated costs immediately.

**Is list_deliveries better than get_delivery_details?**
No. Use `list_deliveries` when you need an overview of many packages (a quick audit). Use `get_delivery_details` when you have a specific delivery ID and need its full, deep history.

**What if I need to change or stop a job? Do I use cancel_delivery?**
Yes. If the package hasn't left the warehouse yet, running `cancel_delivery` marks it as canceled in your system, preventing any further dispatch actions.

**Can I check driver availability before scheduling a shipment with get_driver?**
Yes. You can run `list_drivers` to see who's on the clock, and then use `get_driver` for specific details about that person or vehicle capacity.

**When I use the `create_delivery` function, what data points does it need to successfully schedule a shipment?**
The system requires specific details like package dimensions, pickup coordinates, and drop-off coordinates. Providing any of these missing parameters will result in an immediate validation failure; you'll need to adjust your agent call before trying again.

**How do I check which facilities are available for pickups or drops using `list_warehouses`?**
Running `list_warehouses` returns a list of all linked warehouse IDs and their physical addresses. This helps you confirm the precise locations your agent should reference when scheduling a new delivery.

**If I need deep information about one specific shipment, is it better to use `get_delivery_details` than just listing them?**
Yes, using `get_delivery_details` gives you the full record for a single delivery ID. While `list_deliveries` shows summaries, the detail function pulls operational metadata like service level and package contents.

**What happens if I try to schedule a route that is physically impossible or crosses restricted zones with `create_delivery`?**
The server checks for geo-fencing violations and physical routing impossibilities. If the coordinates are invalid or blocked, it rejects the request and returns an error code detailing the specific zone restriction.

**Can I track an active delivery using my AI agent?**
Yes! Use the `get_delivery_tracking` tool and provide the Delivery ID. Your agent will retrieve the current status and geographic location.