MCP 伺服器
給你的程式代理
一台專屬的電腦
Kyvenza 內建 MCP 伺服器。把 Claude Code 或任何 MCP 客戶端指向它,AI 代理就能啟動虛擬機、動手前先拍快照、在客體裡執行指令,還能看螢幕畫面。這不是在虛擬機管理工具上硬塞一個聊天視窗,而是把整台機器交出去,外加一套讓你敢交出去的安全護欄。
為什麼用虛擬機,而不是容器
能執行 shell 指令的 AI 代理,需要一個碰不到你的鑰匙圈、SSH 金鑰和正式環境憑證的地方。虛擬機的邊界由作業系統強制把關,不是靠工具鏈的一句保證。Kyvenza 再補上容器給不了的東西:幾秒內就能還原的快照、幾乎不占磁碟空間的拋棄式複製,以及一種完全沒有網路的網路模式。
大約一分鐘就能連上
開啟伺服器
到 Settings → Automation 開啟。你不開啟,它就一直是關的。
複製端點網址
網址裡已經帶著這台 Mac 的權杖。一個 URL 就是完整的憑證,所以只要能填 URL 的客戶端都能連上。
貼到你的客戶端
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 天試用也包含這項功能。