Entur MCP — Norway public transport, nationwide, all modes (developer.entur.org)
Three well-named tools with strong descriptions (150 - 250 chars each) and complete input schemas. All parameters have types and descriptions. Tool names follow verb_noun pattern (entur_departures, entur_journey, entur_stops_search). Schemas include enums for transport modes and numeric limits. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (no recovery guidance). Mode aliasing (train→rail, ferry→water) is helpful but not exposed in descriptions. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations.
Real-time departures board for any public-transport stop in Norway — train, tram, metro, bus, and ferry departures for Oslo, Bergen, Trondheim, Stavanger and every other Norwegian stop, from Entur (the national journey-planning authority covering Vy, Flytoget, Ruter, Skyss, AtB, formerly NSB). Returns line, destination, aimed vs expected time, delay in minutes, platform/quay, and realtime flag. Example: entur_departures({ stop: "Oslo S", mode: "rail" })
Entur journey planner — plan a public-transport trip between any two places in Norway (Oslo to Bergen train, airport connections, city tram/metro/bus routes, ferries). Returns door-to-door itineraries with legs (mode, line, operator like Vy or Flytoget, aimed and expected times), total duration, transfer count, and walking distance. Example: entur_journey({ from: "Oslo S", to: "Bergen stasjon" })
Search Norwegian public-transport stops, train stations, tram/metro/bus stops, ferry quays and places by name via the Entur national stop-register geocoder. Returns official name, NSR id (usable in entur_departures and entur_journey), locality, categories, transport modes, and coordinates. Example: entur_stops_search({ query: "Trondheim" })
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Agents must guess what data is available after each call.
No tool annotations. All three tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. Agents cannot distinguish safe tools from destructive ones.
Error handling lacks recovery guidance. Errors like 'Entur JourneyPlanner error: HTTP 500' or 'upstream timeout' do not tell the LLM what to do next (retry, ask user, try alternative tool).
Mode aliasing (train→rail, ferry→water) is implemented but not documented in parameter descriptions. Users/LLMs may not know these aliases exist, leading to unnecessary errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
No pagination or result-limiting guidance in descriptions. entur_stops_search accepts limit 1 - 25 (default 10), but description does not explain what happens if results exceed limit or how to fetch more.