A 12306 ticket search server based on the Model Context Protocol (MCP). The server provides a simple API interface that allows users to search for 12306 tickets.
基于 Model Context Protocol (MCP) 的12306购票搜索服务器。提供了简单的API接口,允许大模型利用接口搜索12306购票信息。
功能描述 | 状态 |
---|---|
查询12306购票信息 | ✅ 已完成 |
过滤列车信息 | ✅ 已完成 |
过站查询 | ✅ 已完成 |
中转查询 | 🚧 计划内 |
其余接口,欢迎提feature | 🚧 计划内 |
git clone https://github.com/Joooook/12306-mcp.git
npm i
npm run build
node ./build/index.js
{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": [
"-y",
"12306-mcp"
]
}
}
}
本项目仅用于学习,欢迎催更。
请我喝杯奶茶吧。
这个项目提供了与12306网站交互的多种工具,帮助用户查询车票、提交订单并完成订单确认的全流程。
- 🔍 车票查询:查询任意出发地和目的地之间的车票信息
- 👨👩👧👦 乘客管理:获取和查询账户中的乘客信息
- 🎫 订票流程:提供从查询到确认提交订单的完整流程
- 🔄 一键下单:简化版下单流程,一次性完成全部订票步骤
- 设置12306账号的Cookie环境变量
- 确保账号中已添加常用乘客
mcp_12306-mcp_get-tickets({
date: "2024-06-22",
fromStation: "GZQ", // 广州
toStation: "SZQ", // 深圳
trainFilterFlags: "G" // 只看高铁
})
mcp_12306-mcp_get-passengers-info({
random_string: "dummy"
})
订票流程可以通过两种方式完成:分步操作或一键下单。
- 提交订单请求
mcp_12306-mcp_submit-order({
secretStr: "车次密钥",
trainDate: "2024-06-22",
backTrainDate: "2024-06-22",
fromStationName: "广州",
toStationName: "深圳",
purposeCodes: "ADULT"
})
- 初始化DC
mcp_12306-mcp_init-dc({
clearContext: false
})
- 生成乘客信息字符串
mcp_12306-mcp_generate-ticket-strings-from-passenger({
seatType: "O", // 二等座
passengerIndex: 0 // 第一位乘客
})
- 核对订单信息
mcp_12306-mcp_check-order-info({
passengerTicketStr: "上一步生成的passengerTicketStr",
oldPassengerStr: "上一步生成的oldPassengerStr"
})
- 检查队列人数和余票
mcp_12306-mcp_get-queue-count({
trainDate: "Wed Jun 22 2024 00:00:00 GMT+0800 (中国标准时间)",
seatType: "O"
})
- 确认提交订单
mcp_12306-mcp_confirm-single-for-queue({
passengerTicketStr: "同上",
oldPassengerStr: "同上",
keyCheckIsChange: "从initDc获取的key_check_isChange",
leftTicketStr: "从initDc获取的leftTicketStr",
trainLocation: "从initDc获取的train_location",
repeatSubmitToken: "从initDc获取的token"
})
- 查询订单号
mcp_12306-mcp_query-order-wait-time({
repeatSubmitToken: "从initDc获取的token"
})
- 验证订单
mcp_12306-mcp_validate-order({
orderSequenceNo: "上一步获取的订单号",
repeatSubmitToken: "从initDc获取的token"
})
mcp_12306-mcp_one-click-order({
secretStr: "车次密钥",
trainDate: "2024-06-22",
fromStationName: "广州",
toStationName: "深圳",
passengerIndex: 0,
seatType: "二等座",
purposeCodes: "ADULT"
})
中文名称 | 编码 |
---|---|
商务座 | 9 |
特等座 | P |
一等座 | M |
二等座 | O |
高级软卧 | 6 |
软卧 | 4 |
硬卧 | 3 |
软座 | 2 |
硬座 | 1 |
无座 | WZ |
- 使用前必须设置有效的12306登录Cookie
- 一键下单功能将自动处理从提交订单到验证完成的全流程
- 订单成功提交后,您需要前往12306官网支付
- 如遇到问题,请查看12306官网的"未完成订单"
- @modelcontextprotocol/sdk
- axios
- zod
本项目仅供学习研究使用,请遵守12306相关规定和法律法规。