onvaou-itineraires-mcp
OfficialThis server lets AI assistants plan and compare routes across Europe for multiple modes of transport, after geocoding place names into coordinates.
Geocode addresses: turn a place name, address, station or POI into coordinates (best-first candidates with label, type, confidence, source), with optional country/language filters and a
nearbias.Compute routes: get up to three route variants (safe, balanced, fast) between two coordinates, with up to 8 waypoints.
Choose transport mode: bike, e-bike, kick scooter, motorcycle, wheelchair, or walking.
Avoid route features: ferries, steps, tolls, highways, unpaved surfaces, or steep sections.
Get route details: turn-by-turn steps, encoded polyline geometry, elevation profile, and route characteristics (cycle lanes, unpaved surfaces, main roads, motorways, climb).
Localize instructions: route instructions in en, fr, de, es, it, nl, or pt.
Read-only and usage-aware: both tools are read-only and report API usage (searches used today, routing requests used this month).
Provides address and place name geocoding across Europe using OpenStreetMap data via Photon, returning coordinates, labels, and source attribution.
« 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-mcpBoth 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.
Related MCP server: ThinAir Geo
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 APILicense: MIT, © 2026 OVO SAS. Terms of the API: https://onvaou.app/cgv-api
Available Tools
1 toolcompute_routeCompute a bike, scooter, motorcycle, wheelchair or walking route (Europe)ARead-only
Computes up to three routes (safe, balanced, fast) between two points in Europe for a bike, e-bike, kick scooter, motorcycle, wheelchair or on foot, with the share of cycle lanes, unpaved surfaces, main roads and motorways, the climb, and turn-by-turn steps. Use it to plan a safe cycling commute, compare a safe and a fast option, check wheelchair accessibility of a trip, or plan a motorcycle trip avoiding tolls or motorways. Coordinates are longitude/latitude: geocode addresses first.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | bike, ebike, scooter (kick scooter), moto (motorcycle), wheelchair, foot | bike |
| avoid | No | ferries, steps; tolls and highways (moto); unpaved and steep (wheelchair) | |
| origin | Yes | Start point | |
| language | No | Language of the turn-by-turn instructions | en |
| variants | No | Which variants to return (default: all three) | |
| waypoints | No | Up to 8 intermediate stops, in order | |
| destination | Yes | End point | |
| include_steps | No | Include turn-by-turn instructions | |
| include_geometry | No | Include the encoded polyline (Google algorithm, precision 5) | |
| include_elevation_profile | No | Include the elevation profile (up to 100 points) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so no safety contradiction exists. The description adds behavioral value beyond annotations by explaining that the tool returns multiple route variants, surface/road composition statistics, and elevation/climb data, and by warning that coordinates are longitude/latitude and addresses must be geocoded first.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of three information-dense sentences: capability, use cases, and input requirement. Every sentence contributes utility, and the most important scoping information (what the tool computes) is front-loaded. It is slightly dense but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, nested origin/destination objects, and no output schema, the description covers the essential behavioral contract: route variants, supported modes, route attributes, and coordinate format. Less obvious parameters like waypoints, include_steps, and include_geometry are fully documented in the schema, so nothing critical is missing from the overall tool definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already including a meaningful description and enums where applicable, so the description does not need to compensate. It does add a small amount of contextual meaning—such as that toll/highway avoidance applies to motorcycle trips and coordinates need geocoding—but the schema carries the main parameter-semantics weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Computes') and a precise resource: up to three route variants between two points in Europe, across six modes, with concrete route attributes such as cycle lanes, unpaved surfaces, climb, and turn-by-turn steps. This makes the tool's purpose unmistakable even without comparing it to siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use it to' sentence provides explicit scenarios: planning a safe cycling commute, comparing safe vs fast options, checking wheelchair accessibility, and planning motorcycle trips avoiding tolls or motorways. There are no sibling tools to contrast with, but the use cases give clear context for when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
compute_route
TDQS
Scored across 1 tool
With only one tool, there is no ambiguity; the tool's purpose is clearly defined and distinct from any potential peers.
The single tool name 'compute_route' follows a clear verb_noun pattern and is descriptive, though there are no other tools to compare against.
A single tool feels insufficient for a routing service, especially since the description references geocoding as a prerequisite, which is not provided. A typical server would include at least geocoding and route management tools.
The server only covers route computation, but the workflow implies a need for geocoding (to get coordinates) and possibly route saving or sharing, which are absent. This creates a significant dead-end for agents.
Maintenance
Related MCP Connectors
Basque Country hyperlocal mobility: ES/EU semantic search, routing, open-data POIs, peak-bagging.
Plan journeys by train, bus, tram, metro and ferry across 42 European countries.
Maps built for agents: routing incl. truck/ADR, geocoding, matrices, isochrones — 34 tools.
Plan trips on a map: routed transport, day-by-day itineraries, and a plan you can share.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceBikeScout is a specialized MCP (Model Context Protocol) server designed for cyclists and mountain bikers. It provides intelligent trail recommendations by combining real-world map data with advanced routing analysis.20AGPL 3.0

ThinAir Geoofficial
AlicenseAqualityCmaintenanceLocation & routing intelligence for AI agents — geocoding, truck routing, traffic, weather, and place search.41927 npm1MIT- AlicenseNot gradedqualityCmaintenanceAI-powered route optimization MCP server for heavy vehicles and logistics. Calculate truck-optimized routes, predict traffic congestion with LSTM neural networks, compute toll costs, fuel costs and CO2 emissions, find truck stops and check weather along any European route.MIT
- AlicenseAqualityDmaintenanceMCP server for planning routes (hiking, biking, driving, etc.) using the OpenRouteService API. Provides tools to find coordinates, create routes with GPX/PNG/HTML output, search POIs, and compute reachable areas.635 PyPI2MIT