SSilkroad MCPEN

公开源码

China Rail MCP

查询中国铁路车站、车次、票价和余票信息。

概要

面向行程规划的公共数据 MCP 服务器,不需要登录,不提供购票或绕过反爬的功能。

产品亮点

直观了解产品的实际体验与核心功能。点击图片可查看大图。

未接入 China Rail MCP 的 ChatGPT 建议用户前往 12306 核对
未接入 China Rail MCP 时,ChatGPT 无法可靠取得晚间完整车次和当前余票。 记录日期: 2026-09-03
接入 China Rail MCP 的 ChatGPT 列出车次、时刻、票价和余票
接入 China Rail MCP 后,同一问题可返回车次、时刻、参考票价和余票。 记录日期: 2026-09-03
12306 App 显示同一次广州南到长沙南查询
同一时刻使用 12306 App 核对代表性车次、时刻和起始票价,作为当次查询的参考。 记录日期: 2026-09-03

快速开始

你可以让编程 AI 安装并配置 China Rail MCP。根据电脑或手机使用方式选择下面的步骤,复制整段请求,并以一次真实 MCP 工具调用作为完成标准。

不熟悉命令行?交给 AI 完成

选择本地 stdio。AI 客户端会在同一台电脑上启动 China Rail MCP。

适合: 这是最简单、最安全的首次配置方式,不需要公网服务器、域名或密钥。

需要准备

  • 支持本地 stdio 的桌面 MCP 客户端
  • Git
  • Node.js 20 或更高版本
  • npm 10 或更高版本

可能的费用

China Rail MCP 本身免费;AI 客户端或模型提供商可能另外收费。

操作步骤

  1. 选择支持本地 stdio 的桌面客户端。千问 Code(Qwen Code)、TRAE 和 Claude Desktop 都是常见方案;安装前先看客户端指南。
  2. 把下面的 AI 配置请求完整复制给能够操作终端和文件的编程 AI。
  3. 安装缺失软件、重启应用或修改设置时,只在 AI 说明影响后再允许。
  4. 不要把“构建通过”当成完成;必须从已配置客户端实际调用 get_provider_status 并查询车次。

把下面整段请求复制给编程 AI

AI 应直接执行配置并验证结果,而不是只给你一份教程。

配置请求
请在这台电脑上安装并配置 China Rail MCP,直到我能在当前使用的 AI 客户端中实际查询中国铁路数据。项目地址:https://github.com/TakeruF/china-rail-mcp

请直接执行操作,不要只给教程。先识别操作系统、AI/MCP 客户端,以及 Git、Node.js、npm 是否可用。若目标客户端不明确,只问我这一个问题。阅读最新 README 和自托管指南。安装软件、使用管理员权限、重启图形界面应用或修改安全设置前,先说明影响并征得同意。

把仓库克隆到稳定位置,不要覆盖现有工作。运行 npm ci 和 npm run verify。取得 Node.js 和 dist/index.js 的绝对路径,按照当前客户端真实支持的格式添加名为 china-rail 的本地 stdio 服务器,并保留全部现有设置。本地模式不需要 .env、12306 账号、Cookie 或密钥,不要向我索取。

按需重新加载客户端。必须从已配置客户端调用 get_provider_status,用 search_stations 查询“上海虹桥”,再查询售票窗口内上海虹桥到杭州东的车次。区分“本地连接正常”和“12306 实时查询暂时失败”。最后只报告安装位置、修改的客户端配置、验证结果、真实 MCP 工具调用结果,以及一个之后可以直接询问的问题。不要提交或推送仓库改动。

想自己操作?

在终端依次运行这些命令,再把 dist/index.js 的绝对路径填入客户端的 stdio MCP 配置。

终端
git clone https://github.com/TakeruF/china-rail-mcp.git
cd china-rail-mcp
npm ci
npm run verify

满足以下条件才算完成

  • npm run verify 通过
  • 客户端能列出 China Rail MCP 或其六个工具
  • 能从客户端调用 get_provider_status
  • 能从客户端完成一次当前车站或车次查询

出现问题时

  • npm start 没有输出通常是正常的:stdio 服务器正在通过标准输入输出等待客户端。
  • 若客户端找不到 Node.js,请使用 command -v node 返回的绝对路径。
  • 若只有实时查询失败,MCP 连接仍可能正常;请分别检查 provider status 和当前 12306 可用性。

打开实现仓库 README 查看准确项目细节 

想在手机上使用?让 AI 部署私人服务器

选择私人远程部署。AI 客户端会通过 HTTPS 连接 China Rail MCP。

适合: 适合手机或多设备使用,但账号、托管、认证和费用条件更多。

需要准备

  • GitHub 和 Vercel 账号
  • 支持自定义远程 MCP 的 AI 客户端账号
  • 固定 HTTPS 部署
  • 私人认证和 OAuth

可能的费用

China Rail MCP 免费,但托管、模型用量或客户端所需套餐可能收费。

操作步骤

  1. 先查看客户端兼容性指南。并非所有普通聊天应用都能添加任意自定义 MCP。
  2. 把下面的远程配置请求完整复制给能够操作浏览器和终端的编程 AI。
  3. 账号登录、创建云项目、产生费用或进入 Production 前,先了解影响再确认。
  4. 分别验证部署、账号连接和手机工具调用,不能用前一项推断后一项。

把下面整段请求复制给编程 AI

AI 应直接执行配置并验证结果,而不是只给你一份教程。

配置请求
请把 China Rail MCP 部署为仅供我个人使用的远程服务,并一直完成到我能在手机上的 AI 客户端实际查询中国铁路数据。项目地址:https://github.com/TakeruF/china-rail-mcp

请直接执行操作,不要只给教程。阅读最新 README、自托管指南和当前客户端的官方远程 MCP 文档。确认我的 GitHub、Vercel 和 AI 客户端账号是否具备所需功能。产生费用、创建云项目、登录账号或进入 Production 前,先说明影响并征得同意。

安全克隆仓库,运行 npm ci 和 npm run verify,不要修改或推送源码。创建个人 Vercel 项目。生成唯一且强度足够的 MCP_HTTP_BEARER_TOKEN,只存为隐藏的 Production 环境变量。绝对不要把它显示在源码、.env、Git、聊天、截图、日志或最终报告中。

部署当前 main 到 Production,并使用固定 HTTPS 主机名。运行 npm run smoke:http -- https://实际主机/api,确认 health 和 OAuth 元数据返回 200,未认证的 /api/mcp 按预期返回带发现信息的 401;这个 401 表示认证已生效。

按照当前客户端真实支持的流程连接 https://实际主机/api/mcp 并完成 OAuth。先在网页或桌面端调用 get_provider_status 和 search_stations,再用同一账号在手机新对话中启用连接,查询售票窗口内上海虹桥到杭州东的车次。分别报告部署成功、账号连接成功和手机工具调用成功。不要通过公开服务器或移除认证来绕过限制。最后只报告项目名、不含密钥的 HTTPS MCP URL、部署和工具调用结果、可能收费的位置,以及撤销访问的方法。

远程配置必须达到什么结果

实现仓库提供准确的部署和 OAuth 细节。请逐项确认以下里程碑。

终端
npm ci
npm run verify
npm run smoke:http -- https://你的主机/api
在受支持的 AI 客户端中连接 https://你的主机/api/mcp

满足以下条件才算完成

  • Production 部署和未认证冒烟测试通过
  • OAuth 完成,网页或桌面客户端能调用工具
  • 同一账号能在手机上看到连接
  • 能从手机新对话实际调用工具

出现问题时

  • 若 /api/mcp 的未认证 401 带有发现信息,这是预期结果。
  • 部署成功不代表账号或手机应用一定支持自定义 MCP。
  • 手机端不可用时,检查客户端版本、账号套餐、地区、逐步开放状态和工作区策略;不要关闭认证。

打开实现仓库 README 查看准确项目细节 

请保持这些边界

  • China Rail MCP 只读,不登录、不购票、不处理验证码,也不绕过限制。
  • 本地模式绝不需要 12306 账号、用户 Cookie、API key 或 .env 文件。
  • 远程部署必须保持私有,不要把 bearer 密钥粘贴到聊天或提交到仓库。
  • 上游公开格式和可用性可能变化,重要出行信息请在 12306 官方渠道再次核对。

确认 AI 客户端是否支持

套餐、地区和支持的连接方式会变化。付费或部署前,请查看带核对日期的兼容性表。

查看 MCP 客户端兼容性表

查看源码 README 

技术状态

experimental

可用性

功能

读取: 是 · 写入: 否 · 需要确认: 否

主要 MCP 工具

  • get_provider_status
  • search_stations
  • search_trains
  • get_train_details
  • get_availability
  • compare_trains

认证

none (local stdio), OAuth 2.1 Authorization Code + PKCE (remote). No upstream 12306 account credentials are used. Each remote deployment is protected by its operator's private connection secret.

传输与服务集成

stdio, Streamable HTTP

官方 API: 否. unauthenticated public 12306 endpoints; no login or anti-bot bypass

安全性

Upstream formats and availability can change; no ticket purchase or booking is attempted.

破坏性操作: 无

架构

MCP server, public-data provider, OAuth-protected remote endpoint, fixture-backed tests. TypeScript.

限制

上游公开接口可能变更;本项目不购买或预订车票。