工具資訊
| 項目 | 值 |
|---|---|
| 名稱 | KRU |
| 類型 | 本地 MCP server + 憑證保險箱(桌面 App) |
| GitHub | omaekumiko2-create/kru |
| Stars | 126 |
| 語言 | Rust(Tauri) |
| 授權 | MIT |
| 安裝 | 從 GitHub Releases 下載對應平台的免安裝執行檔 |
解決什麼問題
你是否讓 Agent 跑一個部署或爬蟲任務,跑到一半它撞上登入頁、SSH 密碼提示,或需要帶 API key 的呼叫,然後就卡住了?這時候通常只有兩個選項:自己接手打密碼打斷心流,或是把密碼明文貼進對話讓 Agent 接著做——後者等於把一個真實密碼寫進 model context,如果用的是第三方 client 或 model endpoint,這串明文可能就這樣進了對方的日誌或訓練資料池。
KRU 是一個跑在本機的 stdio MCP server,先把密碼、API key、SSH 私鑰、TOTP 種子存進本機加密的保險箱(XChaCha20-Poly1305),再讓 Agent 用「項目名稱」而不是密碼本身去操作。Agent 呼叫 credential_fill 之類的工具說「幫我用 Production Server 這個項目登入」,KRU 在本地把值填進瀏覽器欄位、跑 SSH 指令、或組出帶認證的 HTTP request,密碼本身預設是「Hidden」——工具能用它,但它不出現在回傳給 model 的內容裡。每個欄位(帳號、密碼、金鑰、TOTP、自訂欄位)的可見性是分開開關的,不是整個項目一刀切。
適合場景:部署腳本需要 SSH 到正式機、Agent 要呼叫需要 API key 的服務、瀏覽器自動化撞到登入表單、任何你不想把明文密碼餵進對話歷史的重複性認證步驟。
快速上手
安裝
# 直接下載免安裝版本(推薦)
# Windows / macOS / Linux 分別對應 .zip / .app / .tar.gz
# https://github.com/omaekumiko2-create/kru/releases/latest
# 或從原始碼建置(需要 Rust 1.88+、Node.js 22+、Tauri 2 前置需求)
git clone https://github.com/omaekumiko2-create/kru
cd kru
npm install
npm run build
npm run portable
基本用法
打開 KRU 桌面 App 後,在 Settings → Agent connection 選你用的 client(Codex / Claude Code / Cursor / OpenCode / OpenClaw 可自動偵測並寫入設定),存一個項目(例如取名「Production Server」),接著在對話裡直接說:
Use "Production Server" in KRU MCP to deploy the current build and verify the service.
Agent 背後實際呼叫的 MCP 工具:
items_search(query?) → 找出可用的項目、欄位與可執行的動作
credential_fill → 把某個欄位的值填進目前聚焦的輸入框
ssh_run / ssh_upload / ssh_download → 用存好的密碼或私鑰跑指令、傳檔案
http_send → 帶著存好的認證送出 HTTP request
terminal_run → 跑一次性本機指令,可用 {{kru:欄位名稱}} 帶入隱藏值
進階用法
// 手動設定 stdio MCP(如果 client 沒被自動偵測到)
{
"mcpServers": {
"kru": {
"command": "/absolute/path/to/kru",
"args": ["mcp", "stdio"]
}
}
}
也可以直接印出設定範本:
kru config stdio-json
kru config stdio-toml
與現有工具的比較
| KRU | 密碼直接貼進對話 | 系統/瀏覽器密碼管理器(1Password CLI 等) | 環境變數 / .env | |
|---|---|---|---|---|
| 密碼明文不進入 model context | ✅ | ❌ | 部分(op run 仍會把值注入 process env) | ✅ |
| Agent 能自主決定何時用哪個憑證 | ✅(依項目名稱與動作自動比對) | ✅ | ❌(需你先手動注入) | ❌(需你先手動注入) |
| 支援 SSH / SFTP / HTTP 認證等多種動作 | ✅ | — | 部分 | ❌ |
| 需要雲端帳號或訂閱 | ❌ | — | 視方案而定 | ❌ |
| 欄位級(而非整項)可見性控制 | ✅ | ❌ | ❌ | ❌ |
注意事項
- 不是沙箱:README 自己講得很清楚,KRU 不判斷 Agent 下達的指令安不安全,也不防禦惡意 Agent 或已經被入侵的機器/瀏覽器——它只保證密碼明文不回傳進對話,不保證 Agent 用密碼做的事是你想要的事。
- SSH 不驗證主機指紋:KRU 支援密碼與私鑰認證,但不會 pin 或比對 SSH host fingerprint,中間人風險要自己另外處理。
- Visible 開關會真的洩漏明文:欄位預設 Hidden,但你可以手動切成 Visible 讓值回傳給 model——切了之後跟直接貼密碼沒兩樣,只是變成一個要記得關掉的開關。
- 專案還很新:2026-08-24 才建立,126 stars、6 forks,作者自己在發佈文裡也講「只用了自己一兩週」,介面和 MCP 工具介面可能還會變動。
今日收穫
一般對「Agent 不能碰密碼」的直覺解法是整條線切斷——不讓 Agent 碰任何憑證,全部人工介入。KRU 的做法是把「能不能用」跟「看不看得到明文」拆成兩個獨立開關:Agent 可以觸發登入、SSH、API 呼叫這些真實動作,但明文只在 KRU 本地那一步短暫存在,對 model 來說整個過程是「幫我做了這件事」而不是「這是密碼」。這個欄位級可見性設計,比起單純「全有或全無」的憑證存取模型,更貼近真實工作流程裡「我要你能用,但我不要你看到」的需求。
參考資料
- KRU GitHub repo:README、安裝方式、MCP 工具清單、安全模型、授權(MIT)、stars/forks 均出自官方 repo 與 GitHub API。
- KRU SECURITY.md:完整的安全模型與威脅邊界說明。
- 作者發佈貼文(Reddit r/mcp):專案動機與開發背景。
- Model Context Protocol 官方文件:MCP 協定介紹。
Loading...