mcpField
C
China 12306 Train Tickets MCP

China 12306 Train Tickets MCP

リモート
github.com/boy-373地図・旅行07 週間前に更新
リポジトリ

China 12306 Train Tickets MCP について

China 12306 Train Tickets MCPは、中国鉄道の列車時刻と残席を駅・日付で調べる読み取り専用サーバーです。ホスト型エンドポイントを利用でき、セルフホストにも対応します。

主な機能

  1. 01列車時刻と座席の空席照会
  2. 02駅名のあいまい検索
  3. 03中国語の都市名・駅名で検索
  4. 04認証不要のホスト型エンドポイント
  5. 05PythonとDockerでのセルフホスト

活用シーン

  1. 01中国の駅間の列車を調べる
  2. 02発車時刻と座席クラスの空席を比較する
  3. 03検索に使う正確な駅名を探す

MCP 対応

Streamable HTTPを通じて、空席照会と駅検索のツールをMCPクライアントに提供します。公開エンドポイントは認証不要で、セルフホストも可能です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.pianam.cn/train-mcp/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

中国 12306 列車チケット MCP

ライセンス:MIT MCP リモート

任意の MCP クライアントから、中国鉄道 12306 のチケット空席状況を検索できます。中国語の駅名と日付を指定して、列車の時刻表と残席を確認できます。読み取り専用で、予約やアカウントは不要です。

  • 30 秒で試す:無料の公開 MCP エンドポイントがすでに稼働しています。URL を MCP クライアントに貼り付けるだけです(インストール不要、API キー不要)。
  • またはセルフホスト:Python ファイル 1 つで動作し、標準ライブラリの HTTP と FastMCP を使用するため、有料の依存関係はありません。

⚡ ホスト済みエンドポイントを使用する(セットアップ不要)

https://mcp.pianam.cn/train-mcp/mcp

トランスポート:Streamable HTTP(MCP 2025-03-26 互換)。認証は不要です。

🔌 クライアントの設定

クライアントの mcpServers 設定(Claude Desktop の claude_desktop_config.json、Cursor の mcp.json、Cline、Cherry Studio など)に、次の内容を追加します。

{
  "mcpServers": {
    "12306-train": {
      "type": "http",
      "url": "https://mcp.pianam.cn/train-mcp/mcp"
    }
  }
}

"type": "http" を受け付けないクライアント(Cherry Studio の一部のバージョンや古い Cline など)では、同じ項目の "url" だけを指定してください。

🧰 ツール

ツールパラメーター戻り値
query_train_tickets(from_city, to_city, date="")from_city / to_city:"青岛"、"北京南" などの中国語の都市名または駅名。
date:YYYY-MM-DD。空の場合は明日が指定されます。12306 の予約可能期間は通常 15 日です。
列車番号、出発駅・到着駅と時刻、所要時間、座席クラスごとの残席(ビジネスクラス/一等席/二等席、軟臥/硬臥、硬座、無座)を含む列車一覧。
search_station(keyword)keyword:例 "北京"。駅名をあいまい検索します(最大 30 件を返します:北京、北京南、北京西、北京北など)。利用する駅がわからない場合に便利です。

📡 データソース、キャッシュ、制限

  • データは12306 独自の公開クエリエンドポイント(kyfw.12306.cn/otn/leftTicket/...)から取得します。読み取り専用のクエリのみで、このサーバーではチケットを予約できません。公式の 12306 アプリ/ウェブサイトから購入してください。
  • 駅コード表はローカルに 7 日間キャッシュされ、チケットのクエリは 300 秒間キャッシュされます。
  • API キーもログインも不要です。
  • ホスト済みエンドポイントには、IP あたり毎分 200 リクエストのレート制限があります。

🐢 セルフホスト

git clone https://github.com/boy-373/12306-train-mcp.git
cd 12306-train-mcp
pip install -r requirements.txt
python train_mcp_server.py
# the server listens on 127.0.0.1:8003 by default; override with:
#   MCP_HOST=0.0.0.0 MCP_PORT=9000 python train_mcp_server.py
#   MCP_ALLOWED_HOSTS="your-domain.com,127.0.0.1:*"
#   MCP_ALLOWED_ORIGINS="https://your-domain.com"

MCP クライアントの接続先を http://127.0.0.1:8003/mcp に設定します。 API キーやアカウントは不要です。

🐳 Docker でセルフホスト

オプション A — ビルド済みイメージを取得する(最速、ビルド不要):

docker run -d -p 8000:8000 --name 12306-train-mcp ghcr.io/boy-373/12306-train-mcp:latest

オプション B — ソースからビルドする:

git clone https://github.com/boy-373/12306-train-mcp.git
cd 12306-train-mcp
docker build -t 12306-train-mcp .
docker run -d -p 8000:8000 --name 12306-train-mcp 12306-train-mcp

MCP クライアントの接続先を http://127.0.0.1:8000/mcp に設定します。 コンテナーはデフォルトで 0.0.0.0:8000 をリッスンします(-e MCP_PORT=9000 で変更し、それに応じて -p も調整してください)。API キーやアカウントは不要です。

  • train_stations.json — 同梱の 12306 駅名 → 電信コード表(12306 から 7 日ごとに自動更新)。

🗂️ ファイル

  • train_mcp_server.py — MCP サーバー(FastMCP、Streamable HTTP トランスポート)。
  • rate_limit.py — 軽量な IP ごとのスライディングウィンドウ方式レート制限ミドルウェア(デフォルトは毎分 200 リクエスト)。
  • requirements.txt — mcp、uvicorn、starlette。
  • server.json — 公式 MCP Registry マニフェスト(リモートサーバーのエントリー。mcp-publisher で公開できる状態です)。
  • smithery.yaml / glama.json — ディレクトリー掲載用のメタデータ。

🧯 パラメーターガイドとよくあるエラー(呼び出しに失敗した場合はこちらをご覧ください)

query_train_tickets(from_city, to_city, date="")

パラメーター指定する値備考
from_city / to_city中国語の駅名または都市名。例:"青岛"、"北京"、"上海虹桥"都市に主要駅が1つしかない場合は都市名で指定できます。複数の駅がある都市では、正確な駅名を指定してください。不明な場合は、まず search_station("北京") を呼び出してください。北京/北京南/北京西/北京北…が返されます。
dateYYYY-MM-DD 形式。例:"2026-09-20"省略可能です。空の場合は明日がデフォルトになります。12306の発売前期間は15日間です(それより先の日付では、エラーまたは結果なしになります)。

HTTP 400エラーまたはエラー結果が返される理由:

  1. 日付形式が正しくない — 厳密に YYYY-MM-DD 形式で指定する必要があります(2026/09/20、2026年9月20日、Sep 20 はすべて失敗します)。
  2. 駅名が見つからない — 入力ミス、ピンイン("qingdao")、またはコード表にない曖昧な通称が原因です。解決方法:キーワードを指定して search_station を呼び出し、返された正確な駅名をコピーしてください。
  3. 複数の駅がある都市で都市名を指定している — 例:"北京" は通常「北京」駅に解決されますが、特定の駅を利用する場合は "北京南" / "北京西" を明示的に指定してください。
  4. 日付が15日間の発売前期間を過ぎている — 12306では、該当する乗車券はまだ発売されていません。

正しい呼び出し例:

query_train_tickets(from_city="青岛", to_city="北京", date="2026-09-20")
query_train_tickets(from_city="北京南", to_city="上海虹桥")        # date omitted -> tomorrow
search_station(keyword="上海")                                   # -> 上海/上海南/上海虹桥/上海西…

成功すると、车次总数 と 车次 のリスト(列車番号、出発駅/到着駅と時刻、所要時間、座席クラスごとの残席数)が返されます。認識されない駅名を指定した場合は、{"error": "出发站「…」无法识别,可用 search_station 工具查车站名"} が返されます。正確な駅名に置き換えて再度呼び出してください。


🧯 パラメーターの説明とよくあるエラー(呼び出しに失敗した場合はこちらをご覧ください)

query_train_tickets(from_city, to_city, date="") のパラメーター説明

パラメーター指定する値注意事項
from_city / to_city中国語の駅名または都市名。例:"青岛"、"北京"、"上海虹桥"都市に主要駅が1つしかない場合は都市名で指定できます。複数の駅がある都市では、具体的な駅名を指定することをおすすめします。不明な場合は、まず search_station("北京") を呼び出してください。北京/北京南/北京西/北京北などの正確な駅名が返されます。
dateYYYY-MM-DD 形式。例:"2026-09-20"空欄にできます。空欄の場合は明日がデフォルトです。12306の発売前期間は通常15日間で、期間を過ぎた日付を指定すると、検索に失敗するか結果が返されません。

400エラーまたはエラー結果が返されるよくある原因:

  1. 日付形式の誤り:厳密に YYYY-MM-DD 形式で指定する必要があります。2026/09/20、2026年9月20日、Sep 20 などの形式では失敗します。
  2. 駅名が存在しない:入力ミス、ピンイン(例:"qingdao")、またはコード表にない通称は認識されません。解決方法:まず search_station でキーワード検索し、返された正確な駅名をコピーしてください。
  3. 複数の駅がある都市で一般的な都市名を指定している:例:"北京" は通常「北京」駅に一致します。特定の駅を利用する場合は、"北京南"、"北京西" などを明示的に指定してください。
  4. 日付が15日間の発売前期間を過ぎている:12306では、該当する乗車券はまだ発売されていないため、検索に失敗したことを示すメッセージが返されます。

正しい呼び出し例:

query_train_tickets(from_city="青岛", to_city="北京", date="2026-09-20")
query_train_tickets(from_city="北京南", to_city="上海虹桥")        # date 留空 -> 默认明天
search_station(keyword="上海")                                   # 返回 上海/上海南/上海虹桥/上海西…

呼び出しに成功すると、车次总数 と 车次 のリスト(列車番号、出発駅/到着駅と時刻、所要時間、座席クラスごとの残席数)が返されます。駅名が認識されない場合は、{"error": "出发站「…」无法识别,可用 search_station 工具查车站名"} が返されます。正確な駅名に置き換えて再試行してください。

🇨🇳 中国語での使用方法

ひとことで言うと:中国語の駅名を入力するだけで、12306の空席を検索できます。データは12306の公式公開検索インターフェースから取得しており、読み取り専用です。

オンライン直結 URL(無料、キー不要、すぐに使えます):https://mcp.pianam.cn/train-mcp/mcp

MCP クライアント(Claude Desktop / Cursor / Cherry Studio / Cline など)の設定に追加してください。

{
  "mcpServers": {
    "12306-train": {
      "type": "http",
      "url": "https://mcp.pianam.cn/train-mcp/mcp"
    }
  }
}

ツール:

  • query_train_tickets(from_city, to_city, date):空席を検索します。出発駅/到着駅には中国語の都市名または駅名(「青岛」「北京南」など)を指定します。日付は YYYY-MM-DD 形式で、空欄の場合は明日がデフォルトです。列車番号、出発時刻と到着時刻、所要時間、および商务座/一等座/二等座/软卧/硬卧/硬座/无座などの残席数が返されます。
  • search_station(keyword):都市にどのような駅があるか不明な場合に、駅名をあいまい検索します(例:「北京」では北京/北京南/北京西/北京北などが返されます)。
  • 空席検索のみ対応しており、乗車券の購入はできません。12306の発売前期間は通常15日間です。

サービスの特長:すべて公開インターフェースからデータを取得し、登録や支払いは不要です。サーバー側でメモリーキャッシュを使用し、失敗時は自動でフォールバック/予備経路に切り替えます。1つの IP アドレスにつき、1分間に200回まで利用できます。

ローカルでのデプロイ:

git clone https://github.com/boy-373/12306-train-mcp.git
cd 12306-train-mcp
pip install -r requirements.txt
python train_mcp_server.py
# 默认监听 127.0.0.1:8003,可用环境变量 MCP_HOST / MCP_PORT / MCP_ALLOWED_HOSTS / MCP_ALLOWED_ORIGINS 覆盖

Docker によるセルフホスト:

# 方式一:直接拉预构建镜像(最快,无需构建)
docker run -d -p 8000:8000 --name 12306-train-mcp ghcr.io/boy-373/12306-train-mcp:latest

# 方式二:从源码构建
git clone https://github.com/boy-373/12306-train-mcp.git && cd 12306-train-mcp
docker build -t 12306-train-mcp .
docker run -d -p 8000:8000 --name 12306-train-mcp 12306-train-mcp
# MCP 地址填:http://127.0.0.1:8000/mcp

コンテナーはデフォルトで 0.0.0.0:8000 をリッスンします(-e MCP_PORT=端口 で変更できます)。API キーやアカウントは不要です。

📄 ライセンス

MIT © 2026 boy-373

12306-train-mcp MCP サーバー

Smithery 経由でインストール

Smithery に対応したクライアント(Claude Desktop、Cursor など)にワンクリックでインストールできます。

Smithery

または、次のコマンドを実行してください。

npx -y @smithery/cli install 1561852680/12306-train-mcp --client claude

🔌 あらゆる AI クライアントで使える — ワンクリック MCP ゲートウェイ

無料のMCP 集約ゲートウェイをホストしています。AI アシスタント(Cherry Studio、Claude Desktop、Cursor、Cline など、あらゆる MCP クライアント)は、単一の URL を通じて MCP ツールを検出し、使用できます。

https://mcp.pianam.cn/ai/mcp

一度追加するだけで、自然な言葉で話しかければ、AI が適切な MCP を自動で検索 → 詳細確認 → 呼び出しします。

  • 🔍 インデックス登録された 22,000 以上の MCP サーバー(中国語・英語)を横断検索
  • ⚡ 50 以上の稼働中ホスト型 MCPをすぐに直接呼び出せます(天気、為替レート、話題のトレンド、IP ジオロケーション、列車のチケットなど)
  • 📦 GitHub ベースの MCP:検索結果からローカルにインストールするためのリンクを確認できます
  • ✅ サーバーの稼働状況を毎週チェックし、稼働中のものを上位に表示します
  • 🆓 無料で利用でき、キーは不要です

📖 3 ステップのセットアップガイド / 中国語の接続チュートリアル:https://mcp.pianam.cn/ai-gateway

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。