开放能力概览
工具 | 名称 | 描述 | 支持说明 |
| 关闭页面 | 支持 | |
| 调整浏览器窗口大小 | 支持 | |
| 返回所有控制台消息 | 支持 | |
| 处理对话框 | 支持 | |
| 上传一个或多个文件 | 支持 | |
| 安装配置中指定的浏览器。如果收到浏览器未安装的错误,请调用此工具。 | 支持 | |
| 在键盘上按下按键 | 支持 | |
| 导航到 URL | 支持 | |
| 返回到上一页 | 支持 | |
| 前进到下一页 | 支持 | |
| 返回自加载页面以来的所有网络请求 | 支持 | |
| 将页面保存为 PDF | 支持 | |
| 截取当前页面的屏幕截图。不能基于截图执行操作,需使用 | 支持 | |
| 捕获当前页面的可访问性快照。 | 支持 | |
| 在网页上执行点击操作 | 支持 | |
| 在两个元素之间执行拖放操作 | 支持 | |
| 鼠标悬停在页面元素上 | 支持 | |
| 在可编辑元素中输入文本 | 支持 | |
| 在下拉菜单中选择一个选项 | 支持 | |
| 列出浏览器标签页 | 支持 | |
| 打开一个新标签页 | 支持 | |
| 通过索引选择标签页 | 支持 | |
| 关闭一个标签页 | 支持 | |
| 为指定场景生成 Playwright 测试 | 支持 | |
| 等待文本出现或消失或指定时间过去 | 支持 | |
| 执行 shell 命令并返回输出或错误。 | 支持 | |
| 创建一个新目录或确保目录存在。可以在一次操作中创建多个嵌套目录。如果目录已存在,此操作将静默成功。非常适合设置项目所需的目录结构或确保所需路径存在。仅在允许的目录中工作。 | 支持 | |
| 对文本文件进行基于行的编辑。每次编辑会用新内容替换精确的行序列。返回 git 样式的差异以显示所做的更改。仅在允许的目录中工作。 | 支持 | |
| 检索文件或目录的详细元数据。返回包括大小、创建时间、最后修改时间、权限和类型的综合信息。此工具非常适合在不读取实际内容的情况下了解文件特性。仅在允许的目录中工作。 | 支持 | |
| 从文件系统读取文件的内容。可以指定一个可选的 | 支持 | |
| 同时读取多个文件的内容。这比逐个读取文件更高效,当你需要分析或比较多个文件时。每个文件的内容会以其路径作为参考返回。单个文件读取失败不会停止整个操作。仅在允许的目录中工作。 | 支持 | |
| 获取指定路径中所有文件和目录的详细列表。结果通过 [FILE] 和 [DIR] 前缀清楚地区分文件和目录。此工具对于了解目录结构和查找特定文件非常有用。仅在允许的目录中工作。 | 支持 | |
| 移动或重命名文件和目录。可以在一次操作中移动文件到不同目录并重命名。如果目标已存在,操作将失败。可以在不同目录之间工作,并可用于在同一目录内进行简单重命名。源和目标都必须在允许的目录中。 | 支持 | |
| 递归搜索匹配模式的文件和目录。从起始路径搜索所有子目录。搜索区分大小写并匹配部分名称。返回所有匹配项的完整路径。非常适合在不知道确切位置时查找文件。仅在允许的目录中搜索。 | 支持 | |
| 创建一个新文件或写入现有文件的内容。可以选择完全覆盖文件或通过指定 | 支持 |
Playwright
名称 | 描述 | 参数 |
| 关闭页面 |
|
| 调整浏览器窗口大小 |
|
| 返回所有控制台消息 |
|
| 处理对话框 |
|
| 上传一个或多个文件 |
|
| 安装配置中指定的浏览器。如果收到浏览器未安装的错误,请调用此工具。 |
|
| 在键盘上按下按键 |
|
| 导航到 URL |
|
| 返回到上一页 |
|
| 前进到下一页 |
|
| 返回自加载页面以来的所有网络请求 |
|
| 将页面保存为 PDF |
|
| 截取当前页面的屏幕截图。不能基于截图执行操作,需使用 browser_snapshot 进行操作。 |
|
| 捕获当前页面的可访问性快照。 |
|
| 在网页上执行点击操作 |
|
| 在两个元素之间执行拖放操作 |
|
| 鼠标悬停在页面元素上 |
|
| 在可编辑元素中输入文本 |
|
| 在下拉菜单中选择一个选项 |
|
| 列出浏览器标签页 |
|
| 打开一个新标签页 |
|
| 通过索引选择标签页 |
|
| 关闭一个标签页 |
|
| 为指定场景生成 Playwright 测试 |
|
| 等待文本出现或消失或指定时间过去 |
|
Shell
名称 | 描述 | 参数 |
| 执行 shell 命令并返回输出或错误。 |
|
FileSystem
名称 | 描述 | 参数 |
| 创建一个新目录或确保目录存在。可以在一次操作中创建多个嵌套目录。如果目录已存在,此操作将静默成功。非常适合设置项目所需的目录结构或确保所需路径存在。仅在允许的目录中工作。 |
|
| 对文本文件进行基于行的编辑。每次编辑会用新内容替换精确的行序列。返回 git 样式的差异以显示所做的更改。仅在允许的目录中工作。 |
|
| 检索文件或目录的详细元数据。返回包括大小、创建时间、最后修改时间、权限和类型的综合信息。此工具非常适合在不读取实际内容的情况下了解文件特性。仅在允许的目录中工作。 |
|
| 从文件系统读取文件的内容。可以指定一个可选的 'offset'(以字节为单位)来从特定位置开始读取,以及一个可选的 'length'(以字节为单位)来限制要读取的字节数。如果 'length' 被省略或为 0,文件将读取到末尾。处理各种文本编码,并在文件无法读取时提供详细的错误信息。仅在允许的目录中工作。 |
|
| 同时读取多个文件的内容。这比逐个读取文件更高效,当你需要分析或比较多个文件时。每个文件的内容会以其路径作为参考返回。单个文件读取失败不会停止整个操作。仅在允许的目录中工作。 |
|
| 获取指定路径中所有文件和目录的详细列表。结果通过 [FILE] 和 [DIR] 前缀清楚地区分文件和目录。此工具对于了解目录结构和查找特定文件非常有用。仅在允许的目录中工作。 |
|
| 移动或重命名文件和目录。可以在一次操作中移动文件到不同目录并重命名。如果目标已存在,操作将失败。可以在不同目录之间工作,并可用于在同一目录内进行简单重命名。源和目标都必须在允许的目录中。 |
|
| 递归搜索匹配模式的文件和目录。从起始路径搜索所有子目录。搜索区分大小写并匹配部分名称。返回所有匹配项的完整路径。非常适合在不知道确切位置时查找文件。仅在允许的目录中搜索。 |
|
| 创建一个新文件或写入现有文件的内容。可以选择完全覆盖文件或通过指定 |
|
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"
}
}
]
}
}