GBFS France
Live bike-share availability in France: docked networks, nearby stations, bikes and docks.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «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"
]
}
}
}
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على 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.
الأسئلة الشائعة
ما هو GBFS France؟
Live bike-share availability in France: docked networks, nearby stations, bikes and docks.
كيف أثبّت GBFS France؟
يعمل على جهازك. في Claude Code: claude mcp add gbfs-france -- npx -y gbfs-france-mcp@0.1.5. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج GBFS France إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل GBFS France مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون GBFS France؟
ينشره Timi-Duban. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.