Skip to main content
Glama

Faceabot Transit Norway (Vy, Entur)

Server Details

Norwegian trains, buses and ferries: live trips and departures (Entur). Free, no key.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a clearly distinct task: no_connections plans journeys between two places, no_find_station looks up stations by name, and no_station_departures lists departures from a single stop. There is no meaningful overlap, so an agent can easily select the right tool.

Naming Consistency4/5

All names use snake_case with a consistent 'no_' country prefix, which is predictable. However, the suffixes mix noun and verb_noun patterns (connections, find_station, station_departures), a minor deviation from a uniform convention.

Tool Count4/5

Three tools cover the core transit query workflows (station lookup, departures, point-to-point journeys) without redundancy. It is on the minimal side for a public transport domain but still well-scoped and not thin enough to be problematic.

Completeness4/5

The surface covers station search, real-time departures, and full journey planning, which are the main use cases. Minor gaps exist, such as service alerts, real-time vehicle positions, or ticket information, but agents can work around them for typical queries.

Available Tools

3 tools
no_connectionsNorwegian public transport journeys (trains, buses, ferries)A
Read-onlyIdempotent
Inspect

Journeys between two places in Norway by train, bus, tram, metro or boat (Vy, SJ Nord, Go-Ahead, Ruter, Skyss…): times, platforms, transfers, live delays, cancellations. Use when: someone travels by public transport in Norway (e.g. Oslo to Bergen). Example: {"from":"Oslo S","to":"Bergen stasjon"}

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesArrival station or stop
dateNoOptional day YYYY-MM-DD (Norwegian time). Default: today
fromYesDeparture station or stop (Oslo S, Bergen stasjon, Trondheim S, Stavanger…) or an NSR:StopPlace id
timeNoOptional time HH:MM (Norwegian time). Default: now
resultsNo
time_isNodeparture

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so safety is covered. The description adds value beyond that by disclosing data currency ('live delays, cancellations'), transport-mode and operator breadth (Vy, SJ Nord, Go-Ahead, Ruter, Skyss), and the richness of each result. It omits auth needs and rate limits, but the added data-quality context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight lines following a clear purpose / 'Use when:' / example structure, all front-loaded with zero filler. Every sentence and token earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-param, no-output-schema tool with full annotations, the description effectively describes the return content (times, platforms, transfers, delays, cancellations) and scope, leaving little an agent must infer. Remaining gaps (no per-param detail for results/time_is) are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, so the schema already documents from/to/date/time; the description's example ({"from":"Oslo S","to":"Bergen stasjon"}) only supplies sample values for the two required params. It adds no semantics for time_is or results, and given a mid-range coverage figure the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: journeys between two places in Norway, enumerating transport modes (train, bus, tram, metro, boat) and operators, plus the return content (times, platforms, transfers, delays, cancellations). This clearly differs from the sibling no_station_departures (a departures board) and no_find_station (station lookup), though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use when:' line gives an explicit trigger (someone travels by public transport in Norway) with a concrete example (Oslo to Bergen). It stops short of naming alternatives or stating when NOT to use it versus the departures/station siblings, so it is strong context without routing exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

no_find_stationFind a Norwegian station or stopA
Read-onlyIdempotent
Inspect

Finds Norwegian stations and stops matching a word, with their ids. Use when: a place name is ambiguous or misspelled. Example: {"query":"Bergen"}

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPart of the station or stop name

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety/lifecycle profile is fully covered by structured data. The description adds only that results carry ids, which is mild output context; it says nothing about matching semantics (prefix vs. substring) or result limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded lines: purpose, trigger condition, example. Every element earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter lookup with no output schema and rich annotations, the description covers what the tool does, when to call it, and that ids come back. Only the exact matching semantics are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there is only one parameter, so the schema already documents `query`. The description's "matching a word" and the example add a small amount of intuition about matching behavior, but the baseline of 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Finds") and resource ("Norwegian stations and stops"), plus the key output ("with their ids"). It doesn't name siblings, but the siblings (departures, connections) are functionally unrelated lookups, so disambiguation is not really needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the trigger condition — "Use when: a place name is ambiguous or misspelled" — and reinforces it with a concrete example query. No when-not guidance or named alternative is given, but for a lookup helper that is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

no_station_departuresNext departures from a Norwegian station or stopA
Read-onlyIdempotent
Inspect

Next departures from one Norwegian station or stop (train, bus, tram, metro, boat): time, line, destination, platform, live delay, cancellations. Use when: someone is at (or going to) a stop in Norway. Example: {"station":"Oslo S"}

ParametersJSON Schema
NameRequiredDescriptionDefault
resultsNo
stationYesStation or stop name, or an NSR:StopPlace id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe, read-only, idempotent, open-world profile. The description adds the return payload—time, line, destination, platform, live delay, cancellations—which is valuable given there is no output schema. It omits auth, rate limits, and cancellation semantics, but annotations lower the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two crisp sentences plus a useful example; every element is front-loaded and relevant. No redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with annotations covering safety and no output schema, the description is nearly complete: it lists return fields, usage context, and an example. The only omission is any guidance on the results count, which is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%: the station parameter is documented in the schema, but results (count) is not described anywhere. The description supplies a concrete example for station and clarifies 'one station or stop', but it never mentions the results parameter or its default/maximum. It adds some value but does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb 'Next departures' and resource 'Norwegian station or stop', lists transport modes, and makes clear it returns departures from a single stop. It does not explicitly contrast with siblings no_connections or no_find_station, so an agent must infer the distinction from scope wording ('one station or stop').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'Use when: someone is at (or going to) a stop in Norway' gives clear context for when to call. No when-not condition or alternative tool is named, but the usage context is explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observedno_connections
    • First observedno_find_station
    • First observedno_station_departures

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to Norway's nationwide public transport data (all modes) via the Entur API, enabling queries about routes, stops, and departures through natural language.
    8 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to search for stops and stations across all Norwegian public transport and to fetch real-time departure data — planned versus expected times, delays, platform, operator, and disruption messages — with no API key required. Covers bus, tram, metro, train, and ferry nationwide through Entur's open APIs, with filtering by line, destination, and future departure time.
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources