MCP协议12306购票搜索服务器项目解析与配置流程
深入探索基于MCP协议的12306购票搜索服务器高效解决方案,打造智能化购票体验。核心内容:1 12306-mcp项目功能特点及查询12306购票信息详解2 列车信息过滤与过站查询功能介绍3 技术架构解析与12306-MCP服务原理深度剖析 近期在GitHub上备受关注的一个开源项目——123
深入探索基于MCP协议的12306购票搜索服务器高效解决方案,打造智能化购票体验。
核心内容:
1. 12306-mcp项目功能特点及查询12306购票信息详解
2. 列车信息过滤与过站查询功能介绍
3. 技术架构解析与12306-MCP服务原理深度剖析

近期在GitHub上备受关注的一个开源项目——12306-mcp,基于Model Context Protocol(MCP)协议构建,专门为12306购票搜索服务器量身打造。
简单来说,该项目使大语言模型能够通过MCP接口直接查询12306的购票数据,从而显著提升整体购票体验与搜索效率。
12306-mcp核心功能亮点
实时查询12306购票信息:核心功能在于实时获取12306官方票务数据。后端与官方系统无缝对接,可完整返回车次、发车时间、到达时间、座位类型、票价等关键信息。
智能过滤列车信息:用户可根据出行计划,按出发地、目的地、出行日期、车次类型等条件灵活筛选结果,无需在大量车次中手动翻找。
便捷过站查询:想知道哪些列车途经某个特定站点?该功能非常实用。对于需要中途换乘或有特殊站点偏好的旅行者,只需输入站点名称,即可返回所有经过该站的车次列表。
智能中转查询:针对需要换乘的用户,系统根据出发地与目的地,结合各次列车时刻表,智能推荐最优中转方案,合理规划换乘行程。
项目技术架构与原理深度解析
技术架构设计
前后端分离架构:12306-mcp采用前后端分离设计。前端负责交互展示,后端处理业务逻辑、数据对接以及与12306官方系统的通信。这种架构让模块化开发和后期维护更加便捷,系统的可扩展性也得到显著增强。
12306-MCP服务运作原理
服务启动时,通过 getStations() 函数从12306 API获取全国车站信息,构建四个核心索引:
具体流程如下:
- 访问12306首页 (https://www.12306.cn/index/);
- 从HTML中提取车站名称JS文件路径;
- 下载并解析JS文件,获取原始车站数据;
- 补充缺失的车站信息 (MISSING_STATIONS);
- 基于车站数据得到四个核心数据结构映射表;
// 1. 车站id -> 车站信息 STATIONS: Record// "AAA": { // "station_id": "@aaa", // "station_name": "北京北", // "station_code": "AAA", // "station_pinyin": "beijingbei", // "station_short": "aaa", // "station_index": "0", // "code": "1234", // "city": "北京", // "r1": "", // "r2": "" // } // 2. 城市名 -> 车站id 和 站名 (可能一个城市多个站) CITY_STATIONS: Record // "北京": [{"station_code": "AAA","station_name": "北京北"},{"station_code": "BBB","station_name": "京东"},...] // 3. 车站名(与城市名相同,只会有一个) -> 车站id 和 站名 CITY_CODES: Record // "北京":{"station_code":"CCC","station_name":"北京"} // 4. 车站名 -> 车站id 和 站名 NAME_STATIONS: Record // "北京北":{"station_code":"AAA","station_name":"北京北"}
数据流程与工具关系详解
车票查询流程:
用户查询 "后天北京到上海的高铁" - 大模型调用流程:
↓
1. get-current-date() → "2024-01-15" (获取当前日期)
2. 大模型理解后天日期 → "2024-01-17"
3. get-station-code-of-citys("北京|上海") → {"北京": {"station_code": "BJP","station_name": "北京"}, "上海": {"station_code": "SHH","station_name": "上海"}}
↓
4. get-tickets(date: "2024-01-17", fromStation: "BJP", toStation: "SHH", trainFilterFlags: "G")
↓
5. 内部数据处理(参数验证, Cookie获取, API调用, 格式化输出文本)
↓
6. 返回格式化的高铁车次信息(车次、时间、价格、余票等)
中转查询流程:
用户查询 "深圳到拉萨,经过西安中转"
↓
1. 获取三个城市的车站id
2. get-interline-tickets(from: "SZQ", to: "LSO", transfer: "XAY")
↓
3. 内部数据处理(参数验证, Cookie获取, API调用, 格式化输出文本)
↓
4. 返回中转方案(第一程 + 第二程)
经停站查询流程:
用户查询 "G1次列车经停哪些站"
↓
1. get-train-route-stations(trainNo: "G1", from: "BJP", to: "SHH")
↓
2. 数据处理:parseRouteStationsData() → parseRouteStationsInfo()
↓
3. 返回经停站列表(站名、到达时间、出发时间、停留时间)
基础工具(Base Tool)
get-current-date: 获取上海时区当前日期
- 返回当前上海时区的时间日期字符串("yyyy-MM-dd")
- 为其他工具提供准确的查询日期基准
get-stations-code-in-city: 查询城市内所有车站(使用CITY_STATIONS)- 输入:中文城市名
- 查找:
CITY_STATIONS[city]获取该城市所有车站列表 - 返回:包含
station_code和station_name的数组 get-station-code-of-citys: 获取城市代表车站id(使用CITY_CODES)- 输入:城市名(支持 "|" 分隔的多个城市)
- 查找:
CITY_CODES[city]获取与城市同名的主要车站 - 返回:每个城市对应的代表车站信息
get-station-code-by-names: 车站名转车站id(使用NAME_STATIONS)- 输入:具体车站名(支持 "|" 分隔的多个车站)
- 查找:
NAME_STATIONS[stationName]精确匹配车站名 - 返回:车站id和车站名
get-station-by-telecode: 车站id查车站信息(使用STATIONS)- 输入:车站id
- 查找:
STATIONS[telecode]获取完整车站信息 - 返回:包含拼音、城市等详细信息
核心工具(Core Tool,输入可通过基础工具获取)
get-tickets: 查询12306余票信息
- 输入:出发日期、出发站id、到达站id、车次类型筛选
- 参数处理:检查日期不早于当前日期,验证车站id存在性, 构造请求入参
- Cookie 处理:先获取 12306 Cookie 用于身份验证
- API 调用:访问
/otn/leftTicket/query接口 - 数据处理, 车次类型筛选
- 返回格式化数据
get-interline-tickets: 中转换乘查询,支持指定中转站- 输入:出发站id、到达站id、中转站id、是否显示无座、车次类型筛选
- 参数处理:检查日期不早于当前日期,验证车站id存在性, 构造请求入参
- Cookie 处理:先获取 12306 Cookie 用于身份验证
- API 调用:访问
/lcquery/queryU接口 - 数据处理, 车次类型筛选
- 返回格式化数据
get-train-route-stations: 列车经停站查询- 输入:车次编码(可以调用get-tickets获取)、出发站id、到达站id、出发日期
- 参数处理:检查日期不早于当前日期,验证车站id存在性, 构造请求入参
- Cookie 处理:先获取 12306 Cookie 用于身份验证
- API 调用:访问
/otn/czxx/queryByTrainNo接口 - 返回格式化数据
12306-mcp安装配置指南
CLI 命令行启动
npm run build node ./build/index.js
MCP Server 配置
{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": [
"-y",
"12306-mcp"
]
}
}
}
效果展示:
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:MCP协议12306购票搜索服务器项目解析与配置流程要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点Coachify这个产品,说白了就是用AI教练来帮你实现个人目标——无论是健身、饮食,还是整体健康,都能找到对应的智能教练。它提供定制化的锻炼计划、动画视频演示、AI驱动的进度追踪,以及和AI教练直接聊天的功能。简单来说,就是让一个不会累、随时在线的“教练”陪你一起变好。 什么是Coachify?
Wordfence是WordPress常用安全插件,集防火墙、恶意软件扫描、实时监控与登录防护于一体,有效防御各类攻击。通过后台插件搜索安装激活即可使用。搭配宝塔面板的Nginx免费防火墙,可进一步增强网站防护效果。
ImpulseAI专注于营销文案生成与内容自动化,用户只需选择模板、输入上下文信息,即可快速生成引人入胜的广告语、社交媒体帖子和邮件等素材,显著提升团队效率与内容质量,助力营销活动高效落地。
WordPress网站若主题缺乏SEO功能,可安装专业插件优化。推荐两款国产SEO插件:SmartSEOTool简单易用,无需配置;SuperFastSEO代码精炼、功能全面,支持基础优化加速、图片压缩、缓存生成等。
- 日榜
- 周榜
- 月榜
热点快看
