Uber

Reserva viajes de Uber directamente a través de tu asistente de IA.

Documentación

Servidor MCP de Uber

Un servidor MCP (Protocolo de Contexto de Modelo) para reservar viajes de Uber a través de asistentes de IA.

Características

  • Autenticación OAuth 2.0 con Uber
  • Obtener estimaciones de precios para viajes
  • Solicitar viajes de Uber
  • Consultar el estado del viaje
  • Cancelar viajes

Instalación

Usando npm (instalación global)

npm install -g mcp-uber

Usando npx (sin necesidad de instalación)

npx mcp-uber

Configuración

Paso 1: Crear una cuenta de desarrollador de Uber

  1. Ve al Panel de desarrolladores de Uber
  2. Haz clic en "Iniciar sesión" y elige una de las siguientes opciones:
    • Usa una cuenta existente de conductor/pasajero de Uber
    • Crea una cuenta nueva específicamente para desarrollo

💡 Consejo: Para organizaciones, crea un alias de correo electrónico (por ejemplo, dev@tuempresa.com) en lugar de usar una cuenta personal para facilitar la transferencia de propiedad.

Paso 2: Crear una nueva aplicación

  1. En el Panel de desarrolladores, haz clic en "Crear aplicación" (esquina superior derecha)
  2. Completa la información requerida:
    • Nombre de la aplicación: El nombre de tu aplicación
    • Descripción: Breve descripción de lo que hace tu aplicación
  3. Haz clic en "Crear"

Paso 3: Obtener tus credenciales de API

  1. Navega a tu aplicación en el panel
  2. Ve a la pestaña Auth
  3. Encontrarás:
    • ID de cliente: Identificador público de tu aplicación
    • Secreto de cliente: Clave privada (¡mantenla segura!)
    • Token de servidor: Para solicitudes del lado del servidor

Paso 4: Configurar los ajustes de OAuth

  1. En la pestaña Auth, agrega tu URI de redirección:
    • Para pruebas locales: http://localhost:3000/callback
    • Para producción: Tu URL de callback real
  2. Selecciona los alcances requeridos:
    • profile - Información básica del perfil del usuario
    • request - Solicitar viajes en nombre del usuario
    • ride_request - Ver y gestionar solicitudes de viaje activas

⚠️ Nota: El alcance request es privilegiado y requiere aprobación de Uber para uso en producción. Durante el desarrollo, tu cuenta puede usarlo sin aprobación.

Paso 5: Configurar variables de entorno

Crea variables de entorno con tus credenciales (consulta la sección de Configuración a continuación)

Uso con Claude Desktop

Usando npm (instalación global)

Agrega a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "uber": {
      "command": "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"
      }
    }
  }
}

Usando npx

Agrega a tu configuración de Claude Desktop:

{
  "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"
      }
    }
  }
}

Herramientas disponibles

  1. uber_get_auth_url - Obtener URL de autorización OAuth
  2. uber_set_access_token - Establecer el token de acceso del usuario
  3. uber_get_price_estimates - Obtener estimaciones de precios para un viaje
  4. uber_request_ride - Solicitar un viaje de Uber
  5. uber_get_ride_status - Consultar el estado de la solicitud de viaje
  6. uber_cancel_ride - Cancelar una solicitud de viaje

Flujo OAuth

  1. Usa uber_get_auth_url para obtener la URL de autorización
  2. El usuario visita la URL y autoriza tu aplicación
  3. Después del callback, intercambia el código por un token de acceso
  4. Usa uber_set_access_token para almacenar el token
  5. Ahora puedes realizar llamadas a la API

Configuración

Variables de entorno

El servidor MCP requiere las siguientes variables de entorno:

  • UBER_CLIENT_ID: El ID de cliente de tu aplicación Uber
  • UBER_CLIENT_SECRET: El secreto de cliente de tu aplicación Uber
  • UBER_REDIRECT_URI: URL de callback OAuth (predeterminado: http://localhost:3000/callback)
  • UBER_ENVIRONMENT: Ya sea sandbox o production (predeterminado: sandbox)

Pruebas de tu integración

  1. Usa el modo sandbox para pruebas:

    • Establece UBER_ENVIRONMENT=sandbox en tu entorno
    • El modo sandbox simula solicitudes de viaje sin conductores reales
    • Perfecto para desarrollo y pruebas
  2. Prueba el flujo OAuth:

    • Usa la herramienta uber_get_auth_url para obtener una URL de autorización
    • Visita la URL y autoriza tu aplicación
    • Después de la autorización, Uber redirigirá a tu URL de callback con un código
    • Intercambia el código por un token de acceso (necesitarás configurar tu propio manejador de callback)
    • Usa uber_set_access_token para almacenar el token en el servidor MCP
  3. Configuración de un manejador de callback:

    • Para pruebas, puedes usar un servidor Express simple (consulta examples/oauth-server.js en el repositorio de GitHub)
    • Para producción, implementa un manejador de callback seguro en tu aplicación
    • La URL de callback debe coincidir exactamente con lo configurado en tu aplicación de Uber

Notas importantes

Sandbox vs Producción

  • Modo Sandbox (predeterminado):

    • Viajes y conductores simulados
    • Sin cargos reales
    • Perfecto para pruebas
    • Limitado a tu cuenta de desarrollador
  • Modo Producción:

    • Viajes y cargos reales
    • Requiere aprobación de Uber para alcances privilegiados
    • Debe pasar el proceso de revisión de Uber

Mejores prácticas de seguridad

  1. Nunca comprometas credenciales: Mantén tu Secreto de Cliente seguro
  2. Usa variables de entorno: No codifiques credenciales
  3. Implementa almacenamiento adecuado de tokens: El almacenamiento actual en memoria es solo para demostración
  4. Valida URIs de redirección: Asegúrate de que tus URLs de callback estén configuradas correctamente

Limitaciones de la API

  • Se aplican límites de velocidad (consulta la documentación de Uber)
  • Los alcances privilegiados requieren aprobación para uso en producción
  • El modo sandbox tiene algunas limitaciones en comparación con producción

Solución de problemas

  • Error de "alcance inválido": Tu aplicación necesita aprobación para alcances privilegiados en producción
  • "URI de redirección inválida": Asegúrate de que tu URI de redirección coincida exactamente con lo configurado en el panel de Uber
  • Errores de "No autorizado": Verifica que tu token de acceso sea válido y no haya expirado

Recursos