RailRoute journey planner

Plan intercity journeys in India by train, flight or both, with a fare for every travel class.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
90%
이름 품질
87%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,219토큰 (도구 정의)
~1.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.73%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "journey-planner": {
      "url": "https://www.railroute.in/api/mcp"
    }
  }
}

원격 엔드포인트

https://www.railroute.in/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (8)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢find_place(query, limit)

Turn what somebody typed into RailRoute place ids. ALWAYS call this before plan_journey. A place is a city with all of its stations and airports — Mumbai covers CSMT, LTT, Dadar, Bandra Terminus and the airport — so the planner can choose the right terminal rather than making the traveller do it. Typing a station code ("CSMT") finds the city and says which terminal matched.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80,
      "description": "A city, station name or station code"
    },
    "limit": {
      "default": 5,
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢plan_journey(from, to, date, arrive_by, quota, ...)

Every practical way to get from one place to another: direct trains with their fares per class, journeys with one change of train, flights, mixed train-and-flight itineraries, and GOVERNMENT BUSES from the state road transport corporations, priced from their own reservation systems. This is the whole answer in one call. Place ids come from find_place. Use it for bus questions too. On a large share of the corridors these corporations serve there is no through train at all — Mysuru to Mangaluru runs twenty-five buses a day and not one direct train — so a journey this tool answers with a bus is often the only through service that exists, not a second-best. Pass `train_class` when the traveller has named one ("3A", "sleeper") and every train is priced in it; leave it out and each train is priced in every class we have evidence it carries. Pass `modes: "trains_only"` when they have said train — do not ask them to choose otherwise, because the point of this planner is that they do not have to. Pass `arrive_by: true` when they named a time they must BE somewhere rather than a time they want to leave.

입력 스키마

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80,
      "description": "Place id from find_place"
    },
    "to": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80,
      "description": "Place id from find_place"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Travel date in IST. Today is allowed; the past is refused."
    },
    "arrive_by": {
      "default": false,
      "description": "When true, `date` is the day they must ARRIVE, and journeys may depart the day before.",
      "type": "boolean"
    },
    "quota": {
      "default": "GN",
      "type": "string",
      "enum": [
        "GN",
        "TQ",
        "PT",
        "LD",
        "SS"
      ]
    },
    "modes": {
      "default": "any",
      "description": "Restrict the answer. Default 'any' ranks trains, flights and government buses together — leave it out unless the traveller has actually named a mode. 'trains_only' and 'flights_only' both drop the buses.",
      "type": "string",
      "enum": [
        "any",
        "trains_only",
        "flights_only"
      ]
    },
    "train_class": {
      "description": "Price every train in this class: 2S Second Sitting, SL Sleeper, CC AC Chair Car, 3E AC 3 Economy, 3A AC 3 Tier, 2A AC 2 Tier, 1A First AC, EC Executive Chair Car. Omit to price each train in every class we know it carries.",
      "type": "string",
      "enum": [
        "2S",
        "SL",
        "CC",
        "3E",
        "3A",
        "2A",
        "1A",
        "EC"
      ]
    },
    "include_connections": {
      "default": "auto",
      "description": "Journeys with one change of train. 'auto' searches for them when direct trains are thin, which is when they matter; 'always' searches regardless and costs a few more seconds.",
      "type": "string",
      "enum": [
        "auto",
        "always",
        "never"
      ]
    },
    "ask_preferences": {
      "default": true,
      "description": "Whether to ask the traveller for a travel class when they have not named one. Set false for automated or bulk use.",
      "type": "boolean"
    },
    "limit": {
      "default": 8,
      "description": "How many of EACH kind to return. Raise it only if the traveller asks to see more.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "from",
    "to",
    "date"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_train_options(train_number, from, to, date, quota, ...)

Live seat availability per class for one train on one date, plus every other way to book it when the through ticket will not confirm: a split at an intermediate station, boarding earlier, alighting later. This is the tool that rescues a waitlisted train. It spends a metered upstream call, so ask it about trains the traveller is actually considering rather than sweeping a list.

입력 스키마

{
  "type": "object",
  "properties": {
    "train_number": {
      "type": "string",
      "pattern": "^\\d{4,6}$"
    },
    "from": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Station code the traveller boards at"
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Station code the traveller alights at"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "quota": {
      "default": "GN",
      "type": "string",
      "enum": [
        "GN",
        "TQ",
        "PT",
        "LD",
        "SS"
      ]
    },
    "include_rac": {
      "default": true,
      "description": "RAC is a ticket that carries a right to board, so it counts as bookable by default.",
      "type": "boolean"
    }
  },
  "required": [
    "train_number",
    "from",
    "to",
    "date"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢train_schedule(train_number)

Every stop of one train with its scheduled arrival and departure, in order. Scheduled times only — this says nothing about where the train is today.

입력 스키마

{
  "type": "object",
  "properties": {
    "train_number": {
      "type": "string",
      "pattern": "^\\d{4,6}$"
    }
  },
  "required": [
    "train_number"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢station_departures(station_code, after, limit)

Every train scheduled to call at a station, in departure order — the enquiry board, not a journey plan. Use plan_journey when somebody wants to get somewhere; use this when they are asking what leaves from here. Scheduled times only.

입력 스키마

{
  "type": "object",
  "properties": {
    "station_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Station code, e.g. CNB"
    },
    "after": {
      "description": "Only departures at or after this IST clock time, HH:MM",
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "station_code"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢journey_calendar(from, to, start_date, days)

Day-by-day service over a span of dates for a station pair: which days have a direct train and which have none, plus the weekly pattern. Use this when somebody is flexible about when they travel, or asks 'does it run on Sundays'. Timetable only — it says nothing about seats.

입력 스키마

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Origin station code"
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Destination station code"
    },
    "start_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "First day of the span"
    },
    "days": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 120
    }
  },
  "required": [
    "from",
    "to",
    "start_date"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢nearby_stations(station_code, radius_km, limit)

Other railway stations within a radius of one station, nearest first. Useful when a place has no service of its own and the traveller needs to know what is reachable — the planner already does this internally, so reach for it only when somebody asks the question directly.

입력 스키마

{
  "type": "object",
  "properties": {
    "station_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "radius_km": {
      "default": 40,
      "type": "integer",
      "minimum": 1,
      "maximum": 150
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 40
    }
  },
  "required": [
    "station_code"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢next_confirmed_date(from, to, date, quota)

Search forward up to a month for the first date this route can actually be travelled with a confirmed berth — direct trains and one-change journeys together. Use it when a traveller is flexible about WHEN and the date they asked for is waitlisted. EXPENSIVE: it checks seats across dozens of trains and dates, so it is limited to a few calls an hour; for a single date use check_train_options instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Origin station code"
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12,
      "description": "Destination station code"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The date to search forward FROM"
    },
    "quota": {
      "default": "GN",
      "type": "string",
      "enum": [
        "GN",
        "TQ",
        "PT",
        "LD",
        "SS"
      ]
    }
  },
  "required": [
    "from",
    "to",
    "date"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 8개
인증 필요버전이 기록되지 않음—