Strider Labs Uber MCP

Servidor MCP para Uber - permite que agentes de IA reserven viajes, obtengan estimaciones de tarifas y rastreen trayectos

Documentación

@striderlabs/mcp-uber

Conector de servidor MCP para Uber de viajes compartidos: solicita viajes, obtén estimaciones de tarifas y rastrea trayectos mediante automatización del navegador.

Instalación

npx @striderlabs/mcp-uber

O instala globalmente:

npm install -g @striderlabs/mcp-uber

Configuración de MCP

Agrega a tu claude_desktop_config.json:

{
  "mcpServers": {
    "uber": {
      "command": "npx",
      "args": ["@striderlabs/mcp-uber"]
    }
  }
}

Herramientas

status

Verifica el estado de autenticación y sesión de Uber, incluido el punto de recogida/destino actual si está configurado.

NombreTipoRequeridoDescripción
(sin parámetros)

login

Autentícate con Uber usando correo electrónico/teléfono y contraseña mediante automatización del navegador.

NombreTipoRequeridoDescripción
identifierstringSíCorreo electrónico o número de teléfono de la cuenta Uber
passwordstringSíContraseña de la cuenta Uber
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true). Configura false para ver el navegador y completar OTP/captcha manualmente.

Nota: Uber a menudo requiere verificación por OTP telefónico. Si se activa OTP, ejecuta con headless: false para completar la verificación en la ventana visible del navegador, luego llama a login nuevamente.


logout

Borra la sesión de Uber y todas las cookies almacenadas.

NombreTipoRequeridoDescripción
(sin parámetros)

set_pickup

Configura la ubicación de recogida para una solicitud de viaje. Persiste entre llamadas de herramientas.

NombreTipoRequeridoDescripción
addressstringSíDirección de recogida (p. ej., "123 Main St, New York, NY" o "JFK Airport")

set_destination

Configura el destino para una solicitud de viaje. Persiste entre llamadas de herramientas.

NombreTipoRequeridoDescripción
addressstringSíDirección de destino (p. ej., "456 Park Ave, New York, NY" o "LaGuardia Airport")

get_fare_estimate

Obtén estimaciones de tarifas para todos los tipos de viaje disponibles entre recogida y destino.

NombreTipoRequeridoDescripción
pickupstringNoSobrescribir dirección de recogida (usa la recogida almacenada si no se proporciona)
destinationstringNoSobrescribir dirección de destino (usa el destino almacenado si no se proporciona)
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true)

Nota: Configura primero la recogida y el destino con set_pickup / set_destination, o proporciónalos directamente como parámetros.


get_ride_options

Obtén los tipos de viaje disponibles (UberX, Comfort, XL, Black, etc.) con precios y tiempos de llegada estimados para la ruta actual.

NombreTipoRequeridoDescripción
pickupstringNoSobrescribir dirección de recogida
destinationstringNoSobrescribir dirección de destino
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true)

request_ride

Solicita un viaje en Uber. Devuelve una vista previa de confirmación por defecto — no confirma automáticamente.

NombreTipoRequeridoDescripción
ride_typestringNoTipo de viaje (p. ej., "UberX", "Comfort", "XL", "Black"). Por defecto es "UberX".
confirmbooleanNoConfigura true para realizar realmente la solicitud de viaje. Por defecto false (solo vista previa).
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true)

Advertencia: Configurar confirm: true intentará realizar una solicitud de viaje real. Asegúrate de que la recogida, el destino y el tipo de viaje sean correctos antes de confirmar.


get_ride_status

Obtén el estado de tu viaje actual o más reciente en Uber.

NombreTipoRequeridoDescripción
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true)

cancel_ride

Cancela una solicitud de viaje en Uber pendiente o activa.

NombreTipoRequeridoDescripción
confirmbooleanNoConfigura true para confirmar la cancelación. Por defecto false (solo muestra información de cancelación).
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true)

Nota: Puede aplicarse una tarifa de cancelación si ya se ha asignado un conductor. Revisa la política de cancelación antes de confirmar.


get_ride_history

Obtén el historial reciente de viajes en Uber.

NombreTipoRequeridoDescripción
limitnumberNoNúmero de viajes recientes a devolver (predeterminado: 10)
headlessbooleanNoEjecutar el navegador en modo headless (predeterminado: true)

Para Agentes

Los agentes pueden usar este conector para solicitar, rastrear y gestionar viajes en Uber de forma autónoma en nombre de su humano. Ejemplo de flujo de agente:

Agente: "Necesito ir al Aeropuerto JFK. ¿Cuál es el viaje más barato disponible?"

El agente:

  1. Llamará a set_pickup con la ubicación actual del usuario
  2. Llamará a set_destination con "Aeropuerto JFK"
  3. Llamará a get_fare_estimate para comparar precios de UberX, Comfort, XL
  4. Devolverá un resumen de opciones y tiempos de espera estimados

Agente: "Solicita el viaje UberX."

El agente:

  1. Llamará a request_ride con ride_type: "UberX" y confirm: true
  2. Recibirá una confirmación con el tiempo de llegada del conductor
  3. Almacenará el ID del viaje para seguimiento
  4. Llamará de forma autónoma a get_ride_status en intervalos para mantener informado al usuario

Este conector está diseñado para funcionar en escenarios de asistente personal autónomo donde el agente tiene acceso persistente a la cuenta Uber del usuario y toma decisiones de viaje basadas en el contexto (ubicación, costo, tiempo, preferencias).

Flujo de Trabajo Típico

1. login          → Authenticate with Uber
2. set_pickup     → "Times Square, New York, NY"
3. set_destination → "JFK Airport, Queens, NY"
4. get_fare_estimate → Review prices for UberX, Comfort, XL, etc.
5. request_ride   → Preview the ride (confirm: false)
6. request_ride   → confirm: true to place the request
7. get_ride_status → Track your driver
8. cancel_ride    → Cancel if needed (confirm: true)

Almacenamiento de Sesión

Las sesiones y los datos de ruta se almacenan en:

~/.striderlabs/uber/
├── cookies.json   # Browser session cookies
├── auth.json      # Account metadata
└── route.json     # Current pickup/destination

Detalles Técnicos

  • Transporte: stdio (estándar MCP)
  • Navegador: Chromium mediante Playwright con parches de sigilo
  • Sigilo: Parchea navigator.webdriver, falsifica plugins/idiomas, elimina marcadores de automatización
  • Geolocalización: Por defecto en la Ciudad de Nueva York (40.7128, -74.006)
  • Agente de Usuario: Chrome 120 en macOS

Notas

  • OTP/Captcha: Uber puede requerir OTP telefónico o CAPTCHA durante el inicio de sesión. Usa headless: false para manejarlos manualmente.
  • Estimaciones de Tarifas: Disponibles sin iniciar sesión en uber.com/global/en/price-estimate/
  • Solicitudes de Viaje: Requieren una sesión activa iniciada.
  • Tarifas de Cancelación: Uber puede cobrar una tarifa si cancelas después de que se asigne un conductor.
  • Aplicación Móvil: Uber es principalmente una aplicación móvil. La interfaz web (riders.uber.com) se usa para la automatización, que puede tener características diferentes a la aplicación móvil.

Licencia

MIT — Strider Labs