MI PANA APP - MCP Server
Servidor MCP (Model Context Protocol) para gestión de viajes, conductores y tarifas de MI PANA APP.
🚀 Características
- Búsqueda de conductores disponibles por ubicación y radio
- Cálculo de tarifas dinámicas basadas en distancia y tiempo
- Gestión de viajes (crear, actualizar, completar)
- Seguimiento en tiempo real de ubicación de conductores
- Estadísticas de conductores por período
- Cálculo de distancias usando fórmula de Haversine
📋 Herramientas Disponibles
1. buscar_conductores_disponibles
Busca conductores disponibles en un radio específico.
Parámetros:
latitud(number): Latitud del punto de búsquedalongitud(number): Longitud del punto de búsquedaradio_km(number, opcional): Radio de búsqueda en km (default: 5)
2. crear_viaje
Crea una nueva solicitud de viaje.
Parámetros:
user_id(string): ID del usuarioorigen(object): { latitud, longitud, direccion }destino(object): { latitud, longitud, direccion }metodo_pago(string): efectivo | transferencia | pago_movil
3. calcular_tarifa
Calcula la tarifa estimada de un viaje.
Parámetros:
distancia_km(number): Distancia en kilómetrosduracion_min(number, opcional): Duración en minutostipo_servicio(string, opcional): mototaxi | el_pana | el_amigo | full_panamoneda(string, opcional): BS | USD
4. actualizar_ubicacion_conductor
Actualiza la ubicación en tiempo real de un conductor.
Parámetros:
conductor_id(string): ID del conductorlatitud(number): Latitud actuallongitud(number): Longitud actualrumbo(number, opcional): Dirección en grados (0-360)
5. obtener_estadisticas_conductor
Obtiene estadísticas de rendimiento de un conductor.
Parámetros:
conductor_id(string): ID del conductorperiodo(string, opcional): today | week | month | all_time
6. completar_viaje
Marca un viaje como completado y calcula la tarifa final.
Parámetros:
viaje_id(string): ID del viajedistancia_real_km(number): Distancia real recorridaduracion_real_min(number): Duración real del viajecalificacion(number, opcional): Calificación 1-5
7. calcular_distancia
Calcula la distancia entre dos puntos geográficos.
Parámetros:
origen(object): { latitud, longitud }destino(object): { latitud, longitud }
🛠️ Instalación Local
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales de Supabase
# Ejecutar en desarrollo
npm run dev
# Ejecutar en producción
npm start
🚀 Despliegue en Vercel
Opción 1: Desde GitHub
- Sube el código a un repositorio de GitHub
- Importa el proyecto en Vercel
- Configura las variables de entorno en Vercel:
SUPABASE_URLSUPABASE_SERVICE_KEYBASE_FARE_BSPER_KM_BSPER_MIN_BSMIN_FARE_BSUSD_EXCHANGE_RATEFUEL_PRICE_BS
Opción 2: Desde CLI
# Instalar Vercel CLI
npm i -g vercel
# Desplegar
vercel
# Configurar variables de entorno
vercel env add SUPABASE_URL
vercel env add SUPABASE_SERVICE_KEY
# ... (agregar todas las variables)
# Redesplegar con las variables
vercel --prod
🔗 Configuración en Manus
Una vez desplegado en Vercel:
- Obtén la URL de tu despliegue (ej:
https://mipanaapp-mcp.vercel.app) - En Manus, ve a Settings → Conectores
- Edita el conector "MI PANA APP - Gestión de Viajes"
- Actualiza la URL a:
https://tu-proyecto.vercel.app/mcp - Guarda los cambios
📊 Estructura del Proyecto
mipanaapp-mcp/
├── api/
│ └── mcp.js # Endpoint para Vercel (SSE)
├── src/
│ ├── index.js # Servidor principal (stdio)
│ ├── handlers/ # (Futuro: handlers específicos)
│ └── utils/
│ ├── distance.js # Cálculos de distancia
│ └── fare-calculator.js # Cálculo de tarifas
├── package.json
├── vercel.json
├── .env.example
└── README.md
🧪 Pruebas
Ejemplos de uso con Manus:
"Busca conductores disponibles cerca de Acarigua (latitud: 9.5549, longitud: -69.1952)"
"Calcula la tarifa para un viaje de 10 kilómetros"
"Calcula la distancia entre Caracas (10.4806, -66.9036) y Maracay (10.2469, -67.5958)"
📝 Notas
- El servidor usa Supabase como base de datos
- Las tarifas se calculan en Bolívares (BS) y pueden convertirse a USD
- La velocidad promedio asumida es 20 km/h para cálculos de ETA
- El servidor soporta tanto stdio (para uso local) como SSE (para Vercel)
🔒 Seguridad
- Nunca compartas tu
SUPABASE_SERVICE_KEYpúblicamente - Usa variables de entorno para todas las credenciales
- El service_role key tiene permisos completos en Supabase
📄 Licencia
MIT
👤 Autor
Carlos Depool - MI PANA APP
