開放能力概覽
工具 | 名稱 | 描述 | 支援說明 |
| 建立一個新的AgentBay沙箱並返回其ID。 | 支援 | |
| 擷取無影MCP運行時URL的命令,供使用者訪問該運行時使用。每次擷取的URL僅單次有效,使用後立即失效。 | 支援 | |
| 捕獲當前螢幕的全屏截圖,並返回一個可共用的URL。截圖會自動被處理並安全儲存。出於安全考慮,產生的URL將在64分鐘後到期。 | 支援 | |
| 任務完成後釋放資源。 | 支援 | |
| 在Linux平台上執行shell命令,支援設定逾時,執行完成後返回命令的輸出或錯誤資訊。 | 支援 | |
| 關閉頁面。 | 支援 | |
| 調整瀏覽器視窗大小。 | 支援 | |
| 返回所有控制台訊息。 | 支援 | |
| 處理對話方塊。 | 支援 | |
| 上傳一個或多個檔案。 | 支援 | |
| 安裝配置中指定的瀏覽器。如果收到瀏覽器未安裝的錯誤,請調用此工具。 | 支援 | |
| 在鍵盤上按下按鍵。 | 支援 | |
| 導航到URL。 | 支援 | |
| 返回到上一頁。 | 支援 | |
| 前進到下一頁。 | 支援 | |
| 返回自載入頁面以來的所有網路請求。 | 支援 | |
| 將頁面儲存為PDF。 | 支援 | |
| 截取當前頁面的螢幕截圖。不能基於截圖執行操作,需使用 | 支援 | |
| 捕獲當前頁面的可訪問性快照。 | 支援 | |
| 在網頁上執行點擊操作。 | 支援 | |
| 在兩個元素之間執行拖放操作。 | 支援 | |
| 滑鼠移至上方在頁面元素上。 | 支援 | |
| 在可編輯元素中輸入文本。 | 支援 | |
| 在下拉式功能表中選擇一個選項。 | 支援 | |
| 列出瀏覽器標籤頁。 | 支援 | |
| 開啟一個新標籤頁。 | 支援 | |
| 通過索引選擇標籤頁。 | 支援 | |
| 關閉一個標籤頁。 | 支援 | |
| 為指定情境產生Playwright測試。 | 支援 | |
| 等待文本出現或消失或指定時間過去。 | 支援 | |
| 執行 shell 命令並返回輸出或錯誤。 | 支援 | |
| 建立一個新目錄或確保目錄存在。可以在一次操作中建立多個嵌套目錄。如果目錄已存在,此操作將靜默成功。非常適合設定專案所需的目錄結構或確保所需路徑存在。僅在允許的目錄中工作。 | 支援 | |
| 對文字檔進行基於行的編輯。每次編輯會用新內容替換精確的行序列。返回 git 樣式的差異以顯示所做的更改。僅在允許的目錄中工作。 | 支援 | |
| 檢索檔案或目錄的詳細中繼資料。返回包括大小、建立時間、最後修改時間、許可權和類型的綜合資訊。此工具非常適合在不讀取實際內容的情況下瞭解檔案特性。僅在允許的目錄中工作。 | 支援 | |
| 從檔案系統讀取檔案的內容。可以指定一個可選的 | 支援 | |
| 同時讀取多個檔案的內容。這比逐個讀取檔案更高效,當你需要分析或比較多個檔案時。每個檔案的內容會以其路徑作為參考返回。單個檔案讀取失敗不會停止整個操作。僅在允許的目錄中工作。 | 支援 | |
| 擷取指定路徑中所有檔案和目錄的詳細列表。結果通過 [FILE] 和 [DIR] 首碼清楚地區分檔案和目錄。此工具對於瞭解目錄結構和尋找特定檔案非常有用。僅在允許的目錄中工作。 | 支援 | |
| 移動或重新命名檔案和目錄。可以在一次操作中將檔案移動到不同目錄並重新命名。如果目標已存在,操作將失敗。可以在不同目錄之間工作,並可用於在同一目錄內進行簡單重新命名。源和目標都必須在允許的目錄中。 | 支援 | |
| 遞迴搜尋匹配模式的檔案和目錄。從起始路徑搜尋所有子目錄。搜尋區分大小寫並匹配部分名稱。返回所有匹配項的完整路徑。非常適合在不知道確切位置時尋找檔案。僅在允許的目錄中搜尋。 | 支援 | |
| 建立一個新檔案或寫入現有檔案的內容。可以選擇完全覆蓋檔案或通過指定 | 支援 | |
| 在當前網頁上執行一個或多個操作,並阻塞直至所有操作完成。 該方法通過當前Agent立即執行所提供的操作,並在整個操作序列完成後返回最終結果。它能夠處理單個互動,也支援一系列連續操作。 | 支援 | |
| 捕獲當前網頁的螢幕截圖。 該工具提供靈活的截圖功能,支援整頁截圖、指定地區裁剪以及映像品質設定。結果以資料URL的形式返回(如 | 支援 | |
| 關閉當前瀏覽器代理會話。 這將終止由代理管理的瀏覽器進程,並釋放相關資源。 | 支援 | |
| 識別並定位可互動的使用者介面元素。 該工具可協助你發現和描述可進行互動的元素(例如按鈕或輸入框),以便在後續操作中使用。 當需要尋找可操作元素時,使用 若需提取結構化資料或常值內容,則應優先使用 | 支援 | |
| 根據提供的指令非同步從網頁中提取資訊,並按照指定的模式(schema)格式返回結構化的結果。 | 支援 | |
| 在當前網頁上非同步開始執行一個或多個操作,並返回一個用於進度輪詢的 與 | 支援 | |
| 擷取非同步作業任務的當前進度或最終結果。 該方法應配合之前調用 | 支援 | |
| 非同步函數,用於擷取extract任務的結果。 | 支援 | |
| 在瀏覽器中導航至指定的URL。 | 支援 |
System
名稱 | 描述 | 參數 |
| 建立一個新的AgentBay沙箱並返回其ID。 | |
| 擷取無影MCP運行時URL的命令,供使用者訪問該運行時使用。每次擷取的URL僅單次有效,使用後立即失效。 | |
| 捕獲當前螢幕的全屏截圖,並返回一個可共用的URL。截圖會自動被處理並安全儲存。出於安全考慮,產生的URL將在64分鐘後到期。 | |
| 任務完成後釋放資源。 | |
| 在Linux平台上執行shell命令,支援設定逾時,執行完成後返回命令的輸出或錯誤資訊。 | |
Playwright
名稱 | 描述 | 參數 |
| 關閉頁面 | |
| 調整瀏覽器視窗大小 | |
| 返回所有控制台訊息 | |
| 處理對話方塊 | |
| 上傳一個或多個檔案 | |
| 安裝配置中指定的瀏覽器。如果收到瀏覽器未安裝的錯誤,請調用此工具。 | |
| 在鍵盤上按下按鍵 | |
| 導航到 URL | |
| 返回到上一頁 | |
| 前進到下一頁 | |
| 返回自載入頁面以來的所有網路請求 | |
| 將頁面儲存為 PDF | |
| 截取當前頁面的螢幕截圖。不能基於截圖執行操作,需使用 browser_snapshot 進行操作。 | |
| 捕獲當前頁面的可訪問性快照。 | |
| 在網頁上執行點擊操作 | |
| 在兩個元素之間執行拖放操作 | |
| 滑鼠移至上方在頁面元素上 | |
| 在可編輯元素中輸入文本 | |
| 在下拉式功能表中選擇一個選項 | |
| 列出瀏覽器標籤頁 | |
| 開啟一個新標籤頁 | |
| 通過索引選擇標籤頁 | |
| 關閉一個標籤頁 | |
| 為指定情境產生 Playwright 測試 | |
| 等待文本出現或消失或指定時間過去 | |
Shell
名稱 | 描述 | 參數 |
| 執行 shell 命令並返回輸出或錯誤。 | |
FileSystem
名稱 | 描述 | 參數 |
| 建立一個新目錄或確保目錄存在。可以在一次操作中建立多個嵌套目錄。如果目錄已存在,此操作將靜默成功。非常適合設定專案所需的目錄結構或確保所需路徑存在。僅在允許的目錄中工作。 | |
| 對文字檔進行基於行的編輯。每次編輯會用新內容替換精確的行序列。返回 git 樣式的差異以顯示所做的更改。僅在允許的目錄中工作。 | |
| 檢索檔案或目錄的詳細中繼資料。返回包括大小、建立時間、最後修改時間、許可權和類型的綜合資訊。此工具非常適合在不讀取實際內容的情況下瞭解檔案特性。僅在允許的目錄中工作。 | |
| 從檔案系統讀取檔案的內容。可以指定一個可選的 'offset'(以位元組為單位)來從特定位置開始讀取,以及一個可選的 'length'(以位元組為單位)來限制要讀取的位元組數。如果 'length' 被省略或為 0,檔案將讀取到末尾。處理各種文本編碼,並在檔案無法讀取時提供詳細的錯誤資訊。僅在允許的目錄中工作。 | |
| 同時讀取多個檔案的內容。這比逐個讀取檔案更高效,當你需要分析或比較多個檔案時。每個檔案的內容會以其路徑作為參考返回。單個檔案讀取失敗不會停止整個操作。僅在允許的目錄中工作。 | |
| 擷取指定路徑中所有檔案和目錄的詳細列表。結果通過 [FILE] 和 [DIR] 首碼清楚地區分檔案和目錄。此工具對於瞭解目錄結構和尋找特定檔案非常有用。僅在允許的目錄中工作。 | |
| 移動或重新命名檔案和目錄。可以在一次操作中將檔案移動到不同目錄並重新命名。如果目標已存在,操作將失敗。可以在不同目錄之間工作,並可用於在同一目錄內進行簡單重新命名。源和目標都必須在允許的目錄中。 | |
| 遞迴搜尋匹配模式的檔案和目錄。從起始路徑搜尋所有子目錄。搜尋區分大小寫並匹配部分名稱。返回所有匹配項的完整路徑。非常適合在不知道確切位置時尋找檔案。僅在允許的目錄中搜尋。 | |
| 建立一個新檔案或寫入現有檔案的內容。可以選擇完全覆蓋檔案或通過指定 | |
PageUseAgent
名稱 | 描述 | 參數 |
| 在當前網頁上執行一個或多個操作,並阻塞直至所有操作完成。 該方法通過當前 Agent 立即執行所提供的操作,並在整個操作序列完成後返回最終結果。它能夠處理單個互動,也支援一系列連續操作。 | |
| 捕獲當前網頁的螢幕截圖。 該工具提供靈活的截圖功能,支援整頁截圖、指定地區裁剪以及映像品質設定。結果以資料 URL 的形式返回(如 | |
| 關閉當前瀏覽器代理會話。 這將終止由代理管理的瀏覽器進程,並釋放相關資源。 | |
| 識別並定位可互動的使用者介面元素。 該工具可協助你發現和描述可進行互動的元素(例如按鈕或輸入框),以便在後續操作中使用。 當需要尋找可操作元素時,使用 若需提取結構化資料或常值內容,則應優先使用 | |
| 根據提供的指令非同步從網頁中提取資訊,並按照指定的模式(schema)格式返回結構化的結果。 | |
| 在當前網頁上非同步開始執行一個或多個操作,並返回一個用於進度輪詢的 與 | |
| 擷取非同步作業任務的當前進度或最終結果。 該方法應配合之前調用 | |
| 非同步函數,用於擷取 extract 任務的結果。 | |
| 在瀏覽器中導航至指定的 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"
}
}
]
}
}