mcpField
1
12306

12306

github.com/kirorabその他12642 回インストール34 週間前に更新
リポジトリ

12306 について

12306は、中国鉄道の時刻表と残席を調べるコマンドラインスキルです。旅行の経路を計画する人向けで、駅名検索や条件指定に加え、HTML、Markdown、JSONで結果を出力できます。

主な機能

  1. 01列車の時刻と残席の検索
  2. 02日付・列車種別・時刻での絞り込み
  3. 03座席種別と空席状況での絞り込み
  4. 04駅名の検索
  5. 05HTML・Markdown・JSONでの出力

活用シーン

  1. 01指定日の列車を探す
  2. 02時間帯と空席状況で列車を絞る
  3. 03都市内の正確な駅名を確認する
  4. 04乗り換え区間の駅情報を確認する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kirorab/12306-skill --skill 12306

インストール後、Claude Code で/12306を入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.gitignore
scripts/
query.mjs
stations.mjs

詳細

12306 列車照会

中国鉄道 12306 の列車時刻表と残りのチケットを照会します。

チケットの照会

node {baseDir}/scripts/query.mjs <from> <to> [options]
  • HTML モード(デフォルト):ファイルを書き込み、パスを標準出力に表示します
  • Markdown モード(-f md):表を標準出力に表示します
例
# All trains from Beijing to Shanghai (defaults to today)
node {baseDir}/scripts/query.mjs 北京 上海

# Markdown table output (to stdout, good for chat)
node {baseDir}/scripts/query.mjs 北京 上海 -t G -f md

# Morning departures, 2h max, with second class available
node {baseDir}/scripts/query.mjs 上海 杭州 -t G --depart 06:00-12:00 --max-duration 1h --seat ze

# Only bookable trains arriving before 6pm
node {baseDir}/scripts/query.mjs 深圳 长沙 --available --arrive -18:00

# Custom output path
node {baseDir}/scripts/query.mjs 广州 武汉 -o /tmp/tickets.html

# JSON output (to stdout)
node {baseDir}/scripts/query.mjs 广州 武汉 --json
オプション
  • -d, --date <YYYY-MM-DD>:乗車日(デフォルト:今日)
  • -t, --type <G|D|Z|T|K>:列車の種類で絞り込みます(組み合わせ可能。例:GD)
  • --depart <HH:MM-HH:MM>:出発時刻の範囲(例:08:00-12:00、18:00-)
  • --arrive <HH:MM-HH:MM>:到着時刻の範囲(例:-18:00、14:00-20:00)
  • --max-duration <duration>:最大乗車時間(例:2h、90m、1h30m)
  • --available:予約可能な列車のみを表示します
  • --seat <types>:指定した座席種別のチケットがある列車のみを表示します(カンマ区切り:swz,zy,ze,rw,dw,yw,yz,wz)
  • -f, --format <html|md>:出力形式 — html(デフォルト。ファイルに保存)または md(Markdown 表を標準出力に表示)
  • -o, --output <path>:出力ファイルのパス。HTML モードのみ(デフォルト:{baseDir}/data/<from>-<to>-<date>.html)
  • --json:生の JSON を標準出力に表示します
出力列
列意味
商务/特等ビジネスクラス/プレミアム(swz)
一等座1 等座席(zy)
二等座2 等座席(ze)
软卧/动卧軟臥/動臥(rw/dw)
硬卧硬臥(yw)
硬座硬座(yz)
无座立席(wz)

値:数値=残席数、有=空席あり(数量不明)、—=該当なし

駅の検索

node {baseDir}/scripts/stations.mjs 杭州
node {baseDir}/scripts/stations.mjs 香港西九龙

AI アシスタント向けの重要な注意事項

⚠️ 駅名の解決に関する警告

重要:都市名(例:「武汉」「上海」「深圳」「广州」で照会すると、API は主要駅だけでなく、その都市にある任意の駅を発着する列車を返す場合があります。

よくある落とし穴:

  • 武汉には以下が含まれます:武汉站(主要駅)、汉口站(漢口)、武昌站(武昌)、武汉东站
  • 上海には以下が含まれます:上海虹桥(虹橋)、上海站(主要駅)、上海南站、上海松江站
  • 深圳には以下が含まれます:深圳北站(主要駅)、深圳站(羅湖)、福田站、深圳东站
  • 广州には以下が含まれます:广州南站(主要駅)、广州站、广州东站、广州北站

推奨事項 — 必ず正確な駅名を確認してください:

  1. まず、stations.mjs を使って都市内のすべての駅を一覧表示します:
    node {baseDir}/scripts/stations.mjs 武汉
    
  2. 次に、正確な駅名を指定して照会し、結果の精度を高めます:
    node {baseDir}/scripts/query.mjs 武汉 上海虹桥 -f md
    
🔄 乗り換えのガイドライン

乗り換えを計画する場合:

  • JSON 出力(--json)を使って正確な駅名を確認します
  • 両区間で同じ駅を利用するようにします(例:どちらも武汉站を利用し、武汉→汉口のようにしない)
  • 同じ駅での乗り換え時間は、最低でも20~30 分を推奨します
  • 同じ都市内の異なる駅間の移動には、追加の移動時間が必要です(例:武汉→汉口は地下鉄で 30 分以上)
📋 照会ワークフローの推奨事項

正確な結果を得るには、次のワークフローに従ってください:

  1. 出発都市の駅を一覧表示します:

    node {baseDir}/scripts/stations.mjs 北京
    
  2. 到着都市の駅を一覧表示します:

    node {baseDir}/scripts/stations.mjs 上海
    
  3. 正確な駅名を指定して照会します(例:北京南 → 上海虹桥):

    node {baseDir}/scripts/query.mjs 北京南 上海虹桥 -d 2026-03-05 -f md
    
  4. 乗り換えの場合:JSON 出力の fromStation と toStation を確認し、両区間で同じ駅を利用していることを必ず確かめてください。

技術的な注意事項

  • データは 12306 の公式 API から直接取得されます(キーは不要です)
  • 駅データは {baseDir}/data/stations.json に 7 日間キャッシュされます
  • すべての列車種別に対応しています:G(高速鉄道)、D(動車)、Z(直達)、T(特快)、K(快速)

コメント