Yht Bilet Mcp Server について
TCDD APIを通じてトルコの高速列車のチケットを検索するTypeScript製MCPサーバーです。駅名を解決して路線と日付の空席を調べ、人数や車いす対応席も指定できます。
主な機能
- 01チケットの空席を確認
- 02駅名をIDに解決
- 03API用に日付を整形
- 04乗客数を指定
- 05車いす対応席を絞り込み
- 06発車前の列車のみ表示
活用シーン
- 012駅間のチケットを確認
- 02複数人分を指定日で検索
- 03車いす対応席を含めるか選択
MCP 対応
路線、日付、乗客数、車いす対応席の条件を受け取り、TCDD APIで空席を検索する`search_train_ticket`ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
YHT Bilet MCP サーバー
TCDD API を介してトルコの列車(YHT/高速列車)のチケットを検索する Model Context Protocol(MCP)サーバーです。
MCP TypeScript SDK を使用して構築されています。
✨ 特長
- 🚄 TCDD API からのリアルタイムのチケット空席状況
- 🗺️ 駅名から ID へのマッピング — 駅を自動的に特定
- 📅 スマートな日付形式 — API 用の日付形式に自動変換(前日の 21:00)
- 👥 乗客数の指定に対応 — 複数の乗客で検索可能
- ♿ 車椅子対応座席フィルター — 車椅子対応座席を含めるかどうかを選択可能
- ✅ Zod によるスキーマ検証
- 🎯 未来の列車のフィルタリング — 出発済みでない列車のみを表示
- 📦 オブジェクト指向アーキテクチャ — 明快で保守しやすく、テスト可能なコード
📋 目次
🚀 クイックスタート
# 1. Clone the repository
git clone https://github.com/yourusername/yht-bilet-mcp.git
cd yht-bilet-mcp
# 2. Install dependencies
npm install
# 3. Create environment file
cp .env.example .env
# 4. Add your TCDD authorization token to .env
# (See "Getting Authorization Token" section below)
# 5. Build the project
npm run build
# 6. Add to Claude Desktop config (see Configuration section)
📦 インストール
前提条件
- Node.js 18+
- npm または yarn
- Claude Desktop または MCP 対応クライアント
手順
1. 依存関係をインストールする
npm install
2. 環境変数を設定する
環境変数のサンプルファイルをコピーします。
cp .env.example .env
3. 認証トークンを取得する
- TCDD E-Ticket Website にアクセスします。
- ブラウザーの開発者ツール(F12)を開きます。
- Network タブを開きます。
- チケットを検索します。
train-availabilityリクエストを見つけます。- Request Headers から
Authorizationヘッダーの値をコピーします。 .envファイルに貼り付けます。
AUTH_TOKEN=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldU...
注: 認証トークンは一定時間が経過すると有効期限が切れます。認証エラーが発生した場合は、新しいトークンを取得してください。
4. プロジェクトをビルドする
npm run build
🎮 使い方
Claude Desktop への追加
MCP クライアントの設定にサーバーを追加します。
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yht-bilet": {
"command": "node",
"args": [
"/absolute/path/to/yht-bilet-mcp/build/index.js"
]
}
}
}
重要: 相対パスではなく、絶対パスを使用してください。
利用可能なツール
このサーバーは search_train_ticket ツールを 1 つ提供します。
パラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
from | string | はい | - | 出発駅名(例:「Ankara」) |
to | string | はい | - | 到着駅名(例:「Eskişehir」) |
date | string | はい | - | YYYY-MM-DD 形式の乗車日(例:「2025-12-25」) |
passengerCount | number | いいえ | 1 | 乗客数 |
includeWheelchairSeats | boolean | いいえ | true | 結果に車椅子対応座席を含めるかどうか |
使用例
Claude Desktop では、次のように依頼できます。
Are there any train tickets from Ankara to Eskişehir on December 25, 2025 for 2 passengers?
MCP クライアントは、これを次のように変換します。
{
"from": "Ankara",
"to": "Eskişehir",
"date": "2025-12-25",
"passengerCount": 2,
"includeWheelchairSeats": true
}
車椅子対応座席を除外する場合:
Find train tickets from Ankara to Eskişehir on December 25, 2025, but don't show wheelchair seats.
応答形式
サーバーは、次の内容を含む整形済みテキストを返します。
- ✅/✗ 成功/失敗を示すインジケーター
- 🚂 列車の営業名称
- ⏰ 出発時刻と到着時刻
- 💰 最低料金
- 📍 利用可能な客室クラスと座席数
応答例:
✓ Ankara - Eskişehir arası 27.12.2025 tarihi için 3 adet tren sefer bulundu.
🚂 YHT ESKİŞEHİR - ANKARA (11:30 - 12:54):
Minimum Fiyat: 390 TL
📍 Müsait Kabinler:
• BUSİNESS: 39 koltuk
• EKONOMİ: 86 koltuk
• TEKERLEKLİ SANDALYE: 2 koltuk
...
📝 ライセンス
MIT License — 詳細は LICENSE ファイルを参照してください。
トルコの鉄道コミュニティのために ❤️ を込めて作成
お困りですか?issue を作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。