UberSync MCP Server
Provides Uber ride-booking workflows, including pickup and destination selection, fare and ride estimates, solo and shared ride options, driver assignment and live tracking, trip status and cancellation, trip history, receipts, and payment-related flows through the Uber API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UberSync MCP Server Get a ride estimate from T. Nagar to the airport."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
UberSync MCP Server
Demo links
Open the local UberSync ride-booking UI here:
http://localhost:3001/ride-home
Open the live UberSync ride-booking UI here:
https://long-kids-call.loca.lt/ride-home
UberSync is an Uber-style MCP experience for choosing pickup and destination, comparing ride options, selecting solo or shared rides with ShareMatch AI, tracking a moving driver with live ETA updates, and completing the ride with payment and receipt details.
Related MCP server: MI PANA APP MCP Server
Product overview
UberSync brings a complete ride-booking workflow to an interactive MCP application. It connects a polished frontend experience with NitroStack server tools for locations, pricing, ride lifecycle management, driver tracking, and trip receipts.
Key features
Pickup and destination selection with Chennai demo locations
Route, fare, ride-option, and travel-time estimates
Solo rides and ShareMatch AI shared-ride fare splitting
Driver assignment with vehicle details and dynamic ETA
Simulated real-time driver movement and trip progress
Start trip, cancel ride, complete ride, payment, and receipt flows
Trip history, saved places, safety information, and support tools
Technology stack
NitroStack MCP for server tools, resources, prompts, and widgets
TypeScript for the MCP server
React and Next.js for the widget application
Tailwind CSS for the frontend styling
Demo workflow
Open the local UberSync MCP application.
Select a pickup location and destination.
Review the route, duration, fare, and ride options.
Choose a solo ride or use ShareMatch AI.
Confirm the ride and view the assigned driver.
Track the driver, start the trip, and follow its progress.
Complete the ride and view payment and receipt details.
MCP capabilities
The server exposes tools for location search, ride estimates, ride selection,
booking, driver information, ride status, driver location, trip completion,
cancellation, trip history, receipts, saved places, payments, safety, and
support. Resources and prompts provide pricing information, service-area data,
safety guidance, help instructions, and guided ride workflows.
Widget source and the widget manifest are available under src/widgets.
Demo-mode disclaimer
The default demo mode uses safe, deterministic simulated locations, drivers, ride movement, payment methods, and receipts. It does not book a real Uber ride or charge a real payment method. The optional live API adapter requires valid authorization and should be tested only with the appropriate sandbox settings.
Buildathon positioning
I built UberSync MCP using NitroStack.
Credits
Built as an Uber-inspired MCP proof of concept for the NitroStack Buildathon.
Quick start
npm install
npm run devFor the presentation, run npm run demo and keep DEMO_MODE=true.
This gives a deterministic, shared UberSync ride state with no external credentials.
To use the official API instead, set DEMO_MODE=false and
UBER_ACCESS_TOKEN. The official Uber API uses OAuth 2.0 rather than a normal API key. Request
the scopes needed by the tools you use: request for booking and live ride
status, history for trip history, request_receipt for receipts, and
places for Home/Work saved places. Use UBER_API_ENV=sandbox while testing;
the production request endpoint may create a real ride and charge the rider.
This optional integration adapter has not been verified here with authorized
Uber credentials.
Production build
npm run build
npm run start:prodThe NitroStack CLI defaults to STDIO in development. Set NODE_ENV=production
or MCP_TRANSPORT_TYPE=http when an HTTP transport is needed.
NitroStudio
The installed NitroStack CLI v1.0.15 does not start Studio or serve a Studio
page. npm run dev starts the TypeScript watcher and the widget dev server on
http://localhost:3001; it reports STDIO because the standalone NitroStudio
client launches/connects to the MCP project subprocess.
Open the standalone NitroStudio app (download page: https://nitrostack.ai/studio), select this project folder, and click Connect. Studio uses local project access for STDIO and loads the widget iframe from port 3001. There is no CLI tunnel or bridge in this CLI version. The hosted download page itself cannot execute this local project.
The widget app can also be built on its own:
npm --prefix src/widgets run buildFor an HTTP MCP client, use:
MCP_TRANSPORT_TYPE=http HOST=127.0.0.1 PORT=31337 DEMO_MODE=true npm run start:prodThe endpoint is http://127.0.0.1:31337/mcp.
In live mode, the Uber Rider API does not expose arbitrary nearby-driver lists, standalone driver profiles, or payment-method CRUD. Demo mode supplies safe fictional drivers and Cash/Demo Wallet payment choices for presentation only. Input locations include coordinates; the base app does not require a paid geocoder or map API key.
Links
Uber Riders API: https://developer.uber.com/docs/riders/references/api
Uber authentication and scopes: https://developer.uber.com/docs/riders/guides/authentication/introduction
NitroStack CLI: https://docs.nitrostack.ai/cli/overview
NitroStack tools: https://docs.nitrostack.ai/sdk/typescript/tools
NitroStack source: https://github.com/nitrocloudofficial/nitrostack
Available Tools
39 toolsadd_payment_methodAdd Payment MethodA
Add a payment method. The Uber Rider API does not expose this operation; use the Uber app to manage payment methods.
Inputs: type (required), token (required), label.
book_rideBook RideA
Book a demo ride using the selected estimate. Returns a consistent ride ID, fare, driver, vehicle, and ETA.
Inputs: pickup (required), destination (required), rideType, estimateId, +1 more.
cancel_rideCancel RideADestructiveIdempotent
Cancel an active ride and return its cancellation fee and final status.
Inputs: rideId (required), reason.
choose_payment_methodChoose Payment MethodB
Choose Cash or Demo Wallet for the next demo ride.
Inputs: paymentMethodId (required).
complete_rideComplete Demo RideA
Development/demo control that completes an active ride immediately so the receipt flow can be presented.
Inputs: rideId (required).
contact_driverContact DriverB
Return a harmless demo contact action with the driver phone masked. This never calls or messages anyone.
Inputs: rideId (required).
emergency_helpEmergency HelpA
Show safe emergency guidance. This demo does not contact emergency dispatch.
Inputs: rideId.
estimate_rideEstimate RideA
Resolve a pickup and destination into route distance, duration, pickup ETAs, and dynamic fares for Moto, Auto, Go, Premier, and XL.
Inputs: pickup (required), destination (required).
get_current_locationGet Current LocationA
Return the configured demo pickup location. This does not access browser GPS.
Inputs: no named parameters.
get_driver_detailsGet Driver DetailsA
Get the assigned driver, rating, vehicle, registration, completed trips, and masked phone for a ride.
Inputs: rideId (required).
get_driver_locationGet Driver LocationARead-onlyIdempotent
Get the current Uber driver location and ride status for an active ride.
Inputs: rideId (required).
get_driver_profileGet Driver ProfileARead-onlyIdempotent
Get the assigned driver details for a ride. Standalone driver-profile lookup is not available in Uber’s Rider API.
Inputs: driverId (required).
get_fare_breakdownGet Fare BreakdownA
Return the detailed fare line items for a completed demo ride.
Inputs: rideId (required).
get_nearby_driversGet Nearby DriversARead-onlyIdempotent
Get real Uber product availability and pickup ETAs near a location. Uber does not expose a list of nearby driver identities.
Inputs: location (required), category, radiusKm.
get_payment_methodsGet Payment MethodsA
List safe demo payment choices: Cash and Demo Wallet.
Inputs: no named parameters.
get_price_estimateGet Price EstimateBRead-onlyIdempotent
Get a current Uber fare range, route distance, duration, currency, and surge multiplier between two locations.
Inputs: pickup (required), destination (required), riders, category, +1 more.
get_recent_ridesGet Recent RidesC
Return the most recent completed and cancelled rides from the shared ride store.
Inputs: limit, status.
get_ride_detailsGet Ride DetailsB
Return the complete current ride record, route, fare, driver, vehicle, ETA, and status.
Inputs: rideId (required).
get_ride_optionsGet Ride OptionsCRead-onlyIdempotent
List the real Uber products and current pickup ETAs available at a location.
Inputs: pickup, destination.
get_ride_receiptGet Ride ReceiptA
Return the completed ride route, fare, fees, total, payment method, driver, vehicle, and date.
Inputs: rideId (required).
get_ride_statusGet Ride StatusBRead-onlyIdempotent
Get the latest status, route, driver assignment, ETA, and fare estimate for a ride.
Inputs: rideId (required).
get_saved_placesGet Saved PlacesB
Return Home, Work, SRM, and other saved demo places.
Inputs: no named parameters.
get_surge_statusGet Surge StatusARead-onlyIdempotent
Check the current Uber demand multiplier at a pickup location.
Inputs: location (required).
get_trip_detailsGet Trip DetailsARead-onlyIdempotent
Get the route, driver, category, timestamps, payment method, and receipt for a trip.
Inputs: tripId (required).
get_trip_receiptGet Trip ReceiptARead-onlyIdempotent
Get the fare line items, taxes, tip, total, and currency for a completed trip.
Inputs: tripId (required).
list_payment_methodsList Payment MethodsARead-onlyIdempotent
List demo payment methods and identify the default method used for demo rides.
Inputs: no named parameters.
list_saved_placesList Saved PlacesARead-onlyIdempotent
List the rider’s real Uber Home and Work saved places.
Inputs: no named parameters.
list_tripsList TripsBRead-onlyIdempotent
List recent completed or cancelled trips, optionally filtered by status.
Inputs: limit, status.
remove_payment_methodRemove Payment MethodADestructiveIdempotent
Remove a saved payment method. At least one payment method must remain on the account.
Inputs: paymentMethodId (required).
remove_saved_placeRemove Saved PlaceCDestructiveIdempotent
Remove a saved place. Uber’s Rider API currently does not expose saved-place deletion, so this tool reports that limitation.
Inputs: placeId (required).
request_rideRequest RideB
Book a ride from a pickup location to a destination. In DEMO_MODE it uses the shared deterministic demo store; live mode uses Uber when authorized.
Inputs: pickup (required), destination (required), riders, category, +3 more.
safety_detailsSafety DetailsC
Return safety information for a demo ride.
Inputs: rideId (required).
save_placeSave PlaceAIdempotent
Create or update a named saved place with a validated address and coordinates.
Inputs: name (required), location (required).
search_locationsSearch LocationsA
Search known Chennai pickup and destination locations using real seeded coordinates in demo mode.
Inputs: query (required).
select_rideSelect RideB
Select one ride type from an estimate before booking it.
Inputs: rideTypeId (required), estimateId.
set_default_payment_methodSet Default Payment MethodAIdempotent
Choose which saved payment method should be used when request_ride omits a payment method ID.
Inputs: paymentMethodId (required).
track_driverTrack DriverA
Return driver coordinates, pickup, destination, progress, ETA, and current ride status.
Inputs: rideId (required).
update_ride_destinationUpdate Ride DestinationADestructiveIdempotent
Change the destination of an active Uber ride and return the updated live request.
Inputs: rideId (required), destination (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 39 tools
Multiple tools are near-synonyms: get_trip_receipt, get_ride_receipt, and get_fare_breakdown overlap heavily; get_saved_places overlaps with list_saved_places; book_ride overlaps with request_ride; and get_ride_status overlaps with get_ride_details, get_driver_location, and track_driver. An agent cannot reliably distinguish these tools without reading full descriptions, and several differ only in demo-vs-real mode.
Tool names generally follow a verb_noun snake_case pattern such as get_*, list_*, cancel_*, request_*, and save_*. There are minor deviations like emergency_help and safety_details, and the heavy reuse of get_* makes names less informative, but the overall naming convention is predictable.
At 39 tools, the surface is well beyond the 25-tool threshold and feels bloated for the actual domain. Most of the extra count comes from overlapping operations, not from genuinely distinct capabilities; the set could likely be reduced to 15-20 coherent tools.
The core ride lifecycle is well covered: search, estimate, select, book, track, update destination, cancel, complete, and receipt. Minor gaps exist, such as stub demo actions for emergency help, contacting drivers, and adding payment methods, plus no explicit rating or tipping flow, but agents can generally accomplish the main workflows.
Maintenance
Related MCP Connectors
Book taxi rides with Meter fleets: price, request, track and manage your own rides.
Developer docs for building on RideDesk: booking API, widgets, per-account booking MCP. No auth.
Drive with Meter or run a Meter taxi fleet: trips, bookings, drivers, earnings and settings.
Discover local services and availability, then create, track, reschedule, or cancel bookings.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables cab booking and management through natural conversation, allowing users to book rides, cancel bookings, and view driver details. Works with Google Maps MCP to provide comprehensive travel planning with automatic route optimization and cab arrangements between destinations.-
- AlicenseNot gradedqualityDmaintenanceEnables management of ride-sharing operations including searching for available drivers, calculating dynamic fares, creating and tracking trips, and monitoring driver statistics in real-time using Supabase as the backend.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Uber API for ride management, including requesting rides, obtaining price and time estimates, and tracking active trip status. It supports comprehensive journey features such as viewing ride history, cancelling requests, and rating drivers through a secure OAuth 2.0 integration.MIT
- AlicenseAqualityCmaintenanceEnables agents to search places, get live fares and route previews, list payment methods, book rides, monitor ride and vehicle status, preview and confirm cancellations, and retrieve ride history for Tesla Robotaxi rider accounts.8MIT