Skip to main content
Glama

Server Details

Canonical SwissTrip MCP — independent SBB/CFF/FFS schedules, prices, and ticket links by SwissTrip.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Fabsbags/swisstrip-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: searching connections, pagination, details, prices, purchase link, and station search. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., search_connections, get_prices), making them predictable and easy to use.

Tool Count5/5

With 6 tools, the set is well-scoped for the domain of Swiss train travel, covering the full journey from station search to ticket purchase.

Completeness4/5

Covers the main workflow (search, details, prices, purchase) but lacks filtering options and a station departure board, though these are minor gaps.

Available Tools

6 tools
get_more_connectionsGet More ConnectionsA
Read-onlyIdempotent
Inspect

Load earlier or later train connections for a previous search. Use the collection ID from search_connections results.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYes"next" for later trains, "previous" for earlier trains
collection_idYesCollection ID from search_connections results
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds that it loads connections from a previous search, which is consistent with annotations. No additional behavioral details are needed.

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?

The description consists of two succinct sentences with no redundant words. It is front-loaded with the purpose and immediately provides the key requirement (collection_id).

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

Completeness5/5

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

Given the tool's simplicity (2 parameters, no output schema, good annotations), the description covers all necessary context: what it does, how to use it, and prerequisites. No gaps remain.

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 coverage is 100% with both parameters described in the schema (direction with enum, collection_id as string). The description does not add new meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool loads earlier or later train connections for a previous search, using a specific verb ('load') and resource ('train connections'). It distinguishes from siblings like search_connections which performs initial searches.

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 description provides explicit context: it requires a collection_id from search_connections results and a direction. However, it does not explicitly state when not to use this tool or mention alternatives.

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

get_pricesGet PricesA
Read-onlyIdempotent
Inspect

Get ticket prices in CHF for one or more train connections. Supports Half-Fare card (Halbtax) and GA travelcard discounts. Up to 10 trip_ids per call — batch them in a single request rather than calling once per connection. Use trip_ids from a recent search_connections result; do not invent IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idsYesTrip IDs from search_connections results
traveler_typeNoTraveler typeADULT
reduction_cardNoSwiss reduction card: HALF_FARE (Halbtax), GA (General Abonnement), or NONEHALF_FARE
Behavior4/5

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

Annotations already indicate readOnly, idempotent, non-destructive. The description adds batch limit, discount support, and dependency on specific IDs, providing meaningful behavioral context beyond annotations.

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 sentences, each essential. Front-loaded with purpose, then batching guidance, then data provenance. No wasted words.

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?

No output schema exists, but description doesn't explain return format (e.g., list of prices). However, given the schema and annotations, it covers key behavioral aspects. Slight gap in output structure description.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning: explains batching for trip_ids, discount card options, and source of IDs. It clarifies constraints and usage scenarios beyond the schema.

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

Purpose5/5

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

The description clearly states it gets ticket prices in CHF for train connections, supporting specific discount cards. It distinguishes itself from siblings like search_connections (connections) and get_ticket_link (link). The purpose is specific and unambiguous.

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 says to use trip_ids from search_connections, batch up to 10 IDs, and not invent IDs. Does not explicitly list when not to use, but the context is clear. Slightly misses explicit alternatives, but usage guidance is strong.

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

get_trip_detailsGet Trip DetailsA
Read-onlyIdempotent
Inspect

Get detailed information about a specific train connection including all intermediate stops, platforms, and occupancy. Use a trip ID from search_connections results.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_idYesTrip ID from search_connections results
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by detailing the return content (intermediate stops, platforms, occupancy), aiding the agent in understanding what to expect beyond the schema.

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 sentences: first states the purpose and content, second gives the source of the required parameter. No fluff, front-loaded, efficient.

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

Completeness5/5

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

For a simple tool with one well-described parameter and rich annotations, the description covers all necessary context. It mentions return details and ties to a sibling tool, making it complete for correct invocation.

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?

The schema already fully describes the single parameter (trip_id) with the same context given in the description. Schema coverage is 100%, so baseline is 3; description adds no new semantic information.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed information about a specific train connection, listing included data (stops, platforms, occupancy). It distinguishes from siblings like search_connections by specifying it operates on a single trip ID.

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 tells the agent to use a trip ID from search_connections results, providing clear context. While it doesn't mention when to avoid the tool or name alternatives, the instruction is sufficient for correct invocation.

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

search_connectionsSearch ConnectionsA
Read-onlyIdempotent
Inspect

Find train connections between two Swiss stations. Accepts station names directly (e.g. "Zürich HB", "Bern") or UIC IDs — name resolution happens internally. Returns live schedules with departure/arrival times, duration, transfers, and trip IDs for downstream pricing/details/ticket calls. Live data: includes delays and cancellations for trains departing within 30 min.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination station name or ID (e.g. "Bern" or "8507000")
dateNoTravel date in YYYY-MM-DD format (default: today)
fromYesOrigin station name or ID (e.g. "Zurich HB" or "8503000")
timeNoTime in HH:MM (Europe/Zurich local time, 24h). By default treated as DEPARTURE time. Default: now.
arrival_timeNoDefaults to false (treat `time` as departure). Only set true when the user EXPLICITLY says they want to ARRIVE by a specific time ("I need to be in Bern by 9am", "arriving at 14:00"). For loose phrases like "around 9am", "morning", or "tomorrow at 9", leave this false — those mean departure time.
Behavior4/5

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

Annotations declare the tool is read-only and idempotent. The description goes beyond by specifying that it returns live schedules including delays and cancellations for immediate departures, and that name resolution is internal. This provides useful behavioral context not captured by annotations.

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?

The description is compact (three sentences), front-loaded with the core purpose, and each sentence provides distinct information: purpose, input flexibility, output content, and live data behavior. No redundant or unnecessary 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?

The description covers the main aspects: what it does, inputs, outputs, and a key behavioral nuance (live data window). It lacks explicit mention of pagination or result limits, but given the sibling get_more_connections, it's reasonable to infer. The absence of an output schema is partially compensated by listing return fields.

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

Parameters4/5

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

Schema descriptions cover all parameters (100%). The description adds value by explaining that station names or UIC IDs are accepted and that name resolution happens internally, which enhances understanding of the 'from' and 'to' parameters. The description also clarifies the live data context for the 'time' parameter implicitly.

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

Purpose5/5

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

The description uses specific verb 'Find' and resource 'train connections between two Swiss stations'. It clearly states what inputs are accepted (names or UIC IDs) and what outputs are provided (live schedules with times, duration, transfers, trip IDs), distinguishing it from siblings like search_stations and get_trip_details.

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 description provides clear context: it is for finding connections between stations, and returns data suitable for downstream calls. However, it does not explicitly state when to use this versus alternative tools like search_stations or get_more_connections, so some implicit inference is required.

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

search_stationsSearch StationsA
Read-onlyIdempotent
Inspect

Search for Swiss train stations, addresses, or points of interest by name. Returns UIC station IDs (e.g. "8503000" for Zürich HB) used by the other tools. Note: search_connections accepts station names directly, so this tool is only needed when the user explicitly asks for station info or when you need disambiguation between multiple matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results
queryYesStation name to search for (e.g. "Zurich", "Bern", "Interlaken")
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying the output format (UIC station IDs like '8503000' for Zürich HB), which is beyond annotations. No contradictions. Minor omission: no mention of any rate limits or authentication needs, but not critical for a read tool.

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 concise sentences. The first front-loads the purpose and output, the second adds usage guidance. No unnecessary words. Efficiently structured.

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?

The description is complete given the 2 parameters, high schema coverage, and no output schema. It explains the return format (UIC IDs) and when to use. Could optionally mention behavior on no results or pagination, but not essential for this simple tool.

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% with both parameters (query and limit) described. The description does not add additional semantics beyond the schema, but it does explain the context of the output (UIC IDs) which relates to the parameter 'query'. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool searches for Swiss train stations, addresses, or POIs by name, and returns UIC station IDs. It also distinguishes itself from the sibling tool 'search_connections' by noting that search_connections accepts station names directly, so this tool is only for station info or disambiguation.

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

Usage Guidelines5/5

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

Explicitly says when to use: 'when the user explicitly asks for station info or when you need disambiguation between multiple matches.' Also states when not needed: 'search_connections accepts station names directly'. This provides clear guidelines.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.