開放能力概覽
工具 | 名稱 | 描述 | 支援說明 |
| 建立一個新的AgentBay沙箱並返回其ID。 | 支援 | |
| 當使用者需要訪問無影MCP運行時,用於擷取其運行時URL的命令。每次擷取的URL僅可使用一次,使用後即失效。 | 支援 | |
| 捕獲當前螢幕的全屏截圖,並返回一個可共用的URL。截圖會自動經過處理並安全儲存。產生的URL為安全起見,64分鐘後自動失效。 | 支援 | |
| 任務完成後釋放資源。 | 支援 | |
| 在Linux平台上執行shell命令,支援逾時控制,並返回命令輸出或錯誤資訊。 | 支援 | |
| 關閉頁面 | 支援 | |
| 調整瀏覽器視窗大小 | 支援 | |
| 返回所有控制台訊息 | 支援 | |
| 處理對話方塊 | 支援 | |
| 上傳一個或多個檔案 | 支援 | |
| 安裝配置中指定的瀏覽器。如果收到瀏覽器未安裝的錯誤,請調用此工具。 | 支援 | |
| 在鍵盤上按下按鍵 | 支援 | |
| 導航到 URL | 支援 | |
| 返回到上一頁 | 支援 | |
| 前進到下一頁 | 支援 | |
| 返回自載入頁面以來的所有網路請求 | 支援 | |
| 將頁面儲存為 PDF | 支援 | |
| 截取當前頁面的螢幕截圖。不能基於截圖執行操作,需使用 | 支援 | |
| 捕獲當前頁面的可訪問性快照。 | 支援 | |
| 在網頁上執行點擊操作 | 支援 | |
| 在兩個元素之間執行拖放操作 | 支援 | |
| 滑鼠移至上方在頁面元素上 | 支援 | |
| 在可編輯元素中輸入文本 | 支援 | |
| 在下拉式功能表中選擇一個選項 | 支援 | |
| 列出瀏覽器標籤頁 | 支援 | |
| 開啟一個新標籤頁 | 支援 | |
| 通過索引選擇標籤頁 | 支援 | |
| 關閉一個標籤頁 | 支援 | |
| 為指定情境產生 Playwright 測試 | 支援 | |
| 等待文本出現或消失或指定時間過去 | 支援 | |
| 用戶端輸入的命令。例如: | 支援 | |
| 命令執行逾時時間(單位:毫秒)。如果未指定,則使用預設值(1000毫秒)。 | 支援 | |
| 檢索系統中安裝的應用程式列表。支援通過開始菜單條目和案頭捷徑篩選,並可選擇排除系統應用。返回應用程式詳細資料,包括名稱、啟動命令、可選的停止命令和工作目錄。啟動命令可能包含預留位置(例如:%F、%U),這些預留位置遵循 Linux 標準案頭條目規則。在啟動應用程式時,這些預留位置應替換為適當的參數、檔案路徑或 URL。 | 支援 | |
| 使用提供的命令和可選工作目錄啟動指定應用程式。返回與啟動應用程式關聯的進程列表,包括進程名稱、PID 和啟動命令。 | 支援 | |
| 終止與指定進程名稱關聯的所有進程。請謹慎使用,因為這將強制終止指定進程。 | 支援 | |
| 終止通過進程 ID 識別的特定進程。請謹慎使用,因為這將強制終止指定進程。 | 支援 | |
| 使用提供的停止命令終止應用程式。請謹慎使用,因為這將強制終止指定進程。 | 支援 | |
| 列出所有具有可見視窗的應用程式,包括其關聯的進程資訊。返回具有可見視窗的進程列表,包括進程名稱、PID 和啟動命令。 | 支援 | |
| 建立一個新目錄或確保目錄存在。可以在一次操作中建立多個嵌套目錄。如果目錄已存在,此操作將靜默成功。非常適合設定專案所需的目錄結構或確保所需路徑存在。 說明 僅在允許的目錄中工作。 | 支援 | |
| 對文字檔進行基於行的編輯。每次編輯會用新內容替換精確的行序列。返回 git 樣式的差異以顯示所做的更改。 說明 僅在允許的目錄中工作。 | 支援 | |
| 檢索檔案或目錄的詳細中繼資料。返回包括大小、建立時間、最後修改時間、許可權和類型的綜合資訊。此工具非常適合在不讀取實際內容的情況下瞭解檔案特性。 說明 僅在允許的目錄中工作。 | 支援 | |
| 從檔案系統讀取檔案的內容。可以指定一個可選的 說明 僅在允許的目錄中工作。 | 支援 | |
| 同時讀取多個檔案的內容。這比逐個讀取檔案更高效,當你需要分析或比較多個檔案時。每個檔案的內容會以其路徑作為參考返回。單個檔案讀取失敗不會停止整個操作。 說明 僅在允許的目錄中工作。 | 支援 | |
| 擷取指定路徑中所有檔案和目錄的詳細列表。結果通過 [FILE] 和 [DIR] 首碼清楚地區分檔案和目錄。此工具對於瞭解目錄結構和尋找特定檔案非常有用。 說明 僅在允許的目錄中工作。 | 支援 | |
| 移動或重新命名檔案和目錄。可以在一次操作中移動檔案到不同目錄並重新命名。如果目標已存在,操作將失敗。可以在不同目錄之間工作,並可用於在同一目錄內進行簡單重新命名。 說明 源和目標都必須在允許的目錄中。 | 支援 | |
| 遞迴搜尋匹配模式的檔案和目錄。從起始路徑搜尋所有子目錄。搜尋區分大小寫並匹配部分名稱。返回所有匹配項的完整路徑。非常適合在不知道確切位置時尋找檔案。 說明 僅在允許的目錄中搜尋。 | 支援 | |
| 建立一個新檔案或寫入現有檔案的內容。可以選擇完全覆蓋檔案或通過指定 說明 僅在允許的目錄中工作。 | 支援 | |
| 列出所有根視窗及其相關的資訊。返回根視窗列表,包括視窗 ID、視窗標題、進程 ID 和進程名稱。 | 支援 | |
| 檢索當前使用中視窗的資訊。返回包括視窗 ID、標題、進程 ID (pid) 和進程名稱 (pname) 的詳細資料。 | 支援 | |
| 通過視窗 ID 啟用特定視窗。 | 支援 | |
| 通過視窗 ID 最大化特定視窗。 | 支援 | |
| 通過視窗 ID 最小化特定視窗。 | 支援 | |
| 通過視窗 ID 將特定視窗恢複到正常狀態。 | 支援 | |
| 通過視窗 ID 關閉特定視窗。 | 支援 | |
| 通過視窗 ID 調整特定視窗的大小。 | 支援 | |
| 通過視窗 ID 將特定視窗設定為全螢幕模式。 | 支援 | |
| 啟用或禁用焦點模式。啟用焦點模式後,只有當前活動進程及其子進程的視窗可以保留在前台。其他進程嘗試將其視窗帶到前台時,這些視窗將被關閉。 | 支援 | |
| 關閉當前的瀏覽器代理會話。 終止由代理管理的瀏覽器進程,並清理相關資源。 | 支援 | |
| 根據提供的指令從網頁中提取資訊,並按照指定的schema格式返回結構化結果。 | 支援 | |
| 在瀏覽器中導航到指定的URL。 | 支援 | |
| 用於擷取任務結果的非同步函數。 | 支援 | |
| 捕獲當前網頁的截圖。提供靈活的截圖功能,支援整頁截圖、指定地區裁剪以及映像品質設定。 返回結果為資料URL格式(data:image/png;base64,...),可直接用於前端應用。 | 支援 | |
| 識別並定位可互動的UI元素。 發現和描述可與之互動的元素(如按鈕或輸入框),供後續操作使用。 當需要尋找可操作元素時,需使用observe工具,若需提取結構化資料或常值內容,則應優先使用extract工具。 | 支援 | |
| 擷取非同步作業任務的當前進度或最終結果。 該方法需配合之前調用 | 支援 | |
| 根據提供的指令非同步地從網頁中提取資訊,並按照指定的schema格式返回結構化結果。 | 支援 | |
| 在當前網頁上非同步啟動一個或多個操作的執行,並返回一個 與 | 支援 | |
| 在當前網頁上執行一個或多個操作,阻塞直至所有操作完成。 該方法通過當前Agent立即執行指定的操作(或操作序列),並在整個操作序列完成後返回最終結果。它可處理單次互動,也可執行一系列有序步驟(即動作序列)。 調用將一直阻塞,直到滿足以下任一條件:
說明 與 若需監控或檢查每一步的執行結果,請使用非同步版本。 | 支援 |
System
System工具構建安全、隔離的雲端沙箱運行環境,支援動態建立和銷毀資源、執行命令、擷取可視化結果及受控存取權限。
名稱 | 描述 | 參數 |
| 建立一個新的AgentBay沙箱並返回其ID。 | |
| 當使用者需要訪問無影MCP運行時,用於擷取其運行時URL的命令。每次擷取的URL僅可使用一次,使用後即失效。 | |
| 捕獲當前螢幕的全屏截圖,並返回一個可共用的URL。截圖會自動經過處理並安全儲存。產生的URL為安全起見,64分鐘後自動失效。 | |
| 任務完成後釋放資源。 | |
| 在Linux平台上執行shell命令,支援逾時控制,並返回命令輸出或錯誤資訊。 | |
Playwright
Playwright工具憑藉其精細化的瀏覽器控制、豐富的元素互動能力及全面的調試支援,為開發人員和測試人員提供了端到端的自動化解決方案。其模組化設計允許靈活組合各類工具,能夠涵蓋從簡單頁面操作到複雜測試情境的各項需求,為高效構建和驗證現代Web應用測試流程提供關鍵支撐。
名稱 | 描述 | 參數 |
| 關閉頁面 | |
| 調整瀏覽器視窗大小 | |
| 返回所有控制台訊息 | |
| 處理對話方塊 | |
| 上傳一個或多個檔案 | |
| 安裝配置中指定的瀏覽器。如果收到瀏覽器未安裝的錯誤,請調用此工具。 | |
| 在鍵盤上按下按鍵 | |
| 導航到 URL | |
| 返回到上一頁 | |
| 前進到下一頁 | |
| 返回自載入頁面以來的所有網路請求。 | |
| 將頁面儲存為 PDF | |
| 截取當前頁面的螢幕截圖。不能基於截圖執行操作,需使用 browser_snapshot 進行操作。 | |
| 捕獲當前頁面的可訪問性快照 | |
| 在網頁上執行點擊操作 | |
| 在兩個元素之間執行拖放操作 | |
| 滑鼠移至上方在頁面元素上 | |
| 在可編輯元素中輸入文本 | |
| 在下拉式功能表中選擇一個選項 | |
| 列出瀏覽器標籤頁 | |
| 開啟一個新標籤頁 | |
| 通過索引選擇標籤頁 | |
| 關閉一個標籤頁 | |
| 為特定情境產生 Playwright 測試 | |
| 等待文本出現或消失或指定時間過去 | |
Shell
Shell工具可以用於在Linux平台中執行終端命令,並在逾時後返回輸出或錯誤。
名稱 | 描述 | 參數 |
| 用戶端輸入的命令。例如: | |
| 命令執行逾時時間(單位:毫秒)。如果未指定,則使用預設值(1000毫秒)。 |
Application
Application工具提供應用程式管理的核心功能,從應用的發現、啟動到停止操作,涵蓋了完整的應用生命週期管理。
名稱 | 描述 | 參數 |
| 檢索系統中安裝的應用程式列表。支援通過開始菜單條目和案頭捷徑篩選,並可選擇排除系統應用。返回應用程式詳細資料,包括名稱、啟動命令、可選的停止命令和工作目錄。啟動命令可能包含預留位置(例如:%F、%U),這些預留位置遵循 Linux 標準案頭條目規則。在啟動應用程式時,這些預留位置應替換為適當的參數、檔案路徑或 URL。 | |
| 使用提供的命令和可選工作目錄啟動指定應用程式。返回與啟動應用程式關聯的進程列表,包括進程名稱、PID 和啟動命令。 | |
| 終止與指定進程名稱關聯的所有進程。請謹慎使用,因為這將強制終止指定進程。 | |
| 終止通過進程 ID 識別的特定進程。請謹慎使用,因為這將強制終止指定進程。 | |
| 使用提供的停止命令終止應用程式。請謹慎使用,因為這將強制終止指定進程。 | |
| 列出所有具有可見視窗的應用程式,包括其關聯的進程資訊。返回具有可見視窗的進程列表,包括進程名稱、PID 和啟動命令。 | |
FileSystem
FileSystem工具可以通過MCP協議為Agent提供安全的檔案操作能力。支援檔案讀寫、目錄結構管理、跨路徑搜尋、中繼資料查詢等核心功能。通過沙箱化路徑許可權控制,可在限定範圍內執行安全可靠的檔案操作,提供精準內容編輯模式與試運行驗證機制,適用於自動化檔案管理情境。
名稱 | 描述 | 參數 |
| 建立一個新目錄或確保目錄存在。可以在一次操作中建立多個嵌套目錄。如果目錄已存在,此操作將靜默成功。非常適合設定專案所需的目錄結構或確保所需路徑存在。 說明 僅在允許的目錄中工作。 | |
| 對文字檔進行基於行的編輯。每次編輯會用新內容替換精確的行序列。返回 git 樣式的差異以顯示所做的更改。 說明 僅在允許的目錄中工作。 | |
| 檢索檔案或目錄的詳細中繼資料。返回包括大小、建立時間、最後修改時間、許可權和類型的綜合資訊。此工具非常適合在不讀取實際內容的情況下瞭解檔案特性。 說明 僅在允許的目錄中工作。 | |
| 從檔案系統讀取檔案的內容。可以指定一個可選的 說明 僅在允許的目錄中工作。 | |
| 同時讀取多個檔案的內容。這比逐個讀取檔案更高效,當你需要分析或比較多個檔案時。每個檔案的內容會以其路徑作為參考返回。單個檔案讀取失敗不會停止整個操作。 說明 僅在允許的目錄中工作。 | |
| 擷取指定路徑中所有檔案和目錄的詳細列表。結果通過 [FILE] 和 [DIR] 首碼清楚地區分檔案和目錄。此工具對於瞭解目錄結構和尋找特定檔案非常有用。 說明 僅在允許的目錄中工作。 | |
| 移動或重新命名檔案和目錄。可以在一次操作中移動檔案到不同目錄並重新命名。如果目標已存在,操作將失敗。可以在不同目錄之間工作,並可用於在同一目錄內進行簡單重新命名。 說明 源和目標都必須在允許的目錄中。 | |
| 遞迴搜尋匹配模式的檔案和目錄。從起始路徑搜尋所有子目錄。搜尋區分大小寫並匹配部分名稱。返回所有匹配項的完整路徑。非常適合在不知道確切位置時尋找檔案。 說明 僅在允許的目錄中搜尋。 | |
| 建立一個新檔案或寫入現有檔案的內容。可以選擇完全覆蓋檔案或通過指定 說明 僅在允許的目錄中工作。 | |
UI
UI工具主要用於視窗管理,提供一系列操作,以增強使用者在圖形化使用者介面(GUI)環境中的體驗與控制能力。其功能主要集中在視窗資訊檢索、視窗操作、視窗調整以及專註模式管理。
名稱 | 描述 | 參數 |
| 列出所有根視窗及其相關的資訊。返回根視窗列表,包括視窗 ID、視窗標題、進程 ID 和進程名稱。 | |
| 檢索當前使用中視窗的資訊。返回包括視窗 ID、標題、進程 ID (pid) 和進程名稱 (pname) 的詳細資料。 | |
| 通過視窗 ID 啟用特定視窗。 | |
| 通過視窗 ID 最大化特定視窗。 | |
| 通過視窗 ID 最小化特定視窗。 | |
| 通過視窗 ID 將特定視窗恢複到正常狀態。 | |
| 通過視窗 ID 關閉特定視窗。 | |
| 通過視窗 ID 調整特定視窗的大小。 | |
| 通過視窗 ID 將特定視窗設定為全螢幕模式。 | |
| 啟用或禁用焦點模式。啟用焦點模式後,只有當前活動進程及其子進程的視窗可以保留在前台。其他進程嘗試將其視窗帶到前台時,這些視窗將被關閉。 | |
PageUseAgent
PageUseAgent工具通過MCP協議為Agent提供對瀏覽器頁面的自動化操作能力,支援非同步/同步動作執行、互動元素識別、網頁資訊提取與截圖捕獲等功能;通過任務化執行模型和進度輪詢機制,可在受控環境中實現精準的頁面互動與資料擷取,適用於網頁自動化、RPA及動態內容採集等情境。
名稱 | 描述 | 參數 |
| 關閉當前的瀏覽器代理會話。 終止由代理管理的瀏覽器進程,並清理相關資源。 | |
| 根據提供的指令從網頁中提取資訊,並按照指定的schema格式返回結構化結果。 | |
| 在瀏覽器中導航到指定的URL。 | |
| 用於擷取任務結果的非同步函數。 | |
| 捕獲當前網頁的截圖。提供靈活的截圖功能,支援整頁截圖、指定地區裁剪以及映像品質設定。 返回結果為資料URL格式(data:image/png;base64,...),可直接用於前端應用。 | |
| 識別並定位可互動的UI元素。 發現和描述可與之互動的元素(如按鈕或輸入框),供後續操作使用。 當需要尋找可操作元素時,需使用observe工具,若需提取結構化資料或常值內容,則應優先使用extract工具。 | |
| 擷取非同步作業任務的當前進度或最終結果。 該方法需配合之前調用 | |
| 根據提供的指令非同步地從網頁中提取資訊,並按照指定的schema格式返回結構化結果。 | |
| 在當前網頁上非同步啟動一個或多個操作的執行,並返回一個 與 | |
page_use_act | 在當前網頁上執行一個或多個操作,阻塞直至所有操作完成。 該方法通過當前Agent立即執行指定的操作(或操作序列),並在整個操作序列完成後返回最終結果。它可處理單次互動,也可執行一系列有序步驟(即動作序列)。 調用將一直阻塞,直到滿足以下任一條件:
說明 與 若需監控或檢查每一步的執行結果,請使用非同步版本。 | |
MCP Tool List
{
"playwright": {
"tools": [
{
"name": "browser_close",
"description": "Close the page",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_resize",
"description": "Resize the browser window",
"inputSchema": {
"type": "object",
"properties": {
"width": {
"type": "number",
"description": "Width of the browser window"
},
"height": {
"type": "number",
"description": "Height of the browser window"
}
},
"required": [
"width",
"height"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_console_messages",
"description": "Returns all console messages",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_handle_dialog",
"description": "Handle a dialog",
"inputSchema": {
"type": "object",
"properties": {
"accept": {
"type": "boolean",
"description": "Whether to accept the dialog."
},
"promptText": {
"type": "string",
"description": "The text of the prompt in case of a prompt dialog."
}
},
"required": [
"accept"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_file_upload",
"description": "Upload one or multiple files",
"inputSchema": {
"type": "object",
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The absolute paths to the files to upload. Can be a single file or multiple files."
}
},
"required": [
"paths"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_install",
"description": "Install the browser specified in the config. Call this if you get an error about the browser not being installed.",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_press_key",
"description": "Press a key on the keyboard",
"inputSchema": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`"
}
},
"required": [
"key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_navigate",
"description": "Navigate to a URL",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL to navigate to"
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_navigate_back",
"description": "Go back to the previous page",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_navigate_forward",
"description": "Go forward to the next page",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_network_requests",
"description": "Returns all network requests since loading the page",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_pdf_save",
"description": "Save page as PDF",
"inputSchema": {
"type": "object",
"properties": {
"filename": {
"type": "string",
"description": "File name to save the pdf to. Defaults to `page-{timestamp}.pdf` if not specified."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_take_screenshot",
"description": "Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.",
"inputSchema": {
"type": "object",
"properties": {
"raw": {
"type": "boolean",
"description": "Whether to return without compression (in PNG format). Default is false, which returns a JPEG image."
},
"filename": {
"type": "string",
"description": "File name to save the screenshot to. Defaults to `page-{timestamp}.{png|jpeg}` if not specified."
},
"element": {
"type": "string",
"description": "Human-readable element description used to obtain permission to screenshot the element. If not provided, the screenshot will be taken of viewport. If element is provided, ref must be provided too."
},
"ref": {
"type": "string",
"description": "Exact target element reference from the page snapshot. If not provided, the screenshot will be taken of viewport. If ref is provided, element must be provided too."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_snapshot",
"description": "Capture accessibility snapshot of the current page, this is better than screenshot",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_click",
"description": "Perform click on a web page",
"inputSchema": {
"type": "object",
"properties": {
"element": {
"type": "string",
"description": "Human-readable element description used to obtain permission to interact with the element"
},
"ref": {
"type": "string",
"description": "Exact target element reference from the page snapshot"
}
},
"required": [
"element",
"ref"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_drag",
"description": "Perform drag and drop between two elements",
"inputSchema": {
"type": "object",
"properties": {
"startElement": {
"type": "string",
"description": "Human-readable source element description used to obtain the permission to interact with the element"
},
"startRef": {
"type": "string",
"description": "Exact source element reference from the page snapshot"
},
"endElement": {
"type": "string",
"description": "Human-readable target element description used to obtain the permission to interact with the element"
},
"endRef": {
"type": "string",
"description": "Exact target element reference from the page snapshot"
}
},
"required": [
"startElement",
"startRef",
"endElement",
"endRef"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_hover",
"description": "Hover over element on page",
"inputSchema": {
"type": "object",
"properties": {
"element": {
"type": "string",
"description": "Human-readable element description used to obtain permission to interact with the element"
},
"ref": {
"type": "string",
"description": "Exact target element reference from the page snapshot"
}
},
"required": [
"element",
"ref"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_type",
"description": "Type text into editable element",
"inputSchema": {
"type": "object",
"properties": {
"element": {
"type": "string",
"description": "Human-readable element description used to obtain permission to interact with the element"
},
"ref": {
"type": "string",
"description": "Exact target element reference from the page snapshot"
},
"text": {
"type": "string",
"description": "Text to type into the element"
},
"submit": {
"type": "boolean",
"description": "Whether to submit entered text (press Enter after)"
},
"slowly": {
"type": "boolean",
"description": "Whether to type one character at a time. Useful for triggering key handlers in the page. By default entire text is filled in at once."
}
},
"required": [
"element",
"ref",
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_select_option",
"description": "Select an option in a dropdown",
"inputSchema": {
"type": "object",
"properties": {
"element": {
"type": "string",
"description": "Human-readable element description used to obtain permission to interact with the element"
},
"ref": {
"type": "string",
"description": "Exact target element reference from the page snapshot"
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of values to select in the dropdown. This can be a single value or multiple values."
}
},
"required": [
"element",
"ref",
"values"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_tab_list",
"description": "List browser tabs",
"inputSchema": {
"type": "object",
"properties": {
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_tab_new",
"description": "Open a new tab",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL to navigate to in the new tab. If not provided, the new tab will be blank."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_tab_select",
"description": "Select a tab by index",
"inputSchema": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "The index of the tab to select"
}
},
"required": [
"index"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_tab_close",
"description": "Close a tab",
"inputSchema": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "The index of the tab to close. Closes current tab if not provided."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_generate_playwright_test",
"description": "Generate a Playwright test for given scenario",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the test"
},
"description": {
"type": "string",
"description": "The description of the test"
},
"steps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The steps of the test"
}
},
"required": [
"name",
"description",
"steps"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "browser_wait_for",
"description": "Wait for text to appear or disappear or a specified time to pass",
"inputSchema": {
"type": "object",
"properties": {
"time": {
"type": "number",
"description": "The time to wait in seconds"
},
"text": {
"type": "string",
"description": "The text to wait for"
},
"textGone": {
"type": "string",
"description": "The text to wait for to disappear"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
}
]
},
"oss": {
"tools": [
{
"name": "oss_env_init",
"description": "Create and initialize OSS environment variables with the specified endpoint, access key ID, access key secret, security token, and region. The temporary security credentials obtained from the STS (Security Token Service). For more information, see: https://www.alibabacloud.com/help/zh/oss/developer-reference/use-temporary-access-credentials-provided-by-sts-to-access-oss?spm=a2c4g.11186623.help-menu-search-31815.d_1#9ab17afd7cs4t .",
"inputSchema": {
"properties": {
"access_key_id": {
"description": "The Access Key ID for OSS authentication",
"type": "string"
},
"access_key_secret": {
"description": "The Access Key Secret for OSS authentication",
"type": "string"
},
"endpoint": {
"description": "The OSS service endpoint, e.g., If not specified, the default is https://oss-cn-hangzhou.aliyuncs.com",
"type": "string"
},
"region": {
"description": "The OSS region, e.g., cn-hangzhou. If not specified, the default is cn-hangzhou",
"type": "string"
},
"security_token": {
"description": "The Security Token for OSS authentication",
"type": "string"
}
},
"required": [
"access_key_id",
"access_key_secret",
"security_token"
],
"type": "object"
}
},
{
"name": "oss_upload",
"description": "Upload a local file or directory to the specified OSS bucket. If a directory is specified, it will be compressed into a zip file before uploading. The object name in OSS can be specified; if not, the file or zip name will be used by default. Note: You must call the oss_env_init tool to initialize OSS environment variables before using this tool.",
"inputSchema": {
"properties": {
"bucket": {
"description": "OSS bucket name",
"type": "string"
},
"object": {
"description": "Object path in OSS bucket, e.g., test/test.txt",
"type": "string"
},
"path": {
"description": "Local file or not empty directory full path to upload, e.g., /tmp/test.txt /tmp on Linux or C:/tmp/test.txt C:/tmp on Windows",
"type": "string"
}
},
"required": [
"bucket",
"object",
"path"
],
"type": "object"
}
},
{
"name": "oss_download",
"description": "Download an object from the specified OSS bucket to the given local path. If the parent directory does not exist, it will be created automatically. If the target file already exists, it will be overwritten. Note: You must call the oss_env_init tool to initialize OSS environment variables before using this tool.",
"inputSchema": {
"properties": {
"bucket": {
"description": "OSS bucket name",
"type": "string"
},
"object": {
"description": "Object path in OSS bucket, e.g., test/test.txt",
"type": "string"
},
"path": {
"description": "Local full path to save the downloaded file, e.g., /tmp/test.txt on Linux or C:/tmp/test.txt on Windows",
"type": "string"
}
},
"required": [
"bucket",
"object",
"path"
],
"type": "object"
}
},
{
"name": "oss_upload_annon",
"description": "Upload a local file or directory to the specified URL using HTTP PUT. If a directory is specified, it will be compressed into a zip file before uploading. If the upload target already exists, it will be overwritten.",
"inputSchema": {
"properties": {
"path": {
"description": "Local file or not empty directory full path to upload, e.g., /tmp/test.txt /tmp on Linux or C:/tmp/test.txt C:/tmp on Windows",
"type": "string"
},
"url": {
"description": "The HTTP/HTTPS URL to upload the file to",
"type": "string"
}
},
"required": [
"url",
"path"
],
"type": "object"
}
},
{
"name": "oss_download_annon",
"description": "Download a file from the specified URL to the given local path. If the parent directory does not exist, it will be created automatically. If the target file already exists, it will be overwritten.",
"inputSchema": {
"properties": {
"path": {
"description": "The full local file path to save the downloaded file, e.g., /tmp/test.txt on Linux or C:/tmp/test.txt on Windows",
"type": "string"
},
"url": {
"description": "The HTTP/HTTPS URL to download the file from",
"type": "string"
}
},
"required": [
"url",
"path"
],
"type": "object"
}
}
]
},
"shell": {
"tools": [
{
"name": "shell",
"description": "Executes an shell command with timeout and returns the output or an error on linux platform.",
"inputSchema": {
"properties": {
"command": {
"description": "client input command",
"type": "string"
},
"timeout_ms": {
"default": 1000,
"description": "Command execution timeout (unit: milliseconds). If not specified, the default value (such as 1000 milliseconds) is used",
"type": "integer"
}
},
"required": [
"command",
"timeout_ms"
],
"type": "object"
}
}
]
},
"application": {
"tools": [
{
"name": "get_installed_apps",
"description": "Retrieve a list of installed applications on the system. Supports filtering by Start Menu entries and Desktop shortcuts, with an option to exclude system applications. Returns application details including name, start command, optional stop command, and working directory. Start commands may include placeholders (e.g., %F, %U) that follow Linux standard desktop entry rules. These placeholders should be replaced with appropriate arguments, file paths, or URLs when starting the application.",
"inputSchema": {
"properties": {
"desktop": {
"default": false,
"description": "Include Desktop shortcuts (default: false)",
"type": "boolean"
},
"ignore_system_app": {
"default": true,
"description": "Exclude system applications (default: true)",
"type": "boolean"
},
"start_menu": {
"default": true,
"description": "Include Start Menu applications (default: true)",
"type": "boolean"
}
},
"required": [
],
"type": "object"
}
},
{
"name": "start_app",
"description": "Start a specified application using the provided command and optional working directory. Returns a list of processes associated with the launched application, including their process names, PIDs, and startup commands.\n\n",
"inputSchema": {
"properties": {
"activity": {
"description": "The activity name on android,like com.xxActivity or com.xx/com.xxActivity.",
"type": "string"
},
"start_cmd": {
"description": "The command to start the application. This can include placeholders like %F (file path) or %U (URL/file path), which must be replaced with actual values before execution.",
"type": "string"
},
"work_directory": {
"default": "",
"description": "The directory from which the application should be launched. If omitted, the default directory is used.",
"type": "string"
}
},
"required": [
"start_cmd"
],
"type": "object"
}
},
{
"name": "stop_app_by_pname",
"description": "Stop all processes associated with a specified process name. Use with caution as this will forcefully terminate the specified process.",
"inputSchema": {
"properties": {
"pname": {
"description": "The name of the process to terminate.",
"type": "string"
}
},
"required": [
"pname"
],
"type": "object"
}
},
{
"name": "stop_app_by_pid",
"description": "Terminate a specific process identified by its Process ID. Use with caution as this will forcefully terminate the specified process.",
"inputSchema": {
"properties": {
"pid": {
"description": "The Process ID of the process to terminate.",
"type": "integer"
}
},
"required": [
"pid"
],
"type": "object"
}
},
{
"name": "stop_app_by_cmd",
"description": "Terminate an application using the provided stop command. Use with caution as this will forcefully terminate the specified process.",
"inputSchema": {
"properties": {
"stop_cmd": {
"description": "The command used to terminate the application.",
"type": "string"
}
},
"required": [
"stop_cmd"
],
"type": "object"
}
},
{
"name": "list_visible_apps",
"description": "List all applications with visible windows, including their associated process information. Returns a list of processes that have visible windows, including their process names, PIDs, and startup commands.",
"inputSchema": {
"properties": {
},
"required": [
],
"type": "object"
}
}
]
},
"filesystem": {
"tools": [
{
"name": "create_directory",
"description": "Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.",
"inputSchema": {
"properties": {
"path": {
"description": "Directory path to create.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
{
"name": "edit_file",
"description": "Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.",
"inputSchema": {
"properties": {
"dryRun": {
"default": false,
"description": "Preview changes using git-style diff format",
"type": "boolean"
},
"edits": {
"items": {
"properties": {
"newText": {
"description": "Text to replace with",
"type": "string"
},
"oldText": {
"description": "Text to search for - must match exactly",
"type": "string"
}
},
"required": [
"oldText",
"newText"
],
"type": "object"
},
"type": "array"
},
"path": {
"description": "File path to edit.",
"type": "string"
}
},
"required": [
"path",
"edits"
],
"type": "object"
}
},
{
"name": "get_file_info",
"description": "Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.",
"inputSchema": {
"properties": {
"path": {
"description": "File or directory path to inspect.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
{
"name": "read_file",
"description": "Read the contents of a file from the file system. You can specify an optional 'offset' (in bytes) to start reading from a specific position, and an optional 'length' (in bytes) to limit how many bytes to read. If 'length' is omitted or 0, the file will be read to the end. Handles various text encodings and provides detailed error messages if the file cannot be read. Only works within allowed directories.",
"inputSchema": {
"properties": {
"length": {
"description": "Number of bytes to read. If omitted or 0, read to end of file.",
"minimum": 0,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Start reading from this byte offset.",
"minimum": 0,
"type": "integer"
},
"path": {
"description": "File path to read.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
{
"name": "read_multiple_files",
"description": "Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.",
"inputSchema": {
"properties": {
"paths": {
"description": "Array of file paths to read.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"paths"
],
"type": "object"
}
},
{
"name": "list_directory",
"description": "Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.",
"inputSchema": {
"properties": {
"path": {
"description": "Directory path to list.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
{
"name": "move_file",
"description": "Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.",
"inputSchema": {
"properties": {
"destination": {
"description": "Destination file or directory path.",
"type": "string"
},
"source": {
"description": "Source file or directory path.",
"type": "string"
}
},
"required": [
"source",
"destination"
],
"type": "object"
}
},
{
"name": "search_files",
"description": "Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-sensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.",
"inputSchema": {
"properties": {
"excludePatterns": {
"default": [
],
"description": "Patterns to exclude (optional).",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "Directory path to start search.",
"type": "string"
},
"pattern": {
"description": "Pattern to match.",
"type": "string"
}
},
"required": [
"path",
"pattern"
],
"type": "object"
}
},
{
"name": "write_file",
"description": "Create a new file or write content to an existing file. You can choose to completely overwrite the file or append to the end by specifying the 'mode' parameter. Use 'overwrite' mode (default) to clear the file before writing, or 'append' mode to add content to the end of the file. Handles text content with proper encoding. Only works within allowed directories.",
"inputSchema": {
"properties": {
"content": {
"description": "Content to write.",
"type": "string"
},
"mode": {
"default": "overwrite",
"description": "Write mode: 'overwrite' to clear file, 'append' to add to end.",
"enum": [
"overwrite",
"append"
],
"type": "string"
},
"path": {
"description": "File path to write.",
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
}
}
]
},
"ui": {
"tools": [
{
"name": "list_root_windows",
"description": "List all root windows with their associated information. Returns a list of root windows, including their window IDs, window titles, process IDs, and process names.",
"inputSchema": {
"properties": {
},
"required": [
],
"type": "object"
}
},
{
"name": "get_active_window",
"description": "Retrieve information about the currently active window. Returns details including window ID, title, process ID (pid), and process name (pname).",
"inputSchema": {
"properties": {
},
"required": [
],
"type": "object"
}
},
{
"name": "activate_window",
"description": "Activate a specific window by its window ID.",
"inputSchema": {
"properties": {
"window_id": {
"description": "The unique identifier of the window to activate.",
"type": "integer"
}
},
"required": [
"window_id"
],
"type": "object"
}
},
{
"name": "maximize_window",
"description": "Maximize a specific window by its window ID.",
"inputSchema": {
"properties": {
"window_id": {
"description": "The unique identifier of the window to maximize.",
"type": "integer"
}
},
"required": [
"window_id"
],
"type": "object"
}
},
{
"name": "minimize_window",
"description": "Minimize a specific window by its window ID.",
"inputSchema": {
"properties": {
"window_id": {
"description": "The unique identifier of the window to minimize.",
"type": "integer"
}
},
"required": [
"window_id"
],
"type": "object"
}
},
{
"name": "restore_window",
"description": "Restore a specific window to its normal state by its window ID.",
"inputSchema": {
"properties": {
"window_id": {
"description": "The unique identifier of the window to restore.",
"type": "integer"
}
},
"required": [
"window_id"
],
"type": "object"
}
},
{
"name": "close_window",
"description": "Close a specific window by its window ID.",
"inputSchema": {
"properties": {
"window_id": {
"description": "The unique identifier of the window to close.",
"type": "integer"
}
},
"required": [
"window_id"
],
"type": "object"
}
},
{
"name": "resize_window",
"description": "Resize a specific window by its window ID.",
"inputSchema": {
"properties": {
"height": {
"description": "The new height of the window (in pixels).",
"type": "integer"
},
"width": {
"description": "The new width of the window (in pixels).",
"type": "integer"
},
"window_id": {
"description": "The unique identifier of the window to resize.",
"type": "integer"
}
},
"required": [
"window_id",
"width",
"height"
],
"type": "object"
}
},
{
"name": "fullscreen_window",
"description": "Set a specific window to fullscreen mode by its window ID.",
"inputSchema": {
"properties": {
"window_id": {
"description": "The unique identifier of the window to set to fullscreen.",
"type": "integer"
}
},
"required": [
"window_id"
],
"type": "object"
}
},
{
"name": "focus_mode",
"description": "Enable or disable focus mode. When focus mode is enabled, only windows from the currently active process and its child processes are allowed to remain in the foreground. Attempts by other processes to bring their windows to the foreground will result in those windows being closed.",
"inputSchema": {
"properties": {
"on": {
"description": "Whether to enable (true) or disable (false) focus mode.",
"type": "boolean"
}
},
"required": [
"on"
],
"type": "object"
}
}
]
}
}