Server definition
- Hash
- sha256:1ff22b85a1ae8f29dbdab0fb283f1c1ac0f8c6fd78cbf48ff6bbfaf5a463ba98
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Load earlier or later train connections for a previous search. Use the collection ID from search_connections results.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"collection_id": {
"description": "Collection ID from search_connections results",
"type": "string"
},
"direction": {
"description": "\"next\" for later trains, \"previous\" for earlier trains",
"enum": [
"next",
"previous"
],
"type": "string"
}
},
"required": [
"collection_id",
"direction"
],
"type": "object"
},
"name": "get_more_connections",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"reduction_card": {
"default": "HALF_FARE",
"description": "Swiss reduction card: HALF_FARE (Halbtax), GA (General Abonnement), or NONE",
"enum": [
"HALF_FARE",
"GA",
"NONE"
],
"type": "string"
},
"traveler_type": {
"default": "ADULT",
"description": "Traveler type",
"enum": [
"ADULT",
"CHILD"
],
"type": "string"
},
"trip_ids": {
"description": "Trip IDs from search_connections results",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
}
},
"required": [
"trip_ids"
],
"type": "object"
},
"name": "get_prices",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"date": {
"description": "Travel date YYYY-MM-DD",
"type": "string"
},
"from_id": {
"description": "Origin station ID (e.g. \"8503000\")",
"type": "string"
},
"from_name": {
"description": "Origin station name (e.g. \"Zürich HB\")",
"type": "string"
},
"reduction_card": {
"default": "HALF_FARE",
"description": "Swiss reduction card: HALF_FARE (Halbtax), GA (General Abonnement), or NONE",
"enum": [
"HALF_FARE",
"GA",
"NONE"
],
"type": "string"
},
"time": {
"description": "Departure time HH:MM",
"type": "string"
},
"to_id": {
"description": "Destination station ID (e.g. \"8507000\")",
"type": "string"
},
"to_name": {
"description": "Destination station name (e.g. \"Bern\")",
"type": "string"
},
"traveler_type": {
"default": "ADULT",
"description": "Traveler type",
"enum": [
"ADULT",
"CHILD"
],
"type": "string"
},
"trip_id": {
"description": "Trip ID to purchase",
"type": "string"
}
},
"required": [
"trip_id",
"from_name",
"from_id",
"to_name",
"to_id",
"date",
"time"
],
"type": "object"
},
"name": "get_ticket_link",
"outputSchema": null
},
{
"description": "Get detailed information about a specific train connection including all intermediate stops, platforms, and occupancy. Use a trip ID from search_connections results.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"trip_id": {
"description": "Trip ID from search_connections results",
"type": "string"
}
},
"required": [
"trip_id"
],
"type": "object"
},
"name": "get_trip_details",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"arrival_time": {
"description": "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.",
"type": "boolean"
},
"date": {
"description": "Travel date in YYYY-MM-DD format (default: today)",
"type": "string"
},
"from": {
"description": "Origin station name or ID (e.g. \"Zurich HB\" or \"8503000\")",
"type": "string"
},
"time": {
"description": "Time in HH:MM (Europe/Zurich local time, 24h). By default treated as DEPARTURE time. Default: now.",
"type": "string"
},
"to": {
"description": "Destination station name or ID (e.g. \"Bern\" or \"8507000\")",
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"name": "search_connections",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"description": "Maximum number of results",
"maximum": 20,
"minimum": 1,
"type": "number"
},
"query": {
"description": "Station name to search for (e.g. \"Zurich\", \"Bern\", \"Interlaken\")",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_stations",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:1ff22b85a1ae8f29dbdab0fb283f1c1ac0f8c6fd78cbf48ff6bbfaf5a463ba98 | sha256sum