直接向 Claude 等 AI 查詢您 Mac / Linux 的安全狀態
RoamSwitch 內建了唯讀的 MCP(Model Context Protocol)伺服器。只需連接到 MCP 用戶端,用自然語言詢問「我的 Mac / Linux 現在安全嗎?」「有哪些連接埠對外暴露?」,即可獲得基於 RoamSwitch 自身精確診斷結果的回答,而非 AI 的臆測。它無法切換鎖定等級、隔離連接埠或執行任何其他操作,所有通訊都完全透過裝置內的 stdio 完成(Zero Telemetry 方針的延伸)。
🔒 為什麼是安全的
- 唯讀:僅提供安全診斷、連接埠監控、防護設定查詢功能。未實作切換鎖定、隔離連接埠、退出裝置等任何操作型工具。
- 完全本機:通訊僅透過標準輸入輸出(stdio)進行,完全在 AI 用戶端(Claude Desktop/Code 等)與 Mac / Linux 上的 RoamSwitch 處理程序之間完成,絕不會傳送到外部伺服器。
- 防止誤操作:由於不含任何操作型工具,因此不存在因提示注入等原因而誤改防火牆或網路設定的風險。
兩步完成設定
1二進位檔案位置
已內建於 RoamSwitch.app 中,無需另外下載或安裝。
/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2a適用於 Claude Desktop
在 ~/Library/Application Support/Claude/claude_desktop_config.json 的 "mcpServers" 中新增以下內容,然後重新啟動 Claude Desktop。
{
"mcpServers": {
"roamswitch": {
"command": "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
}
}
}
2b適用於 Claude Code
只需在終端機中執行一次以下指令即可。
claude mcp add roamswitch /Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2c適用於 OpenAI Codex CLI
請在 ~/.codex/config.toml 中新增以下內容,或在終端機中執行以下指令。
[mcp_servers.roamswitch] command = "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
codex mcp add roamswitch -- /Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2d適用於 OpenCode
在專案根目錄下的 opencode.json(或全域設定 ~/.config/opencode/opencode.json)中新增以下內容:
{
"mcp": {
"roamswitch": {
"type": "local",
"command": ["/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"]
}
}
}
💡 本機大模型支援: 搭配Ollama或LM Studio等本機模型時,即使RoamSwitch因偵測到威脅而實施緊急斷網,亦能在完全離線狀態下即時查詢安全建議與事件分析。
2e適用於 Antigravity
請在 ~/.gemini/config/mcp_config.json(或工作區根目錄的 .agents/mcp_config.json)中新增以下內容。
{
"mcpServers": {
"roamswitch": {
"command": "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
}
}
}
* 注意:若在 Antigravity CLI (agy) 中執行工具時遇到 Hook Failure 或遙測錯誤,請在 ~/.gemini/config/plugins/.../hooks.json 中將 "enabled": false 以停用該 Hook。
1二進位檔案位置
已內建於 apt / rpm / AUR 套件中,安裝時會自動部署為 /usr/bin/roamswitch-mcp,無需另外下載或編譯(用戶端版與 Server Edition 通用)。
/usr/bin/roamswitch-mcp
Server Edition(無頭運作模式)也可直接使用相同的二進位檔案與相同的設定方法。詳情請參閱《Linux Server 維運手冊》中的「AI 代理 / MCP 整合維運」章節。
2a適用於 Claude Desktop
Claude Desktop 官方並未提供 Linux 版本。若您使用的是非官方組建版本(例如 claude-desktop-debian 等),請在 ~/.config/Claude/claude_desktop_config.json 的 "mcpServers" 中新增以下內容後重新啟動。
{
"mcpServers": {
"roamswitch": {
"command": "/usr/bin/roamswitch-mcp"
}
}
}
2b適用於 Claude Code
只需在終端機中執行一次以下指令即可。
claude mcp add roamswitch /usr/bin/roamswitch-mcp
2c適用於 OpenAI Codex CLI
請在 ~/.codex/config.toml 中新增以下內容,或在終端機中執行以下指令。
[mcp_servers.roamswitch] command = "/usr/bin/roamswitch-mcp"
codex mcp add roamswitch -- /usr/bin/roamswitch-mcp
2d適用於 OpenCode
在專案根目錄下的 opencode.json(或全域設定 ~/.config/opencode/opencode.json)中新增以下內容:
{
"mcp": {
"roamswitch": {
"type": "local",
"command": ["/usr/bin/roamswitch-mcp"]
}
}
}
💡 本機大模型支援: 搭配Ollama或LM Studio等本機模型時,即使RoamSwitch因偵測到威脅而實施緊急斷網,亦能在完全離線狀態下即時查詢安全建議與事件分析。
2e適用於 Antigravity
請在 ~/.gemini/config/mcp_config.json(或工作區根目錄的 .agents/mcp_config.json)中新增以下內容。
{
"mcpServers": {
"roamswitch": {
"command": "/usr/bin/roamswitch-mcp"
}
}
}
* 注意:若在 Antigravity CLI (agy) 中執行工具時遇到 Hook Failure 或遙測錯誤,請在 ~/.gemini/config/plugins/.../hooks.json 中將 "enabled": false 以停用該 Hook。
唯讀工具(目前 Mac 17 種 / Linux 25 種,持續增加中)
get_security_report
在 Mac 上進行 18 項綜合診斷(FileVault、SIP、Gatekeeper、防火牆、Wi-Fi 加密強度、ARP 偽造、外部暴露連接埠等),在 Linux 上進行用戶端 24 項 / 伺服器 30 項診斷(核心強化、Docker socket 與特權容器保護、容器執行環境隔離、已知漏洞等),並回傳評分與改善建議。
get_exposed_ports
列出目前所有正在監聽的連接埠,對外部暴露的連接埠回傳包含已知高風險服務(Redis/MongoDB 等)判定的詳細稽核結果。
get_guard_status
傳回未知連接埠阻擋、ARP欺騙自動遏制、USB防護、藍牙防護、網頁/郵件下載保護、DNS威脅防護的啟用狀態及當前安全等級。
audit_url_safety
接收郵件連結或網頁URL為參數,完全於本機(Zero Telemetry)即時診斷網路釣魚、Unicode同形異義偽裝、仿冒子網域及高風險頂級網域。
get_app_help
於本機即時檢索涵蓋RoamSwitch所有功能規格、底層機制、警報通知及疑難排解的官方知識庫,提供準確的技術解說與處置建議。
audit_security_logs
彙總近期安全記錄(Mac:Sudo 驗證失敗、SSH 暴力破解嘗試、Gatekeeper 攔截、XProtect 偵測等 / Linux:Sudo 驗證失敗、SSH 暴力破解、防火牆攔截、AppArmor 拒絕、ClamAV 偵測等),自動遮蔽 API 金鑰、權杖等機密資訊,並回傳以記錄範本化的新模式偵測與頻率異常(統計突增)偵測結果。
get_notification_history
回傳 RoamSwitch 傳送的通知(安全記錄稽核異常、ClickFix 偵測等)歷史記錄,最近1週、最新在前。
roamswitch://docs/* (MCP Resources)
AI客戶端可直接讀取至上下文的官方文件資源(功能規格、警報處置指南、設定指南、疑難排解)。
其他唯讀工具
| 工具 | 支援 | 概要 |
|---|---|---|
audit_secrets |
Mac / Linux | 從文字、檔案或目錄中偵測外洩的 API Key 與私密金鑰(偵測值於輸出時已遮蔽)。 |
run_active_vuln_scan |
Mac / Linux | 僅限 127.0.0.1 的非破壞性實證漏洞驗證。唯一會使用網路的工具,預設關閉,需於設定中主動啟用。 |
run_package_cve_scan |
Mac / Linux | 將已安裝的套件(Mac:Homebrew / Linux:dpkg・dnf・zypper・pacman)與本機 CVE 對照表比對。完全不產生任何網路通訊。 |
run_package_cve_scan_languages |
Mac / Linux | 將 npm / PyPI / crates.io / RubyGems / Packagist / Go / Maven 等相依性鎖定檔與同一本機 CVE 對照表比對。完全不產生任何網路通訊。 |
get_quarantine_status |
Mac / Linux | 回傳惡意軟體隔離 Vault 的內容(原始路徑、偵測到的威脅名稱、隔離時間與大小)。 |
get_canary_status |
Mac / Linux | 回傳勒索軟體誘餌檔案(Canary)的佈署狀態,以及最近 50 筆偵測事件。 |
get_port_anomaly_incidents |
Mac / Linux | 回傳連接埠異常防護的基準狀態、目前自動阻斷的連接埠,以及最近 50 筆事件。回應中明確註明:目前自動阻斷的連接埠是不含時間戳記的當前狀態快照,與含時間戳記的事件歷史是兩回事。 |
get_runtime_threat_status |
Mac | 回傳是否因 XProtect 偵測到惡意軟體而進入 Air-Gap 隔離,以及觸發該隔離的事件。排查 Air-Gap 原因時應最先檢視此工具。 |
verify_fim |
Linux | 對約 150 處關鍵系統檔案重新計算雜湊,並與基準比對以驗證是否遭竄改。 |
get_file_scan_guard_status |
Linux (Server) | 回傳檔案掃描防護(ClamAV)的設定,以及其所用隔離 Vault 的狀態。 |
get_ebpf_incidents |
Linux (Server) | 回傳 eBPF 執行期防護的目前隔離狀態,以及觸發隔離的事件歷程。 |
get_resource_guard_incidents |
Linux (Server) | 回傳資源耗盡/行程異常偵測防護的歷程(記憶體洩漏、當機迴圈),並附信心等級。 |
get_incident_timeline |
Mac / Linux | 將各防護模組的偵測結果整合為單一時間軸回傳(含行程譜系與 MITRE ATT&CK 標籤,實驗性)。 |
get_network_history |
Mac | 記錄每個已記住的 Wi-Fi 網路曾回應過的閘道器裝置數量與最後一次出現的時間,並偵測名稱高度相似的其他網路(Evil Twin 疑似克隆熱點)。也可用於確認是否曾經連線過某個網路。 |
get_vpn_status |
Linux (Client) | 回傳在不受信任網路下 VPN(WireGuard / Tailscale)的啟用設定、通道的實際連線狀態,以及防洩漏 kill switch 的武裝狀態。 |
get_link_guard_status |
Linux (Client) | 回傳 Link Guard(透過 DNS / TLS SNI / HTTP Host 檢測攔截釣魚與惡意網站)的啟用設定、運作模式(關閉 / 警告 / 封鎖)、允許清單,以及最近 7 天內的封鎖 / 警告事件。 |
get_air_gap_status |
Linux (Client) | 回傳緊急 Air-Gap 隔離(切斷所有通訊)目前是否啟動、觸發原因、距離自動解除的剩餘時間,以及所有被 SIGSTOP 凍結的行程。 |
get_sharing_services_status |
Linux (Client) | 回傳在連線至不受信任網路時自動停止 SSH、Samba、螢幕共用(GNOME Remote Desktop / VNC / xrdp)功能的設定,以及實際被停止與還原的服務狀態。 |
get_bluetooth_guard_status |
Linux (Client) | 回傳在不受信任網路下強制關閉可被探索狀態的藍牙防護設定,以及控制器的實際狀態(電源、可探索性、已連線裝置)。 |
get_usb_guard_status |
Linux (Client) | 回傳 USB 儲存裝置防護與 BadUSB 鍵盤防護(僅透過 evdev 抑制輸入,絕不會在核心層級停用裝置)的設定,以及已連線裝置與待核准裝置清單。 |
上述工具中,僅讀取本機狀態的工具(隔離 Vault、誘餌檔案、連接埠異常、執行階段威脅、通知記錄、事件時間軸、網路記錄、VPN / Link Guard / Air-Gap / 共用服務 / 藍牙 / USB 防護狀態等)即使在 RoamSwitch 因偵測到威脅而緊急切斷網路時仍可繼續運作。搭配本機 LLM,即可在斷線期間當場排查原因。
日常辦公與開發流程中的具體提問方式
涵蓋本機開發連接埠審計、公共 Wi-Fi 安全檢查、釣魚 URL 診斷等真實場景的提示詞與 AI 回覆範例。可一鍵複製提示詞直接發送給 AI。
本機伺服器與資料庫連接埠暴露審計
啟動 Next.js、Vite、Python、Docker、Redis 等服務時,讓 AI 審計是否存在意外綁定至 0.0.0.0 (全公開) 而暴露給區域網路的危險連接埠。
• 🚨 連接埠 3000 (node / Next.js): 正在
0.0.0.0:3000 上向外暴露• 🚨 連接埠 6379 (redis-server): 正在
0.0.0.0:6379 上向外暴露(未設置密碼認證,同一 Wi-Fi 內其他裝置可直接連線)• ✅ 連接埠 5432 (postgres): 綁定至
127.0.0.1:5432(僅限 localhost,安全)💡 修復建議: 在 Redis 設定中修改為
bind 127.0.0.1,Next.js 建議使用 npm run dev -- -H 127.0.0.1 啟動。外出連線公共 Wi-Fi 時的安全性檢查
在咖啡廳或飯店連線公共 Wi-Fi 後,讓 AI 進行全面的安全檢查,確認防火牆、隱身模式和 ARP 防護是否已正常啟用。
• 🛡️ 綜合得分: 88 / 100 (Grade: A-)
• 📡 網路判定: 不信任網路(外出模式 / 封包過濾已生效)
• ✅ 防火牆 / 隱身模式: 已開啟(阻斷外部探測封包)
• ✅ ARP 欺騙自動隔離: 已開啟(偵測到流量劫持時自動隔離)
• ⚠️ 改善建議: FileVault 磁碟加密未啟用,建議在「系統設定」中開啟。
可疑郵件與聊天連結的安全性檢測
收到冒充合作方的可疑郵件或 Slack/Discord 私訊中的 URL 時,完全在裝置端進行本機解析(Zero Telemetry),不將連結洩露給外部伺服器。
• 🚨 風險判定: Dangerous (危險 / 安全得分: 8/100)
• ❌ 偽裝知名品牌子網域: 偽裝為
apple.com,實際主網域為 login-auth-verify.xyz。• ❌ 高風險 TLD:
.xyz 是釣魚詐騙活動中高頻使用的一次性網域名稱後綴。• 🔒 Zero Telemetry: 本機計算,未向外部伺服器發送任何查詢資料。
• 🛑 處置建議: 切勿點擊該連結,請立即刪除郵件並回報。
編碼過程中的自主安全防護 (Safeguard)
讓 Claude Code 或 Antigravity 部署後端或執行測試套件時,自主呼叫 MCP 工具作為防護欄,確保未意外開放多餘連接埠。
1. 已在 8080 連接埠啟動 Fastify 後端服務。
2. 🔍 RoamSwitch MCP 驗證: 執行
get_exposed_ports 確認服務嚴格綁定在 127.0.0.1:8080 (僅 localhost),無區域網路暴露。3. 環境安全已確認,正在繼續執行整合測試。
工作開始前檢查與公司提交報告生成
為滿足企業安全合規要求、向 IT 部門回報或個人日常自檢,一鍵生成結構清晰的 Markdown 格式 Mac 安全檢查報告。
## 🛡️ Mac Security Health Report (2026-08-28)
- 綜合得分: 96 / 100 (Grade: A+)
- 核心防護狀態:
• FileVault: ✅ 已開啟 (APFS Encrypted)
• SIP (系統完整性保護): ✅ 已開啟
• 防火牆 / 隱身模式: ✅ 已開啟
• ARP 欺騙自動隔離: ✅ 已開啟
• DNS 威脅防護: ✅ 已開啟 (Quad9 Secure DNS)
- 待辦建議: 無(系統處於極佳安全狀態)USB、藍牙與下載防護等各項 Guard 狀態確認
確認未知 USB 儲存裝置接入防護、藍牙裝置監視、Web/郵件下載檔案防護及安全 DNS 切換等各項即時防線是否正常運作。
• 🛡️ 目前保護等級: Balanced (標準防護模式)
• ✅ USB 儲存防護: 運行中 (插入未登記 USB 時警示/阻斷)
• ✅ 藍牙防護: 運行中 (監視未配對裝置的靠近)
• ✅ Web/郵件下載保護: 運行中 (自動使用 ClamAV 掃描帶隔離屬性的檔案)
• ✅ DNS 威脅防護: 運行中 (自動攔截惡意 C2 與釣魚網域)
諮詢軟體用法、功能規格與通知處理建議
針對出現的通知警告或具體功能細節(封包過濾、FSEvents、ClamAV、USB防護等),讓AI基於內建官方知識庫提供權威解答與處置步驟。
• 🚪 攔截原因: 開發伺服器綁定了
0.0.0.0(全網公開),RoamSwitch已自動阻斷外部區域網路存取。• ⚙️ 安全處置:
1. 推薦(本機綁定): 使用
npm run dev -- -H 127.0.0.1 啟動,僅限本機存取。2. 需區域網路共用: 在RoamSwitch『連接埠審計』中放行3000連接埠。
• 🔍 事件分析: 區域網路內存在惡意設備偽造ARP封包冒充路由器閘道,企圖竊聽您的網路流量(中間人攻擊 / MITM)。
• 🛡️ RoamSwitch自動防護: 觸發ARP自動隔離,實施實體隔離(AirGap)以阻斷封包監聽。
• 🛑 後續建議: 切勿重新連線該公共Wi-Fi,請繼續在手機熱點下安全作業,建議在『日誌審計』中查看詳情。
• 🔌 推出原因: 為防止未授權資料外洩及惡意BadUSB韌體攻擊,系統已自動將其卸載。
• ⚙️ 安全登記步驟: 1. 從選單列RoamSwitch圖示開啟『設定』 → 2. 選擇『USB儲存保護』標籤頁 → 3. 點選『從已連接設備新增』並選中該隨身碟 → 4. 將權限設為『唯讀(推薦)』並儲存,下次連線即可安全掛載。
• ⚠️ 原因分析: 與負責封包過濾(PF)控制的特權守護程序
RoamSwitchHelper 之間的XPC通訊暫時中斷。• 🛠️ 恢復步驟:
1. 開啟終端機並執行以下指令重啟輔助程式:
sudo killall RoamSwitchHelper2. 重啟RoamSwitch應用程式。
3. 在macOS『系統設定』>『一般』>『登入項目與延伸功能』中確認已啟用
RoamSwitchHelper。Air-Gap 觸發後,使用本機 LLM + MCP 進行離線診斷
當偵測到勒索軟體等觸發 Air-Gap(緊急網路隔離)時,Claude Desktop 等雲端 AI 的通訊也會同時被切斷。但 RoamSwitch 的 MCP 伺服器僅透過本機行程通訊運作,只要搭配 Ollama 等本機 LLM,即使完全沒有外部網路也能繼續診斷。記錄異常偵測、竄改偵測、已知 CVE 比對皆完全在本機完成,因此正是在網路無法使用的這一刻才真正發揮作用。
• 🐛 誘餌檔案觸發: 14:32:07 偵測到
/var/www/decoy_invoice.pdf 遭加密,行程 suspicious_enc(PID 8823)已立即凍結並隔離• 🔌 連接埠監控(Port Anomaly Guard): 近期事件記錄中未發現新的自動阻擋 — 入侵途徑似乎僅為誘餌檔案觸發的這一起,未發現其他後門連接埠被開啟
• 📜 記錄關聯(異常偵測): 觸發前12分鐘起
sshd 驗證失敗激增(偵測到頻率激增,Z-score 5.2)——可能的入侵途徑• 🔒 竄改偵測(FIM): 約150處關鍵路徑均未發現竄改——未確認入侵擴散至系統層
• 📦 已知漏洞比對: 已與本機 CVE 對應表比對,相關套件未發現嚴重已知漏洞
💡 建議處置: 入侵很可能僅限於 Web 根目錄範圍內。在從備份還原之前,建議逐一檢查該目錄下的其他檔案。
關於 MCP 整合
Q. 真的完全不與外部通訊嗎?
A. 是的。MCP 伺服器是由 AI 用戶端透過標準輸入輸出(stdio)直接啟動的本機處理程序,完全不包含任何網路通訊程式碼。診斷結果也是在這台 Mac / Linux 上即時計算得出的。
Q. 非 Pro 版也能使用嗎?
A. 可以,免費版也能使用全部工具。不過各項自動防護的實際生效情況還取決於 Pro 版的授權狀態,因此工具端只能確認設定中的開關狀態。
Q. 支援哪些 AI 用戶端?
A. 只要用戶端支援 MCP(Model Context Protocol)的 stdio 傳輸方式,除上述之外的用戶端基本上也可以使用。已在 Claude Desktop、Claude Code、OpenAI Codex CLI、OpenCode、Antigravity 上驗證可用。
Q. 在 Antigravity 中出現 "Hook Failure" 等錯誤導致無法執行工具?
A. 可能是 Antigravity 中安裝的外部外掛程式(如 Google Cloud 遙測等)的 PreToolUse Hook 阻擋了工具執行。請開啟 ~/.gemini/config/plugins/.../hooks.json 並設定為 "enabled": false。
Q. 網路被完全阻斷時是否仍可進行AI查詢?
A. 如果您透過OpenCode等工具搭配Ollama或LM Studio使用本機模型,所有處理均在 Mac / Linux 本機完成,因此即使在RoamSwitch實施網路緊急實體隔離期間,亦能完全離線正常查詢。若使用的是雲端大模型(如Claude API),請在切換至手機熱點等安全網路後再進行查詢。