Skip to main content
Glama

Server Details

Independent hosted SBB/CFF/FFS MCP service for Swiss train schedules, prices, and ticket links by SwissTrip.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

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 serves a distinct purpose: station lookup, connection search, pagination, pricing, ticket link, and trip details. The boundaries are clear, and descriptions explicitly reference how tools relate to each other.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (search_*, get_*) in lowercase with underscores. The pattern is uniform across the entire set.

Tool Count5/5

With 6 tools, the server is well-scoped for its transportation purpose. Each tool covers a necessary step in the user journey without redundancy or bloat.

Completeness5/5

The tool set covers the full workflow: find stations, search connections, paginate results, get detailed trip info, retrieve prices, and obtain a purchase link. No obvious gaps for the stated domain.

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 indicate readOnly, idempotent, and non-destructive behavior, so the description's burden is reduced. It adds context about pagination direction ('earlier or later') and the dependency on a prior search, which is useful. However, it does not disclose error behavior (e.g., invalid collection ID) or return format, leaving room for more transparency.

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 short sentences, with the key action and context front-loaded. Every word contributes value, and there is no redundancy or filler. It is optimally concise for the tool's simplicity.

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 tool with only two parameters, full schema coverage, and strong annotations, the description provides sufficient context about its purpose and relationship to search_connections. It does not have an output schema, but the description implies what will be returned. Minor missing details like pagination limits or response structure do not detract significantly from its completeness.

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 detailed descriptions for both parameters. The description merely echoes the schema's statement about using the collection ID from search_connections results, adding no new semantic meaning beyond what the schema already provides. Thus, the baseline of 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's action: 'Load earlier or later train connections for a previous search.' It identifies a specific resource (train connections) and scope (previous search), distinguishing it from siblings like search_connections, which creates the search, and get_trip_details, which fetches trip specifics. The phrasing is direct 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?

The description gives clear context for use: it is meant for a previous search and requires the collection ID from search_connections results. This implies the intended workflow but does not explicitly name alternative tools or state when not to use it. It provides sufficient guidance for a typical use case without exhaustive exclusions.

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 mark this as read-only and idempotent. The description adds batch limits and ID provenance constraints, which is useful beyond the annotations. No contradiction with 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 three sentences, front-loaded with purpose, and every sentence adds value. No unnecessary words or repetition.

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?

Given the tool's simplicity, high schema coverage, and good annotations, the description is mostly complete. However, with no output schema, it does not describe the return format, which is a minor gap.

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?

The schema already covers all parameters with descriptions and enums. The description adds meaning by clarifying reduction card options (Halbtax, GA) and specifying trip_id source, going 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 'Get ticket prices in CHF for one or more train connections' with a specific verb and resource. It distinguishes itself from sibling tools like get_ticket_link and get_trip_details by focusing on pricing.

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 gives explicit usage context: batch up to 10 trip_ids per call, use IDs from a recent search_connections result, and avoid inventing IDs. It does not mention exclusions or alternative tools, so it falls short of a 5.

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?

The description adds that the tool returns intermediate stops, platforms, and occupancy, which goes beyond the annotations' safety profile. It also highlights the dependence on a prior search_connections call, providing useful 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.

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose and then usage. No unnecessary words or repetition; every sentence earns its place.

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?

With one parameter fully described, rich annotations (read-only, idempotent, non-destructive), and the description covering key returned data, the tool is well-specified for an agent to select and invoke correctly. No output schema is needed for this simple detail retrieval.

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 trip_id, and the description only restates that it comes from search_connections, adding no new meaning beyond the schema's 100% coverage. 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 retrieves detailed information about a specific train connection, listing key data (intermediate stops, platforms, occupancy). It distinguishes itself from sibling tools by focusing on trip details rather than search, pricing, or ticket linking.

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?

It explicitly instructs to use a trip ID from search_connections results, providing workflow context. It doesn't name alternatives but clearly implies it follows search_connections, offering clear usage context without explicit exclusions.

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?

Adds meaningful context beyond annotations: live schedules include delays/cancellations only for departures within 30 min, name resolution happens internally, and return fields are listed. This complements the readOnlyHint=true and idempotentHint=true annotations without contradiction.

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?

Four sentences, purpose first, no filler. Each sentence adds value: purpose, input handling, return contents, and live data caveat.

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, so the description appropriately details return values (departure/arrival, duration, transfers, trip IDs). It covers key behaviors like live data and internal name resolution. However, it does not mention how to get more connections or pagination limits, leaving a slight gap given the sibling get_more_connections.

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%, so baseline is 3. The description adds little beyond the schema: it mentions 'station names or UIC IDs' for from/to, but the schema already provides examples. No additional parameter meaning is given.

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 opens with a specific verb and resource: 'Find train connections between two Swiss stations.' It clearly differentiates from siblings by noting it returns trip IDs for downstream pricing/details/ticket calls, positioning it as the entry point for connection 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?

Provides clear usage context: accepts station names or UIC IDs directly, so no prior station lookup is needed. Mentions that trip IDs feed downstream calls, implying a workflow, but does not explicitly name alternatives or exclusions like 'use search_stations for station lookup.'

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 and idempotentHint, covering safety. The description adds behavioral context by noting that it returns UIC IDs used by other tools and mention of disambiguation between matches. It does not discuss pagination or rate limits, but for a simple lookup, this is sufficient.

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 concise, two sentences, front-loaded with the main purpose, and every sentence adds value. It includes purpose, return format, and usage guidance without fluff.

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, read-only lookup tool with complete annotations and schema coverage, the description fully covers purpose, usage, and return format. It clarifies when it is needed despite search_connections accepting names directly, making it contextually complete.

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%, so parameters are fully documented in the schema. The description does not add extra semantics beyond the schema; the example UIC ID is about return value, not parameter meaning. Thus, baseline score of 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's function: 'Search for Swiss train stations, addresses, or points of interest by name.' It also specifies the output (UIC station IDs) and differentiates it from sibling search_connections, making its purpose unambiguous.

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?

Explicit usage guidance is provided: '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.' This states when to use and when not to use, naming the alternative.

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!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    GTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.
    11
    737
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources