tcl-mcp
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 :
ligne
T2, arrêtParilly Université, directionHôtel de région Montrochet;correspondance à
Grange Blanche;ligne
D, arrêtGrange Blanche, directionGare de Vaise-G.Collomb;ligne
71, arrêtGare de Vaise-G.Collomb, direction choisie selon le trajet.
Pour vérifier ce trajet :
appeler
tcl_route_alertsavec les lignes du trajet ;appeler
tcl_next_departurespour chaque étape réellement utile ;utiliser
tcl_line_infosi le client doit résoudre une direction ou une variante de ligne ;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 installLe 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 startLes 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;PORTetMCP_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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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