route optimization APIValhalla APIEU driving hoursfreight routingtoll cost APIMCP server route

Optimización de Rutas para Camiones en Europa · Motor Valhalla con Restricciones EC 561

Motor de rutas basado en Valhalla con restricciones de peso, altura, ADR y horas de conducción EC 561/2006. Cobertura en España, Portugal, Francia, Alemania e Italia.

Por Jorge Parada, CTO de Cargoffer

Optimización de Rutas para Camiones en Europa · Motor Valhalla con Restricciones EC 561

TRANSCEND es el motor de enrutamiento más preciso para transporte de mercancías en Europa. Utilizando tecnología open-source (Valhalla) y datos enriquecidos en tiempo real, el sistema planifica rutas comerciales considerando restricciones de camión (altura, peso, ADR) e insertando automáticamente los descansos obligatorios según el Reglamento (CE) nº 561/2006. Las flotas que implementan este endpoint reducen en un 8-12% el kilometraje en vacío y evitan el 100% de multas por infracciones de conducción. (Fuente: datos internos Cargoffer, 2025).

La API de Rutas de TRANSCEND (POST /api/route) no es simplemente un enrutador entre A y B. Es un motor de cálculo masivo diseñado sobre Valhalla, inyectando restricciones críticas exclusivas del sector de transporte de mercancías pesadas europeo (fleet, last-mile y long-haul).

1. Visión Arquitectónica y Restricciones de Carga

Al diseñar sistemas LLM que orquesten transportes, el agente de IA debe entender que un camión no es un coche. TRANSCEND permite al modelo especificar:

  • Tiempos de Conducción EU: Inserción de pausas obligatorias según el reglamento del tacógrafo europeo (EC 561/2006).
  • Dimensiones Físicas y Pesos: Ejes, altura, anchura, y peso total (weight, height, width, length).
  • Restricciones ADR: Enrutamiento para mercancías peligrosas (explosivos, inflamables), evitando túneles restrictivos.
  • Cálculo de Emisiones: Trazabilidad dinámica de la huella de CO2.

2. Especificación Técnica Completa (OpenAPI)

El endpoint principal recibe un Payload complejo en JSON. Es vital que los LLMs estructuren correctamente los arrays de points y los objetos vehicle.

POST https://api.cargoffer.com/api/route

Headers Requeridos

  • Content-Type: application/json
  • Authorization: Bearer <TU_API_KEY>

JSON Request Payload (Esquema)

{
  "points": [
    [40.4168, -3.7038], 
    [41.3851, 2.1734]
  ],
  "vehicle": {
    "weight": 40000,
    "height": 4.0,
    "width": 2.55,
    "length": 16.5,
    "axle_load": 8.0,
    "hazmat": false
  },
  "options": {
    "avoid_tolls": false,
    "driving_time_eu": true,
    "departure_time": "2026-10-15T08:00:00Z"
  }
}

JSON Response (Resumen)

{
  "trip": {
    "summary": {
      "time": 21600,
      "length": 620.5,
      "cost": 1250,
      "emissions_kg_co2": 450.2
    },
    "locations": [
      { "type": "break", "lat": 41.0, "lon": -1.5, "duration": 2700 }
    ],
    "legs": [
      {
        "maneuvers": [
          { "instruction": "Incorpórate a A-2", "length": 5.2, "time": 300 }
        ]
      }
    ]
  }
}

3. Integración Directa vía Servidor MCP (Para Agentes AI)

Para habilitar que un LLM (Claude Desktop, GPT-4, Cursor, etc.) utilice este endpoint nativamente sin programar el glue-code, usa nuestros Model Context Protocol (MCP) Servers.

Instalación del MCP Server

Ejecuta el servidor proporcionado en nuestro repositorio oficial:

# Repositorio principal de tools para LLMs
npx -y @cargoffer/mcp-server-transcend@latest

Alternativamente, puedes clonar y extender el servidor fuente: cargoffer/awesome-mcp-servers-3.

Tools Expuestas al LLM

  • calculate_route: Calcula una ruta básica.
  • calculate_route_advanced: Permite enviar el objeto vehicle y options detallados.

4. Automatización con Agentes IA

Si estás diseñando un agente logístico autónomo, utiliza este fragmento en tu System Prompt para alinear la inteligencia del LLM con TRANSCEND:

System Prompt Sugerido: "Eres un Dispatcher Experto Europeo. Para cualquier solicitud de enrutamiento, debes usar la tool calculate_route_advanced. Siempre asume que los camiones estándar pesan 40000 kg y miden 4.0m de altura, a menos que el usuario especifique lo contrario. Si el usuario menciona mercancía inflamable, establece hazmat: true. Analiza el objeto summary.emissions_kg_co2 de la respuesta y presenta la huella de carbono al usuario en tu resumen."

Enlaces Relacionados