idf-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IDFM_API_KEY | Yes | Clé PRIM (obligatoire) | |
| IDFM_CACHE_TTL | No | Cache par URL, en secondes (défaut 25) | |
| IDFM_HOME_STOP | No | Gare de départ par défaut (défaut 47046) | |
| IDFM_WORK_STOP | No | Gare d'arrivée par défaut (défaut 473890) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| next_trains_to_parisA | LE tool à utiliser pour « c'est quand le prochain RER pour Paris et j'arrive à quelle heure ? ». Donne, pour chaque prochain train La Hacquinière (47046) → Denfert-Rochereau (473890) : heure de départ réelle et retard, heure d'arrivée, durée, code mission, terminus et perturbations. Temps réel, RER B uniquement (pas de bus de rabattement). Les gares par défaut viennent de la configuration ; les préciser seulement si l'utilisateur parle d'une autre gare. |
| departures_boardA | Tableau des prochains départs à un arrêt, comme les écrans sur le quai : heure attendue, retard, voie, train à quai ou non, trains supprimés. Ne donne PAS l'heure d'arrivée (utiliser next_trains_to_paris pour ça). Utile pour « il est où le train ? », « sur quelle voie ? », ou en repli si le calculateur est en panne. Défaut : La Hacquinière (47046), sens Paris. |
| line_statusA | État de la ligne : perturbations en cours et à venir (travaux, incidents, grèves, interruptions, suppressions). À utiliser quand l'utilisateur demande « il y a un problème sur la B ? » ou pour expliquer un trajet anormalement long. |
| plan_journeyA | Itinéraire temps réel en Île-de-France, tous modes et correspondances incluses. Les extrémités acceptent un nom d'arrêt MAIS AUSSI une adresse postale : passer « 43 rue Saint-Dominique, Paris » directement, sans chercher la station la plus proche. Pour « je dois être à X à 9 h », utiliser |
| find_stopA | Cherche un arrêt d'Île-de-France par nom : identifiant, lignes et modes desservis, regroupés par station. À utiliser quand un nom est inconnu ou pour lever un doute. Inutile pour une adresse postale : plan_journey la prend directement. N'utilise pas de clé API (données ouvertes). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| prochain-rer | Prochains RER B La Hacquinière (47046) → Denfert-Rochereau (473890), avec heure d'arrivée. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Most tools have clearly distinct jobs: departures_board handles live platform/departure info, line_status handles disruptions, find_stop handles stop lookup, and plan_journey handles multimodal itineraries. next_trains_to_paris overlaps somewhat with plan_journey for the habitual commute, but the descriptions explicitly explain when to prefer each.
All names are readable and use snake_case, but they mix noun-phrase resource names (departures_board, line_status, next_trains_to_paris) with verb-first command names (plan_journey, find_stop). There is no consistent verb_noun pattern across the set.
Five tools is a well-scoped size for a transit information server. Each tool covers a distinct layer of functionality—next trains, live departures, line status, journey planning, and stop lookup—without unnecessary duplication.
The set covers the core transit domain well: departures, arrivals via next_trains_to_paris, disruptions, stop search, and full journey planning. Minor gaps exist, such as no dedicated tool for return-trip RER B status or line status for non-B lines, but plan_journey and line_status can work around these.