mcp server
confirmtkt-mcp
MCP server for live Indian Railways train search & seat availability.
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- Node.js 20 or newer
{
"mcpServers": {
"confirmtkt-mcp": {
"command": "npx",
"args": [
"-y",
"confirmtkt-mcp"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 26, 2026Data comes from ConfirmTkt's public (unauthenticated) trains-search API — no key, no login, no CAPTCHA. The endpoint was reverse-engineered.
Sample query & output
Ask Claude: "Find trains from New Delhi to Bhopal on 28-06-2026 with 3A available."
Claude calls search_trains (origin/destination resolved live: New Delhi → NDLS, Bhopal → BPL)
with travelClass: "3A" and availableOnly: true, and gets back 9 trains with confirmed 3A seats:
🚆 New Delhi → Bhopal Jn · 28 Jun 2026 · class 3A · available only · 9 trains
| Train | Name | Dep → Arr | Duration | 3A status | Fare |
|---|---|---|---|---|---|
| 12438 | SC Rajdhani | 15:35 → 23:30 | 7h 55m | AVL 25 | ₹1,995 |
| 22222 | CSMT Rajdhani | 16:55 → 00:35 | 7h 40m | AVL 31 | ₹1,995 |
| 22692 | SBC Rajdhani | 19:50 → 03:45 | 7h 55m | AVL 2 | ₹1,905 |
| 12191 | NZM JBP SF | 14:05 → 01:55 | 11h 50m | AVL 14 | ₹1,110 |
| 12780 | Goa Express | 15:15 → 02:35 | 11h 20m | AVL 1 | ₹1,110 |
| 07622 | NED Summer Spl | 21:40 → 07:17 | 9h 37m | AVL 123 | ₹1,365 |
| …and 3 more |
Raw tool output (truncated):
{
"source": "NDLS",
"destination": "BPL",
"date": "28-06-2026",
"filters": { "travelClass": "3A", "availableOnly": true },
"trainCount": 9,
"trains": [
{
"trainNumber": "12438",
"trainName": "SC RAJDHANI",
"fromStnCode": "NZM", "toStnCode": "BPL",
"departureTime": "15:35", "arrivalTime": "23:30",
"durationFormatted": "7h 55m", "distance": 694, "hasPantry": true, "trainRating": 4.4,
"availability": [
{ "travelClass": "3A", "status": "AVL 25", "seats": 25, "fare": 1995, "confirmStatus": "Confirm", "confirmChance": 100, "quota": "GN" }
]
}
]
}
Tools
| Tool | What it does |
|---|---|
search_trains | All trains between origin & destination on a date, with per-class seat availability (SL/3A/3E/2A/1A/CC/EC/2S), fares, timings, duration, rating. Optional travelClass and availableOnly filters. |
get_seat_availability | Live availability for one specific train number on a route+date. |
find_station_code | Resolve any station/city name to its IRCTC code via live autocomplete (e.g. "Itarsi" → "ET"). |
Inputs are forgiving:
- Origin / destination accept a station code (
NDLS) or a city name (New Delhi). - Dates accept DD-MM-YYYY (
28-06-2026) or YYYY-MM-DD (2026-06-28).
Availability status codes
| Status | Meaning |
|---|---|
AVL n | n seats confirmed-available now (seats field = n) |
WL n | Waitlist position n |
RAC n | Reservation Against Cancellation, position n |
Regret / Not Available | No booking in that class |
Each class also reports fare (₹), confirmStatus, and confirmChance (0–100%).
Build
npm install
npm run build
Register with Claude Code
claude mcp add --scope user confirmtkt-trains -- node /absolute/path/to/dist/server.js
Then ask Claude: "Find trains from New Delhi to Bhopal on 28-06-2026 with 3A available."
License
Released under the MIT License.