Skip to main content
Glama
groundcobra009

yahoo-transit-mcp

yahoo-transit-mcp

CI License: MIT Node.js >=18

Yahoo!乗換案内非公式 MCP(Model Context Protocol)サーバーです。Claude Code / Claude Desktop などのMCPクライアントから、日本の電車の経路検索・終電・運行情報・駅時刻表を調べられるようになります。

Unofficial MCP server for Yahoo! Transit (transit.yahoo.co.jp), a Japanese transit directions service. Provides route search (incl. last/first train), realtime service disruption info, and station timetables as MCP tools. No authentication required. Japanese rail network only.

Claude Codeでの利用イメージ

できること

ツール

説明

search_route

経路検索。出発・到着時刻指定のほか、終電mode: last_train)・始発mode: first_train)に対応。時刻・所要時間・運賃・乗換回数・区間ごとの路線/番線/リアルタイム遅延情報を返す

get_train_status

運行情報(遅延・運転見合わせ)。8地方エリア別。路線名で絞り込むと平常運転かどうかも確認できる

search_station

駅名から駅コードを検索。候補が1件なら路線・方面一覧も返す

get_timetable

駅の発車時刻表。路線・方面・平日/土曜/日祝・時間帯で絞り込み

認証・APIキー・環境変数は一切不要です(ログイン不要の公開ページのみを利用するため)。

Related MCP server: ns-bridge

クイックスタート

Node.js 18以上が必要です。

Claude Code

プロジェクトの .mcp.json に追加します:

{
  "mcpServers": {
    "transit": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:groundcobra009/yahoo-transit-mcp"]
    }
  }
}

またはCLIで:

claude mcp add transit -- npx -y github:groundcobra009/yahoo-transit-mcp

Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "transit": {
      "command": "npx",
      "args": ["-y", "github:groundcobra009/yahoo-transit-mcp"]
    }
  }
}

クローンして使う場合

git clone https://github.com/groundcobra009/yahoo-transit-mcp.git
cd yahoo-transit-mcp
npm ci && npm run build
# → MCPクライアントには command: "node", args: ["/path/to/yahoo-transit-mcp/dist/index.js"] で登録

登録後、「明日の朝9時までに大阪駅に着きたい」「山手線は遅れてる?」「終電何時?」のように話しかけるだけで使えます。

出力例

search_route(from: "東京", to: "大阪") の実際の返り値(抜粋):

{
  "routes": [
    {
      "no": 1,
      "depart": "06:00",
      "arrive": "08:40",
      "duration": "2時間40分",
      "fare": "13,870円",
      "transfers": 1,
      "badges": ["早"],
      "legs": [
        {
          "from": "東京", "fromTime": "06:00",
          "line": "JR新幹線のぞみ1号", "destination": "博多行",
          "to": "新大阪", "toTime": "08:22",
          "platform": { "departure": "14番線", "arrival": "21番線" },
          "fare": "8,910円"
        },
        {
          "from": "新大阪", "fromTime": "08:36",
          "line": "JR直通快速107号",
          "to": "大阪", "toTime": "08:40",
          "platform": { "departure": "3番線" }
        }
      ]
    }
  ]
}

スモークテスト(npm run smoke)で4ツールすべてを実データ検証できます:

スモークテストの実行結果

動作原理

公式APIは存在しないため、このサーバーは公開ページに埋め込まれた構造化データを読み取ります。

アーキテクチャ

Yahoo!乗換案内はNext.jsで構築されており、サーバーサイドレンダリングされた各ページには、画面表示用の全データが <script id="__NEXT_DATA__"> タグ内のJSONとして同梱されています(Reactのハイドレーション用・Next.jsの標準動作)。このサーバーはブラウザと同じようにページをGETし、このJSONだけを抽出してパースします。

  • Yahooのバックエンドエンドポイントを直接叩きません(リバースエンジニアリング・トークン取得なし)

  • CSSセレクタに依存しないため、見た目のリニューアル程度では壊れません

  • ページ構造が大きく変わって解析できなくなった場合は、MarkupChangedError がツール結果として明示的に返ります(黙って誤った経路を返すことはありません)

ツールリファレンス

search_route — 経路検索

パラメータ

説明

from / to

string(必須)

出発・到着の駅名または地名

via

string[]

経由駅(最大3つ)

date / time

string

YYYY-MM-DD / HH:MM(省略時は現在日時)

mode

enum

departure(出発・既定)/ arrival(到着)/ first_train(始発)/ last_train(終電)

sort

enum

time(到着が早い・既定)/ fare(安い)/ transfers(乗換少ない)

ticket

enum

ic(既定)/ normal(きっぷ)

useShinkansen ほか

boolean

新幹線 / 有料特急 / 飛行機 / 高速バスの利用可否(既定: true)

駅名が曖昧な場合は候補リスト(didYouMean)を返します。

get_train_status — 運行情報

パラメータ

説明

area

enum

北海道 東北 関東(既定)中部 近畿 中国 四国 九州

line

string

路線名の部分一致フィルタ(例: 山手線)。異常がなければ平常運転と分かる

onlyTroubled

boolean

false で平常運転の路線名一覧も返す

search_station — 駅検索

パラメータ

説明

query

string(必須)

駅名(例: 新宿

get_timetable — 駅時刻表

パラメータ

説明

station

string(必須)

駅名または駅コード

line / direction

string

路線名・方面の部分一致。曖昧なら候補一覧がエラーとして返るので絞り込んで再実行

dayType

enum

weekday(既定)/ saturday / holiday

hourFrom / hourTo

number

返す時間帯(0〜27時台)

アクセスマナー(実装で強制)

相手サーバーに負荷をかけないため、以下をコードで強制しています:

  • 全リクエストの直列化1.5秒以上の間隔src/fetch.ts

  • URL単位の15分キャッシュ

  • 10秒タイムアウト・リトライは通信エラー時の1回のみ

対話的な利用を想定したツールです。ポーリング・一括クロール・大量取得には使わないでください。

開発

npm ci          # 依存インストール
npm run build   # TypeScriptビルド(dist/)
npm run lint    # 型チェック(tsc --noEmit)
npm run smoke   # 実サイトに対する動作確認(約6リクエスト・直列)
npx tsx scripts/try-route.ts 東京 大阪 2026-07-10 09:00 arrival  # 単発の経路検索

CIでは lint / build のみ実行します。smoke は実サイトへアクセスするため、リリース前の手動ゲートとしてローカルで実行してください。

免責事項

  • 本プロジェクトは個人による非公式ツールであり、LINEヤフー株式会社とは一切関係ありません(非公認・非提携)。「Yahoo!」「Yahoo!乗換案内」はサービスの識別のためにのみ言及しており、商標は各権利者に帰属します

  • 公開ウェブページの解析に基づくため、サイト側の変更により予告なく動作しなくなる可能性があります

  • 取得した情報の正確性は保証されません。実際の運行は公式情報を確認してください

  • 本ソフトウェアの利用は自己責任です。利用者は対象サービスの利用規約を自身で確認し、過度なアクセス・商用利用・取得データの再配布を行わないでください

ライセンス

MIT © keitaro (groundcobra009)

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/groundcobra009/yahoo-transit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server