About On va où ? Routing API
On va où ? Routing API is an MCP server for address geocoding and route planning across Europe, intended for AI assistants. It supports multiple travel modes and returns route variants, attributes, and turn-by-turn steps.
Key features
- 01Convert addresses and places to coordinates
- 02Plan routes for bikes and other modes
- 03Offer safe, balanced, and fast variants
- 04Show route attributes and elevation
- 05Provide turn-by-turn directions
Use cases
- 01Geocode European places and plan bike trips
- 02Find routes suitable for wheelchair travel
- 03Compare route options by road type and climb
MCP support
The MCP server exposes address geocoding and route-computation tools to clients. Geocoding results can feed directly into routing, and responses include source and attribution details.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y onvaou-itineraires-mcpOVO_API_KEYSecretAPI key, free at https://console.onvaou.app (10,000 requests per month, no credit card)OVO_API_URLOptional API base URL (default: the production API)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
2Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | enum | No | bike, ebike, scooter (kick scooter), moto (motorcycle), wheelchair, footbike | ebike | scooter | moto | wheelchair | foot |
| avoid | array | No | ferries, steps; tolls and highways (moto); unpaved and steep (wheelchair) |
| origin | object | Yes | Start point |
| origin.lat | number | Yes | Latitude, WGS 84 |
| origin.lon | number | Yes | Longitude, WGS 84 |
| language | enum | No | Language of the turn-by-turn instructionsen | fr | de | es | it | nl | pt |
| variants | array | No | Which variants to return (default: all three) |
| waypoints | array | No | Up to 8 intermediate stops, in order |
| destination | object | Yes | End point |
| destination.lat | any | Yes | |
| destination.lon | any | Yes | |
| include_steps | boolean | No | Include turn-by-turn instructions |
| include_geometry | boolean | No | Include the encoded polyline (Google algorithm, precision 5) |
| include_elevation_profile | boolean | No | Include the elevation profile (up to 100 points) |
Details
From the project README« On va où ? » Routing API: MCP server
Address geocoding, and bike, e-bike, kick scooter, motorcycle, wheelchair and walking routes across Europe, for AI assistants. One request turns a place name into coordinates; the next returns up to three routes (safe, balanced, fast) with what each one is worth: share of cycle lanes, unpaved surfaces, main roads and motorways, climb, and turn-by-turn steps.
Setup
- Create a free API key at https://console.onvaou.app (10,000 requests per month, no credit card).
- Add the server to your MCP client, for example Claude Desktop
(
claude_desktop_config.json):
{
"mcpServers": {
"onvaou-itineraires": {
"command": "npx",
"args": ["-y", "onvaou-itineraires-mcp"],
"env": { "OVO_API_KEY": "ovo_live_..." }
}
}
}
Claude Code, same key, one line:
claude mcp add -e OVO_API_KEY=ovo_live_... onvaou-itineraires -- npx -y onvaou-itineraires-mcp
Both tools come with the server: ask for "a safe bike route from Gare de Rennes to the Thabor park" and the assistant geocodes the two names, then routes between the coordinates it got back.
Tools
geocode_address: turns an address, a place name, a station or a point of
interest (query, 2 to 200 characters) into longitude/latitude candidates,
best first, each with a full label, its type and a confidence score. type is
one of address (a house number), street, locality (town, district),
region, country, venue (a named place: station, hotel, monument) or
other, and nothing else. Narrow the search with near (bias the ranking
around a point, which must itself be inside the European coverage), country
(ISO 3166-1 alpha-2), limit (1 to 5) and language (en, fr, de, it; en by
default, any other value refused). it is accepted, but the geocoder does not
label in Italian: the labels then come back in the local language of each
place (Milano, München). Results come from Photon (OpenStreetMap) across
Europe, and from the IGN Géoplateforme in France, which hands over to Photon
when it is unavailable, returns nothing, or its best confidence is below 0.4;
source says which one answered. Its coordinates go straight into
compute_route. Searches have their own daily allowance and never count
towards the monthly routing quota, so a lookup before a route is free.
compute_route: origin and destination ({ "lon": 2.3522, "lat": 48.8566 }),
up to 8 waypoints, mode (bike, ebike, scooter, moto, wheelchair, foot),
variants, avoid (ferries, steps, tolls, highways, unpaved, steep),
instruction language (en, fr, de, es, it, nl, pt), and whether to include
steps, the encoded polyline and the elevation profile. Give it coordinates:
when you only have a place name, call geocode_address first.
Both tools are read-only, answer with a short readable summary first, then the
same data as JSON, and report what the call cost: searches used today for the
geocoder, requests used this month for the router. Coverage: Europe. Each
answer carries its own attribution string, and the search also says which
source served it: display that attribution next to any route or result you
show.
Documentation: https://onvaou.app/developers/routing-api.html Code examples: https://github.com/onvaou-app/routing-api-examples
Development
npm install
npm test # 11 tests, including a real MCP client over stdio against a mock API
License: MIT, © 2026 OVO SAS. Terms of the API: https://onvaou.app/cgv-api
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.