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
- Ve al Panel de desarrolladores de Uber
- 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
- En el Panel de desarrolladores, haz clic en "Crear aplicación" (esquina superior derecha)
- 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
- Haz clic en "Crear"
Paso 3: Obtener tus credenciales de API
- Navega a tu aplicación en el panel
- Ve a la pestaña Auth
- 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
- 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
- Para pruebas locales:
- Selecciona los alcances requeridos:
profile- Información básica del perfil del usuariorequest- Solicitar viajes en nombre del usuarioride_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
- uber_get_auth_url - Obtener URL de autorización OAuth
- uber_set_access_token - Establecer el token de acceso del usuario
- uber_get_price_estimates - Obtener estimaciones de precios para un viaje
- uber_request_ride - Solicitar un viaje de Uber
- uber_get_ride_status - Consultar el estado de la solicitud de viaje
- uber_cancel_ride - Cancelar una solicitud de viaje
Flujo OAuth
- Usa
uber_get_auth_urlpara obtener la URL de autorización - El usuario visita la URL y autoriza tu aplicación
- Después del callback, intercambia el código por un token de acceso
- Usa
uber_set_access_tokenpara almacenar el token - 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 UberUBER_CLIENT_SECRET: El secreto de cliente de tu aplicación UberUBER_REDIRECT_URI: URL de callback OAuth (predeterminado:http://localhost:3000/callback)UBER_ENVIRONMENT: Ya seasandboxoproduction(predeterminado:sandbox)
Pruebas de tu integración
-
Usa el modo sandbox para pruebas:
- Establece
UBER_ENVIRONMENT=sandboxen tu entorno - El modo sandbox simula solicitudes de viaje sin conductores reales
- Perfecto para desarrollo y pruebas
- Establece
-
Prueba el flujo OAuth:
- Usa la herramienta
uber_get_auth_urlpara 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_tokenpara almacenar el token en el servidor MCP
- Usa la herramienta
-
Configuración de un manejador de callback:
- Para pruebas, puedes usar un servidor Express simple (consulta
examples/oauth-server.jsen 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
- Para pruebas, puedes usar un servidor Express simple (consulta
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
- Nunca comprometas credenciales: Mantén tu Secreto de Cliente seguro
- Usa variables de entorno: No codifiques credenciales
- Implementa almacenamiento adecuado de tokens: El almacenamiento actual en memoria es solo para demostración
- 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