@physictim/mcp-server-thsrc
v0.2.5
Published
🚄 MCP Server for Taiwan High Speed Rail - Real-time train schedules, station info, and seat availability. Cross-platform support with automatic Python detection. 台灣高鐵即時資訊查詢服務,支援 Windows/macOS/Linux,提供時刻表、班次狀態、座位查詢等功能。
Maintainers
Readme
MCP Server THSRC - 台灣高鐵資訊查詢服務
這是一個基於 Model Context Protocol (MCP) 的台灣高鐵資料查詢服務器,提供即時的高鐵時刻表、車站資訊、班次狀態和座位查詢功能。
功能特色
- 🚄 完整的高鐵資料查詢:時刻表、即時班次、座位狀態
- 🌐 多語言支援:支援中文站名、英文站名及ID查詢
- 🔄 即時資料:整合 TDX (運輸資料流通服務) API
- 📱 MCP 標準:相容所有支援 MCP 的應用程式
安裝方式
🚀 快速開始(推薦)
適用所有平台(Windows/macOS/Linux)
直接使用 npx,無需複雜安裝步驟:
npx @physictim/mcp-server-thsrc --help📋 系統需求
- Node.js 14.0+
- Python 3.8+
- TDX API 金鑰(免費申請)
Windows 完整安裝指南
步驟 1:安裝 Node.js
- 前往 nodejs.org 下載 LTS 版本
- 執行安裝程式,確保勾選 "Add to PATH"
- 重新開啟命令提示字元,驗證安裝:
node --version npm --version
步驟 2:安裝 Python
選項 A:從官網安裝(推薦)
- 前往 python.org 下載最新版本
- 執行安裝程式,重要:勾選 "Add Python to PATH"
- 驗證安裝:
py --version python --version
選項 B:使用 Microsoft Store
- 開啟 Microsoft Store
- 搜尋 "Python" 並安裝
- 驗證安裝:
python --version
選項 C:使用 winget
winget install Python.Python.3.12步驟 3:取得 TDX API 金鑰
- 前往 TDX運輸資料流通服務平臺
- 註冊帳號並登入
- 前往「會員中心」→「應用服務」→「API金鑰管理」
- 取得:
- Client ID
- Client Secret
步驟 4:設定 Claude Desktop
找到設定檔位置:
Windows: %APPDATA%\Claude\claude_desktop_config.json編輯設定檔(如果檔案不存在,請建立):
{ "mcpServers": { "thsrc": { "command": "npx", "args": ["-y", "@physictim/mcp-server-thsrc@latest"], "env": { "TDX_CLIENT_ID": "在這裡貼上你的 Client ID", "TDX_CLIENT_SECRET": "在這裡貼上你的 Client Secret" } } } }重啟 Claude Desktop
步驟 5:驗證安裝
在 Claude Desktop 中輸入:
請查詢台灣高鐵車站列表如果看到車站資訊,表示安裝成功!
替代安裝方法
方法 2:使用 pipx(進階用戶)
# 安裝 pipx
python -m pip install --user pipx
python -m pipx ensurepath
# 從 GitHub 安裝
pipx install git+https://github.com/physictim/thsrc_mcp.git方法 3:手動安裝
# 複製專案
git clone https://github.com/physictim/thsrc_mcp.git
cd thsrc_mcp
# 建立虛擬環境
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 安裝依賴
pip install -r requirements.txt整合到 Claude Desktop
1. 取得 TDX API 金鑰
前往 TDX運輸資料流通服務平臺 註冊並取得:
- Client ID
- Client Secret
2. 配置 Claude Desktop
找到 Claude Desktop 的設定檔:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json3. 編輯設定檔
在 claude_desktop_config.json 中加入以下設定:
如果你使用 npx(推薦):
Windows/macOS/Linux 通用:
{
"mcpServers": {
"thsrc": {
"command": "npx",
"args": ["-y", "@physictim/mcp-server-thsrc"],
"env": {
"TDX_CLIENT_ID": "在這裡貼上你的 Client ID",
"TDX_CLIENT_SECRET": "在這裡貼上你的 Client Secret"
}
}
}
}如果你使用 pipx 安裝:
{
"mcpServers": {
"thsrc-mcp": {
"command": "mcp-server-thsrc",
"env": {
"TDX_CLIENT_ID": "在這裡貼上你的 Client ID",
"TDX_CLIENT_SECRET": "在這裡貼上你的 Client Secret"
}
}
}
}如果你手動安裝:
{
"mcpServers": {
"thsrc-mcp": {
"command": "/path/to/your/python3",
"args": ["/path/to/your/thsrc.py"],
"env": {
"TDX_CLIENT_ID": "在這裡貼上你的 Client ID",
"TDX_CLIENT_SECRET": "在這裡貼上你的 Client Secret"
}
}
}
}4. 重啟 Claude Desktop
重新啟動 Claude Desktop,MCP 服務器將會自動載入。
5. 驗證連線
在 Claude Desktop 中輸入:
請幫我查詢台灣高鐵車站列表如果設定成功,Claude 將會使用 MCP 工具查詢並返回高鐵車站資訊。
使用範例
設定完成後,您可以在 Claude Desktop 中直接使用自然語言查詢:
- "查詢明天台北到左營的高鐵班次"
- "台中車站現在有哪些班次?"
- "823車次明天的詳細資訊"
- "台北到高雄還有座位嗎?"
Claude 會自動調用相應的 MCP 工具來取得即時資料。
可用工具
1. 車站列表查詢
get_thsr_stations()取得所有台灣高鐵車站資訊。
2. 時刻表查詢
get_thsr_timetable("台北", "左營", "2024-01-01")查詢指定路線和日期的班次時刻表。
參數說明:
origin_station: 起站(支援中文站名如"台北"或站點ID如"1000")destination_station: 迄站(支援中文站名如"左營"或站點ID如"1070")travel_date: 乘車日期(YYYY-MM-DD格式)
3. 即時班次查詢
get_thsr_live_schedule("台北")取得指定車站的即時班次狀態。
參數說明:
station: 車站名稱或ID
4. 特定班次資訊
get_thsr_train_info("823", "2024-01-01")查詢特定車次的詳細資訊。
參數說明:
train_no: 車次號碼travel_date: 乘車日期(YYYY-MM-DD格式)
5. 剩餘座位查詢
get_thsr_available_seats("台北", "左營", "2024-01-01")查詢指定路線的剩餘座位狀態。
參數說明:
origin_station: 起站destination_station: 迄站travel_date: 乘車日期
更新頻率:
- 當日查詢:每10分鐘更新
- 其他日期:每日10:00、16:00、22:00更新
支援車站
| 中文站名 | 英文站名 | 站點ID | |---------|---------|--------| | 南港 | Nangang | 0990 | | 台北 | Taipei | 1000 | | 板橋 | Banqiao | 1010 | | 桃園 | Taoyuan | 1020 | | 新竹 | Hsinchu | 1030 | | 苗栗 | Miaoli | 1035 | | 台中 | Taichung | 1040 | | 彰化 | Changhua | 1043 | | 雲林 | Yunlin | 1047 | | 嘉義 | Chiayi | 1050 | | 台南 | Tainan | 1060 | | 左營 | Zuoying | 1070 |
資源
thsr://stations
提供車站資訊的 MCP 資源,可在支援 MCP 的應用程式中直接存取。
使用範例
查詢台北到左營的班次
# 使用中文站名
result = await get_thsr_timetable("台北", "左營", "2024-01-01")
# 使用英文站名
result = await get_thsr_timetable("Taipei", "Zuoying", "2024-01-01")
# 使用站點ID
result = await get_thsr_timetable("1000", "1070", "2024-01-01")查詢台北車站即時班次
result = await get_thsr_live_schedule("台北")查詢座位狀態
result = await get_thsr_available_seats("台北", "左營", "2024-01-01")注意事項
- API 限制:請遵守 TDX API 的使用限制
- 認證:確保正確設定 TDX API 金鑰
- 日期格式:日期必須使用 YYYY-MM-DD 格式
- 站名輸入:支援中英文站名,大小寫敏感
錯誤處理
- 無效站名:會拋出
ValueError錯誤 - API 認證失敗:請檢查環境變數設定
- 網路連線問題:請確認網路連線狀態
🛠️ 故障排除
Windows 常見問題
問題 1:找不到 Python
症狀:
錯誤:找不到 Python 3.8+ 版本解決方案:
重新安裝 Python:
# 檢查當前 Python 版本 py --version python --version # 如果沒有輸出,需要安裝 Python winget install Python.Python.3.12手動指定 Python 路徑: 在 Claude Desktop 設定中加入
PYTHON_PATH:{ "mcpServers": { "thsrc": { "command": "npx", "args": ["-y", "@physictim/mcp-server-thsrc@latest"], "env": { "PYTHON_PATH": "C:\\Python313\\python.exe", "TDX_CLIENT_ID": "你的 Client ID", "TDX_CLIENT_SECRET": "你的 Client Secret" } } } }常見 Python 路徑:
C:\Python313\python.exeC:\Users\[使用者名稱]\anaconda3\python.exeC:\Users\[使用者名稱]\AppData\Local\Programs\Python\Python313\python.exe
清除 npm 緩存:
npm cache clean --force
問題 2:權限錯誤
症狀:
安裝依賴失敗
permission denied解決方案:
以管理員身份執行:
- 右鍵點擊「命令提示字元」
- 選擇「以系統管理員身分執行」
使用用戶安裝:
py -m pip install --user httpx fastmcp python-dotenv
問題 3:編碼問題
症狀:
UnicodeDecodeError
字元編碼錯誤解決方案:
設定環境變數:
set PYTHONIOENCODING=utf-8在 Claude Desktop 設定中加入:
{ "mcpServers": { "thsrc": { "command": "npx", "args": ["-y", "@physictim/mcp-server-thsrc@latest"], "env": { "PYTHONIOENCODING": "utf-8", "TDX_CLIENT_ID": "你的 Client ID", "TDX_CLIENT_SECRET": "你的 Client Secret" } } } }
問題 4:防毒軟體阻擋
症狀:安裝或執行時被防毒軟體阻擋
解決方案:
- 暫時停用即時保護
- 將 Python 和 Node.js 加入白名單
- 將專案資料夾加入排除清單
macOS/Linux 常見問題
Python 版本管理
如果系統有多個 Python 版本:
# 使用 pyenv 管理版本
pyenv install 3.12.0
pyenv global 3.12.0
# 或直接指定路径
export PYTHON_PATH=/usr/local/bin/python3.12權限問題
# 使用用戶安裝
python3 -m pip install --user httpx fastmcp python-dotenv
# 或使用 homebrew Python
/opt/homebrew/bin/python3 -m pip install httpx fastmcp python-dotenv調試模式
如果仍有問題,可以啟用調試模式:
{
"mcpServers": {
"thsrc": {
"command": "npx",
"args": ["-y", "@physictim/mcp-server-thsrc@latest"],
"env": {
"DEBUG_PYTHON_DETECTION": "1",
"TDX_CLIENT_ID": "你的 Client ID",
"TDX_CLIENT_SECRET": "你的 Client Secret"
}
}
}
}這會在 Claude Desktop 的日誌中顯示詳細的 Python 偵測過程。
授權
本專案使用 MIT 授權條款。
