Back to MCP Servers

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.

Travel by 199 Biotechnologies (community) OAuth2 active
Overview

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.
Setup Guide

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, and ride_request scopes 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 ID
  • UBER_CLIENT_SECRET: Uber application client secret
  • UBER_REDIRECT_URI: OAuth callback URL (default http://localhost:3000/callback)
  • UBER_ENVIRONMENT: sandbox for testing with simulated rides, production for real rides

First-run authorization

  1. Call uber_get_auth_url to get the authorization link.
  2. Open it in a browser and approve the requested scopes.
  3. Capture the access token from the callback and pass it to uber_set_access_token.
  4. After that, the ride tools can be used.

Use sandbox first. Production mode dispatches real drivers and charges real money.

Use Cases
  • 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.
Example Prompts
  • "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."
Pros
  • Covers the core Uber Rides workflow: auth, estimates, request, status, cancel.
  • Distributed as an npm package, so setup is a single npx mcp-uber command 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.
Limitations
  • 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.
Alternatives
  • 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.