# 透過 MCP 公開的工具

連線的 agent 看得到哪些 Agenvoy 工具，以及新工具如何免重啟出現。

## 公開的工具

| 工具 | 用途 |
|---|---|
| `script_*` / `ext_*` | 使用者建立、內建與擴充的 script 工具（自磁碟自動探索）。`api_*` 工具移除於 v1.3.2，殘留的 `.json` 不會載入 |
| `tool_generate_guide` | 回傳工具建置契約。它從 `public_api_list` 開始：有合適的 API 就直接呼叫，只有找不到或使用者提供的 API 需要 key 時才建立 script 工具。`script_tool_generate_guide` 仍可呼叫，作為未列出的別名 |
| `public_api_list` | v1.3.2 起為內建工具（原為 `api_public_api_list`）。不帶 `category` 時回傳類別名稱；帶類別時回傳各免 key API 的名稱、說明、HTTPS 旗標與文件 URL |
| `edit_tool` | 建立或覆寫工具檔（`mode=write`）、在檔內做字串取代修正（`mode=patch`）、丟棄過時工具（`mode=remove`）；`tag` 為 `json`（tool.json）或 `script`（script.py） |
| `test_tool` | 以範例輸入在 sandbox 中執行 script 工具 |
| `store_secret` | 以遮蔽輸入取得憑證並直接寫入 keychain |
| `list_tools` | 列出 server 公開的所有工具 |

橋接工具（`public_api_list`、`edit_tool`、`test_tool`、`store_secret`）與 Agenvoy 內部 runtime 共用——相同 handler、相同 schema，透過 `toolRegister` 分派。無重複實作。

## Hot reload

Server 透過 `fsnotify` 監看工具目錄。當工具被建立、修改或刪除時，server 會自動重新掃描並送出 `notifications/tools/list_changed` — client 無需重連即可刷新工具清單。監看的目錄為 `tools/script/`、`<workDir>/.config/agenvoy/tools/script/` 與 `tools/.extension/script/`；監看 `api/` 目錄的行為移除於 v1.3.2。
