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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (sin parámetros) |
login
Autentícate con Uber usando correo electrónico/teléfono y contraseña mediante automatización del navegador.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
identifier | string | Sí | Correo electrónico o número de teléfono de la cuenta Uber |
password | string | Sí | Contraseña de la cuenta Uber |
headless | boolean | No | Ejecutar 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: falsepara completar la verificación en la ventana visible del navegador, luego llama aloginnuevamente.
logout
Borra la sesión de Uber y todas las cookies almacenadas.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (sin parámetros) |
set_pickup
Configura la ubicación de recogida para una solicitud de viaje. Persiste entre llamadas de herramientas.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
address | string | Sí | 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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
address | string | Sí | 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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
pickup | string | No | Sobrescribir dirección de recogida (usa la recogida almacenada si no se proporciona) |
destination | string | No | Sobrescribir dirección de destino (usa el destino almacenado si no se proporciona) |
headless | boolean | No | Ejecutar 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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
pickup | string | No | Sobrescribir dirección de recogida |
destination | string | No | Sobrescribir dirección de destino |
headless | boolean | No | Ejecutar 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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
ride_type | string | No | Tipo de viaje (p. ej., "UberX", "Comfort", "XL", "Black"). Por defecto es "UberX". |
confirm | boolean | No | Configura true para realizar realmente la solicitud de viaje. Por defecto false (solo vista previa). |
headless | boolean | No | Ejecutar el navegador en modo headless (predeterminado: true) |
Advertencia: Configurar
confirm: trueintentará 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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
headless | boolean | No | Ejecutar el navegador en modo headless (predeterminado: true) |
cancel_ride
Cancela una solicitud de viaje en Uber pendiente o activa.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
confirm | boolean | No | Configura true para confirmar la cancelación. Por defecto false (solo muestra información de cancelación). |
headless | boolean | No | Ejecutar 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.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
limit | number | No | Número de viajes recientes a devolver (predeterminado: 10) |
headless | boolean | No | Ejecutar 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:
- Llamará a
set_pickupcon la ubicación actual del usuario - Llamará a
set_destinationcon "Aeropuerto JFK" - Llamará a
get_fare_estimatepara comparar precios de UberX, Comfort, XL - Devolverá un resumen de opciones y tiempos de espera estimados
Agente: "Solicita el viaje UberX."
El agente:
- Llamará a
request_rideconride_type: "UberX"yconfirm: true - Recibirá una confirmación con el tiempo de llegada del conductor
- Almacenará el ID del viaje para seguimiento
- Llamará de forma autónoma a
get_ride_statusen 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: falsepara 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