upper-mcp-server
MCP server for Upper Route Planner — manage routes, stops, drivers, vehicles, and analytics from Claude Code, Claude.ai, or any MCP client
Versions
0.0.5scored0.0.40.0.3Trust breakdown
Tools 67
list_tasks List unscheduled delivery tasks (stops not yet assigned to any route). These form the delivery queue that can later be assigned to routes.
create_task Create an unscheduled delivery task. Tasks sit in the queue until assigned to a route. Address is required and will be geocoded.
update_task Update an unscheduled task
delete_task Delete an unscheduled task from the delivery queue. Always confirm with the user.
list_vehicles List vehicle profiles with capacity info, type, make/model, and constraints. Supports search and filtering by vehicle type.
get_vehicle Get detailed information about a specific vehicle including all capacity fields, compliance data, and configuration.
get_vehicle_issues Get vehicle maintenance issues and problems. Filter by vehicle, status (open/in_progress/resolved/closed), or priority (low/medium/high/critical).
list_stops List stops in a route (ordered by optimized sequence) or list all unscheduled stops. Includes address, contact info, status, time windows, and custom fields.
create_stop Add a delivery stop to a route. Address is required and will be geocoded automatically. Omit route_id to create an unscheduled stop. After adding stops, suggest the user optimize the route.
update_stop Update a stop
delete_stop Remove a stop from a route. Cannot delete stops from routes that are currently in progress. Always confirm with the user before calling this.
get_delivery_report Get delivery report with stop-level detail. Shows delivery status, timestamps, driver notes, and completion data for a date range.
get_route_summary Get summary statistics for a specific route — total stops, completed, failed, duration, distance, and driver performance.
get_sms_email_report Get SMS and email notification delivery history — which notifications were sent, their status, and timestamps.
get_dashboard_metrics Get dashboard KPIs including total routes, stops, deliveries, missed, delivery success rate, and daily breakdown for a date range. Default: last 7 days.
get_driver_performance Get performance summary for drivers: total routes, deliveries, missed, success rate, distance, and duration. Can filter by driver and date range.
get_custom_fields Get custom field definitions for stops. Returns up to 5 configurable fields with their type, label, and enabled status. Use this to understand what custom data can be attached to stops.
update_custom_fields Configure custom field settings. Each field (custom1-custom5) can have a type (text/number/boolean), label, and enabled status. Label is required when enabling a field.
get_capacity_fields Get capacity field definitions for stops. Returns up to 5 configurable fields for tracking weight, volume, or other capacity metrics on stops.
update_capacity_fields Configure capacity field settings. Each field (capacity1-capacity5) has a label, unit, and enabled status. Both label and unit are required when enabling a field.
reorder_stop Move a stop to a new position within its route. Other stops are reindexed automatically.
assign_stops_to_driver Bulk reassign stops to a different driver within a route. The stops must belong to the same route.
list_archived_routes List archived (historical) routes. These routes have been moved to the archive and are no longer active.
archive_route Move an active route to the archive. Archived routes can be restored later. Always confirm with the user before archiving.
restore_route Restore an archived route back to active status.
list_drivers List all active drivers on the team with name, email, and phone. Use the driver IDs from this list when assigning drivers to routes.
assign_drivers Assign one or more drivers to a route. This sets up their depot addresses and prepares the route for optimization. Use list_drivers first to get available driver IDs.
get_delivery_proof Get proof of delivery for stops: signatures, photos, notes, timestamps, and driver info. Filter by route_id or specific stop_id.
get_stop_logs Get activity log for all stops in a route: delivery status, order, driver assignment, arrival time, and whether signature/photo exists for each stop.
get_timesheets Get driver timesheet records: clock-in/out times, total hours worked, and GPS locations. Filter by driver and date range. Default: last 7 days.
get_notification_settings Get delivery notification settings including SMS and email templates for before-delivery, successful-delivery, and failed-delivery events.
update_notification_settings Update delivery notification templates and settings. Configure what SMS/email customers receive before, on success, or on failure of delivery.
get_stop_type_notification_settings Get notification flags per stop type (Delivery/Pickup/Service). Shows which notification channels (SMS/email) are enabled for each delivery stage (before/success/fail) per stop type.
list_contacts List contacts from the address book with optional filters. Returns paginated results with contact details, address, and custom fields.
get_contact Get detailed information about a specific contact including all emails, custom fields, and time windows.
create_contact Add a new contact to the address book. Address is required and will be geocoded. Contacts can later be used when creating stops.
update_contact Update a contact
delete_contact Remove a contact from the address book. Always confirm with the user before calling this.
search_contacts Quick search across all contact fields (name, company, email, phone, address). Returns compact results for fast lookup.
get_contact_custom_fields Get custom field definitions for contacts. Returns up to 5 configurable fields (contact_custom1-5) with their type, label, and enabled status. Use this to understand what custom data can be attached to contacts.
update_contact_custom_fields Configure contact custom field settings. Each field (contact_custom1-5) can have a type (text/number/boolean), label, and enabled status. Label is required when enabling a field.
optimize_route Start route optimization. This is asynchronous and takes 10-60 seconds. After calling this, wait a few seconds then call get_optimization_status to check progress.
get_optimization_status Check route optimization progress. Returns whether optimization is pending, completed (optimized), or not started (not_optimized). If pending, wait and check again.
share_route Send route to drivers via push notification so they can view and navigate the route in the Upper driver app. Optionally schedule the notification for later.
list_recurring_routes List recurring route templates. Templates define routes that repeat on a schedule (daily, weekly, monthly).
get_recurring_route Get detailed info about a recurring route template including its stops, exception dates, recurrence pattern, and generated instances.
create_recurring_route Create a recurring route template. Define a name, recurrence pattern (daily/weekly/monthly), and stops. Routes will be auto-generated based on the schedule.
update_recurring_route Update a recurring route template
delete_recurring_route Delete a recurring route template. This does not delete previously generated route instances. Always confirm with the user.
preview_recurring_route Preview the next N occurrence dates for a recurring route template. Shows which dates would get routes generated.
generate_recurring_routes Generate actual routes from a recurring template for specific dates. Creates real routes with all stops from the template.
get_account_summary Get current user account overview — name, email, role, plan, total routes, today
download_manifest Get a link that opens the route
get_route_share_url Get a link to view the optimized route in the Upper app (login required). Returns a URL the user can click to see the route as it looks in the app. Optionally also delivers the route
list_zones List all service zones/geofences with their assigned drivers. Each zone includes name, type, polyline boundary, and driver assignments.
duplicate_route Clone a route with all its stops and settings. Creates a new route with status Upcoming. Useful for creating tomorrow
lock_route Lock a route to prevent re-optimization. Locked routes cannot be optimized until unlocked.
reverse_route Reverse the stop order in a route. The last stop becomes first and vice versa.
publish_route Publish a route to drivers. This makes the route visible in the driver app and sends push notifications. Confirm with user before calling.
mark_route_complete Mark a route as completed. Updates status and records completion timestamp. Confirm with user before calling.
get_driver_locations Get real-time GPS locations for all active drivers with tracking enabled. Returns current latitude/longitude, speed, and timestamp for each driver.
get_route_progress Get real-time progress for a specific route including completion percentage, delivered/missed/pending counts, and driver performance metrics.
list_routes List routes with optional filters. Returns up to 50 routes sorted by date descending. Filter by date, date range, status, or search term.
create_route Create a new delivery route. Returns the route ID needed for adding stops, assigning drivers, and optimizing.
get_route Get route details with stop and driver summary — name, date, status, stop count, assigned drivers, optimization status, and distance/time totals.
update_route Update route properties — name, date, optimization preference, service time, or distance units. Only provided fields are updated.
delete_route Delete a route. This soft-deletes the route and cannot be undone. Always confirm with the user before calling this.
Permissions 0
No permissions indexed yet.