30分钟搭建MCP票务助手:自然语言查火车票

13 次阅读 0 点赞 0 评论 4 分钟原创技术教程

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

#MCP #AI工具链 #12306 #实战教程 #Claude Desktop
30分钟搭建MCP票务助手:自然语言查火车票

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工作流将突破基础对话限制,真正实现智能体与外部系统的无缝协作。遇到问题欢迎在讨论区交流实践心得。

最后更新:2026-09-18T10:02:04

评论 (0)

发表评论

blog.comments.form.loading
0/500
加载评论中...