# Upper Route Planner MCP

> Upper Route Planner connects your AI agent directly to advanced delivery logistics data. It lets you check driver statuses, list complete routes, and create new tasks just by talking to it. You get full control over fleet coordination without leaving your chat window.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** route-optimization, delivery-management, fleet-tracking, logistics, api-integration, scheduling

## Description

You connect this MCP Server to your AI client and forget about manually checking dashboards or digging through a bunch of tabs just to run deliveries. Your agent handles the whole route coordination process just from natural conversation. You get full control over the fleet without leaving your chat window.

**Checking the System Status and Planning Routes**

You need to know if this thing is even running right? Call `check_upper_status` and it immediately verifies your live API connection status for Upper, so you never waste time dealing with bad data feeds. To get a full picture of the day's hustle, use `list_upper_routes`. That tool spits out every active delivery route scheduled for the day, giving you the basic status details on all those routes at once.

**Managing Your Crew and Stops**

Want to see who’s available? Running `list_upper_drivers` pulls a directory of your field team. You check resource availability instantly—you know exactly which drivers are assigned or free. If you need to drill down on specific stops, you've got two options: use `get_upper_route_stop` for the basic status information of a single stop ID, or if you need the whole nine yards, run `get_upper_stop_details`. That fetches *all* the detailed metadata for one spot, including timing data and proof of completion. These tools let you track down everything from basic progress checks to deep-dive reports on every corner.

**Making Changes on the Fly**

Got a last-minute job? You don't wait for paperwork. Use `create_upper_delivery_task` to generate a brand-new delivery task record right away, letting you specify customer details and tight time windows instantly. This adds it straight into the system queue, getting it moving immediately.

Your agent acts like a dedicated logistics coordinator who never takes a coffee break. It runs all these necessary checks—verifying connection health, listing every available driver, pulling full route manifests, fetching specific stop metadata, and even creating new tasks—all through simple natural language commands. You just talk to it, and the data gets handled.

## Tools

### create_upper_delivery_task
Generates a new delivery task record, including customer details and time constraints.

### list_upper_drivers
Lists all currently assigned and available drivers in your fleet.

### get_upper_route_stop
Retrieves basic status information for a single route stop ID.

### list_upper_routes
Retrieves a list of all active delivery routes scheduled for the day.

### get_upper_stop_details
Fetches all detailed metadata for one specific delivery stop.

### check_upper_status
Verifies the live API connection status of your Upper account.

## Prompt Examples

**Prompt:** 
```
List all delivery routes scheduled for today.
```

**Response:** 
```
I've retrieved your routes. You currently have 8 active high-fidelity routes, including 'North Sector Loop' (Driver: Alex) and 'Downtown Express'. Would you like to see the detailed stop metadata for any of them?
```

**Prompt:** 
```
Create a new delivery task for '123 Tech St' with contact 'John Doe'.
```

**Response:** 
```
Logistics provisioned! I've successfully generated a new high-fidelity delivery task for 'John Doe' at '123 Tech St'. This record is now live in Upper. Shall I verify the available route technical windows for assignment?
```

**Prompt:** 
```
Check the status of route stop 'stop_456'.
```

**Response:** 
```
Stop directory orchestrated! Stop 'stop_456' is currently 'COMPLETED' with a recorded high-fidelity proof of delivery. Your API connection is healthy. Shall I retrieve the detailed timing metadata for this stop?
```

## Capabilities

### List all scheduled routes
Retrieves a list of active delivery routes and their basic status details.

### Check the system API status
Verifies your connection to Upper Route Planner, ensuring your data feed is live and accurate.

### Get granular stop metadata
Pulls all detailed information for a specific delivery stop, including completion proofs and timing data.

### Create new delivery tasks
Generates a brand-new delivery task record with customer details and time windows, adding it directly to the system queue.

### List field drivers
Retrieves a directory of active drivers, allowing you to check resource availability for scheduling.

## Use Cases

### Handling an unexpected stop
A customer calls with a last-minute request. You don't want to wait for someone to manually update the system. Instead, you ask your agent: 'Create a new delivery task for 45 Main St.' The agent uses `create_upper_delivery_task` and gets the record live instantly. Problem solved.

### Checking driver capacity
It's Monday morning, and you need to see who can take on extra jobs. You ask your agent: 'List all available drivers.' The agent runs `list_upper_drivers` so you know exactly which personnel are ready for assignment.

### Investigating a delayed delivery
A package is marked late. Instead of calling three different departments, you ask the agent to check its status: 'What are the details for stop_XYZ?' The agent runs `get_upper_stop_details` and immediately tells you if it's stuck on a specific point or if the timing was off.

### Forecasting daily routes
The Ops team needs to plan for next week. You ask your agent: 'List all scheduled routes for Friday.' The agent uses `list_upper_routes` and gives you a full, organized list of planned assignments right now.

## Benefits

- Stop guessing if your system is working. Use `check_upper_status` to confirm API connectivity instantly, so you never waste time chasing down a failed data feed.
- Need to assign an emergency delivery? Instead of logging into the web portal, just ask your agent to run `create_upper_delivery_task`. It provisions the job with precise details immediately.
- Track field progress in real-time. By calling `get_upper_stop_details`, you pull comprehensive metadata for any single stop—proof of delivery, timing, everything—without opening a single browser tab.
- See who's available to take the next run. The `list_upper_drivers` tool gives you an up-to-date roster of your field workforce, letting you allocate tasks efficiently.
- Get a complete overview of today's work schedule by running `list_upper_routes`. This shows all planned routes at once, giving you immediate oversight of the entire day’s workload.

## How It Works

The bottom line is: You give your AI client access credentials, and then you just talk to it like talking to a real dispatcher.

1. First, subscribe to the Upper Route Planner server and pull your unique API Token from your Upper dashboard settings.
2. Next, connect this token to your preferred AI client (Claude, Cursor, etc.) so your agent can access the tools. Your agent needs permission to run these specific logistics functions.
3. Finally, ask your agent a question—like 'Show me all routes for tomorrow' or 'Create a task for 123 Oak St.' The agent runs the appropriate tool and gives you the result.

## Frequently Asked Questions

**How do I check if the Upper Route Planner API connection is working?**
You use `check_upper_status`. This tool verifies your live API connection, letting you know immediately if there’s a technical issue with your data feed.

**Can I add an emergency delivery task using create_upper_delivery_task?**
Yes. You ask the agent to run `create_upper_delivery_task` and provide the necessary customer details. It provisions a new, live job record with precise time windows.

**What is get_upper_stop_details used for?**
Use `get_upper_stop_details` when you need to know everything about one specific stop—like the recorded proof of delivery or exact timing metadata. It gives deep context on a single point.

**How do I see all the drivers available for scheduling?**
You run `list_upper_drivers`. This tool provides an up-to-date roster of your field workforce, which is crucial for making sure you don't overassign anyone.

**If I use list_upper_routes, what do I do if there are no scheduled routes for today?**
The system returns an empty list or a specific 'no records found' message. You should always check the returned data set size before attempting to process route metadata. This prevents errors when iterating over expected results.

**When I use get_upper_stop_details, how do I handle large batches of stop IDs?**
The tool is designed for fetching details on single stops; don't try to pass hundreds of IDs at once. For bulk data retrieval, you must implement a pagination loop or process the required stops in smaller, manageable chunks to avoid rate limits.

**What filtering criteria do I need when calling get_upper_route_stop?**
You have to pass specific parameters like stop ID and date range directly into the function call. The tool won't guess; it requires structured inputs (e.g., 'stopId=XYZ&date=2024-MM-DD') for accurate results.

**What mandatory fields must I include when using create_upper_delivery_task?**
You absolutely need the recipient address, a time window, and a valid customer contact. If any of these core data points are missing or malformed, the task creation will fail immediately.

**How do I find my Upper API Token?**
Log in to your account, navigate to **Settings** > **Web Service API**, and copy your unique high-fidelity **API Token**.

**Can I check specific stop details via AI?**
Yes! The `get_upper_stop_details` tool allows your agent to retrieve high-fidelity metadata including service time, customer contact, and delivery notes.

**How do I list my optimized routes?**
Use the `list_upper_routes` tool to retrieve the complete high-fidelity directory of routes along with their assigned drivers and status.