Mobiliteit.lu MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_TRANSPORT | No | MCP transport to use. Supports stdio, http, or both. The default transport for a local installation is MCP over stdio; HTTP listens on 127.0.0.1:3000 by default at /mcp. | stdio |
| MOBILITEIT_API_KEY | No | Your own API key (accessId) for the mobiliteit.lu HAFAS open-data API, issued on request by the Administration des transports publics (ATP) via opendata-api@atp.etat.lu. Required before the server can return any data, since the upstream API rejects requests without a valid key (HTTP 401). Never commit the key, paste it into prompts or chat, or include it in issue reports. | |
| MCP_HTTP_BEARER_TOKEN | No | Shared bearer token required when the HTTP transport is enabled (MCP_TRANSPORT=http or both). Do not expose the service directly to the public internet without HTTPS and suitable authentication. | |
| MOBILITEIT_API_KEY_FILE | No | Preferred alternative to MOBILITEIT_API_KEY: path to a file (stored outside the repository) that contains your mobiliteit.lu API key. | |
| MCP_HTTP_BEARER_TOKEN_FILE | No | Path to a file containing the HTTP bearer token; alternative to MCP_HTTP_BEARER_TOKEN. | |
| MOBILITEIT_MAX_ACTIVE_FEEDS | No | Maximum number of distinct simultaneously active stop feeds. Each unique active feed is shared by its subscribers and polled once per interval. Increase only after confirming the quota issued for your API key. | 1 |
| MOBILITEIT_POLL_INTERVAL_SECONDS | No | Polling interval, in seconds, for active stop feeds. Minimum 15 seconds. | 30 |
| MOBILITEIT_MAX_REQUESTS_PER_MINUTE | No | Rolling cap on all upstream calls (tool calls, resource reads and polling), so one client cannot exhaust the key's quota. | 60 |
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
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_nearby_stopsA | Find public transport stops near a WGS84 coordinate in Luxembourg. Use the returned stop id with get_departures or subscribe to its departure resource. |
| get_departuresA | Get scheduled and real-time public transport departures for a Mobiliteit.lu stop id. Use the id returned by find_nearby_stops. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools target clearly distinct actions: locating stops by coordinate versus retrieving departures for a known stop id. Their descriptions even cross-reference each other, so an agent can't confuse which to call first.
Both names use a consistent snake_case verb_noun form (find_nearby_stops, get_departures) with well-chosen verbs that match their actions.
Two tools is thin for a public transport server, which normally implies routing, lines, and schedules. The pair covers a narrow departure-board workflow but leaves the broader domain unaddressed.
Stop lookup and departures form a workable read-only core, but there's no journey planning, line/route info, or name-based stop search — notable gaps for a mobility domain.