码上出发:华为云码道 + MCP赋能12306列车查询系统
本案例基于华为云码道(CodeArts)代码智能体,集成12306-MCP,构建12306火车票查询系统,实现余票查询、中转查询、车站查询、经停站查询等功能。
最新案例动态,请查阅码上出发:华为云码道 + MCP赋能12306列车查询系统小伙伴们快来进行实操吧!
一、概述
1.1 案例介绍
本案例基于华为云码道(CodeArts)代码智能体,集成12306-MCP,构建12306火车票查询系统,实现余票查询、中转查询、车站查询、经停站查询等功能。
案例技术选型:
-
华为云码道(CodeArts)代码智能体:一个理解项目需求,懂得编码之道,善用百器的实干派AI研发专家,开启你的编码自动驾驶模式。本案例中作为交互工具,自动生成项目代码。
-
12306-MCP:是一个基于模型上下文协议(MCP)的12306票务查询服务器。本案例使用12306-MCP提供的API接口,供用户查询12306票务信息。
1.2 适用对象
- 个人开发者
- 高校学生
- 企业开发者
1.3 案例时间
本案例总时长预计60分钟。
1.4 案例流程

说明:
- 用户安装华为云码道 CodeArts 代码智能体;
- 华为云码道配置12306-MCP;
- 华为云码道 CodeArts 代码智能体结合MCP,构建12306列车查询系统;
- 使用浏览器体验12306列车查询系统,实现余票查询、中转查询、车站查询、经停站查询等功能。
1.5 资源总览
本案例预计花费0元。
| 资源名称 | 规格 | 单价(元) |
|---|---|---|
| 华为云码道(CodeArts)代码智能体 | 通用体验版 | 免费 |
二、环境和资源准备
2.1 AI IDE华为云码道安装部署
参考案例《Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署》完成Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署。

2.2 安装Node.js和Python环境
使用快捷键 Ctrl+Shift+`,新建终端,输入以下命令查看Node.js和Python环境是否安装?
python --version
node -v
npm -v

如果没有安装,请参考案例《SKILL快速构建你的Java、Python和Node.js开发环境》一键配置Node.js和Python开发环境。
2.3 安装Vue和Python插件
本案例项目代码前端使用Vue,需要手动安装插件。打开码道AI IDE插件市场,在OPEN VSX页签搜索并安装Vue(Official)插件。

同样,安装Python、Python Debugger、Python Environments插件。

三、华为云码道配置MCP服务
MCP 是由 Anthropic 在 2024年 11 月推出的一个开放标准协议。它的核心目的是解决大语言模型(LLM)与外部数据源、工具和服务之间的连接难题。
12306-MCP是一个基于模型上下文协议(MCP)的12306票务查询服务器。该服务器提供简洁的API接口,供用户查询12306票务信息。
3.1 安装并启动12306-MCP
打开CMD命令行窗口,克隆项目到本地并安装:
git clone https://gitcode.com/gh_mirrors/12/12306-mcp.git
cd 12306-mcp
npm install

启动12306-MCP:
npx -y 12306-mcp

3.2 配置12306-MCP服务
点击右上角MCP图标,点击配置MCP服务器,.codeartsdoer/mcp目录下生成mcp_settings.json文件。

编辑mcp_settings.json文件,将以下内容复制并保存。
{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": [
"-y",
"12306-mcp"
]
}
}
}

12306-MCP工具介绍:
| 工具名称 | 功能说明 | 必要参数 |
|---|---|---|
| get-current-date | 获取当前日期 | 无 |
| get-stations-code-in-city | 查询某城市所有火车站名称及 station_code | city(城市名) |
| get-station-code-of-citys | 查询城市代表站点的 station_code | citys(城市名,多城市用 | 分割) |
| get-station-code-by-names | 通过具体车站名查询 station_code | stationNames(车站名,多个用 | 分割) |
| get-station-by-telecode | 通过 station_telecode 查询车站详细信息 | stationTelecode(3位字母编码) |
| get-tickets | 查询12306余票信息 | date, fromStation, toStation |
| get-interline-tickets | 查询12306中转余票信息 | date, fromStation, toStation |
| get-train-route-stations | 查询特定车次在指定区间的经停站详细信息 | trainCode, departDate |
在码道对话框中,输入以下提示词,验证12306-MCP。
调用 12306-mcp 中的 get-stations-code-in-city 工具,查询南京市所有火车站名称及 station_code。

四、12306列车查询系统代码实践
4.1 华为云码道生成代码
使用探索模式,在华为云码道对话框中,输入以下提示词:
结合12306-mcp提供的所有工具,使用python+flask完成一个web应用,实现12306-mcp中所有的功能。使用Node.js写一个MCP桥接HTTP服务,Flask通过HTTP调用桥接服务来间接使用MCP工具。

几分钟后,华为云码道帮助我们生成了完整的代码。

注意:当发生文件变更时,我们点击全部接受。
项目结构如下:
Train12306/
├── bridge/ # Node.js MCP桥接HTTP服务 (端口3001)
│ ├── server.js # 通过MCP SDK连接12306-mcp,暴露HTTP API
│ └── package.json
├── backend/ # Python Flask后端 (端口5000)
│ ├── app.py # 8个路由对应8个MCP工具,调用bridge HTTP接口
│ └── requirements.txt
├── frontend/ # Vue.js前端 (端口5173)
│ ├── src/
│ │ ├── App.vue # 主布局+4个Tab页
│ │ ├── api.js # API调用封装
│ │ └── components/
│ │ ├── TicketQuery.vue # 余票查询
│ │ ├── InterlineQuery.vue # 中转查询
│ │ ├── StationLookup.vue # 车站查询(4种方式)
│ │ └── TrainRoute.vue # 经停站查询
│ └── vite.config.js # 代理/api到Flask
├── start.bat / start.sh # 一键启动脚本
└── README.md
输入提示词:启动应用。码道自动安装依赖并启动应用。

4.2 体验列车查询系统
在浏览器中打开http://localhost:5173,访问12306火车票查询系统。

余票查询:
出发地:南京、到达地:北京、日期:2025/05/14、车次类型:高铁+动车、排序:出发时间,点击余票查询。

中转查询:
出发地:南京、到达地:乌鲁木齐、日期:2025/05/14,点击查询中转票。

车站查询:
查询南京市内所有车站:

经停站查询:
查询Z40车次经停站:

注意:
- 如果验证后,发现其它问题,可直接把问题发给华为云码道,经过多轮交互,生成最终代码。
- 由于本应用的开发是Agent自动生成的,每次提问生成的代码及最后的运行结果均存在出入,开发者可根据自己的需求,调教模型生成自己想要的结果。若想体验与案例一样的结果,请下载或克隆源码至本地运行。
本地运行注意事项:
- 安装并启动MCP桥接服务
cd bridge
npm install
npm start
- 安装并启动Flask后端
cd backend
pip install -r requirements.txt
python app.py
requirements.txt文件内容如下:
flask==3.1.0
flask-cors==5.0.0
requests==2.32.3
- 安装并启动Vue前端
cd frontend
npm install
npm run dev
至此,码上出发:华为云码道 + MCP赋能12306列车查询系统的案例已全部完成。
五、反馈改进建议
如您在案例实操过程中遇到问题或有改进建议,可以到论坛帖评论区反馈即可,我们会及时响应处理,谢谢!
更多推荐




所有评论(0)