Skip to content

MCP 工具 ​

這些是 keymitt mcp 提供給代理的工具。佔位符的寫法:密碼是 {{secret:NAME}},同一個請求裡宣告的暫存檔是 {{file:ID}}。

list_secrets ​

沒有參數。回傳每組密碼的名稱、說明、允許的管道、程式與主機,以及它目前能不能用。絕不包含值。

run_with_secrets ​

直接執行程式(不經過 shell),並代入密碼。

參數型別說明
commandstring[]程式與參數。程式是 PATH 上的名稱或絕對路徑。可以包含 {{file:ID}},絕不能包含 {{secret:…}}
stdinstring寫進標準輸入。可以包含 {{secret:NAME}} 與 {{file:ID}}
envobject環境變數。每個值都必須剛好是一個 {{secret:NAME}} 佔位符
files{id, content}[]僅限擁有者的暫存檔,執行完刪除。內容可以包含密碼
cwdstring工作目錄,預設是伺服器的工作目錄
timeout_secsnumber預設 60,最多 600

以下情況會在跳出任何視窗之前就被拒絕:

  • 參數裡出現密碼;
  • 政策不允許這組密碼走這個管道,或給這支程式;
  • 環境變數可能劫持程式:PATH、HOME、載入器變數(LD_*、DYLD_*)、直譯器與工具家族(NODE_*、PYTHON*、GIT_*、 CARGO_*…)、代理伺服器、CA 憑證、SSLKEYLOGFILE、pager 與編輯器——或政策限制了可用的名稱;
  • 參數、stdin 或檔案超過 1 MiB,或宣告超過 16 個檔案;
  • 核准視窗的內容會超過 700 字;
  • 完全沒用到密碼——這種指令不需要 keymitt。

程式只會在 PATH 的絕對路徑目錄中尋找;在 macOS 與 Linux 上,它在自己的程序群組裡執行,結束時整個群組都會被終止。

回傳 exit_code、timed_out、stdout、stderr(各最多 256 KiB,已遮蔽)以及遮蔽次數 redactions。

json
{
  "command": ["curl", "-sS", "--config", "-"],
  "stdin": "url = \"https://api.example.com/me\"\nheader = \"Authorization: Bearer {{secret:api}}\""
}

http_request ​

由 keymitt 自己透過系統的 curl 送出請求,而且只送往政策對每一組用到的密碼都允許的主機。

參數型別說明
methodstringGET(預設)、HEAD、POST、PUT、PATCH、DELETE、OPTIONS
urlstring不能包含佔位符或帳密
headersobject值可以包含 {{secret:NAME}}
bodystring可以包含 {{secret:NAME}}
timeout_secsnumber預設 30,最多 300

不跟隨重新導向。標頭名稱與值都會檢查,換行字元無法注入其他標頭,傳輸用的標頭(Host、Content-Length、 Transfer-Encoding、Connection…)一律拒絕。內容上限 1 MiB。curl 以 --disable 啟動,你的 ~/.curlrc 無法加料。

回傳 status、headers、body(最多 256 KiB)、curl 失敗時的 error,以及遮蔽次數 redactions——全部已遮蔽。

json
{
  "url": "https://api.github.com/user",
  "headers": { "Authorization": "Bearer {{secret:github}}" }
}

read_file_redacted ​

參數型別說明
pathstring絕對路徑,或相對於伺服器工作目錄
max_bytesnumber預設 262144,最多 4 MiB

只能讀 MCP 伺服器工作目錄底下(除非那是家目錄或檔案系統根目錄)以及你設定的 read_roots。憑證存放處與金鑰檔一律拒絕,FIFO 與裝置檔也是。 遮蔽所有已登記密碼的值,以及任何看起來像憑證的東西:password、secret、token、api_key、client_secret、 dsn 這類鍵的值;私鑰區塊;URL 裡的密碼;以及常見的 token 格式(JWT、GitHub、GitLab、Slack、AWS、Google、npm、 OpenAI 與 Anthropic 的金鑰)。拒絕讀取二進位檔。不需要核准:沒有任何密碼離開 keymitt。

request_secret ​

參數型別說明
namestring建議的名稱:英數字、.、_、-
descriptionstring這是什麼密碼
intended_usestring會搭配哪些程式或主機使用

回傳一行 keymitt add … 指令讓代理轉給你。由你在自己的終端機執行;值永遠不會被打進對話裡。

以 MIT 或 Apache-2.0 授權釋出。