GBFS France
Live bike-share availability in France: docked networks, nearby stations, bikes and docks.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
gbfs-france-mcpclaude mcp add gbfs-france -- npx -y gbfs-france-mcp@0.1.5
{
"mcpServers": {
"gbfs-france": {
"command": "npx",
"args": [
"-y",
"gbfs-france-mcp@0.1.5"
]
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
GBFS France
Live bike-share availability for France, for AI assistants. An MCP server that reads the official GBFS feeds listed on transport.data.gouv.fr and answers "where can I get a bike (or drop one) near here?".
Tools
| Tool | Input | Returns |
|---|---|---|
search_networks | query (city, area or name) | network ids, plus matching networks that are not supported and why |
nearby_stations | network_id, lat, lon, limit?, need? (bikes / docks), max_distance_meters? | nearest stations with bikes, e-bikes, free docks and distance |
get_station | network_id, station_id | one station's live status |
All tools are read-only, return structured content (with output schemas) plus a short text, and credit the data producer on every answer.
Example (live data, Vélo'v Lyon):
> search_networks { "query": "Lyon" }
Vélo'v Lyon [stations-velov-de-la-metropole-de-lyon-disponibilites-temps-reel] (467 stations)
Not supported: Autopartage Citiz Métropole de Lyon (not a bike-share network (carsharing))
> nearby_stations { "network_id": "stations-velov-…", "lat": 45.7578, "lon": 4.832, "limit": 3, "need": "bikes" }
3 station(s) on Vélo'v Lyon.
BELLECOUR / ST EXUPÉRY (128 m): 14 bikes, 2 e-bikes, 25 docks [last report over 30 min ago]
PLACE ANTONIN PONCET (187 m): 17 bikes, 3 e-bikes, 22 docks [last report over 30 min ago]
BELLECOUR / RÉPUBLIQUE (202 m): 12 bikes, 7 e-bikes, 2 docks [last report over 30 min ago]
Data: Métropole de Lyon, Licence Ouverte v2.0 (Etalab), https://transport.data.gouv.fr/datasets/…
Install
Requires Node.js 22 or later. In Claude Desktop (claude_desktop_config.json) or any MCP client:
{
"mcpServers": {
"gbfs-france": { "command": "npx", "args": ["-y", "gbfs-france-mcp"] }
}
}
Claude Code: claude mcp add gbfs-france -- npx -y gbfs-france-mcp.
Coverage
Docked bike-share networks with an open licence (Licence Ouverte v1/v2, ODbL) and a GBFS 1.x, 2.x or 3.0 feed:
60 networks (snapshot 2026-11-02): Altervélo Saint-Pierre La Réunion (CIVIS), AQTA (Auray Quiberon Terre Atlantique), Auch-Vélo’c Grand Auch, Brennus à Vélo Grand Sénonais, C Vélo Clermont-Ferrand, Calivélo communauté d'agglomération du Libournais (La Cali), Cap Cotentin Vélo, Choletbus 2 Roues Cholet, CYCLOlibre Carcassonne, IDEcycle Pau, Impulsyon La Roche Sur Yon, Karu'vélo Pointe-à-Pitre La Guadeloupe, Le Vélo Baulois La Baule-Escoublac, Le Vélo TBM Bordeaux Métropole, Les petites reines Sables d'Olonne Agglomération, LeVélo Marseille, Libélo Valence Romans, Lovélo Rouen, MontenVélo CC Pays du Mont-Blanc (CCPMB), Naolib Micromob', Naolib Nantes Métropole, NemoVélo Nîmes Métropole, Ogalo Saumur, Optymo Belfort, Périvélo Grand Périgueux, R'Houle ports de Piriac-sur-Mer et de La Turballe, Rubis'Vélo Grand Bourg Agglomération, Semo CA Seine-Eure, STAR Rennes, Tanlib Niort, Tarbes Lourdes Pyrénées (TLP), Tempo Vélo Agen, Ti Vélo Pays de Landerneau-Daoulas, V'lille Lille, Vel'in Grand Calais (SITAC), Vélam Amiens, Vélhop Strasbourg Eurométropole, Vélib Paris et communes limitrophes, Vélibéo CA Bassin de Brive, VéliVert Saint-Etienne, Vélo d'Aqui Argelès-sur-mer, Vélo Fluo Grand Est, Vélo Modalis Grand Angoulême, Vélo'Cité Laon, Vélo'v Lyon, VéloCité Besançon, VéloCité Mulhouse, Vélomagg Montpellier Méditerranée Métropole, VéloMoove Bassin de Pompey, Velonecy Grand Annecy, Velopop’ Avignon, VélOstan’lib Nancy, VélôToulouse Toulouse Métropole, VéloZef Brest, VélYcéo Saint-Nazaire, Vernou-en-Sologne (Vernou Vélo), Vertuose Grand Longwy, ViVélo Vichy Communauté, Vivolt agglomération d'Epinal, Zébullo Grand Reims.
Not served yet: free-floating operators (Lime, Dott, Pony), scooters, car sharing, and datasets published without a licence. search_networks names them with the reason.
Data and licences
Network list: transport.data.gouv.fr (national access point). Availability: each operator's GBFS feed, fetched live. Every answer returns the publisher, licence and dataset page, as ODbL and Licence Ouverte require. Station counts are what operators publish: null means unknown, stations not reporting for 30 minutes are flagged outdated.
How it works
apps/mcp (stdio) -> packages/gbfs-core: createGbfsFrance()
catalog.json (committed snapshot, rebuilt weekly)
discovery -> adapter v2 (1.x/2.x) | v3 (3.0)
feed loader: cache, single-flight, timeout, stale-if-error
join station_information x station_status -> StationView
Design patterns, by file:
- Facade:
facade.tshides versions, the feed join, caching and errors behind three calls, shared with the future Expo app. - Adapter:
feeds/v2.tsandfeeds/v3.tsturn each GBFS version into the same records. - Cache-Aside with single-flight:
fetch/feed-loader.tscaches each feed for its ownttlclamped per feed kind (live status 30-60 s), merges concurrent identical requests, serves the last good data up to 10 min when an operator fails, and keeps at most 64 feeds (LRU). - Result type: the facade never throws on data failures; it returns
{ ok: false, error }with a typedkind.
The core has no Node imports and avoids APIs missing on Hermes (React Native), enforced by ESLint.
Development
fnm use # Node 24 from .nvmrc
pnpm install
pnpm lint && pnpm typecheck && pnpm test
pnpm build # apps/mcp/dist/index.js
pnpm catalog # rebuild the network snapshot and this list
Maintainer notes
- First npm release by hand (
pnpm --filter gbfs-france-mcp build, thennpm publishinapps/mcp), then set up npm trusted publishing forrelease.yml. After that, pushing avX.Y.Ztag publishes to npm (with provenance) and to the MCP registry. - GitHub turns off scheduled workflows after 60 days without activity: merging the weekly catalog PR keeps them running.
- Follow-ups are in TODOS.md.
License
MIT. Data stays under each producer's licence.
Questions fréquentes
Qu'est-ce que GBFS France ?
Live bike-share availability in France: docked networks, nearby stations, bikes and docks.
Comment installer GBFS France ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add gbfs-france -- npx -y gbfs-france-mcp@0.1.5. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour GBFS France ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
GBFS France est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient GBFS France ?
Il est publié par Timi-Duban. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.