全部產品
Search
文件中心

AgentBay:Browser Use

更新時間:Dec 23, 2025

開放能力概覽

工具

名稱

描述

支援說明

System

create_sandbox

建立一個新的AgentBay沙箱並返回其ID。

支援

get_sandbox_url

擷取無影MCP運行時URL的命令,供使用者訪問該運行時使用。每次擷取的URL僅單次有效,使用後立即失效。

支援

system_screenshot

捕獲當前螢幕的全屏截圖,並返回一個可共用的URL。截圖會自動被處理並安全儲存。出於安全考慮,產生的URL將在64分鐘後到期。

支援

kill_sandbox

任務完成後釋放資源。

支援

shell

在Linux平台上執行shell命令,支援設定逾時,執行完成後返回命令的輸出或錯誤資訊。

支援

Playwright

browser_close

關閉頁面。

支援

browser_resize

調整瀏覽器視窗大小。

支援

browser_console_messages

返回所有控制台訊息。

支援

browser_handle_dialog

處理對話方塊。

支援

browser_file_upload

上傳一個或多個檔案。

支援

browser_install

安裝配置中指定的瀏覽器。如果收到瀏覽器未安裝的錯誤,請調用此工具。

支援

browser_press_key

在鍵盤上按下按鍵。

支援

browser_navigate

導航到URL。

支援

browser_navigate_back

返回到上一頁。

支援

browser_navigate_forward

前進到下一頁。

支援

browser_network_requests

返回自載入頁面以來的所有網路請求。

支援

browser_pdf_save

將頁面儲存為PDF。

支援

browser_take_screenshot

截取當前頁面的螢幕截圖。不能基於截圖執行操作,需使用browser_snapshot進行操作。

支援

browser_snapshot

捕獲當前頁面的可訪問性快照。

支援

browser_click

在網頁上執行點擊操作。

支援

browser_drag

在兩個元素之間執行拖放操作。

支援

browser_hover

滑鼠移至上方在頁面元素上。

支援

browser_type

在可編輯元素中輸入文本。

支援

browser_select_option

在下拉式功能表中選擇一個選項。

支援

browser_tab_list

列出瀏覽器標籤頁。

支援

browser_tab_new

開啟一個新標籤頁。

支援

browser_tab_select

通過索引選擇標籤頁。

支援

browser_tab_close

關閉一個標籤頁。

支援

browser_generate_playwright_test

為指定情境產生Playwright測試。

支援

browser_wait_for

等待文本出現或消失或指定時間過去。

支援

Shell

shell

執行 shell 命令並返回輸出或錯誤。

支援

FileSystem

create_directory

建立一個新目錄或確保目錄存在。可以在一次操作中建立多個嵌套目錄。如果目錄已存在,此操作將靜默成功。非常適合設定專案所需的目錄結構或確保所需路徑存在。僅在允許的目錄中工作。

支援

edit_file

對文字檔進行基於行的編輯。每次編輯會用新內容替換精確的行序列。返回 git 樣式的差異以顯示所做的更改。僅在允許的目錄中工作。

支援

get_file_info

檢索檔案或目錄的詳細中繼資料。返回包括大小、建立時間、最後修改時間、許可權和類型的綜合資訊。此工具非常適合在不讀取實際內容的情況下瞭解檔案特性。僅在允許的目錄中工作。

支援

read_file

從檔案系統讀取檔案的內容。可以指定一個可選的offset(以位元組為單位)來從特定位置開始讀取,以及一個可選的length(以位元組為單位)來限制要讀取的位元組數。如果length被省略或為0,檔案將讀取到末尾。處理各種文本編碼,並在檔案無法讀取時提供詳細的錯誤資訊。僅在允許的目錄中工作。

支援

read_multiple_files

同時讀取多個檔案的內容。這比逐個讀取檔案更高效,當你需要分析或比較多個檔案時。每個檔案的內容會以其路徑作為參考返回。單個檔案讀取失敗不會停止整個操作。僅在允許的目錄中工作。

支援

list_directory

擷取指定路徑中所有檔案和目錄的詳細列表。結果通過 [FILE] 和 [DIR] 首碼清楚地區分檔案和目錄。此工具對於瞭解目錄結構和尋找特定檔案非常有用。僅在允許的目錄中工作。

支援

move_file

移動或重新命名檔案和目錄。可以在一次操作中將檔案移動到不同目錄並重新命名。如果目標已存在,操作將失敗。可以在不同目錄之間工作,並可用於在同一目錄內進行簡單重新命名。源和目標都必須在允許的目錄中。

支援

search_files

遞迴搜尋匹配模式的檔案和目錄。從起始路徑搜尋所有子目錄。搜尋區分大小寫並匹配部分名稱。返回所有匹配項的完整路徑。非常適合在不知道確切位置時尋找檔案。僅在允許的目錄中搜尋。

支援

write_file

建立一個新檔案或寫入現有檔案的內容。可以選擇完全覆蓋檔案或通過指定 mode參數追加到檔案末尾。使用 overwrite 模式(預設)在寫入前清除檔案,或使用 append模式將內容添加到檔案末尾。處理帶適當編碼的常值內容。僅在允許的目錄中工作。

支援

PageUseAgent

page_use_act

在當前網頁上執行一個或多個操作,並阻塞直至所有操作完成。

該方法通過當前Agent立即執行所提供的操作,並在整個操作序列完成後返回最終結果。它能夠處理單個互動,也支援一系列連續操作。

支援

page_use_screenshot

捕獲當前網頁的螢幕截圖。

該工具提供靈活的截圖功能,支援整頁截圖、指定地區裁剪以及映像品質設定。結果以資料URL的形式返回(如data:image/png;base64等),可直接用於前端應用中。

支援

page_use_close_session

關閉當前瀏覽器代理會話。

這將終止由代理管理的瀏覽器進程,並釋放相關資源。

支援

page_use_observe

識別並定位可互動的使用者介面元素。

該工具可協助你發現和描述可進行互動的元素(例如按鈕或輸入框),以便在後續操作中使用。

當需要尋找可操作元素時,使用observe工具。

若需提取結構化資料或常值內容,則應優先使用extract工具。

支援

page_use_extract_async

根據提供的指令非同步從網頁中提取資訊,並按照指定的模式(schema)格式返回結構化的結果。

支援

page_use_act_async

在當前網頁上非同步開始執行一個或多個操作,並返回一個用於進度輪詢的 task_id

page_use_act不同,該方法不會阻塞直至操作完成。它會立即啟動執行,返回唯一的task_id,並允許用戶端通過page_use_get_act_result輪詢擷取中間進度和最終結果。

支援

page_use_get_act_result

擷取非同步作業任務的當前進度或最終結果。

該方法應配合之前調用page_use_act_async所獲得的task_id使用。它將返回任務的目前狀態,如果執行已完成(is_done),則包含相應的結果內容。

支援

page_use_get_extract_result

非同步函數,用於擷取extract任務的結果。

支援

page_use_navigate

在瀏覽器中導航至指定的URL。

支援

System

名稱

描述

參數

create_sandbox

建立一個新的AgentBay沙箱並返回其ID。

{
  "type": "object",
  "properties": {},
  "required": []
}

get_sandbox_url

擷取無影MCP運行時URL的命令,供使用者訪問該運行時使用。每次擷取的URL僅單次有效,使用後立即失效。

{
  "type": "object",
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    }
  },
  "required": [
    "sandbox_id"
  ]
}

system_screenshot

捕獲當前螢幕的全屏截圖,並返回一個可共用的URL。截圖會自動被處理並安全儲存。出於安全考慮,產生的URL將在64分鐘後到期。

{
  "type": "object",
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    }
  },
  "required": [
    "sandbox_id"
  ]
}

kill_sandbox

任務完成後釋放資源。

{
  "type": "object",
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    }
  },
  "required": [
    "sandbox_id"
  ]
}

shell

在Linux平台上執行shell命令,支援設定逾時,執行完成後返回命令的輸出或錯誤資訊。

{
  "type": "object",
  "required": [
    "sandbox_id",
    "command",
    "timeout_ms"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "timeout_ms": {
      "default": 1000,
      "description": "Command execution timeout (unit: milliseconds). If not specified, the default value (such as 1000 milliseconds) is used",
      "type": "integer"
    },
    "command": {
      "description": "client input command",
      "type": "string"
    }
  }
}

Playwright

名稱

描述

參數

browser_close

關閉頁面

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_resize

調整瀏覽器視窗大小

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "width": {
        "type": "number",
        "description": "瀏覽器視窗的寬度"
      },
      "height": {
        "type": "number",
        "description": "瀏覽器視窗的高度"
      }
    },
    "required": ["width", "height"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_console_messages

返回所有控制台訊息

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_handle_dialog

處理對話方塊

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "accept": {
        "type": "boolean",
        "description": "是否接受對話方塊。"
      },
      "promptText": {
        "type": "string",
        "description": "在提示對話方塊中的提示文本。"
      }
    },
    "required": ["accept"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_file_upload

上傳一個或多個檔案

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "paths": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "要上傳的檔案的絕對路徑。可以是單個檔案或多個檔案。"
      }
    },
    "required": ["paths"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_install

安裝配置中指定的瀏覽器。如果收到瀏覽器未安裝的錯誤,請調用此工具。

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_press_key

在鍵盤上按下按鍵

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "key": {
        "type": "string",
        "description": "要按下的按鍵名稱或產生的字元,例如 `ArrowLeft` 或 `a`"
      }
    },
    "required": ["key"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_navigate

導航到 URL

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "url": {
        "type": "string",
        "description": "要導航到的 URL"
      }
    },
    "required": ["url"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_navigate_back

返回到上一頁

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_navigate_forward

前進到下一頁

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_network_requests

返回自載入頁面以來的所有網路請求

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_pdf_save

將頁面儲存為 PDF

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "filename": {
        "type": "string",
        "description": "儲存 PDF 的檔案名稱。如果未指定,預設為 `page-{timestamp}.pdf`。"
      }
    },
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_take_screenshot

截取當前頁面的螢幕截圖。不能基於截圖執行操作,需使用 browser_snapshot 進行操作。

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "raw": {
        "type": "boolean",
        "description": "是否以 PNG 格式返回無壓縮資料。預設值為 false,返回 JPEG 映像。"
      },
      "filename": {
        "type": "string",
        "description": "儲存截圖的檔案名稱。如果未指定,預設為 `page-{timestamp}.{png|jpeg}`。"
      },
      "element": {
        "type": "string",
        "description": "用於擷取截圖元素許可權的人類可讀元素描述。如果未提供,將截取視口。如果提供 element,必須同時提供 ref。"
      },
      "ref": {
        "type": "string",
        "description": "頁面快照中的目標元素引用。如果未提供,將截取視口。如果提供 ref,必須同時提供 element。"
      }
    },
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_snapshot

捕獲當前頁面的可訪問性快照。

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_click

在網頁上執行點擊操作

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "element": {
        "type": "string",
        "description": "用於擷取與元素互動許可權的人類可讀元素描述"
      },
      "ref": {
        "type": "string",
        "description": "頁面快照中的目標元素引用"
      }
    },
    "required": ["element", "ref"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_drag

在兩個元素之間執行拖放操作

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "startElement": {
        "type": "string",
        "description": "用於擷取與源元素互動許可權的人類可讀元素描述"
      },
      "startRef": {
        "type": "string",
        "description": "頁面快照中的源元素引用"
      },
      "endElement": {
        "type": "string",
        "description": "用於擷取與目標元素互動許可權的人類可讀元素描述"
      },
      "endRef": {
        "type": "string",
        "description": "頁面快照中的目標元素引用"
      }
    },
    "required": ["startElement", "startRef", "endElement", "endRef"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_hover

滑鼠移至上方在頁面元素上

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "element": {
        "type": "string",
        "description": "用於擷取與元素互動許可權的人類可讀元素描述"
      },
      "ref": {
        "type": "string",
        "description": "頁面快照中的目標元素引用"
      }
    },
    "required": ["element", "ref"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_type

在可編輯元素中輸入文本

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "element": {
        "type": "string",
        "description": "用於擷取與元素互動許可權的人類可讀元素描述"
      },
      "ref": {
        "type": "string",
        "description": "頁面快照中的目標元素引用"
      },
      "text": {
        "type": "string",
        "description": "要輸入到元素中的文本"
      },
      "submit": {
        "type": "boolean",
        "description": "是否提交輸入的文本(輸入後按斷行符號)"
      },
      "slowly": {
        "type": "boolean",
        "description": "是否逐個字元輸入。這對於觸發頁面中的按鍵處理常式很有用。預設情況下整個文本一次性填充。"
      }
    },
    "required": ["element", "ref", "text"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_select_option

在下拉式功能表中選擇一個選項

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "element": {
        "type": "string",
        "description": "用於擷取與元素互動許可權的人類可讀元素描述"
      },
      "ref": {
        "type": "string",
        "description": "頁面快照中的目標元素引用"
      },
      "values": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "要在下拉式功能表中選擇的值數組。可以是單個值或多個值。"
      }
    },
    "required": ["element", "ref", "values"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_tab_list

列出瀏覽器標籤頁

{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_tab_new

開啟一個新標籤頁

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "url": {
        "type": "string",
        "description": "新標籤頁中要導航到的 URL。如果未提供,新標籤頁將為空白。"
      }
    },
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_tab_select

通過索引選擇標籤頁

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "index": {
        "type": "number",
        "description": "要選擇的標籤頁索引"
      }
    },
    "required": ["index"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_tab_close

關閉一個標籤頁

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "index": {
        "type": "number",
        "description": "要關閉的標籤頁索引。如果未提供,關閉當前標籤頁。"
      }
    },
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_generate_playwright_test

為指定情境產生 Playwright 測試

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "description": "測試的名稱"
      },
      "description": {
        "type": "string",
        "description": "測試的描述"
      },
      "steps": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "測試的步驟"
      }
    },
    "required": ["name", "description", "steps"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

browser_wait_for

等待文本出現或消失或指定時間過去

{
  "inputSchema": {
    "type": "object",
    "properties": {
      "time": {
        "type": "number",
        "description": "等待的時間(秒)"
      },
      "text": {
        "type": "string",
        "description": "要等待的文本"
      },
      "textGone": {
        "type": "string",
        "description": "要等待消失的文本"
      }
    },
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

Shell

名稱

描述

參數

shell

執行 shell 命令並返回輸出或錯誤。

{
  "inputSchema": {
    "properties": {
      "command": {
        "description": "用戶端輸入的命令",
        "type": "string"
      },
      "timeout_ms": {
        "default": 1000,
        "description": "命令執行逾時時間(單位:毫秒)。如果未指定,預設值(例如 1000 毫秒)",
        "type": "integer"
      }
    },
    "required": ["command", "timeout_ms"],
    "type": "object"
  }
}

FileSystem

名稱

描述

參數

create_directory

建立一個新目錄或確保目錄存在。可以在一次操作中建立多個嵌套目錄。如果目錄已存在,此操作將靜默成功。非常適合設定專案所需的目錄結構或確保所需路徑存在。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "path": {
        "description": "要建立的目錄路徑。",
        "type": "string"
      }
    },
    "required": ["path"],
    "type": "object"
  }
}

edit_file

對文字檔進行基於行的編輯。每次編輯會用新內容替換精確的行序列。返回 git 樣式的差異以顯示所做的更改。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "dryRun": {
        "default": false,
        "description": "使用 git 樣式的差異格式預覽更改",
        "type": "boolean"
      },
      "edits": {
        "items": {
          "properties": {
            "newText": {
              "description": "要替換的新文本",
              "type": "string"
            },
            "oldText": {
              "description": "要搜尋的文本 - 必須完全符合",
              "type": "string"
            }
          },
          "required": ["oldText", "newText"],
          "type": "object"
        },
        "type": "array"
      },
      "path": {
        "description": "要編輯的檔案路徑。",
        "type": "string"
      }
    },
    "required": ["path", "edits"],
    "type": "object"
  }
}

get_file_info

檢索檔案或目錄的詳細中繼資料。返回包括大小、建立時間、最後修改時間、許可權和類型的綜合資訊。此工具非常適合在不讀取實際內容的情況下瞭解檔案特性。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "path": {
        "description": "要檢查的檔案或目錄路徑。",
        "type": "string"
      }
    },
    "required": ["path"],
    "type": "object"
  }
}

read_file

從檔案系統讀取檔案的內容。可以指定一個可選的 'offset'(以位元組為單位)來從特定位置開始讀取,以及一個可選的 'length'(以位元組為單位)來限制要讀取的位元組數。如果 'length' 被省略或為 0,檔案將讀取到末尾。處理各種文本編碼,並在檔案無法讀取時提供詳細的錯誤資訊。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "length": {
        "description": "要讀取的位元組數。如果省略或為 0,讀取到檔案末尾。",
        "minimum": 0,
        "type": "integer"
      },
      "offset": {
        "default": 0,
        "description": "從這個位元組位移量開始讀取。",
        "minimum": 0,
        "type": "integer"
      },
      "path": {
        "description": "要讀取的檔案路徑。",
        "type": "string"
      }
    },
    "required": ["path"],
    "type": "object"
  }
}

read_multiple_files

同時讀取多個檔案的內容。這比逐個讀取檔案更高效,當你需要分析或比較多個檔案時。每個檔案的內容會以其路徑作為參考返回。單個檔案讀取失敗不會停止整個操作。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "paths": {
        "description": "要讀取的檔案路徑數組。",
        "items": {
          "type": "string"
        },
        "type": "array"
      }
    },
    "required": ["paths"],
    "type": "object"
  }
}

list_directory

擷取指定路徑中所有檔案和目錄的詳細列表。結果通過 [FILE] 和 [DIR] 首碼清楚地區分檔案和目錄。此工具對於瞭解目錄結構和尋找特定檔案非常有用。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "path": {
        "description": "要列出的目錄路徑。",
        "type": "string"
      }
    },
    "required": ["path"],
    "type": "object"
  }
}

move_file

移動或重新命名檔案和目錄。可以在一次操作中將檔案移動到不同目錄並重新命名。如果目標已存在,操作將失敗。可以在不同目錄之間工作,並可用於在同一目錄內進行簡單重新命名。源和目標都必須在允許的目錄中。

{
  "inputSchema": {
    "properties": {
      "destination": {
        "description": "目標檔案或目錄路徑。",
        "type": "string"
      },
      "source": {
        "description": "源檔案或目錄路徑。",
        "type": "string"
      }
    },
    "required": ["source", "destination"],
    "type": "object"
  }
}

search_files

遞迴搜尋匹配模式的檔案和目錄。從起始路徑搜尋所有子目錄。搜尋區分大小寫並匹配部分名稱。返回所有匹配項的完整路徑。非常適合在不知道確切位置時尋找檔案。僅在允許的目錄中搜尋。

{
  "inputSchema": {
    "properties": {
      "excludePatterns": {
        "default": [],
        "description": "要排除的模式(可選)。",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "path": {
        "description": "要開始搜尋的目錄路徑。",
        "type": "string"
      },
      "pattern": {
        "description": "要匹配的模式。",
        "type": "string"
      }
    },
    "required": ["path", "pattern"],
    "type": "object"
  }
}

write_file

建立一個新檔案或寫入現有檔案的內容。可以選擇完全覆蓋檔案或通過指定 mode參數追加到檔案末尾。使用 overwrite 模式(預設)在寫入前清除檔案,或使用 append模式將內容添加到檔案末尾。處理帶適當編碼的常值內容。僅在允許的目錄中工作。

{
  "inputSchema": {
    "properties": {
      "content": {
        "description": "要寫入的內容。",
        "type": "string"
      },
      "mode": {
        "default": "overwrite",
        "description": "寫入模式:'overwrite' 清除檔案,'append' 添加到檔案末尾。",
        "enum": ["overwrite", "append"],
        "type": "string"
      },
      "path": {
        "description": "要寫入的檔案路徑。",
        "type": "string"
      }
    },
    "required": ["path", "content"],
    "type": "object"
  }
}

PageUseAgent

名稱

描述

參數

page_use_act

在當前網頁上執行一個或多個操作,並阻塞直至所有操作完成。

該方法通過當前 Agent 立即執行所提供的操作,並在整個操作序列完成後返回最終結果。它能夠處理單個互動,也支援一系列連續操作。

{
  "type": "object",
  "title": "page_use_actArguments",
  "required": [
    "sandbox_id",
    "action"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "dom_settle_timeout_ms": {
      "type": "integer",
      "title": "Dom Settle Timeout Ms"
    },
    "page_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Id"
    },
    "variables": {
      "additionalProperties": {
        "type": "string"
      },
      "type": "object",
      "title": "Variables"
    },
    "action": {
      "type": "string",
      "title": "Action"
    },
    "context_id": {
      "default": 0,
      "type": "integer",
      "title": "Context Id"
    },
    "iframe": {
      "type": "boolean",
      "title": "Iframe"
    },
    "timeout_ms": {
      "type": "integer",
      "title": "Timeout Ms"
    },
    "use_vision": {
      "default": false,
      "type": "boolean",
      "title": "Use Vision"
    }
  }
}

page_use_screenshot

捕獲當前網頁的螢幕截圖。

該工具提供靈活的截圖功能,支援整頁截圖、指定地區裁剪以及映像品質設定。結果以資料 URL 的形式返回(如data:image/png;base64等),可直接用於前端應用中。

{
  "type": "object",
  "title": "page_use_screenshotArguments",
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "page_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Id"
    },
    "full_page": {
      "default": true,
      "type": "boolean",
      "title": "Full Page"
    },
    "context_id": {
      "default": 0,
      "type": "integer",
      "title": "Context Id"
    },
    "clip": {
      "additionalProperties": {
        "type": "number"
      },
      "type": "object",
      "title": "Clip"
    },
    "timeout": {
      "type": "integer",
      "title": "Timeout"
    },
    "quality": {
      "default": 80,
      "type": "integer",
      "title": "Quality"
    }
  },
  "required": [
    "sandbox_id"
  ]
}

page_use_close_session

關閉當前瀏覽器代理會話。

這將終止由代理管理的瀏覽器進程,並釋放相關資源。

{
  "type": "object",
  "title": "page_use_close_sessionArguments",
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    }
  },
  "required": [
    "sandbox_id"
  ]
}

page_use_observe

識別並定位可互動的使用者介面元素。

該工具可協助你發現和描述可進行互動的元素(例如按鈕或輸入框),以便在後續操作中使用。

當需要尋找可操作元素時,使用observe工具。

若需提取結構化資料或常值內容,則應優先使用extract工具。

{
  "type": "object",
  "title": "page_use_observeArguments",
  "required": [
    "sandbox_id",
    "instruction"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "dom_settle_timeout_ms": {
      "type": "integer",
      "title": "Dom Settle Timeout Ms"
    },
    "page_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Id"
    },
    "instruction": {
      "type": "string",
      "title": "Instruction"
    },
    "context_id": {
      "default": 0,
      "type": "integer",
      "title": "Context Id"
    },
    "iframe": {
      "default": false,
      "type": "boolean",
      "title": "Iframe"
    },
    "use_vision": {
      "default": false,
      "type": "boolean",
      "title": "Use Vision"
    }
  }
}

page_use_extract_async

根據提供的指令非同步從網頁中提取資訊,並按照指定的模式(schema)格式返回結構化的結果。

{
  "type": "object",
  "title": "page_use_extract_asyncArguments",
  "required": [
    "sandbox_id",
    "instruction",
    "field_schema"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "dom_settle_timeout_ms": {
      "type": "integer",
      "title": "Dom Settle Timeout Ms"
    },
    "page_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Id"
    },
    "use_text_extract": {
      "default": false,
      "type": "boolean",
      "title": "Use Text Extract"
    },
    "field_schema": {
      "type": "string",
      "title": "Field Schema"
    },
    "instruction": {
      "type": "string",
      "title": "Instruction"
    },
    "selector": {
      "type": "string",
      "title": "Selector"
    },
    "context_id": {
      "default": 0,
      "type": "integer",
      "title": "Context Id"
    },
    "iframe": {
      "default": false,
      "type": "boolean",
      "title": "Iframe"
    },
    "use_vision": {
      "default": false,
      "type": "boolean",
      "title": "Use Vision"
    }
  }
}

page_use_act_async

在當前網頁上非同步開始執行一個或多個操作,並返回一個用於進度輪詢的 task_id

page_use_act不同,該方法不會阻塞直至操作完成。它會立即啟動執行,返回唯一的task_id,並允許用戶端通過page_use_get_act_result輪詢擷取中間進度和最終結果。

{
  "type": "object",
  "title": "page_use_act_asyncArguments",
  "required": [
    "sandbox_id",
    "action"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "dom_settle_timeout_ms": {
      "type": "integer",
      "title": "Dom Settle Timeout Ms"
    },
    "page_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Id"
    },
    "variables": {
      "additionalProperties": {
        "type": "string"
      },
      "type": "object",
      "title": "Variables"
    },
    "action": {
      "type": "string",
      "title": "Action"
    },
    "context_id": {
      "default": 0,
      "type": "integer",
      "title": "Context Id"
    },
    "iframe": {
      "type": "boolean",
      "title": "Iframe"
    },
    "timeout_ms": {
      "type": "integer",
      "title": "Timeout Ms"
    },
    "use_vision": {
      "default": false,
      "type": "boolean",
      "title": "Use Vision"
    }
  }
}

page_use_get_act_result

擷取非同步作業任務的當前進度或最終結果。

該方法應配合之前調用page_use_act_async所獲得的task_id使用。它將返回任務的目前狀態,如果執行已完成(is_done),則包含相應的結果內容。

{
  "type": "object",
  "title": "page_use_get_act_resultArguments",
  "required": [
    "sandbox_id",
    "task_id"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "task_id": {
      "type": "string",
      "title": "Task Id"
    }
  }
}

page_use_get_extract_result

非同步函數,用於擷取 extract 任務的結果。

{
  "type": "object",
  "title": "page_use_get_extract_resultArguments",
  "required": [
    "sandbox_id",
    "task_id"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "task_id": {
      "type": "string",
      "title": "Task Id"
    }
  }
}

page_use_get_extract_result

在瀏覽器中導航至指定的 URL。

{
  "type": "object",
  "title": "page_use_navigateArguments",
  "required": [
    "sandbox_id",
    "url"
  ],
  "properties": {
    "sandbox_id": {
      "type": "string",
      "title": "Sandbox Id",
      "description": "The sandbox ID is the identifier for the tool execution environment. This sandbox_id comes from the create_sandbox tool."
    },
    "url": {
      "type": "string",
      "title": "Url"
    }
  }
}

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#"
                }
            }
        ]
    },
    "cdp": {
        "tools": [
            {
                "name": "startChromeByCdp",
                "description": "Start the Chrome browser and create a CPD protocol websocket port for external debugging. The return value is the listening port.",
                "inputSchema": {
                    "type": "object",
                    "properties": {

                    },
                    "additionalProperties": false,
                    "$schema": "http://json-schema.org/draft-07/schema#"
                }
            },
            {
                "name": "stopChrome",
                "description": "Stop the Chrome browser",
                "inputSchema": {
                    "type": "object",
                    "properties": {

                    },
                    "additionalProperties": false,
                    "$schema": "http://json-schema.org/draft-07/schema#"
                }
            }
        ]
    },
    "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"
                }
            }
        ]
    },
    "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"
                }
            }
        ]
    }
}