grand-lyon-mcp
About
Local read-only MCP server aggregating Métropole de Lyon open data (TCL, Vélo'v, parking, traffic, facilities, waste) behind 10 business tools. Offline fixtures without credentials; live mode with DataGrandLyon account. Independent project, not affiliated with the Métropole.
Details
- Author
- thomascrouzet
- Categories
- Other
Jump to
Setup
Install grand-lyon-mcp in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/thomascrouzet/mcp-grand-lyon
Follow the installation instructions in the repository README, then restart your MCP client.
ServeurMCPlocal qui agrège les services ouverts de laMétropole de Lyon(TCL, Vélo’v, parkings, trafic, équipements, déchets, briefings) derrière10 outils métieren lecture seule. Se branche sur n’importe quel client MCP en stdio (Claude Desktop, Cursor, agents maison…).
Les identifiants DataGrandLyon ne sontjamaisversionnés, loggés ou renvoyés par les outils.
- Prochains passages TCL (temps réel + repli GTFS théorique)
- Alertes / mobilité / accessibilité
- Vélo’v + historique local
- Parkings & P+R
- Trafic & événements routiers
- Équipements (toilettes, fontaines, parcs…)
- Environnement (indicateurs optionnels)
- Classification déchets + déchèteries
- Comparaison d’options de trajet
- Briefings personnels configurables
MCP adapter → application services → domain protocols → providers → HTTP / SQLite
Le code métier n’importe pas le SDK MCP (adapters/mcp/uniquement).
- Python ≥ 3.12
- uv
- CompteDataGrandLyon(optionnel : sans compte → mode offline/fixtures)
git clone git@github.com:ThomasCrouzet/mcp-grand-lyon.git cd mcp-grand-lyon make setup # TUI interactive (gum si dispo, sinon prompts) # ou sans interaction : make setup-offline # fixtures, aucun compte requis
L’assistant écrit les secrets danssecrets.env(chmod 600), copie les YAML de config, installe les deps, migre SQLite et lancedoctor.
Chemin des secrets selon l’OS(résolu parplatformdirs) :
- Linux :~/.config/grand-lyon-mcp/secrets.env
- macOS :~/Library/Application Support/grand-lyon-mcp/secrets.env
- Windows :%APPDATA%\grand-lyon-mcp\secrets.env
grand-lyon-mcp envaffiche le chemin réel résolu sur votre machine. Vous pouvez aussi forcer un répertoire viaGRAND_LYON_MCP_CONFIG_DIR.
uv sync --all-extras --dev cp .env.example "$(uv run grand-lyon-mcp env --config-dir)/secrets.env" # éditer : DATAGRANDLYON_USERNAME / PASSWORD, puis chmod 600 make migrate
Variables : voir.env.example. Le Makefile charge automatiquementsecrets.envet un.envlocal gitignored.
make help # toutes les cibles make env # état config (secrets masqués) make serve OFFLINE=true LOG_LEVEL=DEBUG make client-config # bloc mcpServers JSON (chemins absolus)
Les templates de configuration (settings,sources,profiles,waste-taxonomy) sontlivrés avec le paquet(grand_lyon_mcp/_data/config/). L'assistant les copie dans votre répertoire de config :
grand-lyon-mcp setup # copie les YAML + migre (ou : make setup)
Pour les inspecter ou repartir des templates empaquetés manuellement :
python -c "from grand_lyon_mcp.resources import config_dir; print(config_dir())"
uv run grand-lyon-mcp db migrate uv run grand-lyon-mcp db info uv run grand-lyon-mcp doctor uv run grand-lyon-mcp catalog scan uv run grand-lyon-mcp catalog validate uv run grand-lyon-mcp sync gtfs # offline GTFS : uv run grand-lyon-mcp sync gtfs --from-file tests/fixtures/gtfs/mini_gtfs.zip uv run grand-lyon-mcp snapshot velov
uv run grand-lyon-mcp serve --transport stdio # ou ./scripts/run_mcp.sh
stdoutest réservé au protocole MCP ; les logs applicatifs vont surstderr.
Le serveur parle le protocole MCP enstdio: il fonctionne avec tout client compatible. Récupérez un bloc prêt à coller (chemins absolus) avec :
make client-config # ou : uv run grand-lyon-mcp client-config
Exemple de configurationClaude Desktop(claude_desktop_config.json) :
{ "mcpServers": { "grand-lyon": { "command": "/chemin/absolu/mcp-grand-lyon/scripts/run_mcp.sh", "args": ["serve", "--transport", "stdio"] } } }
Le wrapperscripts/run_mcp.shchargesecrets.envhors dépôt et bascule en offline si aucun identifiant n’est présent. Le même bloc convient à Cursor et aux autres clients MCP stdio. Détails et alternatives (env hérité, secrets) :docs/mcp-clients.md.
Aucun outil admin / requête brute DataGrandLyon n’est exposé. Arguments détaillés et exemples d’entrée/sortie :docs/tools.md.
// entrée { "stop": { "query": "Bellecour" }, "line": "A", "limit": 3 } // sortie (extrait de l'enveloppe) { "status": "ok", "data": { "departures": [ { "line_name": "A", "destination": "Vaulx-en-Velin La Soie", "expected_at": "2026-07-20T08:05:00+02:00", "realtime": true } ] }, "sources": [ { "provider": "DataGrandLyon", "attribution": "SYTRAL Mobilités", "realtime": true } ] }
make quality # ou uv run ruff format --check . uv run ruff check . uv run mypy src uv run pytest -m "not live" --cov
Tests live :RUN_LIVE_TESTS=1+ credentials. La suite par défaut tournesans réseau ni identifiants.
- Transitous optionnel (feature flag) ; sans routeur,lyon_trip_optionsreste partiel pour TCL.
- Indicateurs environnementaux activés seulement si une source est résolue.
- Transport HTTP MCP non inclus (stdio uniquement).
- 100 % local, aucune télémétrie.Le serveur tourne sur votre machine ; les profils (domicile/travail), briefings et l’historique Vélo’v restent dans une base SQLite locale.
- Ce qui quitte la machine(mode live uniquement) : les requêtes et coordonnées nécessaires au géocodage et au calcul d’itinéraire sont envoyées aux services concernés (DataGrandLyon, instance Photon de la Métropole, Transitous si activé), soumis à leurs propres politiques.
- Les profils d’exemple (profiles.example.yaml) n’utilisent que des lieux génériques (Bellecour, Lyon 3ᵉ): aucune donnée personnelle réelle n’est versionnée.
Code sous licenceMIT(voirLICENSE). Les données proviennent de sources tierces avec leurs propres licences et obligations d’attribution, voirATTRIBUTIONS.mdetdocs/data-sources.md.
Projetindépendant, non affilié à la Métropole de Lyon, SYTRAL Mobilités, Keolis-TCL ni JCDecaux. « TCL », « Vélo’v » et les autres noms cités sont des marques de leurs titulaires respectifs, employées ici de façon purement descriptive.
LocalMCP serveraggregatingMétropole de Lyonopen data behind10 read-only business tools. Works with any stdio MCP client (Claude Desktop, Cursor, custom agents).
uv sync --all-extras --dev uv run grand-lyon-mcp db migrate uv run grand-lyon-mcp doctor uv run grand-lyon-mcp serve --transport stdio
Credentials via env only (DATAGRANDLYON_USERNAME/DATAGRANDLYON_PASSWORD), never committed, logged, or returned by tools. Application logs go tostderr;stdoutis MCP protocol only. Run without credentials → offline mode (fixtures).
Get a ready-to-pastemcpServersblock withmake client-config. Seedocs/mcp-clients.md.
uv run ruff format --check . && uv run ruff check . && uv run mypy src uv run pytest -m "not live" --cov
Architecture, tools, data sources/licenses, operations and troubleshooting underdocs/. Attributions inATTRIBUTIONS.md. Code is MIT; data belongs to its respective providers. Independent project, not affiliated with Métropole de Lyon, SYTRAL, Keolis-TCL or JCDecaux.
Transaction-complete hotel booking over MCP — 300K+ properties, real hotel confirmation numbers, loyalty points, secure checkout. Hotels are merchant of record. Builders set their own booking fee via Stripe Connect. Built on proven distribution infrastructure.
An MCP server for AI video generation. MCP server for AI video generation. Lets Claude, ChatGPT, OpenClaw , Hermes & other agents create AI videos and publish them to YouTube, TikTok, Instagram etc..
Institutional research and manager diligence reports on hedge funds, venture capital and private equity managers. Summary of filings, personnel changes, media screening and social signals delivered to you in minutes.
ALTER - identity infrastructure for the AI economy
D2C eCommerce fulfillment platform: manage orders, inventory, shipments, campaigns, and billing via AI agents
Apigene MCP Gateway is the runtime layer that connects AI agents to APIs and MCP servers via Model Context Protocol.
MCP to interface with multiple blockchains, staking, DeFi, swap, bridging, wallet management, DCA, Limit Orders, Coin Lookup, Tracking and more.
MCP server for Bitnovo Pay integration with AI agents. Provides cryptocurrency payment capabilities through Bitnovo Pay API. Features include payment creation, status checking, QR code generation, and webhook management with support for multiple tunnel providers (ngrok, zrok, manual).
Shop for gift cards, esims, phone topups. Pay with cards and crypto.
You built it, now get users! GoToMarket MCP server
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



