dSPACE MCP Hub:
AI 代理驅動的工程工作流程完整指南
深入解析 dSPACE MCP Hub 的安裝配置、四大 MCP Server(ControlDesk、VEOS、ConfigurationDesk & Bus Manager、SystemDesk)的全部工具能力,以及在控制器開發與 HIL/SIL 測試上的實務應用場景。
dSPACE MCP Hub 是 dSPACE 官方推出的 Model Context Protocol(MCP)Server 統一集合,透過開放的 MCP 標準協定,將 GitHub Copilot、Claude、ChatGPT 等 AI 助理直接連接至 dSPACE 工具鏈。它解決了車用軟體開發中「工具鏈碎片化」的痛點——讓 AI 代理能夠橫跨需求(Requirements)、架構(Architectures)、軟體開發(Software Development)、模擬(Simulation)與驗證(Validation)等多個工程階段,自主發起並執行完整的工作流程,同時保持工程師在迴路中(Engineer-in-the-Loop)的審查與核准機制。
1. dSPACE MCP Hub 架構總覽
dSPACE MCP Hub 目前包含四個核心 MCP Server,全部以 Apache License 2.0 開源授權發佈於 GitHub(dspace-group 組織),各自透過 COM 自動化介面或 CLI 控制對應的 dSPACE 工具:
| MCP Server | 對應工具 | 核心用途 | 工具數量 | 整合方式 |
|---|---|---|---|---|
| ControlDesk MCP | ControlDesk 2025-A 以上 | 實驗管理、量測記錄、線上校調、匯流排監控、ECU 診斷 | 93 個工具 (14 個功能域) |
COM 自動化 |
| VEOS MCP | VEOS(PC-based 模擬) | 以自然語言控制模擬器、載入 OSA、訊號連接、日誌分析 | 10 個工具 | VEOS CLI |
| ConfigurationDesk & Bus Manager MCP | ConfigurationDesk / Bus Manager | 即時應用配置、硬體 I/O、匯流排通訊、建置自動化 | 77 個工具、11 個資源、15 個提示 | COM 自動化 |
| SystemDesk MCP | SystemDesk | AUTOSAR 架構匯入與驗證、專案生命週期管理 | 7 個工具 | COM 自動化 |
運作原理:每個 MCP Server 都以 STDIO(標準輸入輸出)模式作為本機子行程執行,並非網路伺服器,也不支援多使用者。AI 助理(MCP Client)透過 JSON-RPC 呼叫 Server 提供的工具(Tools),Server 再透過 COM 介面或 CLI 操作實際的 dSPACE 軟體。所有動作皆可由工程師逐一審查核准,確保「Engineers-in-the-Loop」的安全工作模式。
2. 安裝前準備(共同先決條件)
四個 MCP Server 的安裝流程高度一致,開始前請確認以下環境需求:
| 需求項目 | 說明 |
|---|---|
| 作業系統 | 64 位元 Windows 10 / 11(COM 自動化限制;VEOS MCP 的開發者模式亦支援 Linux) |
| dSPACE 產品 | 本機已安裝且具有效授權的對應 dSPACE 工具(ControlDesk / VEOS / ConfigurationDesk / SystemDesk),並已註冊 COM 自動化 |
| uv 套件管理器 | Astral 出品的 Python 套件與專案管理工具,用於建立隔離的執行環境(從原始碼安裝時必要) |
| Python | 64 位元 Python(ControlDesk MCP 需 3.11+、VEOS MCP 需 3.12+、SystemDesk MCP 需 3.10+;使用預編譯執行檔則免安裝) |
| MCP 相容 AI 客戶端 | VS Code + GitHub Copilot、Claude Desktop、Claude Code、Cursor 或其他相容 MCP 的 AI 代理 |
安裝 uv 套件管理器(PowerShell):
# 於 PowerShell 中執行官方安裝指令 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # 驗證安裝 uv --version
3. 通用安裝流程(五步驟)
dSPACE MCP Hub 官方定義的標準安裝流程如下,適用於全部四個 Server:
安裝 uv 工具
依照 Astral 官方文件安裝 uv,它會自動處理 Python 版本與相依套件的隔離環境。
Clone 對應儲存庫
從 GitHub dspace-group 組織 clone 所需的 MCP Server 儲存庫至本機資料夾。
執行 uv sync
在儲存庫根目錄執行 uv sync 安裝所有相依套件並建立虛擬環境。
註冊 .cmd 啟動器
將儲存庫內的 .cmd 啟動檔(或預編譯 .exe)註冊到 MCP Host 的設定檔(如 .vscode/mcp.json)。
重新載入並驗證
在 MCP Host 中重新載入 MCP Server 清單,確認連線成功且工具(Tools)已列出。
3.1 MCP 客戶端配置範例(VS Code + GitHub Copilot)
在工作區建立 .vscode/mcp.json,以下為同時註冊四個 dSPACE MCP Server 的完整範例:
{
"servers": {
"controlDesk": {
"type": "stdio",
"command": "C:/repos/ControlDeskMCP/ControlDeskMCP.exe",
"args": [],
"env": { "CONTROLDESK_VERSION": "2026-A" }
},
"VeosMCP": {
"type": "stdio",
"command": "C:\\repos\\VeosMCP\\VeosMCP.cmd",
"args": ["--veos-version", "26.1"]
},
"configurationdesk-mcp": {
"type": "stdio",
"command": "C:\\repos\\ConfigurationDeskBusManagerMCP\\ConfigurationDeskMCP.cmd",
"args": []
},
"SystemDeskMCP": {
"type": "stdio",
"command": "C:\\repos\\SystemDeskMCP\\SystemDeskMCP.cmd",
"args": []
}
}
}
提示:Claude Desktop 使用 claude_desktop_config.json(結構為 mcpServers 鍵)、Claude Code 使用 claude mcp add 指令或 .mcp.json、Cursor 使用 .cursor/mcp.json,設定內容(command / args / env)與上述範例相同,僅外層格式略有差異。
4. 各 MCP Server 安裝配置細節
4.1 ControlDesk MCP
- 版本需求:ControlDesk 2025-A 以上(官方建議 2026-A);開發模式需 64 位元 Python 3.11+。
- 安裝方式 A(建議)— 預編譯執行檔:從 GitHub Releases 下載
ControlDeskMCP.exe與ControlDeskMCP.exe.sha256,執行檔已內建 Python 執行環境與所有相依套件,無需另行安裝。 - 安裝方式 B — 原始碼:clone 儲存庫後執行
uv sync(開發用途加--extra dev)。 - 版本指定:透過環境變數
CONTROLDESK_VERSION(例如2026-A)指定要操作的 ControlDesk 安裝版本;未設定時自動偵測最新版本。 - 工具清單驗證:執行
ControlDeskMCP.cmd --list-tools可離線列出全部工具。
下載後建議驗證檔案完整性:
# 計算 SHA256 並與 .sha256 檔案內容比對
(Get-FileHash .\ControlDeskMCP.exe -Algorithm SHA256).Hash
4.2 VEOS MCP
- 版本需求:本機已安裝 dSPACE VEOS;開發模式需 Python 3.12+。
- 安裝方式 A — 預編譯發行版(僅 Windows):從 GitHub Releases 下載
veos-mcp-windows.zip,解壓縮取得veos-mcp.exe後直接註冊至 MCP 客戶端。 - 安裝方式 B — 開發者模式(Windows / Linux):clone 儲存庫後執行
uv sync(完整開發環境用uv sync --extra dev)。 - 啟動參數:
--veos-version <版本>(如26.1或26-A)指定目標 VEOS 安裝;或以--veos-bin-path <路徑>直接指向 VEOS 的/bin資料夾。
4.3 ConfigurationDesk & Bus Manager MCP
- 版本需求:64 位元 Windows 10/11;ConfigurationDesk 已安裝、具有效授權並註冊 COM 自動化;Python 與 ConfigurationDesk 的版本相容性請參照儲存庫內的相容性矩陣文件。
- 安裝指令:此儲存庫採 monorepo 結構,需使用完整同步參數。
# 一般使用(不含開發工具) uv sync --frozen --all-packages --no-dev # 貢獻者模式(含 Ruff、pytest 等開發工具) uv sync --frozen --all-packages
注意:Server 在未安裝 ConfigurationDesk 的環境下仍可列出工具清單與版本資訊,但所有實際自動化呼叫都需要本機有授權的 ConfigurationDesk 安裝。若 COM 操作失敗,請先關閉 ConfigurationDesk 中的阻塞對話框(Blocking Dialog)再重試。完整工具參考文件位於儲存庫的 docs/tools/README.md(各域工具參考)與 docs/prompts/tool-map.md(77 個工具與提示的完整對應表)。
4.4 SystemDesk MCP
- 版本需求:本機已安裝且具有效授權的 SystemDesk;Python 3.10+。
- 安裝指令:於儲存庫根目錄執行
uv sync(開發用途加--extra dev)。 - 啟動順序:所有工具呼叫前必須先執行
start_systemdesk(),否則後續操作會失敗。
5. ControlDesk MCP 能力詳解(14 個功能域、93 個工具)
ControlDesk MCP 透過 COM 自動化完整驅動 ControlDesk 的實驗與量測校調工作流程,並採用獨特的「兩層工具模型」(Two-Tier Tool Model):主要工具(Main Tools,涵蓋應用程式生命週期、專案/實驗、平台連線)永遠可見;附加工具(Add-On Tools)透過各域的 *_discover 探索工具按需動態載入,以維持 AI 代理精簡的上下文視窗。閒置的附加工具域在 120 秒後自動卸載,但有狀態的工具域(匯流排、量測、記錄器)在活動期間絕不自動卸載。完整目錄亦可透過 MCP Resources controldesk://server/tool-catalog 與 controldesk://server/tool-groups 查詢。以下為全部 14 個功能域、93 個工具的完整清單:
5.1 應用程式生命週期(5 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_app_start_or_attach | 啟動新的 ControlDesk 執行個體,或附掛至已執行中的個體 |
controldesk_app_stop | 優雅地關閉 ControlDesk,可選擇是否儲存專案 |
controldesk_app_get_logs | 回傳 ControlDesk 應用程式日誌檔路徑,供診斷逾時或異常退出 |
controldesk_app_window_manage | 管理主視窗:可見性、狀態、位置、全螢幕 |
controldesk_app_discover | 回傳未預設載入的應用程式管理操作目錄 |
5.2 專案與實驗管理(8 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_project_list_recent | 依最後修改時間列出所有專案根目錄下最近使用的專案 |
controldesk_project_open | 依名稱開啟現有專案並設為使用中專案 |
controldesk_project_root_manage | 管理專案根資料夾:新增、啟用、列出、移除 |
controldesk_project_manage | 專案生命週期核心操作:建立、儲存、關閉、移除、查詢資訊、配置、列出 |
controldesk_project_backup_manage | 專案備份與還原(ZIP 封存檔) |
controldesk_project_experiment_manage | 實驗(Experiment)生命週期:建立、啟用、列出、移除、查詢資訊 |
controldesk_project_experiment_io_manage | 實驗 I/O 與複製操作:匯出、匯入、重新命名、另存新檔 |
controldesk_project_discover | 回傳未預設載入的專案管理工具目錄 |
5.3 平台與線上連接(7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_platform_connect | 建立 ControlDesk 與 ECU/平台間的實體或虛擬通訊連線(VEOS 平台會自動透過 CLI 啟動 VEOS) |
controldesk_platform_disconnect | 釋放與指定 ECU/平台的通訊連線 |
controldesk_platform_manage | 平台配置的變更型操作(Mutating Only) |
controldesk_platform_query | 唯讀查詢:平台列表、詳細資訊、連線狀態、介面列舉 |
controldesk_platform_admin_manage | 平台管理性操作:移除、重新命名、啟用/停用切換 |
controldesk_platform_hardware_manage | 硬體平台註冊表管理:註冊、清除、列出、重新整理 |
controldesk_platform_discover | 回傳未預設載入的平台操作目錄 |
5.4 量測管理(9 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_measurement_start | 在所有已連接平台上啟動量測,開始取樣全部已配置訊號 |
controldesk_measurement_stop | 停止所有平台的量測(記錄器一併自動停止) |
controldesk_measurement_manage | 量測配置與訊號的核心變更型操作 |
controldesk_measurement_query | 唯讀查詢量測狀態與訊號 |
controldesk_measurement_raster_manage | 管理量測柵格(Raster,取樣間隔) |
controldesk_measurement_trigger_manage | 管理觸發規則與記錄器啟停條件 |
controldesk_measurement_recording_manage | 管理資料池(Data Pool)中的記錄與量測書籤 |
controldesk_measurement_data_logger_manage | 管理量測資料管理中的資料記錄器(Data Logger)生命週期 |
controldesk_measurement_discover | 回傳未預設載入的量測操作目錄 |
5.5 線上校調(7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_calibration_start | 在使用中實驗的所有平台上同時啟動線上校調 |
controldesk_calibration_stop | 停止所有平台的線上校調 |
controldesk_calibration_manage | 校調頁(Calibration Page)的變更型操作 |
controldesk_calibration_query | 唯讀查詢線上校調狀態 |
controldesk_proposed_calibration_manage | 管理建議校調(Proposed Calibration)工作階段生命週期 |
controldesk_calibration_page_manage | 管理 ECU 校調頁複製操作(如 Working Page ↔ Reference Page) |
controldesk_calibration_discover | 回傳未預設載入的校調操作目錄 |
5.6 變數管理(7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_variable_find | 依名稱或完整連接路徑在使用中變數描述檔內定位變數/訊號(模糊時透過 resolution_details 選取候選) |
controldesk_variable_read | 從 ECU 讀取變數目前值 |
controldesk_variable_write | 將新值寫入 ECU 工作頁(Working Page)上的變數 |
controldesk_variable_list | 變數列舉操作:包含陣列元素與變數群組瀏覽 |
controldesk_variable_data_set_manage | 管理校調工作階段的 ECU 記憶體頁啟用(資料集管理) |
controldesk_variable_description_manage | 管理平台的變數描述檔(A2L 校調資料庫) |
controldesk_variable_discover | 回傳未預設載入的變數管理操作目錄 |
5.7 儀表管理(5 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_instrument_list | 列舉使用中佈局上的儀表,或列出儀表庫中可用的儀表類型 |
controldesk_instrument_query | 唯讀查詢儀表詳細中繼資料,包含訊號連接資訊 |
controldesk_instrument_manage | 儀表變更型操作:新增、移除、移動、配置、排列 |
controldesk_instrument_signal_manage | 將變數/訊號連接至儀表或斷開連接(支援多種儀表類型) |
controldesk_instrument_discover | 回傳未預設載入的儀表操作目錄 |
5.8 佈局管理(5 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_layout_list | 列舉目前開啟實驗中的所有佈局(Layouts) |
controldesk_layout_query | 唯讀查詢佈局中繼資料 |
controldesk_layout_manage | 佈局生命週期與配置的變更型操作 |
controldesk_layout_io_manage | 佈局檔案 I/O:匯出/匯入佈局與連接檔 |
controldesk_layout_discover | 回傳未預設載入的佈局操作目錄 |
5.9 主記錄器(Recorder Main,7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_recorder_main_start | 啟動主記錄器,開始將取樣訊號寫入配置的 MF4 輸出檔 |
controldesk_recorder_main_stop | 停止主記錄器,完成並關閉開啟中的 MF4 檔案 |
controldesk_recorder_main_manage | 記錄器配置與觸發的變更型操作 |
controldesk_recorder_query | 唯讀查詢主記錄器狀態(Idling / WaitingForTrigger / Running) |
controldesk_recorder_signal_manage | 管理記錄器訊號清單:加入、移除、列出訊號 |
controldesk_recorder_config_manage | 記錄器配置檔的匯出與匯入 |
controldesk_recorder_discover | 回傳未預設載入的記錄器操作目錄 |
5.10 匯流排記錄(Bus Logging,9 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_bus_logger_create | 在指定的實體匯流排存取點上建立新的匯流排記錄器 |
controldesk_bus_logger_configure | 配置記錄器所有設定:輸出檔路徑、記錄時長、格式選項、檔案滾動(File Rolling)行為 |
controldesk_bus_logger_manage | 匯流排記錄器生命週期的變更型操作 |
controldesk_bus_logger_query | 唯讀查詢匯流排記錄器狀態 |
controldesk_bus_logger_admin_manage | 匯流排記錄器管理性操作 |
controldesk_bus_filter_create | 在指定的實體匯流排存取點上建立訊息過濾器 |
controldesk_bus_filter_configure | 配置過濾規則:方向(通過/阻擋)與訊息 ID/遮罩條件 |
controldesk_bus_filter_manage | 匯流排過濾器生命週期管理 |
controldesk_bus_logging_discover | 回傳未預設載入的匯流排記錄操作目錄 |
5.11 匯流排監控(Bus Monitoring,7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_bus_monitor_create | 在指定的實體匯流排存取點上建立匯流排監控器 |
controldesk_bus_monitor_configure | 配置監控顯示與緩衝行為 |
controldesk_bus_monitor_manage | 監控器生命週期的變更型操作 |
controldesk_bus_monitor_query | 唯讀查詢匯流排監控器 |
controldesk_bus_monitor_save | 將目前的監控緩衝內容儲存為日誌檔 |
controldesk_bus_monitor_load_data | 將先前儲存的日誌檔載入監控緩衝區檢視 |
controldesk_bus_monitor_discover | 回傳所有可用的匯流排監控操作目錄 |
5.12 匯流排回放(Bus Replay,6 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_bus_replay_create | 在指定的實體匯流排存取點上建立回放,用於傳送已記錄的訊框 |
controldesk_bus_replay_configure | 配置回放設定:來源日誌檔路徑、回放模式與傳輸參數 |
controldesk_bus_replay_manage | 回放生命週期管理:啟動、停止 |
controldesk_bus_replay_query | 唯讀查詢回放狀態,支援分頁列舉 |
controldesk_bus_replay_admin_manage | 回放管理性操作:移除、清除、啟用切換、重新命名 |
controldesk_bus_replay_discover | 回傳未預設載入的匯流排回放操作目錄 |
5.13 ECU 診斷(6 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_ecu_diagnostics_setup | 為 Diagnostic2 平台配置 ODX 診斷資料庫 |
controldesk_ecu_diagnostics_link_setup | 管理車輛選擇、邏輯鏈路(Logical Link)設定與介面配置 |
controldesk_ecu_diagnostics_db_manage | 管理個別 ODX 資料庫檔案操作 |
controldesk_ecu_diagnostics_vehicle_manage | 管理 Diagnostic2 平台上的車輛選擇 |
controldesk_ecu_diagnostics_link_manage | 管理邏輯鏈路選擇與介面配置 |
controldesk_ecu_diagnostics_discover | 回傳未預設載入的 ECU 診斷操作目錄 |
5.14 工具視窗管理(5 個工具)
| 工具名稱 | 能力說明 |
|---|---|
controldesk_tool_window_list | 列舉目前 ControlDesk 執行個體中的所有工具視窗(面板) |
controldesk_tool_window_show | 顯示並啟用指定名稱的工具視窗 |
controldesk_tool_window_manage | 管理工具視窗狀態與停駐(Docking)的變更型操作 |
controldesk_tool_window_query | 唯讀查詢:停駐狀態、存在性檢查、幾何資訊 |
controldesk_tool_window_discover | 回傳未預設載入的工具視窗操作目錄 |
-
結構化錯誤回報: 每個工具呼叫都回傳含錯誤碼、可重試指標(Retryability)與復原提示(Recovery Hints)的結構化結果,讓 AI 代理能自主判斷後續動作。
-
典型工作流程: 啟動/附掛 ControlDesk → 開啟專案 → 管理並連接平台 → 執行量測/校調/記錄 → 停止進行中的操作 → 斷開平台 → 關閉應用程式。
6. VEOS MCP 能力詳解(10 個工具)
VEOS MCP 讓 LLM 以自然語言直接控制 dSPACE VEOS PC-based 模擬器,全部 10 個工具涵蓋模擬生命週期、系統拓撲檢視、訊號連接修改與日誌分析:
| 類別 | 工具名稱 | 能力說明 |
|---|---|---|
| 模擬器控制 | veos_load |
載入 .osa(Offline Simulation Application)模擬模型至 VEOS 模擬器 |
veos_start |
啟動已載入的 VEOS 模擬 | |
veos_stop |
停止執行中的 VEOS 模擬 | |
veos_apply_config |
在不啟動模擬的情況下套用模擬器配置:停止時間(stop_time)、加速因子(acceleration_factor)、IP 位址、日誌設定 | |
veos_status_info |
取得模擬器目前狀態資訊(唯讀) | |
| 系統拓撲檢視 | veos_get_all_signals_and_ports |
擷取模擬系統中所有訊號、埠(Ports)及其連接關係(唯讀) |
| 系統修改 | veos_add_signal_connections |
以 JSON 規格新增訊號連接 |
veos_remove_signal_connections |
以 JSON 規格移除訊號連接 | |
| 日誌存取 | veos_list_all_available_log_files |
列出所有可用的 VEOS 日誌檔(唯讀) |
veos_get_log_file |
讀取指定日誌檔內容,供 AI 進行錯誤分析與診斷(唯讀) |
7. ConfigurationDesk & Bus Manager MCP 能力詳解(77 個工具)
此 Server 是四者中規模最大的,提供 77 個工具、11 個資源(Resources)與 15 個提示(Prompts),完整覆蓋 SCALEXIO / MicroAutoBox III 即時應用與 VEOS 虛擬驗證應用的配置與建置流程,以及 Bus Manager 的匯流排通訊配置。以下依官方 tool-map.md 文件分六大群組完整列出全部 77 個工具:
7.1 啟動與生命週期(7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
start_configurationdesk | 啟動或附掛至 ConfigurationDesk 應用程式 |
stop_configurationdesk | 儲存變更並關閉應用程式 |
get_application_status | 顯示使用中的專案位置、專案與應用 |
save_project | 在高影響變更前儲存使用中專案 |
undo | 復原最近一次支援的配置變更 |
redo | 重做最近一次復原的配置變更 |
diagnose_connection | 排除啟動連線問題 |
7.2 專案與應用管理(14 個工具)
| 工具名稱 | 能力說明 |
|---|---|
set_project_root | 設定使用中的專案位置(Project Root) |
create_project | 建立新專案 |
open_project | 列出並開啟現有專案 |
close_project | 儲存並關閉使用中專案 |
remove_project | 從 ConfigurationDesk 移除專案 |
list_projects | 顯示可用專案清單 |
get_project_path | 顯示使用中專案資料夾路徑 |
backup_project | 建立專案封存檔(備份) |
open_project_from_backup | 從封存檔還原專案 |
add_application | 新增並啟用新應用(Application) |
activate_application | 列出並啟用現有應用 |
remove_application | 從專案移除應用 |
list_applications | 顯示使用中專案內的應用清單 |
list_configuration | 在進行變更前顯示完整配置樹 |
7.3 通訊矩陣與匯流排配置(17 個工具)
| 工具名稱 | 能力說明 |
|---|---|
add_communication_matrix | 載入通訊資料庫檔案(DBC、ARXML 等) |
remove_communication_matrix | 移除已載入的通訊矩陣 |
list_matrices | 依叢集(Cluster)與 ECU 顯示已載入的矩陣 |
find_matrix_elements | 在階層中定位特定 TX PDU 或訊號 |
set_matrix_element_property | 設定訊號初始值等矩陣元素屬性 |
create_bus_configuration | 建立新的匯流排配置(Bus Configuration) |
remove_bus_configuration | 移除匯流排配置 |
list_bus_configurations | 顯示目前的匯流排配置清單 |
assign_matrix_to_bus_config | 將 PDU 指派至匯流排配置 |
assign_ecu_to_bus_config | 將 ECU 指派至匯流排配置(模擬/殘餘總線角色) |
add_feature_to_bus_element | 為匯流排元素加入功能特性,如 BusISignalValueAccess(訊號值存取) |
remove_bus_config_elements | 從配置中移除 ECU 或訊號 |
generate_bus_containers | 從匯流排配置產生 BSC(Bus Simulation Container)輸出 |
find_bus_config_elements | 定位功能埠(Function Ports)等配置元素 |
assign_bus_config_to_application_process | 將匯流排配置連結至應用處理程序(Application Process) |
set_function_port_property | 配置功能埠介面屬性 |
set_bus_config_element_property | 設定匯流排功能特性的覆寫值(Overwrite Values) |
7.4 模型與訊號鏈(12 個工具)
| 工具名稱 | 能力說明 |
|---|---|
add_model | 加入並分析 Simulink 模型檔案(行為模型) |
replace_model | 以另一個模型替換現有模型(保留連接) |
remove_model | 移除已配置的模型 |
analyze_models | 分析已載入的模型,為埠配置做準備 |
create_application_process | 為 VEOS 應用建立週期性處理程序 |
list_models | 顯示已載入的模型與檔案路徑 |
add_model_to_signal_chain | 將模型的所有埠曝露至訊號鏈 |
add_model_port_to_signal_chain | 曝露單一指定名稱的模型埠 |
list_model_ports | 顯示模型可用的埠名稱 |
list_io_function_block_types | 顯示支援的類比與數位 I/O 功能塊類型 |
add_io_function_block | 將 I/O 功能塊加入配置 |
connect_function_block_port_to_model_port | 將 I/O 功能塊埠連接至模型埠 |
7.5 硬體與匯流排存取(19 個工具)
| 工具名稱 | 能力說明 |
|---|---|
add_hardware_platform | 以 IP 位址註冊實體 SCALEXIO 硬體 |
import_hardware_topology | 從檔案匯入硬體拓撲 |
scan_hardware | 硬體變更後重新掃描實體平台 |
remove_hardware | 從使用中專案移除平台 |
list_platforms | 顯示已註冊的實體平台 |
refresh_platforms | 檢查已註冊平台的目前狀態 |
add_hardware_element | 將支援的硬體元素(板卡)加入拓撲 |
add_application_processing_unit | 為 VEOS 工作流程加入處理單元 |
create_io_function_block | 建立實體 CAN/匯流排 I/O 功能塊 |
set_io_function_block_property | 設定硬體屬性,如鮑率(Baud Rate) |
list_io_function_block_properties | 顯示支援的屬性與可用值 |
list_bus_access_requests | 顯示匯流排配置的存取請求 |
assign_bus_access | 將匯流排存取請求指派至功能塊 |
list_assignable_channel_sets | 顯示可指派的實體通道選項 |
assign_channel_set | 將特定實體通道指派至功能塊 |
auto_assign_channel_set | 自動選擇符合條件的通道 |
assign_hardware_automatically | 自動將硬體資源指派給所有 I/O 功能塊 |
auto_connect_matching_io_function_blocks_to_model_ports | 自動連接名稱相符的 I/O 功能塊與模型埠 |
create_preconfigured_application_process | 建立模型專用的預配置應用處理程序 |
7.6 工作視圖與建置(8 個工具)
| 工具名稱 | 能力說明 |
|---|---|
create_working_view | 建立具名工作視圖以組織訊號連接 |
list_working_views | 顯示可用的工作視圖 |
remove_working_view | 移除單一工作視圖 |
clear_all_working_views | 移除所有可拋棄的工作視圖 |
export_working_view | 將視圖配置匯出為 XML 檔案 |
check_conflicts | 檢查配置衝突(建置前必要步驟) |
build_application | 產生建置輸出(RTA / OSA),不含下載與啟動 |
get_build_result | 顯示最新建置結果的目錄路徑 |
建議操作順序:start_configurationdesk() → 建立或開啟專案 → 依需求套用各功能域工具(模型、硬體、匯流排配置等)→ check_conflicts() → build_application() → close_project() → stop_configurationdesk()。此外 Server 還提供 15 個引導式提示(Prompts),例如殘餘總線配置引導,可讓 AI 依標準流程一步步完成複雜配置。
8. SystemDesk MCP 能力詳解(7 個工具)
SystemDesk MCP 將 SystemDesk 定位為 AI 生成 AUTOSAR 架構的驗證夥伴(Validation Partner):AI 代理產出的 ARXML 架構檔案可直接匯入 SystemDesk 進行標準符合性驗證,形成「生成 → 匯入 → 驗證 → 修正」的閉環。全部 7 個工具如下:
| 工具名稱 | 能力說明 |
|---|---|
start_systemdesk() |
啟動 SystemDesk 並建立 COM 連線(必須最先執行) |
get_systemdesk_status() |
回傳 SystemDesk 目前狀態 |
create_project(project_path, project_name) |
在指定路徑建立新的 SystemDesk 專案 |
import_autosar_file(file_path) |
將 AUTOSAR 檔案匯入目前開啟的專案(目前僅支援 .arxml 格式) |
validate_autosar(output_format) |
依 AUTOSAR 設計規則驗證目前專案,結果可輸出為 markdown 或 json,便於 AI 解析驗證錯誤並自動修正 ARXML |
close_project(save_project=True) |
關閉目前開啟的專案(可選擇是否儲存) |
close_systemdesk(save_project=True) |
關閉 SystemDesk 並釋放 COM 連線 |
標準工作序列:Start → Create/Open Project → Import AUTOSAR → Validate → Close Project → Close SystemDesk。
9. 實務應用:控制器開發與測試場景
以下從資深 dSPACE 工程實務的角度,說明 MCP Hub 在控制器開發 V 模型各階段的具體應用方式。每個場景都標註了所使用的 MCP Server 與關鍵工具,可直接作為導入時的參考藍圖。
9.1 AUTOSAR 軟體架構開發:AI 生成 + 自動驗證閉環
使用:SystemDesk MCP
傳統上撰寫 SWC(Software Component)的 ARXML 描述檔費時且容易違反 AUTOSAR Schema 規則。導入 MCP 後的迭代流程:
- 工程師以自然語言描述需求(例如「建立一個含 Sender-Receiver 介面的馬達控制 SWC,週期 10 ms Runnable」),AI 代理直接生成 ARXML。
- AI 呼叫
start_systemdesk()→create_project()→import_autosar_file()將生成的 ARXML 匯入 SystemDesk。 - 呼叫
validate_autosar(output_format="json")取得結構化驗證報告——JSON 格式讓 AI 能精確解析每一條違規(缺少的 Port Interface 參照、無效的資料型別對應等)。 - AI 依報告自動修正 ARXML,重新匯入驗證,直到零錯誤——整個迭代無需人工開啟 SystemDesk GUI。
- 同樣的流程也適用於供應商交付物驗收:收到 Tier-2 供應商的 ARXML 交付包時,AI 自動批次匯入驗證並產出驗收報告。
9.2 SIL / vECU 虛擬驗證:模擬冒煙測試自動化
使用:VEOS MCP(可搭配 ControlDesk MCP)
控制器軟體每日建置後的虛擬驗證是 Shift-Left 策略的核心,MCP 讓這個流程可以由 AI 代理全程駕駛:
- 冒煙測試:AI 呼叫
veos_load載入最新建置的 OSA(內含 vECU 與環境模型),以veos_apply_config設定 stop_time 與 acceleration_factor(加速因子讓回歸模擬跑得比即時更快),再veos_start執行。 - 失敗自動診斷:模擬初始化失敗時,AI 透過
veos_list_all_available_log_files與veos_get_log_file讀取日誌,判斷是授權問題、模型初始化錯誤還是訊號未連接——這正是過去最耗費資深工程師時間的除錯工作。 - 整合檢查(ICD 比對):
veos_get_all_signals_and_ports擷取整個系統的訊號連接矩陣,AI 將其與介面控制文件(ICD)比對,自動找出未連接的埠或錯接的訊號,並以veos_add_signal_connections/veos_remove_signal_connections修正。 - 閉環量測:搭配 ControlDesk MCP 連接 VEOS 平台(
controldesk_platform_connect會自動啟動 VEOS),即可在虛擬環境中執行與 HIL 完全一致的量測與校調操作。
9.3 HIL 測試準備:從通訊矩陣到可執行即時應用
使用:ConfigurationDesk & Bus Manager MCP
HIL 專案啟動階段最繁重的工作是把 DBC/ARXML、Simulink 模型與 SCALEXIO 硬體「接」起來。AI 代理可執行的完整配置鏈:
- 專案建立:
create_project()→add_application()建立即時應用骨架。 - 殘餘總線模擬(Restbus Simulation)配置:
add_communication_matrix()匯入整車 DBC/ARXML →create_bus_configuration()→assign_ecu_to_bus_config()指定哪些 ECU 由 HIL 模擬、哪些是真實待測件 →add_feature_to_bus_element()為需要測試操作的訊號加上BusISignalValueAccess(讓測試腳本能覆寫訊號值)→generate_bus_containers()產生 BSC。 - 植物模型整合:
add_model()載入 Simulink 植物模型 →analyze_models()→add_model_to_signal_chain()曝露模型埠。 - 硬體 I/O 對應:
add_hardware_platform()以 IP 註冊 SCALEXIO →scan_hardware()掃描實際板卡 →add_io_function_block()建立類比/數位/CAN I/O 功能塊 →set_io_function_block_property()設定鮑率等電氣參數 →auto_assign_channel_set()或assign_hardware_automatically()自動配通道 →auto_connect_matching_io_function_blocks_to_model_ports()依命名規則自動接線。 - 建置:
check_conflicts()檢查配置衝突 →build_application()產生 RTA →get_build_result()取得產出路徑。
工程效益:這條配置鏈過去需要熟悉 ConfigurationDesk 的工程師手動操作數小時甚至數天;透過 MCP,工程師只需描述「用這份 DBC 建立殘餘總線模擬,BCM 和 GW 由 HIL 模擬,VCU 是待測件」,AI 即可執行全部步驟,且每一步都可透過 save_project() / undo() / redo() 安全回退。export_working_view() 匯出的 XML 還可作為配置審查(Review)的佐證文件。同樣的流程把 add_hardware_platform 換成 add_application_processing_unit 即為 VEOS 虛擬平台建置 OSA,實現 HIL 與 SIL 配置的單一來源。
9.4 HIL 實驗執行:量測、記錄與測試操作自動化
使用:ControlDesk MCP
- 實驗準備:
controldesk_app_start_or_attach→controldesk_project_open→controldesk_platform_connect上線平台,並以controldesk_variable_description_manage掛載 A2L 變數描述檔。 - 量測配置:
controldesk_variable_find依名稱(或模糊搜尋)定位待測訊號 →controldesk_measurement_raster_manage指定取樣柵格(例如控制迴路訊號用 1 ms、溫度類用 100 ms)→controldesk_recorder_signal_manage將訊號加入記錄清單。 - 條件觸發記錄:
controldesk_measurement_trigger_manage設定觸發規則(例如「車速 > 100 km/h 且 ABS 介入時開始記錄」),controldesk_recorder_main_start後記錄器進入 WaitingForTrigger 狀態,事件發生時自動寫入 MF4——特別適合捕捉偶發異常。 - 測試激勵:
controldesk_variable_write對工作頁寫入測試值(如注入感測器故障值、改變駕駛需求扭矩),配合controldesk_variable_read驗證控制器反應,實現「寫入-等待-驗證」的測試模式。 - 操作面板自動生成:AI 依測試規範以
controldesk_layout_manage建立佈局、controldesk_instrument_manage放置儀表、controldesk_instrument_signal_manage連接訊號——「幫我建一個含轉速表、扭矩曲線圖和故障注入開關的除錯面板」一句話完成。 - 收尾:
controldesk_measurement_stop→controldesk_platform_disconnect→ 以controldesk_project_backup_manage備份整個實驗專案供追溯。
9.5 控制器參數線上校調
使用:ControlDesk MCP(校調 + 變數 + 記錄域)
controldesk_calibration_start在所有平台同時啟動線上校調工作階段。- AI 依據量測回饋迭代調整參數:讀取控制誤差(
controldesk_variable_read)→ 修改增益/查找表(controldesk_variable_write寫入 Working Page)→ 以 MF4 記錄驗證步階響應。 controldesk_proposed_calibration_manage管理建議校調工作階段——AI 提出的參數變更先進入「建議」狀態,由工程師審核後才套用,完全符合校調流程的職責分離要求。- 調校滿意後以
controldesk_calibration_page_manage執行頁面複製(Working Page → Reference Page),並以controldesk_variable_data_set_manage管理資料集,將成果固化。 - 典型應用:PID 增益整定、扭矩限制查找表調整、診斷閾值標定——AI 可依「超調量 < 5%、安定時間 < 200 ms」這類量化目標自主迭代。
9.6 匯流排測試:記錄、監控、過濾與回放
使用:ControlDesk MCP(Bus Logging / Monitoring / Replay 域)
- 長時間匯流排記錄:
controldesk_bus_logger_create在 CAN/CAN FD 存取點建立記錄器,controldesk_bus_logger_configure設定輸出路徑、時長與檔案滾動(File Rolling)——耐久測試中連續數天記錄也不會撐爆單一檔案。 - 聚焦記錄:
controldesk_bus_filter_create+controldesk_bus_filter_configure以訊息 ID/遮罩設定通過或阻擋規則,只記錄與待測功能相關的診斷訊框或特定 PDU,大幅減少後處理負擔。 - 即時監看:
controldesk_bus_monitor_create建立監控器觀察總線活動,controldesk_bus_monitor_save將緩衝區存檔;分析歷史問題時用controldesk_bus_monitor_load_data重新載入檢視。 - 現場問題重現(Replay 測試):將路試或客戶現場記錄的總線日誌,以
controldesk_bus_replay_create→controldesk_bus_replay_configure(指定來源日誌與回放模式)→controldesk_bus_replay_manage在 HIL 台架上原樣重放給待測 ECU——這是重現「只在特定總線時序下出現」的疑難雜症最有效的手段,AI 可自動批次回放多段日誌並比對 ECU 反應。
9.7 ECU 診斷測試(UDS over ODX)
使用:ControlDesk MCP(ECU Diagnostics 域)
controldesk_ecu_diagnostics_setup為 Diagnostic2 平台掛載 ODX 診斷資料庫,controldesk_ecu_diagnostics_db_manage管理多個 ODX 檔案版本。controldesk_ecu_diagnostics_vehicle_manage選擇車輛變體、controldesk_ecu_diagnostics_link_manage配置邏輯鏈路與診斷介面。- 結合故障注入場景:以
controldesk_variable_write在植物模型中注入感測器故障 → 透過診斷平台確認 ECU 正確設置 DTC → 清除故障後驗證 DTC 老化邏輯——完整的診斷功能驗證循環。
9.8 端到端場景:夜間自動回歸與異常分診
使用:全部四個 MCP Server 協同
夜間回歸流水線
CI 產出新版控制器程式碼後:SystemDesk MCP 驗證架構變更 → ConfigurationDesk MCP 重建 OSA/RTA → VEOS MCP 執行加速模擬回歸 → ControlDesk MCP 連接平台執行量測腳本並產出 MF4 → AI 彙整結果,隔天早上工程師收到的是「已分診的異常清單」而不是原始日誌。
互動式異常分診
測試失敗時,工程師直接問 AI:「昨晚 Run 42 為什麼失敗?」AI 讀取 VEOS 日誌(veos_get_log_file)、查詢 ControlDesk 記錄與觸發狀態(controldesk_recorder_query)、檢視匯流排監控緩衝(controldesk_bus_monitor_query),交叉比對後給出根因假設與重現步驟。
台架遷移與複製
實驗室新增第二套 SCALEXIO 時:scan_hardware() 掃描新機櫃 → AI 比對兩套硬體拓撲差異 → 自動以 assign_channel_set() 重新對應通道 → check_conflicts() 確認無衝突後重建——把最容易出錯的「搬家」工作變成可審查的自動化流程。
知識轉移與新人上手
新進工程師以自然語言請 AI 示範標準流程(每一步工具呼叫都有結構化紀錄),等同於把資深工程師的操作 SOP 內建於工具鏈中,降低對特定人員經驗的依賴。
10. 安全性設計與已知限制
-
Engineers-in-the-Loop: 所有 MCP Server 均設計為工程師主導的工作模式——AI 代理提出的每個動作在虛擬驗證、量測與校調過程中都可由工程師逐一審查與核准,AI 不會繞過既有的工具操作流程。ControlDesk 的建議校調(Proposed Calibration)機制更將「AI 提議、人類核准」直接落實在參數層級。
-
平台限制: COM 自動化架構限定於 Windows;Server 以 STDIO 本機子行程執行,非網路服務、不支援多使用者。所有操作皆需本機安裝且授權的 dSPACE 產品。
-
COM 阻塞對話框: 若 dSPACE 工具中出現模態對話框(Modal Dialog),COM 呼叫會被阻塞。遇到工具逾時或呼叫失敗時,請先手動關閉對話框再重試;ControlDesk MCP 可透過
controldesk_app_get_logs()取得診斷日誌。 -
早期版本: dSPACE MCP Hub 屬於「Early Release」階段,官方已規劃持續擴充工具、改善引導與支援更廣泛的工作流程;導入專案時建議鎖定版本並追蹤 GitHub Releases 更新。SystemDesk MCP 目前僅支援
.arxml匯入;ControlDesk MCP 的變數查詢在名稱模糊時需透過 resolution_details 選取正確候選。
11. 參考資源
| 資源 | 連結 |
|---|---|
| dSPACE MCP Hub(總覽) | github.com/dspace-group/dSPACE-MCP-Hub |
| ControlDesk MCP | github.com/dspace-group/ControlDeskMCP |
| VEOS MCP | github.com/dspace-group/VeosMCP |
| ConfigurationDesk & Bus Manager MCP | github.com/dspace-group/ConfigurationDeskBusManagerMCP |
| SystemDesk MCP | github.com/dspace-group/SystemDeskMCP |
| uv 套件管理器 | docs.astral.sh/uv/getting-started/installation |