Your Travel Radar
Server Details
Dated, sourced facts on European night train stations and lines, and measured punctuality.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 7 tools
Most tools target clearly distinct resources: get_line/get_station fetch entity details, list_lines/search_stations handle discovery, and punctuality is a unique dataset. The only mild overlap is fact_keys vs facts_by_key (schema vs values) and list_lines vs search_stations (both enumeration), but descriptions make the split workable.
Conventions are mixed: get_line/get_station use verb_noun, list_lines/search_stations use another verb style, fact_keys/facts_by_key are bare noun phrases, and punctuality is a lone bare noun. Each name is readable on its own, but there is no single predictable pattern across the set.
Seven tools is well-scoped for a read-only fact-lookup service about night trains. Each tool covers a distinct slice (keys, key lookup, line, station, line list, station search, punctuality) with no filler.
The surface covers the core lifecycle of the domain: discover lines/stations, inspect their published facts, enumerate fact keys, and check punctuality, with schema introspection included. Minor gaps exist (e.g., no operator or route/connection tool, no way to fetch facts across multiple entities in one call), but agents can work around them via facts_by_key and search_stations.
Available Tools
7 toolsfact_keysBInspect
Every fact key with its type, allowed values and label.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the returned fields (type, allowed values, label), which is the main question for a zero-parameter tool. It never states that the operation is read-only or that it returns a complete static catalogue, leaving the safety profile implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eleven-word sentence with no filler, front-loaded on the resource being described. It reads as a fragment rather than a complete clause, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter reference tool with no output schema, the description covers what is returned but omits the ordering, whether the list is exhaustive/static, and how it pairs with facts_by_key. Adequate but with clear gaps for an agent navigating the sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so per the baseline there is nothing for the description to compensate for. Schema coverage is 100% and the empty schema matches the description's claim of returning every key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (fact keys) and enumerates the fields returned (type, allowed values, label), so an agent can guess it is a reference-listing tool. However, there is no verb ('list all fact keys') and no explicit distinction from the sibling facts_by_key, which handles the single-key case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or how it relates to facts_by_key. The agent must infer that this is the discovery step that precedes fetching a specific key's facts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
facts_by_keyBInspect
One fact across all stations or lines, e.g. key "shower" for every station with a known shower. Use fact_keys for the list.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It reads as a lookup, but does not confirm read-only safety, describe the return shape, or state what happens for an unknown key. For a zero-annotation tool this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose and backed by an example; nothing is wasted. Slightly terse, since brevity here contributes to the transparency gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with no annotations and no output schema, the description covers purpose and key semantics but omits the return format (e.g. which stations are included, how facts are represented) and behavior on unknown keys. Adequate but incomplete for an agent calling blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. The example instantiates the single 'key' parameter meaningfully ('shower', 'known shower'), which is better than nothing, but it doesn't specify the key format, case sensitivity, or valid value set beyond that example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource ('one fact') and scope ('across all stations or lines') with a concrete example ('key "shower" for every station with a known shower'). It implicitly differentiates from fact_keys by pointing at it for enumeration, though it doesn't explicitly contrast with get_station or search_stations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use it and routes the agent to the fact_keys sibling for obtaining valid keys. It lacks explicit when-not conditions or guidance on the relationship to get_station/get_line, but the workflow is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lineBInspect
All published facts for one night train line (power sockets, bikes, pets, food on board, booking window...) with source and date, and its stations in order.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does describe the return content (published facts with source and date, stations in order), which implies a read-only lookup, but says nothing about auth requirements, behavior on an unknown id, or whether facts can be missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the resource first and then the returned payload. The parenthetical enumeration is dense but every item adds disambiguating value, so there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description has to describe returns — and it does, listing the fact categories, provenance (source and date), and ordered stations. Only error/missing-data behavior and id format are left unstated, which is a minor gap for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter (id) at 0% schema description coverage, the description must compensate. It implies the id identifies a single line, but never states the id format or where to obtain it (e.g., from list_lines), leaving the parameter only partially explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('get') and resource ('one night train line'), and enumerates the fact types returned (power sockets, bikes, pets, food, booking window) plus stations in order. It implicitly contrasts with list_lines by specifying a single line, but never explicitly names a sibling to distinguish itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this versus alternatives such as list_lines, get_station, or facts_by_key. Retrieval by a single line id is only implied by the phrasing 'one night train line', with no stated preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stationAInspect
All published facts for one station (lockers, toilets, showers, waiting room at night, step-free access...), each with source and observation date, plus facts not known yet.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Station id or slug from search_stations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return content (facts with source and observation date, plus facts not known yet) and implies a read-only, publication-filtered lookup via 'published facts', but says nothing about error behavior for unknown ids, rate limits, or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence that states the resource first and then qualifies it; the parenthetical examples add concrete scope rather than filler. No wasted clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe the return value — and it does, covering the fact payload, the source/date metadata, and the 'not known yet' cases. For a simple single-id read tool this is nearly complete; only failure/error semantics are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains the single id parameter as 'Station id or slug from search_stations'. The description adds no further syntax or format detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('All published facts for one station') and enumerates the fact categories returned (lockers, toilets, showers, step-free access), so the agent knows exactly what it retrieves. It does not name or contrast any sibling (e.g. facts_by_key or search_stations), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the singular 'one station' plus the required id signals a per-station lookup versus the sibling facts_by_key, but the description states no explicit when-to-use, when-not, or prerequisite for obtaining the id. The schema (not the description) carries the 'from search_stations' hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_linesAInspect
All European night train lines: id, name, operator, booking URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden: it does disclose the returned fields (id, name, operator, booking URL) and implies a read-only listing operation. However, it says nothing about pagination, result size, ordering, or whether the list is exhaustive/filterable, which are relevant for a bulk list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler; the resource is named first and the payload fields follow. Nothing can be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description usefully enumerates the returned fields, which is the main thing an agent needs. It is nearly complete for such a simple tool, missing only minor notes on list size or ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is no parameter semantics to clarify beyond confirming the no-argument nature of the call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (European night train lines) and enumerates the returned fields, so the agent knows exactly what it gets. It implicitly differs from get_line (singular retrieval), but never explicitly distinguishes itself from that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'All' implies this is the bulk-listing counterpart to get_line, but there is no explicit when-to-use guidance or named alternative. Usage is only inferable from the name and the plural scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
punctualityBInspect
How late night trains really arrive, per train, counted every night by us from Fintraffic and Trafikverket open data: on-time share (within 5 minutes at the last stop), median and 90th percentile delay, cancellations. Filter by line id, train number or country (FI, SE).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | 7 to 365, default 365 | |
| line | No | ||
| train | No | ||
| country | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real context: the data source (Fintraffic and Trafikverket open data), the counting cadence (every night, per train), and the operational definition of on-time. It still omits permissions, rate limits, and the shape/depth of the returned aggregate, so it is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the payoff (how late trains really arrive) and then lists the metrics compactly. Every clause carries information, though the metric enumeration makes it slightly long for one sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description's listing of returned metrics is valuable and mostly sufficient for interpretation. It remains incomplete about unfiltered behavior, filter combination, and result format, which an agent would need before calling it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (just the days parameter), so the description must compensate. It does clarify line, train, and country and supplies the country enum values (FI, SE), but gives no format for line id or train number and never indicates optionality or how filters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific subject (nightly train punctuality) and enumerates exactly what is reported: on-time share within 5 minutes at the last stop, median and p90 delay, and cancellations. That is far more concrete than the sibling lookups (get_line, get_station), though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent the available filters (line id, train number, country with values FI/SE), which implies how to narrow a query, but never says when to prefer this tool, whether filters are combinable, or what happens with no filter at all. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stationsAInspect
Find night train stations by name and/or ISO country code. Returns id, name, country, coordinates and the night train lines calling there.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| country | No | ISO 3166-1 alpha-2, e.g. SE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It helpfully enumerates the returned fields (id, name, country, coordinates, lines), which matters because there is no output schema, but it omits pagination, result limits, ordering, and what an unfiltered call returns given zero required parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the purpose front-loaded and the return contract following immediately. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description compensates for the absent output schema by listing return fields, which is valuable. However, with no annotations and no required parameters, an agent still cannot tell how an empty-argument call behaves or how the results are bounded, leaving a real gap for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: `country` is documented as ISO 3166-1 alpha-2 with an example, while `query` has no schema description. The description partially compensates by tying `query` to name matching, but adds no format details (partial match, case sensitivity, minimum length) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find') and resource ('night train stations') plus the two filter dimensions, so the agent knows this is the discovery/search entry point. It contrasts naturally with get_station, but never names that sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by name and/or ISO country code' implies when the tool applies, and the 'and/or' hints that filters combine or are optional. There is no explicit when-not guidance, no mention of get_station as the alternative when an id is already known, and no statement about behavior when both filters are omitted.
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.
7 tool updates
- First observed
fact_keys - First observed
facts_by_key - First observed
get_line - First observed
get_station - First observed
list_lines - First observed
punctuality - First observed
search_stations
Related MCP Connectors
The world railway atlas as MCP tools: notable train routes, night trains, journey times.
Monitor European train stations
European mountain routes, huts, access and forecasts with sources and explicit unknowns.
Dated, cited hotel facts from hotels' own sites and official registers, Portugal and Spain.
Related MCP Servers
- AlicenseAqualityAmaintenanceThe world railway atlas as read-only MCP tools: search 744+ legendary train routes (high-speed, classic, night, scenic) and get per-route facts, rankings and journey times. Runs from the repo's open dataset (CC BY 4.0); a free hosted endpoint is also live at https://trainrouter.com/mcp.75MIT
- FlicenseNot gradedqualityBmaintenanceWraps four public railway APIs as 13 tools, 7 prompts and 5 resources, enabling an LLM client to answer live questions about station master data, timetables and timetable changes, elevator and escalator outages, and parking facilities and prognoses.-
- AlicenseAqualityDmaintenanceProvides real-time Dutch railway (NS) travel information including train schedules, delays, journey planning, ticket prices, and station details for navigating the Netherlands by train.836 npmMIT
- AlicenseNot gradedqualityAmaintenanceGives LLM clients structured, read-only access to Indian Railways data: station lookup, timetables, direct trains between stations, station boards, multi-train journeys, punctuality history, and (when a source is configured) seat availability and fares. Every answer carries provenance and cross-source verification status, so results are either real source data or an explicit error code, never fabricated.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.