swisstrip-mcp
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.
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.
Tool Definition Quality
Average 4.3/5 across 6 of 6 tools scored.
Each tool has a clearly distinct purpose: searching connections, pagination, details, prices, purchase link, and station search. No overlapping functionality.
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.
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.
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 toolsget_more_connectionsGet More ConnectionsARead-onlyIdempotentInspect
Load earlier or later train connections for a previous search. Use the collection ID from search_connections results.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | "next" for later trains, "previous" for earlier trains | |
| collection_id | Yes | Collection ID from search_connections results |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PricesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_ids | Yes | Trip IDs from search_connections results | |
| traveler_type | No | Traveler type | ADULT |
| reduction_card | No | Swiss reduction card: HALF_FARE (Halbtax), GA (General Abonnement), or NONE | HALF_FARE |
Tool Definition Quality
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.
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.
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.
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.
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.
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_ticket_linkGet Ticket LinkARead-onlyInspect
Get a direct purchase link to buy a train ticket on SBB.ch. Only call this when the user wants to buy a specific ticket. On mobile with SBB app installed, opens directly in the app with Halbtax/GA applied automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Travel date YYYY-MM-DD | |
| time | Yes | Departure time HH:MM | |
| to_id | Yes | Destination station ID (e.g. "8507000") | |
| from_id | Yes | Origin station ID (e.g. "8503000") | |
| to_name | Yes | Destination station name (e.g. "Bern") | |
| trip_id | Yes | Trip ID to purchase | |
| from_name | Yes | Origin station name (e.g. "Zürich HB") | |
| traveler_type | No | Traveler type | ADULT |
| reduction_card | No | Swiss reduction card: HALF_FARE (Halbtax), GA (General Abonnement), or NONE | HALF_FARE |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses platform-specific behavior (mobile app opens directly with Halbtax/GA applied) beyond annotations. Annotations indicate read-only and open-world, description confirms read-only nature and adds practical behavioral context.
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 concise sentences with no fluff. First sentence states purpose, second adds context. Front-loaded and efficient.
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?
Purpose and usage are clear, but does not specify return type (link URL) or behavior on non-mobile platforms. Given 9 parameters and no output schema, more completeness would be beneficial.
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 covers all parameters with descriptions. Description adds minimal extra meaning (e.g., automatic discount application relates to reduction_card). Baseline 3 due to 100% schema coverage.
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?
Clearly states the action (get a direct purchase link) and resource (train ticket on SBB.ch). Distinguishes from sibling tools by specifying when to call ('only when the user wants to buy a specific ticket').
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 explicit condition for use: 'Only call this when the user wants to buy a specific ticket.' Does not explicitly mention alternative tools but implies when not to use.
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 DetailsARead-onlyIdempotentInspect
Get detailed information about a specific train connection including all intermediate stops, platforms, and occupancy. Use a trip ID from search_connections results.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_id | Yes | Trip ID from search_connections results |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ConnectionsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination station name or ID (e.g. "Bern" or "8507000") | |
| date | No | Travel date in YYYY-MM-DD format (default: today) | |
| from | Yes | Origin station name or ID (e.g. "Zurich HB" or "8503000") | |
| time | No | Time in HH:MM (Europe/Zurich local time, 24h). By default treated as DEPARTURE time. Default: now. | |
| arrival_time | No | Defaults 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. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 StationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| query | Yes | Station name to search for (e.g. "Zurich", "Bern", "Interlaken") |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!