30分钟搭建MCP票务助手:自然语言查火车票
本教程带你从零部署12306 MCP Server,接入Claude Desktop等AI客户端。完成配置后,只需自然语言提问即可实时查询火车票、中转方案及余票信息,彻底告别手动筛选车次的繁琐操作。

30分钟搭建MCP票务助手:自然语言查火车票
节假日帮家人查火车票时,反复打开12306、手动选日期、逐条对比车次是否让你感到疲惫?如果你正在使用支持MCP协议的AI工具,这篇教程将帮你搭建专属的票务助手。整个过程不需要编写业务代码,只需跟随步骤完成环境配置与服务对接。
环境准备
开始前确认以下基础环境:
- Node.js 18+(推荐通过nvm管理版本):终端执行
node -v验证 - npm包管理器:随Node.js自动安装
- MCP协议客户端:Claude Desktop、Cursor或Windsurf等
- 基础命令行操作经验
无需深入理解MCP协议底层逻辑,按步骤操作即可跑通完整链路。
部署MCP服务
拉取代码与安装依赖
bash
git clone https://github.com/Joooook/12306-mcp.git
cd 12306-mcp
npm i
这三行命令完成项目克隆、依赖安装,相当于为AI工具配备处理12306数据的"翻译引擎"。
服务验证
推荐使用HTTP模式启动服务,便于观察运行状态:
bash
npx -y 12306-mcp --port 8080
终端显示正常监听状态即表示服务就绪。若需标准输入输出通信,可直接运行 npx -y 12306-mcp。
注:使用MCP Inspector调试工具需Node.js 22.19.0+,常规运行18+版本即可满足需求。
对接AI客户端
以Claude Desktop为例,定位MCP配置文件(通常位于设置菜单的Servers选项),插入以下JSON配置:
json
{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": ["-y", "12306-mcp"]
}
}
}
该配置通过npx动态调用服务模块,避免硬编码本地路径带来的移植性问题。保存文件后重启客户端,界面将显示服务连接状态。
自然语言查询实战
配置生效后,在AI对话界面输入:
"查询明天北京南到上海虹桥的G字头列车"
AI将自动调用已配置的MCP服务,返回结构化票务信息。支持多种查询场景:
- 中转方案:"北京至昆明无直达车时推荐换乘路线"
- 经停查询:"G101次列车途经站点列表"
- 余票筛选:"后天深圳北至广州南的二等座可购车次"
当前版本覆盖购票查询、智能过滤、过站检索、路径规划四大核心功能,满足日常出行需求。
容器化部署方案
若需隔离运行环境或部署至服务器,Docker提供轻量级解决方案:
bash
## 构建容器镜像
docker build . -t 12306-mcp
## 交互式运行
docker run --rm -it 12306-mcp npx 12306-mcp
## 后台HTTP服务(端口映射)
docker run -p 8080:8080 -d 12306-mcp npx 12306-mcp --port 8080
容器模式同样支持MCP配置,只需将command参数替换为对应docker run指令即可。
高频问题指南
| 现象 | 解决方案 |
|---|---|
| 依赖安装缓慢 | 切换镜像源:npm config set registry https://registry.npmmirror.com |
| JSON配置报错 | 检查语法合规性(特别注意末尾逗号及引号配对) |
| 客户端无法连接 | 确认服务端口占用状态,验证JSON路径是否指向正确配置文件 |
| 返回空数据 | 12306接口存在频率限制,间隔5分钟后重试或检查网络连通性 |
Node.js版本异常时,通过 nvm install 22 && nvm use 22 快速切换运行环境。
技术延伸
完成本次部署后,你已掌握MCP服务接入的标准流程。该模式同样适用于其他协议扩展:天气查询、数据库操作、智能家居控制等场景均可沿用相同配置逻辑。进阶学习可参考项目文档中的架构设计与通信原理,深入理解JSON-RPC传输机制与工具描述规范。
掌握这项技能,你的AI工作流将突破基础对话限制,真正实现智能体与外部系统的无缝协作。遇到问题欢迎在讨论区交流实践心得。