12306-MCP
<p align="center"><img src= "https://cdn.canghecode.com/blog/12306-mcp-logo.png" alt="MaxKB" width="300" /></p>
<h3 align="center">一个基于MCP的12306购票搜索服务器</h3>
<p align="center">
<a href="https://opensource.org/license/MIT"><img src="https://img.shields.io/github/license/freestylefly/12306-mcp?color=rgb(25%2C%20121%2C%20255)" alt="The MIT License"></a>
<a href=""><img src="https://img.shields.io/github/forks/freestylefly/12306-mcp?color=green" alt="Forks"></a>
<a href="https://canghecode.com/"><img src="https://img.shields.io/badge/介绍-%E5%AE%98%E7%BD%91-green" alt="Official"></a>
<a href="https://mp.weixin.qq.com/s/j6c_GjV7nqNTsCpRXMw5tw"><img src="https://img.shields.io/github/stars/freestylefly/12306-mcp?style=flat-square&color=rgb(25%2C%20121%2C%20255)" alt="Stars"></a>
<a href="https://mp.weixin.qq.com/s/j6c_GjV7nqNTsCpRXMw5tw"><img src="https://img.shields.io/badge/12306 MCP-教程-blue" alt="Experience"></a>
</p>
<hr/>
A 12306 ticket search server based on the Model Context Protocol (MCP). The server provides a simple API interface that allows users to search for 12306 tickets.
基于 Model Context Protocol (MCP) 的12306购票搜索服务器。提供了简单的API接口,允许大模型利用接口搜索12306购票信息。
## <div align="center">🔥应用</div>
1、在 Cursor 中使用
可以智能选票还能生成途径站点可视化地图!
教程:[Cursor + 12306 MCP,实现AI智能选票还能生成精美网站](https://mp.weixin.qq.com/s/j6c_GjV7nqNTsCpRXMw5tw)

在yb.html中可直接用浏览器打开

2、用阿里云百炼做智能体
教程:[阿里百炼+12306 MCP,打造AI智能选票智能体,超酷的!](https://mp.weixin.qq.com/s/saCkwby6qhfpkuiUvRrlrw)

>我在后天想从西安出发去往郑州,请推荐出合理的车票,并推荐三天后返程的车票,

还能对比各个列车票价,做个图表,更直观了。

同样能让他生成列车停靠站点地图:

还能生成途径站点的旅行攻略。这里我的逻辑是先让他去网上搜,搜不到就调用文生图模型,由 AI 生成图片。

阿里自带的这个生图 MCP 感觉能力还是挺强的。

感觉跟真的也差不多啊,哈哈哈。

说实话,在火车上看着自己坐的这一趟列车途径的城市,看着这些景点,心中难免有一丝丝的冲动。

## <div align="center">🚩Features</div>
<div align="center">
| 功能描述 | 状态 |
|------------------------------|--------|
| 查询12306购票信息 | ✅ 已完成 |
| 过滤列车信息 | ✅ 已完成 |
| 过站查询 | ✅ 已完成 |
| 中转查询 | ✅ 已完成 |
| 其余接口,欢迎提feature | 🚧 计划内 |
</div>
<div align="center">
<img src="https://cdn.canghecode.com/blog/20250526112720.png" width=800px/>
</div>
<div align="center">
<img src="https://cdn.canghecode.com/blog/20250526113041.png" width=800px/>
</div>
## <div align="center">⚙️Installation</div>
~~~bash
git clone https://github.com/freestylefly/12306-mcp.git
npm i
~~~
## <div align="center">▶️Quick Start</div>
### CLI
~~~bash
npm run build
node ./build/index.js
~~~
### MCP sever configuration
~~~json
{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": [
"-y",
"12306-mcp"
]
}
}
}
~~~
## <div align="center">👉️Reference</div>
- [modelcontextprotocol/modelcontextprotocol](https://github.com/modelcontextprotocol/modelcontextprotocol)
- [modelcontextprotocol/typescript-sdk](https://github.com/modelcontextprotocol/typescript-sdk)
## <div align="center">💭Murmurs</div>
本项目原自[12306-MCP](https://github.com/Joooook/12306-mcp) ,感谢作者,本项目仅用于学习,欢迎催更。
## <div align="center">👉️友情链接</div>
- [mcp-server-weread](https://github.com/freestylefly/mcp-server-weread) :🚀基于 Model Context Protocol (MCP) 的12306购票搜索服务器。提供了简单的API接口,允许大模型利用接口搜索12306购票信息。
- [12306-MCP](https://github.com/Joooook/12306-mcp) :🚀一个为微信读书提供MCP(Model Context Protocol)服务的工具,支持将微信读书的书籍、笔记和划线数据提供给支持MCP的大语言模型客户端,如Claude Desktop。
- [CodeCanvas](https://github.com/freestylefly/CodeCanvas) :📚本代码仓库是作者苍何多年从事一线互联网Java开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。💪🏻
- [PmHub](https://github.com/laigeoffer/pmhub) :🔥PmHub 是一套基于 SpringCloud & LLM 的微服务智能项目管理系统,这个项目旨在帮助小伙伴们快速掌握微服务/分布式项目的架构设计和开发流程,如果想在校招或者社招中拿到一个满意的 offer,PmHub 将是一个非常 nice 的选择。
## star 趋势图
[](https://star-history.com/#freestylefly/mcp-server-weread&Date)
## 公众号
微信搜 **苍何** 或扫描下方二维码关注苍何的原创公众号,回复 **AI** 即可和 5000+ 好友一同探讨AI,一同学习MCP。

## 开源协议
[MIT License (MIT)](https://opensource.org/licenses/MIT)<hr/>
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Copyright (c) 2025-2026 12306-MCP
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose with no overlap. Tools target specific functions like date retrieval, station code lookup (by telecode, names, cities, or stations in a city), ticket queries (direct and interline), and train route details, making misselection unlikely.
All tools follow a consistent verb_noun pattern with 'get-' prefix (e.g., get-current-date, get-tickets). The naming is uniform and predictable, enhancing readability and usability.
With 8 tools, the server is well-scoped for querying 12306 train data. Each tool serves a specific role in the workflow, from station code resolution to ticket and route queries, without being overly sparse or bloated.
The toolset covers core functionalities like date handling, station code retrieval, ticket queries, and route details, supporting key user workflows. A minor gap is the lack of booking or purchase tools, but this is reasonable for a query-focused server.