geo_logistics_intel
ActiveTool of gapup-mcp
Geospatial logistics intelligence for supply chain, maritime and transport agents. Four modes: (1) geocode_batch — resolve up to 50 addresses to lat/lon with confidence scores (OSM Nominatim + Open-Meteo fallback, 1 req/s rate-limit respected); (2) routing — road/cycling/walking route with distance_km, duration_seconds and ETA ISO timestamp between two addresses or lat/lon points (OSRM public, keyless, global); (3) port_congestion — congestion status for any UN/LOCODE port (e.g. NLRTM, SGSIN, CNSHA) with waiting vessel count, severity (low/medium/high/extreme) and average wait hours; (4) ship_tracking — AIS position, speed, course, destination and ETA for a vessel by its 9-digit MMSI. No API key required for geocode/routing/port. Optional env: AIS_STREAM_API_KEY for live ship data (otherwise MarineTraffic scrape best-effort). SLA: <=25s p95. Cache: 24h geocoding / 1h routing / 30min port / 5min ship. Quality score 0-100. Status: final/partial/failed.
Parameters schema
{
"type": "object",
"required": [
"mode",
"query"
],
"properties": {
"to": {
"type": "string",
"description": "routing only: destination address or 'lat,lon'"
},
"from": {
"type": "string",
"description": "routing only: origin address or 'lat,lon'"
},
"mode": {
"enum": [
"geocode_batch",
"routing",
"port_congestion",
"ship_tracking"
],
"type": "string",
"description": "'geocode_batch': address -> lat/lon. 'routing': route + ETA. 'port_congestion': UN/LOCODE port state. 'ship_tracking': vessel by MMSI"
},
"async": {
"type": "boolean",
"description": "If true, returns a job_id immediately (<200ms) instead of waiting for the result. Poll the result with job_result(job_id). Use for slow tools to avoid client timeouts."
},
"query": {
"type": "string",
"description": "Primary input: address for geocode/routing, UN/LOCODE (e.g. NLRTM) for port_congestion, 9-digit MMSI for ship_tracking"
},
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "geocode_batch only: up to 50 addresses (overrides query if provided)"
},
"mode_transport": {
"enum": [
"driving",
"walking",
"cycling"
],
"type": "string",
"description": "routing only: transport mode. Default: driving"
}
}
}Parent server
gapup-mcp
https://github.com/getgapup/gapup-mcp-public
2/7 registries