dSPACE dissecto HydraVision MCP:
AI 代理驅動的車用資安測試完整指南
深入解析 HydraVision MCP Server 的連線認證、資源與提示(Prompts)架構、十大功能域的核心工具,以及在 ECU 滲透測試、測試活動管理、失敗分診與報告產出上的實務應用場景。
HydraVision 是 dSPACE 旗下 dissecto 推出的車用資安自動化測試平台,搭配 HydraProbe 硬體探針與 HydraCore 測試框架,涵蓋 CAN / ISO-TP、UDS、DoIP、車載乙太網路、藍牙等介面的安全測試,是導入 ISO/SAE 21434 與 UNECE R155 資安驗證的重要工具。自 2026 年中起,HydraVision 正式支援 Model Context Protocol(MCP),讓 Claude、GitHub Copilot、Cursor、Gemini CLI 等 AI 助理可以直接連線至 HydraVision 執行個體——建立測試目標、設定 Context、啟動測試活動(Campaign)、讀取結果並撰寫報告,全程使用與登入使用者相同的工具與權限。本文以 HydraVision 2026.08 版為基礎,完整介紹 HydraVision MCP 的架構、設定方式、全部工具能力與實務應用。
1. HydraVision MCP 架構總覽
與 dSPACE MCP Hub 採用本機 STDIO 子行程不同,HydraVision MCP 是內建於 HydraVision 伺服器端的遠端 MCP Server,AI 客戶端透過 HTTPS 直接連線,不需在本機安裝任何套件。整體架構由四個角色組成:
| 元件 | 角色說明 |
|---|---|
| AI 客戶端(MCP Client) | Claude Code、Claude Desktop、VS Code + GitHub Copilot、Cursor、Gemini CLI、MCP Inspector 等,負責理解工程師的自然語言需求並呼叫 MCP 工具 |
| HydraVision MCP Server | 內建於 HydraVision 的 /mcp 端點,提供涵蓋十大功能域的工具(Tools)、30 餘種資源(Resources)與多個工作流程提示(Prompts) |
| HydraProbe(Runner) | 實際連接 ECU 的硬體探針(或虛擬探針),負責 CAN / 乙太網路收發、電源控制與測試執行 |
| HydraCore | 測試案例(Testcase)所使用的 Python 測試框架;MCP 會將 HydraCore 的類別結構與文件開放給 AI 代理查詢 |
運作原理:MCP Server 採 Streamable HTTP 傳輸,以 OAuth 2.1 Bearer Token 驗證身分。AI 客戶端呼叫工具後,HydraVision 會在伺服器端建立目標、執行圖(Execution Graph)與測試工作(Job),再派送到對應的 HydraProbe 執行;結果、日誌與時序資料則存回 HydraVision,供 AI 代理後續讀取分析。所有動作都在登入帳號的群組權限範圍內進行,與在網頁介面上操作完全一致。
2. 連線端點與 OAuth 認證
HydraVision MCP 使用標準的 OAuth 2.1 授權流程,外部 AI 客戶端永遠不會接觸到使用者密碼。主要規格如下:
| 項目 | 規格 |
|---|---|
| MCP 端點 | https://<your-instance>.hydravision.dissec.to/mcp |
| 傳輸方式 | Streamable HTTP(遠端 MCP Server) |
| 資源中繼資料 | /.well-known/oauth-protected-resource(RFC 9728),資源名稱「Hydravision MCP」 |
| 授權伺服器中繼資料 | /.well-known/oauth-authorization-server(RFC 8414) |
| 支援授權類型 | Authorization Code + PKCE(S256)、Refresh Token、Device Code |
| 客戶端註冊 | 支援動態客戶端註冊(Dynamic Client Registration),VS Code / Copilot 可自動完成註冊 |
| Scope | mcp |
3. 連線設定流程(五步驟)
由於 HydraVision MCP 是遠端伺服器,設定流程比本機 MCP Server 更精簡,不需安裝 Python 或任何相依套件:
確認 HydraVision 帳號
確認您擁有 HydraVision 執行個體的帳號,且所屬群組可存取要操作的目標與測試範本。
登錄 MCP 端點
在 AI 客戶端的 MCP 設定中新增一個 HTTP 類型的 Server,URL 指向執行個體的 /mcp 端點。
OAuth 登入授權
客戶端首次連線時會開啟瀏覽器,於 HydraVision 登入頁(含 2FA)完成登入並同意授權。
讀取伺服器指引
AI 代理第一步呼叫 get_server_instructions,取得官方工作流程、安全規範與分頁規則。
驗證連線
讀取 hydravision://runners 確認探針在線,讀取 hydravision://targets 確認可看到測試目標。
3.1 MCP 客戶端配置範例
Claude Code(終端機一行指令新增,首次使用時於 /mcp 完成登入):
# 以 HTTP 傳輸方式新增 HydraVision MCP
claude mcp add --transport http hydravision https://<your-instance>.hydravision.dissec.to/mcp
VS Code + GitHub Copilot(工作區 .vscode/mcp.json):
{
"servers": {
"hydravision": {
"type": "http",
"url": "https://<your-instance>.hydravision.dissec.to/mcp"
}
}
}
Cursor(.cursor/mcp.json):
{
"mcpServers": {
"hydravision": {
"url": "https://<your-instance>.hydravision.dissec.to/mcp"
}
}
}
提示:設定檔中不需要也不應該填入帳號密碼或 Token——OAuth 流程會由客戶端自動處理,Token 到期時以 Refresh Token 續期。若客戶端不支援瀏覽器跳轉(例如遠端 SSH 環境),可使用 Device Code 授權流程。過期未完成的授權同意連結會自動失效。
4. 資源(Resources)與工作流程提示(Prompts)
除了工具之外,HydraVision MCP 將平台上的資料以 hydravision:// URI 形式開放為唯讀資源,並依類別(category)分組,方便 AI 代理快速定位。所有清單型資源皆分頁回傳(預設 20 筆、上限 100 筆),回應中的 pagination.truncated 與 hint 會提示下一頁的 offset。對於不支援原生 MCP Resources 的客戶端(例如部分 CLI 工具),可改用 list_hydravision_resources 與 read_hydravision_resource 兩個工具存取。
| 類別 | 代表資源 URI | 內容 |
|---|---|---|
| runner | hydravision://runners、…/runners/{id}/queue | 探針在線狀態、最後連線時間、執行中與排隊中的工作 |
| target | hydravision://targets、…/targets/{id}/graphs、…/queue | ECU / 車輛目標、執行圖清單、佇列中的執行定義 |
| context | …/targets/{id}/context/entries、…/context/{key} | 目標的 Context 項目(CanBus、CanSocket、UdsEndpoint、PowerSupplyUnit 等) |
| template | hydravision://templates/testcases、…/templates/{id}/files | 測試案例範本目錄、範本原始碼檔案、Git 提交紀錄 |
| test_plan | hydravision://test_plans | 測試計畫與其依序排列的範本清單 |
| graph | …/graphs/{id}/summary、…/execution_definitions | 執行圖儀表板、每個執行定義(ED)的最新工作狀態 |
| job | hydravision://remote_jobs、…/jobs/{id}/artifacts、…/timeseries/measurements | 測試工作、產出檔案(Artifacts)、Context 快照、時序量測清單、分析師留言 |
| hydracore | hydravision://hydracore/docs、…/python_packages | 與目前 HydraCore 版本相符的開發文件與類別結構 Schema |
| system | hydravision://system/health、…/system/events | 探針群健康狀態、執行中工作、近期錯誤與後端事件 |
| admin / artifact | hydravision://reports、…/artifact_types、…/users、…/groups | 報告、產出檔案類型、使用者與群組(依權限顯示) |
HydraVision MCP 也內建一組工作流程提示(Prompts),把官方建議的操作順序封裝起來,AI 代理可直接套用:
configure_new_target:建立新目標 → 設定 Context → 啟動測試計畫活動。fork_testcase_from_template:複製既有範本 → 查詢 HydraCore API → 安全地修改test_case.py→ 冒煙測試。analyze_job_failure:針對單一失敗工作,依序讀取日誌、結果、留言、Context 快照與產出檔案。summarize_test_campaign/triage_failures:彙整活動通過/失敗統計,並跨活動依根因歸類失敗項目。compare_job_runs:比對同一執行定義的兩次執行結果,找出 pass→fail 的回歸項目。diagnose_runner_offline:排查探針離線或卡住的工作。probe_debug_session:在硬體探針上開啟互動式偵錯工作階段。generate_target_report/edit_target_report:從已完成的工作產出並編修目標報告。
5. 工具能力詳解(10 個功能域)
以下依功能域列出 HydraVision MCP 的主要工具與其能力。
5.1 伺服器指引與資源存取(3 個工具)
| 工具名稱 | 能力說明 |
|---|---|
get_server_instructions | 取得伺服器使用指引、工作流程與安全規範(應最先呼叫) |
list_hydravision_resources | 列出所有 hydravision:// 資源與 URI 範本及其類別 |
read_hydravision_resource | 以 URI 讀取單一資源,支援 limit / offset 分頁 |
5.2 測試目標與 Context 管理(5 個工具)
| 工具名稱 | 能力說明 |
|---|---|
create_target | 建立新的 ECU 測試目標並指定所用探針 |
update_target | 更新目標名稱、說明、類型或探針(部分更新) |
set_context_entry | 建立或取代 Context 項目;寫入前依 HydraCore JSON Schema 驗證整份 Context,含跨項目參照 |
delete_context_entry | 軟刪除 Context 項目;若仍被其他項目參照則拒絕刪除 |
search_hydracore_symbols | 搜尋 HydraCore 類別結構,回傳建構子欄位、方法與介面,供設定 Context 或撰寫測項時查詢 |
5.3 測試計畫與測試活動(8 個工具)
| 工具名稱 | 能力說明 |
|---|---|
create_test_plan | 建立測試計畫,以有序的範本 ID 清單定義測試順序 |
update_test_plan | 更新測試計畫名稱、說明或範本清單 |
start_test_plan_campaign | 對目標啟動測試活動;預設分階段(只啟用第一個範本),auto_run=True 則與 GUI 一樣自動串接;可用 credits 限制自動啟動的工作數 |
enable_campaign_templates | 同步探索階段新產生的 Context 後,啟用下一階段的指定範本 |
get_campaign_status | 活動儀表板:通過/失敗/執行中/等待中數量與提示 |
wait_for_campaign | 等待活動中所有工作結束(每次最長 1800 秒,可重複呼叫) |
pause_campaign | 暫停自動執行,並將尚未開始的執行定義移出佇列(不中斷執行中工作) |
resume_campaign | 恢復對新執行定義的自動執行 |
5.4 執行圖與測試執行(10 個工具)
| 工具名稱 | 能力說明 |
|---|---|
run_testcase | 一次呼叫完成單一測項的快速執行(自動建立臨時執行圖並啟動),適合冒煙測試 |
start_execution | 啟動指定執行定義的工作;exclusive=True 可避免結束後自動串接其他測項 |
wait_for_job | 等待工作進入終止狀態(成功或錯誤) |
stop_job | 停止執行中或等待中的工作 |
dequeue_execution_definitions | 將尚未開始的執行定義移出佇列(對應 GUI 的 Dequeue) |
create_graph | 為目標建立自訂執行圖(進階用法) |
create_graph_from_test_plan | 由測試計畫建立執行圖並計算執行定義(進階用法) |
patch_graph | 更新執行圖的範本、Context 篩選與自動啟動設定(進階修復) |
patch_execution_definition | 啟用/停用單一執行定義,或覆寫其 Context 鍵 |
set_all_execution_definitions_enabled | 一次啟用或停用執行圖中所有執行定義 |
5.5 測試結果與資料分析(7 個工具)
| 工具名稱 | 能力說明 |
|---|---|
get_job_logs | 取得精選日誌、錯誤描述與產出檔案清單,用於失敗分診 |
get_job_log_lines | 讀取指定量測(logger)的原始日誌行 |
get_job_results | 取得已完成工作的結果、摘要與結果表格 |
get_job_timeseries | 查詢數值型時序資料(例如掃描期間的電源電壓/電流),支援聚合視窗 |
get_artifact_content | 預覽文字型產出檔案內容(上限 512 KiB) |
get_artifact_download_link | 取得產出檔案的 REST 下載連結(需 Bearer Token,不將二進位內容送入模型) |
recompile_artifact | 在沙箱中重新編譯(後處理)產出檔案(管理員) |
5.6 分析師註記與嚴重度(3 個工具)
| 工具名稱 | 能力說明 |
|---|---|
set_job_severity | 設定分析師嚴重度(UNSET / INFO / LOW / MEDIUM / HIGH / CRITICAL),與機器判定結果分開記錄 |
add_job_comment | 新增留言,可錨定到日誌行、結果行、時間點或產出檔案;會帶入報告 |
list_job_comments | 列出工作上的所有留言與嚴重度 |
5.7 測試案例範本開發(9 個工具)
測試案例範本以 Git 儲存庫管理,每次編輯都是一筆原子提交(atomic commit),Python 檔案在提交前會經過 AST 語法驗證,改錯了也能隨時回滾。
| 工具名稱 | 能力說明 |
|---|---|
copy_job_template | 以新名稱複製既有範本為可編輯的本地範本 |
read_template_file | 讀取範本檔案(支援行號區間) |
grep_template_files | 以正規表示式搜尋範本檔案內容 |
edit_template_files | 以 write / replace / patch / delete 操作編輯檔案,單一 Git 提交 |
replace_template_line_range | 取代或插入指定行號區間(精準編輯) |
refresh_job_template_metadata | 修改測項參數後重新產生中繼資料,並排入沙箱深度驗證 |
read_template_file_at_git_commit | 讀取檔案在指定 Git 版本時的內容 |
reset_template_git_revision | 將範本重設到指定的先前版本 |
rewind_template_git_commits | 將範本回退 N 個提交 |
5.8 探針偵錯工作階段(11 個工具)
Probe Debug 讓 AI 代理在 HydraProbe 上開啟一個受控的偵錯工作階段,用於環境檢查與測項除錯。
| 工具名稱 | 能力說明 |
|---|---|
start_probe_mcp / stop_probe_mcp | 開啟/關閉探針端的偵錯工作階段(內部工作,結束後自動清除) |
wait_for_debug_command / get_debug_command_status | 等待或查詢非同步指令狀態與結束碼 |
get_debug_command_output | 分段讀取非同步指令的 stdout / stderr |
write_debug_command_stdin | 寫入非同步指令的標準輸入 |
interrupt_debug_command | 以 SIGINT / SIGTERM / SIGKILL 中斷指令 |
exec_debug_list_dir / exec_debug_read_file | 列出目錄、讀取檔案(限工作目錄內) |
start_testcase_debug / stop_testcase_debug | 以 openvscode 圖形化偵錯模式啟動/停止測項,供工程師手動除錯 |
5.9 測試報告(12 個工具)
| 工具名稱 | 能力說明 |
|---|---|
create_report_from_jobs | 由已完成的工作產生 Git 管理的目標報告(含留言與嚴重度) |
create_report_template | 建立自訂報告範本(版面與產生器腳本) |
read_report_file / grep_report_files | 讀取或搜尋報告檔案(主要為 report.md) |
edit_report_files / replace_report_line_range | 編修報告內容,每次為一筆 Git 提交 |
read_report_file_at_git_commit | 讀取報告檔案的歷史版本 |
reset_report_git_revision / rewind_report_git_commits | 將報告回滾到先前版本 |
export_report_docx | 回傳 Word(DOCX)下載路徑,供工程師下載交付 |
update_report | 更新報告名稱、說明與範本連結 |
copy_report | 複製報告或範本(含 Git 儲存庫) |
5.10 產出檔案類型與後處理編譯器(4 個工具)
| 工具名稱 | 能力說明 |
|---|---|
create_artifact_type / update_artifact_type | 建立自訂產出檔案類型、修改顯示名稱(admin / staff) |
create_artifact_compiler_config / update_artifact_compiler_config | 設定沙箱後處理編譯器,將原始產出自動轉換為團隊需要的格式(管理員) |
6. 實務應用:車用資安測試場景
HydraVision 內建多個官方測試計畫範本,涵蓋 UDS over CAN / DoIP 基礎評估、UDS 模糊測試、乙太網路安全掃描、TLS / SSH 基線檢查與實車 UDS 掃描等。搭配 MCP,工程師只要描述目標,AI 代理就能組合出完整的測試流程。以下範例中的 ID 皆為示意值。
6.1 新 ECU 上線:從建立目標到分階段測試活動
工程師輸入:「幫我在 CAN 探針上建立一個新的 BCM 目標,跑 UdsBasicCAN 測試計畫,先跑探索階段就好。」AI 代理會依 configure_new_target 流程執行:
# 1. 確認探針在線、查詢測試計畫 read_hydravision_resource(uri="hydravision://runners") read_hydravision_resource(uri="hydravision://test_plans") # 2. 建立目標並設定 Context(欄位先以 search_hydracore_symbols 查詢) create_target(name="BCM_Sample", remote_runner=2) set_context_entry(target_id=31, key="PowerSupplyUnit_0", value={"cls": "PowerSupplyUnit", "channel": "PSU_1"}) set_context_entry(target_id=31, key="CanBus_0", value={...}) set_context_entry(target_id=31, key="CanSocket_0", value={...}) # 3. 啟動分階段測試活動(預設只啟用第一個範本) start_test_plan_campaign(target_id=31, test_plan_id=10) wait_for_campaign(campaign_id=118) # 4. 探索完成後,由工程師確認再啟用下一階段 enable_campaign_templates(campaign_id=118, template_ids=[...])
設計重點:MCP 預設採分階段執行,探索類測項(如 IsotpScan)完成後可能產生大量 Context 組合;工程師可先檢視結果、篩減佇列,再決定是否進入下一階段,避免一次排入大量測試佔用探針。
6.2 失敗工作分診與分析師註記
測試活動結束後,工程師詢問:「這次活動哪些測項失敗?幫我分析原因並標註嚴重度。」AI 代理依 triage_failures 與 analyze_job_failure 流程:
- 以
get_campaign_status取得失敗清單,依根因分組(例如通訊逾時、ECU 無回應、Context 缺漏)。 - 以
get_job_logs、get_job_results讀取日誌與結果表,必要時以get_job_timeseries檢查掃描期間的電源曲線,判斷 ECU 是否重啟。 - 將判讀結果交由工程師確認後,以
set_job_severity與add_job_comment(錨定到關鍵日誌時間點)寫回 HydraVision,這些註記會自動帶入後續報告。
6.3 韌體改版後的回歸比對
ECU 韌體更新後重新執行同一組測試,再以 compare_job_runs 流程比對同一執行定義的前後兩次結果,自動列出「通過→失敗」與「失敗→通過」的項目,快速確認資安修補是否生效、是否引入新問題。
6.4 客製化測項開發:AI 輔助修改 test_case.py
當官方測項需要針對專案調整(例如加入特定的 DID 範圍或專案專屬的 Session 切換順序),AI 代理可依 fork_testcase_from_template 流程:
# 複製官方範本為本地可編輯版本 copy_job_template(template_id=72, name="IsotpScan_ProjectX") # 查詢 HydraCore API,再以精準的行號區間修改 search_hydracore_symbols(query="IsotpSocket") grep_template_files(template_id=412, pattern="def test_case") replace_template_line_range(template_id=412, path="test_case.py", start_line=58, end_line=64, new_content="...") # 更新中繼資料並在虛擬 ECU 上冒煙測試 refresh_job_template_metadata(template_id=412) run_testcase(target_id=5, template_id=412) wait_for_job(job_id=2051)
每次修改都是一筆 Git 提交,並經 AST 語法驗證;若結果不如預期,可用 rewind_template_git_commits 一鍵回滾。建議先在 Virtual ECU(VECU)目標上驗證,再移到實體 ECU 執行。
6.5 自動產出資安測試報告
完成註記後,工程師要求:「把這次 BCM 活動的結果整理成報告。」AI 代理以 create_report_from_jobs 產生報告,讀取 report.md 撰寫摘要與改善建議,經工程師審閱修訂後,以 export_report_docx 取得 Word 下載路徑。報告內含每個測項的結果、分析師嚴重度與留言,可作為 ISO/SAE 21434 驗證活動(TARA 後的 Cybersecurity Validation)與 UNECE R155 / GB 44495 合規文件的佐證資料。
6.6 與 dSPACE VEOS / HSIL 虛擬驗證整合
HydraVision 可直接匯入 dSPACE HSIL 模擬組態,將 VEOS 中的 CAN 與乙太網路主題轉換為目標的 Context 項目,讓資安測試在虛擬 ECU 上左移(Shift-Left)執行。搭配本站《dSPACE MCP Hub》一文介紹的 VEOS MCP,AI 代理即可在同一個工作階段中啟動模擬,並由 HydraVision MCP 對虛擬 ECU 執行資安測試,打造從 SIL 到 HIL 一致的自動化流程。
7. 安全性設計
資安測試平台本身必須足夠安全。HydraVision MCP 在設計上納入多層防護:
-
OAuth 2.1 與權限繼承:AI 客戶端不接觸密碼,只取得
mcpscope 的存取權杖;所有操作都受登入帳號的群組權限限制,唯讀帳號也無法透過 MCP 修改任何資料。 -
不可信內容標記:受測 ECU 的回應、日誌、產出檔案、測項原始碼與其他使用者的留言,都可能含有惡意內容。HydraVision 會在這類回應中加上
content_provenance與content_warning標記,並明確要求 AI 代理只將其視為資料、絕不當作指令執行。 -
分階段執行預設:測試活動預設只啟用第一階段,避免 AI 代理一次排入大量可能影響 ECU 行為的測試;具副作用的測試計畫(例如會寫回資料或觸發 RoutineControl 的掃描)在說明中皆有明確警示。
-
Git 版本控管與驗證:測項與報告的每次修改都是可追溯、可回滾的 Git 提交;Context 寫入前經 HydraCore JSON Schema 完整驗證,不合法的設定在儲存前就會被拒絕。
-
使用注意:部分測試(UDS 模糊測試、乙太網路 DoS 韌性測試等)可能影響 ECU 運作或觸發實體動作,請僅在授權的測試環境、具備適當實驗室防護措施下執行,並優先在虛擬 ECU 上驗證流程。
8. 捷策動能技術支援
Jotactic 捷策動能為 dSPACE dissecto HydraVision 在台代理與技術服務夥伴,提供:
導入與環境建置
HydraVision / HydraProbe 部署、MCP 連線設定與 AI 客戶端整合。
測試計畫規劃
依 ISO/SAE 21434、UNECE R155、GB 44495 需求規劃測試計畫與客製化測項。
教育訓練與 Demo
AI 代理驅動資安測試工作流程教育訓練與客製化 Demo 驗證。
歡迎來電 03-6109669 或來信 info@jotactic.com 洽詢。