
China 12306 Train Tickets MCP
cn.pianam.mcp由 mcp.pianam.cn 发布官方发布者v1.0.0更新于 Oct 24, 2026
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
概览
一个只读的 MCP 服务器,让助手按中文车站名和日期查询中国铁路 12306 的车次时刻与各席别余票。
- 可以做什么
- 按出发与到达的中文城市或车站名及日期查询车次,返回车次号、出发到达车站与时间、历时,以及商务座、一等座、二等座、软卧、硬卧、硬座、无座等余票。日期留空默认查明天,格式须为 YYYY-MM-DD,12306 预售期通常为 15 天。模糊搜索车站名,帮助在多车站城市中确定准确站名。
- 适用场景
- 适合需要查询中国高铁或普速列车班次与余票、为出行做比较,或不确定某城市该用哪个车站时使用。它只读,适合规划与比价,不适合直接购票。
- 运行要求
- 托管端点只需在 MCP 客户端中填入地址,无需账号或 API Key。自托管需要 Python 及 mcp、uvicorn、starlette 依赖,或使用 Docker;服务默认监听 127.0.0.1:8003,可用 MCP_HOST、MCP_PORT、MCP_ALLOWED_HOSTS、MCP_ALLOWED_ORIGINS 调整。需要能访问 12306 的公开查询接口。
安装
在 SourceWeft 中
- 打开 控制台中的 China 12306 Train Tickets MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/cn.pianam.mcp%2F12306-train-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"china-12306-train-tickets": {
"type": "http",
"url": "https://mcp.pianam.cn/train-mcp/mcp"
}
}
}README
China 12306 Train Tickets MCP
Query China Railway 12306 ticket availability from any MCP client — train schedules and remaining seats by Chinese station name and date. Read-only, no booking, no account.
- Try it in 30 seconds: a free public MCP endpoint is already running — just paste the URL into your MCP client (no install, no API key).
- Or self-host: a single Python file, stdlib HTTP + FastMCP, zero paid dependencies.
⚡ Use the hosted endpoint (no setup)
Transport: Streamable HTTP (MCP 2025-03-26 compatible). No authentication required.
🔌 Client configuration
Add this to your MCP client's mcpServers configuration (Claude Desktop claude_desktop_config.json, Cursor mcp.json, Cline, Cherry Studio, etc.):
Clients that do not accept
"type": "http"(some Cherry Studio / older Cline versions) accept the same entry with just"url".
🧰 Tools
📡 Data sources, caching & limits
- Data comes from 12306's own public query endpoints (
kyfw.12306.cn/otn/leftTicket/...) — read-only queries only; this server cannot book tickets, please buy via the official 12306 app/website. - Station code table cached locally for 7 days; ticket queries cached for 300 seconds.
- No API key, no login required.
- The hosted endpoint is rate-limited to 200 requests / minute / IP.
🐢 Self-hosting
Then point your MCP client at http://127.0.0.1:8003/mcp.
No API keys or accounts are ever required.
🐳 Self-host with Docker
Option A — pull the pre-built image (fastest, no build):
Option B — build from source:
Then point your MCP client at http://127.0.0.1:8000/mcp.
The container listens on 0.0.0.0:8000 by default (override with -e MCP_PORT=9000 and adjust -p accordingly). No API keys or accounts required.
train_stations.json— bundled 12306 station name → telegraph-code table (auto-refreshed from 12306 every 7 days).
🗂️ Files
train_mcp_server.py— the MCP server (FastMCP, Streamable HTTP transport).rate_limit.py— lightweight per-IP sliding-window rate-limit middleware (200 req/min default).requirements.txt—mcp,uvicorn,starlette.server.json— official MCP Registry manifest (remote server entry, ready to publish withmcp-publisher).smithery.yaml/glama.json— directory listing metadata.
🧯 Parameter guide & common errors (read this if a call fails)
query_train_tickets(from_city, to_city, date="")
Why you may get an HTTP 400 / error result:
- Bad date format — must be exactly
YYYY-MM-DD(2026/09/20,2026年9月20日,Sep 20all fail). - Station name not found — typo, pinyin (
"qingdao"), or a vague nickname the code table doesn't contain. Fix: callsearch_stationwith a keyword and copy the exact name. - City-level name for a multi-station city — e.g.
"北京"usually resolves to 北京 station, but if you want a specific station pass"北京南"/"北京西"explicitly. - Date outside the 15-day pre-sale window — 12306 has not released those tickets yet.
Correct call examples:
A successful response returns 车次总数 plus a 车次 list (train number, departure/arrival station & time, duration, and remaining seats per class). An unrecognized station returns {"error": "出发站「…」无法识别,可用 search_station 工具查车站名"} — simply re-call with the exact name.
🧯 参数说明与常见错误(调用失败先看这里)
query_train_tickets(from_city, to_city, date="") 参数说明
返回 400 / 错误结果的常见原因:
- 日期格式错误:必须严格为
YYYY-MM-DD,2026/09/20、2026年9月20日、Sep 20等写法都会失败; - 站名不存在:错别字、拼音(如
"qingdao")、或码表中没有的俗称都会无法识别。解决方法:先用search_station关键词搜索,复制返回的准确站名; - 多车站城市用了城市通称:如
"北京"一般能匹配到「北京」站,但要去特定车站请明确传"北京南"、"北京西"等; - 日期超出 15 天预售期:12306 尚未放票,查询会返回失败提示。
正确调用示例:
调用成功会返回 车次总数 和 车次 列表(车次号、出发/到达站与时间、历时、各席别余票);站名无法识别时返回 {"error": "出发站「…」无法识别,可用 search_station 工具查车站名"},换成准确站名重试即可。
🇨🇳 中文使用说明
一句话:直接用中文站名查 12306 余票,数据来自 12306 官方公开查询接口,纯只读。
在线直连地址(免费、无需 Key、开箱即用):https://mcp.pianam.cn/train-mcp/mcp
在 MCP 客户端(Claude Desktop / Cursor / Cherry Studio / Cline 等)的配置里加入:
工具:
query_train_tickets(from_city, to_city, date):查余票。出发/到达站直接给中文城市或车站名(如「青岛」「北京南」),日期格式YYYY-MM-DD,留空默认明天;返回车次、出发到达时间、历时及商务座/一等座/二等座/软卧/硬卧/硬座/无座等余票。search_station(keyword):不确定城市有哪些车站时模糊搜索站名(如「北京」返回 北京/北京南/北京西/北京北 等)。- 仅查票,不能购票;12306 预售期通常 15 天。
服务特性:数据源全部为公开接口、无需注册/付费;服务端内存缓存、失败自动降级/切换备用通道;单 IP 限流 200 次/分钟。
本地部署:
Docker 自托管:
容器默认监听 0.0.0.0:8000(可用 -e MCP_PORT=端口 改),无需任何 API Key 或账号。
📄 License
MIT © 2026 boy-373
Install via Smithery
One-click install for Smithery-supported clients (Claude Desktop, Cursor, etc.):
Or run:
🔌 Use with Any AI Client — One-Click MCP Gateway
We host a free MCP aggregation gateway: your AI assistant (Cherry Studio, Claude Desktop, Cursor, Cline — any MCP client) discovers and uses MCP tools through a single URL:
Add it once, then talk in plain language — the AI automatically searches → inspects → calls the right MCP for you.
- 🔍 Search across 22,000+ indexed MCP servers (Chinese & English)
- ⚡ 50+ live hosted MCPs callable directly out of the box (weather, exchange rates, hot trends, IP geo, train tickets…)
- 📦 GitHub-based MCPs: search finds them with links to install locally
- ✅ Servers health-checked weekly — alive ones ranked first
- 🆓 Free to use, no key required
📖 3-step setup guide / 中文接入教程: https://mcp.pianam.cn/ai-gateway
来源:README.md,提交 aab857d
工具
0版本历史
1- v1.0.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式必需10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Pianam 集成

Weather Forecast MCP
cn.pianam.mcp官方发布者
远程 MCP 服务器,让助手查询全球城市的实时天气与最长 7 天预报,支持中文城市名并以中文输出。

Stock Mcp
cn.pianam.mcp官方发布者
一个远程 MCP 服务器,让助手查询中国 A 股实时个股行情和三大指数,并带双数据源自动降级。
MCP Aggregation Gateway — 22k+ MCP search & call
cn.pianam.mcp官方发布者
一个远程 MCP 网关,让助手搜索 2.2 万多个 MCP 服务器,并无需密钥调用 50 多个托管工具。

IP Location MCP
cn.pianam.mcp官方发布者
远程 MCP 服务器,用于查询 IPv4 归属地,返回国家、省/地区、城市、经纬度、时区、运营商和 ASN,并以中文输出。

China Hot Trending MCP
cn.pianam.mcp官方发布者
一个远程 MCP 服务器,一次调用即可获取微博、知乎、B站等八个中文平台的实时热搜与热榜。