回到 Kyvenza

MCP 伺服器

給你的程式代理
一台專屬的電腦

Kyvenza 內建 MCP 伺服器。把 Claude Code 或任何 MCP 客戶端指向它,AI 代理就能啟動虛擬機、動手前先拍快照、在客體裡執行指令,還能看螢幕畫面。這不是在虛擬機管理工具上硬塞一個聊天視窗,而是把整台機器交出去,外加一套讓你敢交出去的安全護欄。

為什麼用虛擬機,而不是容器

能執行 shell 指令的 AI 代理,需要一個碰不到你的鑰匙圈、SSH 金鑰和正式環境憑證的地方。虛擬機的邊界由作業系統強制把關,不是靠工具鏈的一句保證。Kyvenza 再補上容器給不了的東西:幾秒內就能還原的快照、幾乎不占磁碟空間的拋棄式複製,以及一種完全沒有網路的網路模式。

大約一分鐘就能連上

  1. 開啟伺服器

    到 Settings → Automation 開啟。你不開啟,它就一直是關的。

  2. 複製端點網址

    網址裡已經帶著這台 Mac 的權杖。一個 URL 就是完整的憑證,所以只要能填 URL 的客戶端都能連上。

  3. 貼到你的客戶端

    Claude Code 只要一行指令。讀取 JSON 設定檔的客戶端,設定頁面也會幫你產生那段設定。

Claude Code

claude mcp add --transport http kyvenza http://127.0.0.1:59800/mcp/YOUR-TOKEN

旁邊有個 Test connection 按鈕,會對你自己的端點做一次真正的交握,並回報找到幾個工具。「我到底有沒有設定對」當場就知道,不必等到之後某次工具呼叫失敗才發現。

靠什麼防止 AI 代理把你的 Mac 搞壞

伺服器從不離開回送介面(loopback)

它只綁定 127.0.0.1,其他一概不綁。區域網路上的裝置看不到它,網際網路上的任何東西也看不到。

每台 Mac 都有自己的權杖

這點值得講細一點,因為威脅是真實存在的,不是紙上談兵。QEMU 的使用者模式網路會把客體送往 10.0.2.2 的任何流量,轉成對主機回送介面的連線。也就是說,執行中的 Windows 客體能連到你 Mac 上綁在 127.0.0.1 的服務,這個 MCP 伺服器也不例外。所以端點必須帶一組 128 位元的權杖,放在 URL 路徑或 Authorization 標頭裡;沒帶的請求只會拿到 401,別的什麼都沒有。也沒有任何能把這項檢查關掉的相容模式。

會破壞東西的工具預設關閉

在你啟用之前,create_vm、clone_vm 和 delete_vm 根本不會出現在工具清單裡。模型看不到的工具就不會去試,這比事後拒絕呼叫更有保障。

delete_vm 只刪它自己做出來的東西

不是由 clone_vm 建立的沙盒,它一律拒絕刪除。真的刪了的,也是移到垃圾桶而不是直接抹除,因為 AI 代理刪錯東西時,必須還能復原。

AI 代理啟動任何東西之前,先拍快照

AI 代理透過 MCP 啟動 VM 時,Kyvenza 會先拍一張快照,並在同一個回應裡告訴它,讓它知道出事時該還原到哪裡。你自己從介面啟動 VM 則不會這樣做。這是給自動化用的安全機制,不是在背景默默塞滿磁碟。

一台完全沒有網路的機器

任何 VM 都能設成隔離網路。在 Linux 上只要裝了 Kyvenza 客體代理程式,設成隔離後照樣能執行指令、截圖,因為那條通道走的是虛擬 socket,不是網路。

十五個工具

下表標示的三個工具,要等你開啟破壞性工具後才會出現。

工具用途
list_vms列出所有 VM 及其作業系統、狀態、CPU 與記憶體
get_vm_status狀態、IP 位址、顯示解析度與網路模式
get_vm_ip執行中 VM 的客體 IP 位址
start_vm啟動已停止的 VM,啟動前先拍快照
stop_vm停止執行中的 VM,除非另外指定,否則正常關機
restart_vm重新啟動執行中的 VM
suspend_vm把客體記憶體寫入磁碟後關機,下次從原處接續僅限 Linux。macOS 與 Windows 請用 stop_vm。
list_snapshots列出 VM 的快照,並標示哪些是自動拍的
take_snapshot為已停止的 VM 拍離線快照
restore_snapshot把已停止的 VM 還原到某張快照,取代目前的磁碟
exec_shell在客體裡執行一條指令,回傳結束代碼、stdout 與 stderr裝有客體代理程式的 Linux 客體不需要網路位址,也不需要 SSH。macOS 走 SSH。Windows 則在客體裡跑過一次驅動程式安裝程式後,透過只綁回送介面的轉發連接埠走 SSH。
screenshot客體螢幕的 PNG 截圖Windows 客體從主機端擷取畫面,客體裡不用裝任何東西,不需要網路位址,也不必開著顯示視窗。裝有代理程式的 Linux 客體連顯示伺服器都不需要,因為代理程式直接讀取核心的 framebuffer。macOS 則需要有人登入的圖形工作階段。
clone_vm預設關閉把已停止的 VM 複製成拋棄式沙盒,幾乎瞬間完成、幾乎不占磁碟
create_vm預設關閉建立一台沒有作業系統的全新空白機器
delete_vm預設關閉把 clone_vm 做出的沙盒移到垃圾桶

最適合拿來做的三件事

跑你信不過的東西

把準備好的 VM 複製成沙盒,讓 AI 代理在裡面跑安裝程式或腳本、讀取結果,再把沙盒刪掉。複製採用寫入時複製(copy-on-write),大約一秒就出現,在客體開始寫入之前幾乎不占磁碟。Kyvenza 也會自動回收過期的沙盒,就算 AI 代理忘了收拾,你的 VM 清單也不會被塞爆。

在真正的 Windows 上驗證建置

AI 代理可以透過只綁回送介面的轉發連接埠,在 Windows 11 on ARM 客體裡執行指令,也能在客體不裝任何東西的情況下截圖。當你想知道的是程式在 Windows 上實際長什麼樣子,而不是測試套件怎麼說,這就派上用場了。

在拔掉網路線的機器上工作

把 Linux VM 設成隔離網路,它就完全沒有網路卡。客體代理程式照樣回應指令、照樣截圖,因為它走的是虛擬 socket。AI 代理繼續工作,它執行的程式碼卻哪裡都連不出去。

它做不到的事

  • create_vm 給你的是一台空機器。安裝作業系統是互動式流程,無法透過 MCP 操作,所以真正重要的工具是從準備好的 VM 執行 clone_vm。
  • 要在 Windows 客體裡執行指令,必須先在 Windows 裡跑過一次 Kyvenza 驅動程式安裝程式,而且第一次執行時 VM 需要能連上網際網路。
  • Windows 客體的 SSH 使用者名稱必須是純 ASCII。Windows 本身允許帳戶名稱含有引號、空格或 shell 特殊字元,但 OpenSSH 會拒絕。
  • 透過 MCP 拍的快照只含磁碟,而且 VM 必須處於停止狀態。儲存執行中機器的記憶體,仍然要手動操作。
  • 要截取 macOS 客體的畫面,需要有人已登入的圖形工作階段。

為什麼 app 裡沒有聊天框

我們評估過要不要做,最後決定不做,理由有三個,直說無妨。Kyvenza 是一次性購買,推論卻按 token 計費,這筆帳算不過來。能在客體裡執行任意指令的 app 內建助理,會一口氣牽扯出隱私揭露、資料蒐集聲明和年齡分級。再者,你現在用的客戶端,本來就比我們附在虛擬化 app 裡的任何東西更會當客戶端。所以對話留在你原本用的地方,我們專心打造它要操作的那台機器。

用你手上的 Mac 就能試

每個版本都內建 MCP 伺服器,Mac App Store 版和官網直接下載版都有。7 天試用也包含這項功能。

跑你信不過的東西