开发个火车票查询MCP Server项目,结合Qwen3效果真不错
一、火车票查询遇上MCP
2025年的AI技术发展非常快,MCP必然是最火的一个AI的实践,前阵子百度地图、高德地图发布了地图类的MCP Server,那么需要衣食住行的人们来说,都可以集成MCP Server来改变传统的方式,其中火车票查询这一块也自然可以结合AI来实现,当火车票遇上模型上下文协议后,效果也是出奇的好。
我最近开发了一个基于TypeScript的Studio模式的火车票MCP Server,代码不多,期间也学习了百度地图的MCP Server的开源项目源代码,受益匪浅。
百度地图的MCP Server项目代码:https://github.com/baidu-maps/mcp
对于开发火车票MCP Server来说,这不仅是一次新AI技术实践,更是对模型上下文协议(Model Context Protocol, MCP)在票务领域应用的创新探索。
火车票MCP Server,相当于重新定义了火车票查询,可以通过AI像聊天一样自然,传统火车票查询需要用户像填写表格一样选择日期、输入车站全称、指定精确时间。而用AI的MCP Server的能力支持,用自然语言表达真实需求就行了。

本文简单分享下这款火车票MCP Server,也期待那些做火车票的大厂们尽快发布更加稳定的火车票MCP Server。
目前代码已开源在Github上:https://github.com/wuchubuzai2018/tongchenglvxing-mcp-server,欢迎大家Star哦。
二、火车票MCP Server的介绍和使用
目前我开发的这个火车票MCP Server核心数据接口来自于同程旅行网,网址如下:
https://www.ly.com/mergeTrain/huochepiao,同程旅行网的火车票的页面如下:

我们可以通过自然语言与AI对话,告诉AI我们的出发城市、到达城市、出发日期,从而返回来火车票数据。我开发的这个MCP Server是基于Studio模式的,基于本地命令输入输出的方式,也就说每个人运行时,需要在本地安装好支持MCP Server的软件后,访问本地的命令的方式运行,流程图如下:

那如果不知道MCP是什么,可以先来看下之前的文章:
当AI学会"抄近道":大模型自主决策的核心技能--工具调用解析
使用SpringAI1.0.0-M7开发猫眼电影MCP Server体验
之前的文章中已经分享过MCP,MCP全称Model Context Protocol,是由Anthropic提出的一种开放标准协议,旨在为大型语言模型(LLM)提供统一的方式,与外部的数据源和工具进行交互。它就像是AI的“通用接口”,让AI可以轻松地访问和操作各种资源。资源可是是数据库、可以是文件、可以是网络接口等等。
我们看看我这个MCP如何使用,由于目前我这个MCP Server是基于studio模式的,所以需要提前具备好nodejs环境,然后我们安装一下支持MCP Server配置的客户端,这里我用的Cherry Studio这个客户端,同时我选择的AI大模型是qwen3.0大模型,14b的版本,其他支持工具调用的模型也是可以的。
我们启动下Cherry Studio软件,然后找到MCP的设置,页面设置如下,命令这里最好写上NPX的绝对路径:

如果是其他客户端,可以直接配置MCP Server的配置文件如下内容:
{
"mcpServers": {
"tongchenglvxing-mcp-server": {
"command": "npx",
"args": [
"-y",
"@wuchubuzai/tongchenglvxing-mcp-server"
]
}
}
}
目前我这个MCP Server提供了2个工具:
查询火车票车次列表工具:query_train_tickets_list
-
火车票车次列表查询功能,它可以帮助用户获取指定城市/车站的火车票信息,数据来源于同程旅行网火车票查询,根据用户提供的出发站出发城市、到达站到达城市、出发日期进行查询结果,返回出发站信息和到达站信息和座位票价信息
-
Input:
depStationName(string): 出发火车站名称或者出发城市名称。
arrStationName(string): 目的地火车站名称或者到城市名称。
depDate(string): 出发日期,格式为yyyy-MM-dd。
查询当前系统时间工具

这样配置完成后,就可以使用了。
三、火车票MCP Server的使用
接下来我们就可以基于阿里最新开源的QWEN3的14B系列的大模型(支持工具调用的大模型都可以,不限制于QWEN3),我之所以选择QWEN3,是因为它可以同时支持思维链的输出和工具调用,这样我们通过思考链的输出,结合工具调用质量是非常棒的。

最新版本Qwen3有以下特点:
-
全尺寸稠密与混合专家模型:0.6B, 1.7B, 4B, 8B, 14B, 32B and 30B-A3B, 235B-A22B
-
支持在思考模式(用于复杂逻辑推理、数学和编码)和 非思考模式 (用于高效通用对话)之间无缝切换,确保在各种场景下的最佳性能。
在Cherry Studio的对话界面中,需要选择好我们设置的这个工具后再对话哦。
然后我们它第一个问题:
使用火车票查询功能,查询系2025年5月3日从哈尔滨到漠河的火车票信息
回答如下:

它先通过思维链输出了思考的过程和工具调用的结果,最后帮助我们总结了如下内容:

可以看到现在通过AI大模型的能力结合火车票的MCP Server,再结合QWEN3的大模型的能力,效果是非常棒的。Qwen3支持动态调整思考模式和非思考模式,我们可以在聊天过程中加入/think指令和/no_think指令进行调整,感兴趣的小伙伴可以尝试一下。
目前,我做的这个MCP Server工具可以返回如下同程旅行网的火车票的查询结果,可以看到都是些常用的字段:
{
用户查询出发站:xxxxxx,
用户查询到达站:xxxxx,
车次列表: [
是否当日到达:"是",
出发火车站是否是经停站:"是经停站",
出发火车站是否是始发站:"是始发站",
车次号: xxxxx,
出发车站名称:xxxxx ,
出发日期: xxxx ,
出发时间: xxxx,
到达车站名称: xxxx ,
到达日期: xxxx ,
到达时间: xxxx,
历时小时分钟: xxxxx,
座位类型: [
类型: xxxxx,
价格: xxxx,
余票:xxxx
]
]
}
如果有其他需要,未来也可以加上哦。
四、总结
本文简单分享了火车票MCP Server的基础知识,后续分享下具体的开发设计和实现过程。
这个代码在学习过程中也参考了百度地图的MCP Server的源码设计,可以非常方便的快速入门和学习,感兴趣的小伙伴,可以尝试下使用百度地图的MCP Server和火车票MCP Server集成起来一起搞个业务效果,也是不错的。
目前这个基于同程旅行网的火车票的MCP Server的开源项目地址为:
https://github.com/wuchubuzai2018/tongchenglvxing-mcp-server
感兴趣的小伙伴,可以给这个项目Star哦,更多内容学习,可以加入到我的知识星球哦:https://wx.zsxq.com/group/48885445885128
更多推荐



所有评论(0)