Skip to main content
Glama

TCL MCP

MCP open source pour interroger les données TCL / Grand Lyon depuis un client compatible MCP.

Le serveur fournit :

  • prochains passages en temps réel par ligne, arrêt et direction ;

  • horaires théoriques issus du GTFS ;

  • informations de ligne et directions disponibles ;

  • alertes actives par ligne, avec recherche facultative des arrêts cités dans les messages ;

  • perturbations SIRI Lite filtrées par ligne.

Le projet ne contient aucun arrêt, ligne, trajet personnel, identifiant ou secret prédéfini. Il peut donc être utilisé pour n’importe quelle ligne et n’importe quels arrêts du réseau TCL.

Sources

  • Web Service Grand Lyon des prochains passages : données temps réel, accès Basic Auth selon les droits du compte ;

  • GTFS TCL : horaires théoriques, lignes, directions et arrêts ;

  • Web Service Grand Lyon des alertes trafic TCL v2 ;

  • SIRI Lite Grand Lyon pour les perturbations.

Outils MCP

tcl_next_departures

Retourne les prochains passages pour une ligne obligatoire, avec arrêt, identifiant d’arrêt, direction et limite facultatifs.

Exemple conceptuel :

{
  "line": "T2",
  "stop_name": "Parilly Université",
  "direction": "Hôtel de région Montrochet",
  "limit": 5
}

Le serveur filtre aussi côté API sur la ligne demandée quand le Web Service le permet, puis applique un filtrage local sur les résultats.

tcl_schedule

Retourne les horaires théoriques GTFS d’une ligne et d’un arrêt. Les horaires planifiés ne tiennent pas compte des retards, suppressions ou travaux en cours.

tcl_line_info

Retourne les métadonnées GTFS disponibles pour une ligne ainsi que les directions présentes dans les trajets.

tcl_route_alerts

Vérifie les alertes actives pour une liste de lignes. Les arrêts sont facultatifs : lorsqu’ils sont fournis, le serveur recherche leur mention dans le titre et le message de l’alerte.

Exemple conceptuel :

{
  "lines": ["T2", "D", "71"],
  "stops": ["Parilly Université", "Grange Blanche"]
}

Le champ d’arrêt n’étant pas nécessairement structuré dans le flux d’alertes, une correspondance d’arrêt trouvée dans le texte doit être présentée comme indicative. Les alertes par ligne sont la référence.

tcl_disruptions

Interroge le flux SIRI Lite et filtre les résultats par ligne.

Configurer un trajet personnalisé

Les trajets ne sont pas codés dans le serveur. Un client, un skill ou les instructions d’un projet peuvent décrire un trajet en listant ses étapes, puis appeler les outils séparément.

Exemple de trajet :

  1. ligne T2, arrêt Parilly Université, direction Hôtel de région Montrochet ;

  2. correspondance à Grange Blanche ;

  3. ligne D, arrêt Grange Blanche, direction Gare de Vaise-G.Collomb ;

  4. ligne 71, arrêt Gare de Vaise-G.Collomb, direction choisie selon le trajet.

Pour vérifier ce trajet :

  1. appeler tcl_route_alerts avec les lignes du trajet ;

  2. appeler tcl_next_departures pour chaque étape réellement utile ;

  3. utiliser tcl_line_info si le client doit résoudre une direction ou une variante de ligne ;

  4. ne jamais présenter un horaire théorique comme un passage temps réel.

Cette séparation permet de réutiliser le MCP pour un autre trajet sans modifier le code.

Installation locale

npm install

Le GTFS TCL est à placer dans un chemin local indiqué par TCL_GTFS_PATH.

TCL_GTFS_PATH=/chemin/vers/GTFS_TCL.zip \\
TCL_API_USERNAME=... \\
TCL_API_PASSWORD=... \\
npm start

Les identifiants sont nécessaires uniquement si le Web Service Grand Lyon les exige pour votre compte. Ne jamais les écrire dans le dépôt.

Variables optionnelles :

  • TCL_REALTIME_URL ;

  • TCL_ALERTS_URL ;

  • TCL_SIRI_URL ;

  • MCP_ALLOWED_HOSTS ;

  • PORT et MCP_PATH.

Docker et déploiement HTTPS

Le serveur écoute en HTTP Streamable sur /mcp et expose /health. En production, l’application peut rester liée à localhost et être publiée derrière un reverse proxy HTTPS.

Le fichier docker-compose.yml utilise le port local 8031. Le fichier deploy/Caddyfile.snippet montre la règle de reverse proxy à adapter avec votre propre domaine.

Le fichier server.json est un modèle de déclaration : remplacez son nom, son URL et son identifiant d’image par ceux de votre déploiement avant publication dans un registre.

Sécurité et limites

  • lecture seule ;

  • aucune donnée personnelle ou configuration d’utilisateur dans le code ;

  • les alertes et passages dépendent de la disponibilité et de la fraîcheur des flux Grand Lyon ;

  • si une source échoue, le client doit le signaler plutôt que conclure à l’absence de perturbation ;

  • vérifiez les conditions d’accès et la licence des données avant une redistribution publique.

Licence

Ce projet est distribué sous licence MIT. Voir LICENSE.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jducerf/tcl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server