lux-nav
Relies on Komoot's hosted Photon geocoding service (photon.komoot.io) to turn free-text place queries into coordinates used by the trip planning and routing tools.
Uses OpenStreetMap as the underlying data source for places, addresses and landmarks (via the Photon geocoder) and for walking, cycling and e-bike routing (via FOSSGIS OSRM foot and bike profiles).
Integrates with the Photon geocoder (photon.komoot.io) built on OpenStreetMap data to resolve place names, addresses, stops and landmarks in and around Luxembourg into coordinates for trip planning and routing.
lux-nav
Open navigation for Luxembourg, built for people and AI agents: walking, cycling, e-bike, Vel'OH! bike share and public transport, with hill-aware timings, because Luxembourg is hilly.
MCP endpoint for AI agents:
https://lux-nav.lisel-hub.workers.dev/mcp(Streamable HTTP, stateless, no sign-up)REST API: the same host, under
/v1/…
Unofficial project. Not affiliated with mobiliteit.lu, the public transport administration, Vel'OH!/JCDecaux or the City of Luxembourg.
For AI agents
Add the MCP endpoint as a remote MCP server in Claude, ChatGPT or any MCP
client. The server supplies its own instructions; places can be names
("Hamilius", "Maison du Savoir, Belval") or lat,lon.
Tool | What it does |
| Compares walking, cycling, e-bike, Vel'OH! and public transport between two places: time, distance, climbing, live bikes and docks, next departures. |
| Turn-by-turn walking, cycling or e-bike directions, with climb, descent and elevation range. |
| Addresses, stops, buildings and landmarks in and around Luxembourg. |
| Nearest Vel'OH! stations with live bikes, e-bikes and free docks. |
| Live departures from the nearest bus, tram or train stop. |
Example prompt: "I'm at the Gare and need to be at the Philharmonie in 20 minutes. Should I walk or take a Vel'OH!?"
Related MCP server: norway-location-transport-mcp
REST API
GET /v1/places?q=Hamilius&lang=en
GET /v1/reverse?at=lat,lon
GET /v1/plan?from=49.6000,6.1334&to=49.6185,6.1440[&modes=walk,bike,ebike,bikeshare,transit]
GET /v1/route?from=lat,lon&to=lat,lon&mode=walk|bike|ebike
GET /v1/bikeshare[?near=lat,lon]
GET /v1/departures?near=lat,lonResponses are JSON. CORS is open, and each client may make 30 requests per minute.
How it works
lux-nav runs on Cloudflare Workers. It doesn't run its own routing engine; it combines open services and caches their responses:
Data | Source |
Places | Photon (OpenStreetMap) |
Walking and cycling routes | FOSSGIS OSRM (OpenStreetMap foot and bike profiles) |
Elevation and climbing | |
Vel'OH! availability | |
Live departures | mobiliteit-lu-mcp (mobiliteit.lu open data), called over MCP |
Durations add an uphill penalty: about 1 minute per 10 m climbed on foot, per 12 m by bike, and per 40 m on an e-bike. E-bike riding is estimated 20 % faster than a regular bike. Vel'OH! bikes are electric-assisted and are timed that way.
Known limits
Public transport: mobiliteit.lu's open data provides departures but no journey planner, so lux-nav shows the nearest stop and its live departures, not a full bus or train itinerary.
Fair use: the upstream services are free, shared and rate-limited. At scale, lux-nav should run its own routing and geocoding instances; the provider modules in
src/providers/are built to be swapped.
Development
npm install
npx wrangler types
npm test
npx wrangler devLive departures need MOBILITEIT_MCP_TOKEN (a wrangler secret) for the
endpoint configured in MOBILITEIT_MCP_URL.
Licence
Code: Apache-2.0. Data © OpenStreetMap contributors (ODbL) and the respective providers.
This server cannot be deployed
Maintenance
Related MCP Connectors
Mobility, geocoding and nearby urban services for AI agents.
- geoOAuthco.thinair
Geocoding, routing, isochrones, traffic, weather, and place search for AI agents. 19 MCP tools.
Routing, geocoding, places, matrix and map tools for location-aware AI workflows.
Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides tools for AI agents to query live public transport data for GZM (Silesian Metropolis) including vehicle positions, trip updates, service alerts, and next arrivals.88MIT
- AlicenseAqualityBmaintenanceEnables AI agents to access Norwegian public transport and geospatial data, including trip planning, stop departures, address search, elevation, and administrative boundaries, via the Entur and Kartverket APIs.2122 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access real-time public transport data for Moscow and the Moscow region, aggregating and reconciling information from multiple sources. Provides tools for finding stops, live arrival boards, vehicle tracking, route details, and ETA calculations.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to search for stops and stations across all Norwegian public transport and to fetch real-time departure data — planned versus expected times, delays, platform, operator, and disruption messages — with no API key required. Covers bus, tram, metro, train, and ferry nationwide through Entur's open APIs, with filtering by line, destination, and future departure time.2MIT