ML4Bicing Agent.
Introducción
Este proyecto propone un agente de inteligencia artificial conversacional que permite a los usuarios predecir la disponibilidad de bicicletas en estaciones Bicing de Barcelona.
Caso de Uso
-
Combina datos históricos, condiciones meteorológicas y eventos locales para generar una recomendación personalizada y contextualizada.
El objetivo es anticipar la demanda, evitar desplazamientos innecesarios y mejorar la experiencia del usuario.
-
Predecir cuántas bicis habrá disponibles cada 30 minutos hasta el final del día
Tener en cuenta la previsión del tiempo
Consultar eventos cercanos que puedan impactar la demanda
Indicar el estado técnico actual de la estación
-
El agente inteligente se apoya en tres servidores MCP (Model Context Protocol), que permiten ampliar sus capacidades con información en tiempo real proveniente de APIs o funciones especializadas.
Estos MCPs trabajan de forma combinada para enriquecer la predicción, generando una respuesta más precisa, humana y útil.
-
Permite al agente hacer peticiones HTTP a servicios web externos.
🟢 Usado para:
Consultar la **predicción de bicicletas** (modelo .pkl publicado en Render)
Obtener el **estado técnico actual** de las estaciones desde la API oficial de Bicing
-
Recupera la **previsión meteorológica** por hora para la ubicación de una estación.
🟢 Usado para:
Anticipar la demanda según condiciones de lluvia, calor o nubosidad
Incorporar contexto climático en la recomendación final del agente
-
Simula una búsqueda online contextualizada (como si fuera un navegador).
🟢 Usado para:
Buscar **eventos públicos** en la zona de la estación y en el rango horario indicado
Considerar eventos masivos (conciertos, fútbol, festivales) que pueden aumentar o reducir la demanda
Flujo paso a paso
-
Este es el comportamiento que sigue el agente IA cada vez que un usuario realiza una consulta como:
> “¿Habrá bicis en la estación 305 esta tarde?”
-
Claude analiza automáticamente:
El ID o nombre de la estación
El intervalo horario solicitado (por defecto, de ahora hasta el final del día)
La fecha (por defecto, hoy)
El contexto necesario para hacer una predicción útil
-
🔧 MCP usado: `mcp-http`
📍 Endpoint: API personalizada alojada en Render
Claude envía:
Estación
Día de la semana
Hora inicial
Bicis actuales
📤 Obtiene:
Una lista con predicciones cada 30 minutos (formato JSON)
-
🔧 MCP usado: `mcp-http`
📍 Fuente: API oficial de Bicing (Barcelona)
Claude obtiene en tiempo real:
Número de bicis disponibles
Número de anclajes libres
Estado de la estación (activa/inactiva)
-
🔧 MCP usado: `mcp-weather`
📍 Parámetros: latitud y longitud de la estación
Claude consulta:
Clima previsto para cada franja horaria (lluvia, sol, nubes, temperatura)
-
🔧 MCP usado: `mcp-browser`
📍 Claude realiza una búsqueda online del tipo:
> “Eventos hoy cerca de Glòries Barcelona”
Filtra por:
Proximidad a la estación
Fecha y hora
Tipo de evento
-
Claude sintetiza todos los datos:
Predicciones horarias
Clima previsto
Estado técnico de la estación
Eventos relevantes
Y responde al usuario de forma natural y útil:
> “📍 Estación 305 – Esta tarde:
> 🕕 18:00 → 9 bicicletas (☁️ nublado)
> 🕖 19:00 → 4 bicicletas (☀️ soleado)
> Actualmente hay 13 bicis disponibles y 25 anclajes.
> Hoy a las 19:00 hay un evento en el Auditori Nacional cercano.
Arquitectura del Sistema
🧩 Arquitectura del sistema
El sistema funciona combinando distintos componentes conectados entre sí para ofrecer una respuesta enriquecida y contextual.
🧠 Claude Desktop + MCPs
Claude funciona como motor central del agente IA. Se ejecuta en local (versión Desktop) y tiene acceso a múltiples servidores MCP que le permiten conectarse con datos externos.
📦 MCPs (Model Context Protocol)
Claude invoca MCPs que actúan como servidores auxiliares especializados en:
Consultar datos históricos (`mcp-http`)
Obtener clima en tiempo real (`mcp-weather`)
Simular búsquedas web (`mcp-browser`)
📡 API de predicción
Un modelo `.pkl` entrenado previamente fue desplegado en un servidor de Render y se consulta mediante una API HTTP.
👤 Interacción del usuario
El usuario escribe una pregunta en lenguaje natural. Claude interpreta el contexto, consulta los MCPs y responde con una recomendación detallada.
🧩 🧠 📦 📡 👤
Este sistema modular permite enriquecer las respuestas con datos fiables, en tiempo real, y adaptados a cada consulta específica.