Uber MCP Server
Community-built MCP server that lets AI assistants request, track, and cancel Uber rides via the Uber Rides API with OAuth 2.0.
The Uber MCP server (mcp-uber) is a community-maintained Model Context Protocol server, published by the 199-mcp organization (also referenced as 199-biotechnologies), that exposes Uber's Rides API to LLM agents. It allows an assistant to walk a user through OAuth authorization, fetch price estimates between two locations, request a ride, poll its status, and cancel it, all through standard MCP tool calls.
The server is written in TypeScript/JavaScript and distributed via npm as mcp-uber. It can run either in Uber's sandbox environment (for simulated rides with mock drivers) or in production mode (which dispatches real rides and incurs charges). Authentication uses Uber's standard OAuth 2.0 flow with the profile, request, and ride_request scopes.
Note: this is not an official Uber product. There is no first-party Uber MCP server, so this community implementation is the primary option for ride-booking via MCP today. A separate community project (ericzakariasson/uber-eats-mcp-server) covers Uber Eats food ordering through browser automation.
Tools
| Tool | Description |
|---|---|
uber_get_auth_url |
Generate the Uber OAuth authorization URL for the user to visit and grant access. |
uber_set_access_token |
Store the OAuth access token obtained after the user authorizes the application. |
uber_get_price_estimates |
Fetch fare and product estimates between a pickup and dropoff location. |
uber_request_ride |
Book an Uber ride for a given product type and route. |
uber_get_ride_status |
Retrieve the current status of an in-progress ride request. |
uber_cancel_ride |
Cancel an active Uber ride request. |
Prerequisites
- Node.js and npm installed
- An Uber Developer account at https://developer.uber.com
- A registered application with Client ID, Client Secret, configured OAuth redirect URI, and the
profile,request, andride_requestscopes enabled
Install
Install globally:
npm install -g mcp-uber
Or run via npx (no install):
npx mcp-uber
Claude Desktop / Cursor config
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"uber": {
"command": "npx",
"args": ["mcp-uber"],
"env": {
"UBER_CLIENT_ID": "your_client_id",
"UBER_CLIENT_SECRET": "your_client_secret",
"UBER_REDIRECT_URI": "http://localhost:3000/callback",
"UBER_ENVIRONMENT": "sandbox"
}
}
}
}
Environment variables
UBER_CLIENT_ID: Uber application client IDUBER_CLIENT_SECRET: Uber application client secretUBER_REDIRECT_URI: OAuth callback URL (defaulthttp://localhost:3000/callback)UBER_ENVIRONMENT:sandboxfor testing with simulated rides,productionfor real rides
First-run authorization
- Call
uber_get_auth_urlto get the authorization link. - Open it in a browser and approve the requested scopes.
- Capture the access token from the callback and pass it to
uber_set_access_token. - After that, the ride tools can be used.
Use sandbox first. Production mode dispatches real drivers and charges real money.
- Let an AI assistant compare Uber price estimates between locations before recommending a ride option.
- Book a ride for the user from a chat interface, including selecting the product type (UberX, Comfort, etc.).
- Track an in-progress ride and surface status updates ("driver arriving", "on trip") inside an agent workflow.
- Cancel a pending Uber request from an assistant when plans change.
- Build sandbox-mode demos and tests for travel or concierge agents without incurring real charges.
- "Get me an Uber price estimate from 1455 Market St, San Francisco to SFO."
- "Book an UberX from my current location to the airport and tell me when the driver arrives."
- "What's the status of my last Uber request?"
- "Cancel my pending Uber ride."
- "Walk me through authorizing this Uber MCP server for the first time."
- Covers the core Uber Rides workflow: auth, estimates, request, status, cancel.
- Distributed as an npm package, so setup is a single
npx mcp-ubercommand plus env vars. - Supports Uber's sandbox environment for safe testing without real charges.
- Uses standard OAuth 2.0, so token handling matches Uber's documented flow.
- Not an official Uber project. It is community maintained, with no SLA or guarantees.
- Limited to the Rides API. No Uber Eats, scheduled rides, or driver-side tooling.
- Documentation is minimal and tool input schemas are not exhaustively documented in the README.
- ericzakariasson/uber-eats-mcp-server: community MCP server for Uber Eats restaurant search and ordering via browser automation.
- Direct use of the Uber Rides API through a custom tool wrapper if you need capabilities beyond what this server exposes.