Authorization is not hidden: the authorization URL has its own tool, the returned token is stored by another, and every remaining call carries the same userId, which is what lets the server serve more than one rider. Locations are latitude and longitude only — there is no address or place lookup — and a ride request additionally needs a productId and a fareId, so the coordinates alone will not book anything. UBER_ENVIRONMENT is where you decide whether a request is a sandbox exercise or a car arriving.
An Uber ride-request client with its OAuth handshake exposed as tools, so one server can hold tokens for more than one rider.
- An authorization URL to hand a rider, and a call to store the access token that comes back for their userId
- Price estimates for a trip given start and end latitude and longitude
- A ride request placed against a chosen productId and fareId
- Current status of a request, and cancellation of one that is still running
An Uber developer application supplying four environment variables — UBER_CLIENT_ID, UBER_CLIENT_SECRET, UBER_REDIRECT_URI and UBER_ENVIRONMENT — and a rider who completes the OAuth callback so a token can be stored against their userId.
One command plus a key — npx mcp-uber, then supply credentials
