xby-12306-ticket-purchase-search:基於 MCP 的 12306 購票搜索插件

前言

在 DeepSeek Harness (DSH) 的開發中,構建能夠調用外部服務的智能體是常見需求。直接對接 12306 接口涉及複雜的鑑權流程和車站代碼映射,開發者通常需要自行編寫後端服務。xby-12306-ticket-purchase-search 插件基於 Model Context Protocol (MCP) 協議,將 12306 的購票信息檢索能力封裝爲標準的 DSH 工具。這使得大模型無需關心底層 API 細節,即可直接查詢餘票、中轉方案及列車經停信息。

插件定位

這是一個由 xby-skill 維護的聯網工具類插件,旨在解決大模型在處理具體購票信息檢索時的數據獲取問題。它提供了統一的接口,允許 DSH 中的 Agent 調用 12306 的相關數據服務。

核心功能

該插件主要提供以下功能模塊,用於處理購票相關的數據查詢:

  • 鑑權與基礎工具

    • set_xby_apikey:在聊天上下文中設置 API 密鑰,該密鑰會自動持久化,重啓後依然有效。
    • get_current_date:獲取當前日期,返回格式爲 “yyyy-MM-dd”,時區固定爲上海(Asia/Shanghai, UTC+8)。主要用於解析用戶提到的相對日期(如“明天”、“下週三”)。
  • 車站數據查詢

    • get_stations_code_in_city:通過中文城市名查詢該城市下所有火車站的名稱及其對應的 station_code。
    • get_station_code_of_citys:通過中文城市名查詢代表該城市的 station_code,常用於出發地或到達地的初步篩選。
    • get_station_code_by_names:通過具體的中文車站名查詢其 station_code 和車站名,適用於已知具體站名的場景。
    • get_station_by_telecode:通過車站的 station_telecode 查詢詳細信息(名稱、拼音、城市等)。此接口主要用於調試或已知 telecode 的特殊查詢場景。
  • 購票信息查詢

    • get_tickets:查詢 12306 餘票信息。
    • get_interline_tickets:查詢 12306 中轉餘票信息。
    • get_train_route_stations:查詢特定列車車次在指定區間內的詳細經停信息,包括途徑車站、到站/出發時間及停留時間。

安裝與啓用

通過 DSH 的命令行工具安裝該插件,推薦使用方式一。

# 方式一:從 GitHub 直接安裝(推薦)
dsh plugin --profile web add github:xby_skill/xby-12306-ticket-purchase-search
# 方式二:從本地目錄安裝(僅用於本地開發調試)
dsh plugin --profile web add /absolute/path/to/xby-12306-ticket-purchase-search
# 方式三:通過 cordis.patch.yml 開發調試
dsh web --profile web --patch /absolute/path/to/dsh-ocr-plugin/cordis.patch.yml

配置與使用

使用該插件前,需獲取 API 密鑰。

  1. 獲取密鑰:訪問 小笨羊官網 註冊並獲取 API 密鑰。
  2. 設置密鑰:在 DSH 的對話中調用 set_xby_apikey 工具,將獲取到的密鑰傳入。
  3. 查詢流程:通常流程爲先使用 get_station_code_of_citys 或 get_station_code_by_names 獲取出發地和目的地的 station_code,再調用 get_tickets 進行餘票查詢。

注意事項

  • 密鑰獲取:獲取 API 密鑰需前往小笨羊官網註冊,這是調用查詢功能的前提。
  • 中轉票限制:get_interline_tickets 接口尚且只支持查詢前十條結果。
  • 開發模式:方式二和方式三僅用於本地開發調試,生產環境建議使用方式一安裝。
  • 權限與合規:插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證(MIT)。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜