diff --git a/README.md b/README.md index 119303d..eb0f10a 100644 --- a/README.md +++ b/README.md @@ -180,65 +180,76 @@ Playwright MCP server supports following arguments. They can be provided in the ``` > npx @playwright/mcp@latest --help - --allowed-origins semicolon-separated list of origins to allow - the browser to request. Default is to allow - all. - --blocked-origins semicolon-separated list of origins to block - the browser from requesting. Blocklist is - evaluated before allowlist. If used without - the allowlist, requests not matching the - blocklist are still allowed. - --block-service-workers block service workers - --browser browser or chrome channel to use, possible - values: chrome, firefox, webkit, msedge. - --caps comma-separated list of additional - capabilities to enable, possible values: - vision, pdf. - --cdp-endpoint CDP endpoint to connect to. - --cdp-header CDP headers to send with the connect request, - multiple can be specified. - --config path to the configuration file. - --device device to emulate, for example: "iPhone 15" - --executable-path path to the browser executable. - --extension Connect to a running browser instance - (Edge/Chrome only). Requires the "Playwright - MCP Bridge" browser extension to be installed. - --headless run browser in headless mode, headed by - default - --host host to bind server to. Default is localhost. - Use 0.0.0.0 to bind to all interfaces. - --ignore-https-errors ignore https errors - --isolated keep the browser profile in memory, do not - save it to disk. - --image-responses whether to send image responses to the client. - Can be "allow" or "omit", Defaults to "allow". - --no-sandbox disable the sandbox for all process types that - are normally sandboxed. - --output-dir path to the directory for output files. - --port port to listen on for SSE transport. - --proxy-bypass comma-separated domains to bypass proxy, for - example ".com,chromium.org,.domain.com" - --proxy-server specify proxy server, for example - "http://myproxy:3128" or - "socks5://myproxy:8080" - --save-session Whether to save the Playwright MCP session - into the output directory. - --save-trace Whether to save the Playwright Trace of the - session into the output directory. - --secrets path to a file containing secrets in the - dotenv format - --storage-state path to the storage state file for isolated - sessions. - --timeout-action specify action timeout in milliseconds, - defaults to 5000ms - --timeout-navigation specify navigation timeout in milliseconds, - defaults to 60000ms - --user-agent specify user agent string - --user-data-dir path to the user data directory. If not - specified, a temporary directory will be - created. - --viewport-size specify browser viewport size in pixels, for - example "1280, 720" + --allowed-origins semicolon-separated list of origins to + allow the browser to request. Default is + to allow all. + --blocked-origins semicolon-separated list of origins to + block the browser from requesting. + Blocklist is evaluated before allowlist. + If used without the allowlist, requests + not matching the blocklist are still + allowed. + --block-service-workers block service workers + --browser browser or chrome channel to use, + possible values: chrome, firefox, + webkit, msedge. + --caps comma-separated list of additional + capabilities to enable, possible values: + vision, pdf. + --cdp-endpoint CDP endpoint to connect to. + --cdp-header CDP headers to send with the connect + request, multiple can be specified. + --config path to the configuration file. + --device device to emulate, for example: "iPhone + 15" + --executable-path path to the browser executable. + --extension Connect to a running browser instance + (Edge/Chrome only). Requires the + "Playwright MCP Bridge" browser + extension to be installed. + --grant-permissions List of permissions to grant to the + browser context, for example + "geolocation", "clipboard-read", + "clipboard-write". + --headless run browser in headless mode, headed by + default + --host host to bind server to. Default is + localhost. Use 0.0.0.0 to bind to all + interfaces. + --ignore-https-errors ignore https errors + --isolated keep the browser profile in memory, do + not save it to disk. + --image-responses whether to send image responses to the + client. Can be "allow" or "omit", + Defaults to "allow". + --no-sandbox disable the sandbox for all process + types that are normally sandboxed. + --output-dir path to the directory for output files. + --port port to listen on for SSE transport. + --proxy-bypass comma-separated domains to bypass proxy, + for example + ".com,chromium.org,.domain.com" + --proxy-server specify proxy server, for example + "http://myproxy:3128" or + "socks5://myproxy:8080" + --save-session Whether to save the Playwright MCP + session into the output directory. + --save-trace Whether to save the Playwright Trace of + the session into the output directory. + --secrets path to a file containing secrets in the + dotenv format + --storage-state path to the storage state file for + isolated sessions. + --timeout-action specify action timeout in milliseconds, + defaults to 5000ms + --timeout-navigation specify navigation timeout in + milliseconds, defaults to 60000ms + --user-agent specify user agent string + --user-data-dir path to the user data directory. If not + specified, a temporary directory will be + created. + --viewport-size specify browser viewport size in pixels, + for example "1280, 720" ``` @@ -503,7 +514,7 @@ http.createServer(async (req, res) => { - Title: Upload files - Description: Upload one or multiple files - Parameters: - - `paths` (array): The absolute paths to the files to upload. Can be a single file or multiple files. + - `paths` (array, optional): The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled. - Read-only: **false** @@ -722,48 +733,6 @@ http.createServer(async (req, res) => {
Verify (opt-in via --caps=verify) - - -- **browser_verify_element_visible** - - Title: Verify element visible - - Description: Verify element is visible on the page - - Parameters: - - `role` (string): ROLE of the element. Can be found in the snapshot like this: `- {ROLE} "Accessible Name":` - - `accessibleName` (string): ACCESSIBLE_NAME of the element. Can be found in the snapshot like this: `- role "{ACCESSIBLE_NAME}"` - - Read-only: **true** - - - -- **browser_verify_list_visible** - - Title: Verify list visible - - Description: Verify list is visible on the page - - Parameters: - - `element` (string): Human-readable list description - - `ref` (string): Exact target element reference that points to the list - - `items` (array): Items to verify - - Read-only: **true** - - - -- **browser_verify_text_visible** - - Title: Verify text visible - - Description: Verify text is visible on the page. Prefer browser_verify_element_visible if possible. - - Parameters: - - `text` (string): TEXT to verify. Can be found in the snapshot like this: `- role "Accessible Name": {TEXT}` or like this: `- text: {TEXT}` - - Read-only: **true** - - - -- **browser_verify_value** - - Title: Verify value - - Description: Verify element value - - Parameters: - - `type` (string): Type of the element - - `element` (string): Human-readable element description - - `ref` (string): Exact target element reference that points to the element - - `value` (string): Value to verify. For checkbox, use "true" or "false". - - Read-only: **true** -
diff --git a/package-lock.json b/package-lock.json index 69dbe5f..5ea0fb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,15 @@ "version": "0.0.37", "license": "Apache-2.0", "dependencies": { - "playwright": "1.56.0-alpha-2025-09-10", - "playwright-core": "1.56.0-alpha-2025-09-10" + "playwright": "1.56.0-alpha-2025-09-17", + "playwright-core": "1.56.0-alpha-2025-09-17" }, "bin": { "mcp-server-playwright": "cli.js" }, "devDependencies": { "@modelcontextprotocol/sdk": "^1.17.5", - "@playwright/test": "1.56.0-alpha-2025-09-10", + "@playwright/test": "1.56.0-alpha-2025-09-17", "@types/node": "^24.3.0", "zod-to-json-schema": "^3.24.6" }, @@ -50,13 +50,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.56.0-alpha-2025-09-10", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.0-alpha-2025-09-10.tgz", - "integrity": "sha512-A23DUBZqe4332NnYroG8OQCTku9lsGDdg64Pz83r26Tt04/nsR562tNlu74HrmfPNt9W88Px5Gev/Wk5f2wvnQ==", + "version": "1.56.0-alpha-2025-09-17", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.0-alpha-2025-09-17.tgz", + "integrity": "sha512-AzA5lm7escacg1nrZK5E6HPaPD9adZOfk/yJ9ZYidpuyxA6L9CnP5UoR2ndOj4FyYitEik+y38j4LY7lM04FTg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.56.0-alpha-2025-09-10" + "playwright": "1.56.0-alpha-2025-09-17" }, "bin": { "playwright": "cli.js" @@ -825,12 +825,12 @@ } }, "node_modules/playwright": { - "version": "1.56.0-alpha-2025-09-10", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0-alpha-2025-09-10.tgz", - "integrity": "sha512-7oGiB+gujhVGhnNcG4Eel2N/gJ6XGF836a/vbgF9ZkyhxTHnibbG3H2Q/hWh8slAVtp7nEbobLvmZuUrYBj5xg==", + "version": "1.56.0-alpha-2025-09-17", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0-alpha-2025-09-17.tgz", + "integrity": "sha512-3EvJPE+iMxHo9pm5vgcBRlfxHWw4qNxJBLqPiNQIJiigYBd4TF/1h5Zqk/EJd9VB4eI60t+N8W5jXQSlu3D18w==", "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.56.0-alpha-2025-09-10" + "playwright-core": "1.56.0-alpha-2025-09-17" }, "bin": { "playwright": "cli.js" @@ -843,9 +843,9 @@ } }, "node_modules/playwright-core": { - "version": "1.56.0-alpha-2025-09-10", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0-alpha-2025-09-10.tgz", - "integrity": "sha512-ToRfUbRUMOyMu6UsYbfNHl4QuSP5DpY8LWBRQ0rhWKpnIEREgQsvS7BOoySxssTnjm4Js0PpGxy98ng/SaZGBA==", + "version": "1.56.0-alpha-2025-09-17", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0-alpha-2025-09-17.tgz", + "integrity": "sha512-5Mk0sZSbEbYKk9seSO7Rbn4k2XkcQqnKp00nld4enDdxjoyLsBeGghvWAxGmK0Es+WFaBLJp0GOt/gKtj0NW4A==", "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" diff --git a/package.json b/package.json index 240a34a..7f433b2 100644 --- a/package.json +++ b/package.json @@ -33,15 +33,15 @@ } }, "dependencies": { - "playwright": "1.56.0-alpha-2025-09-10", - "playwright-core": "1.56.0-alpha-2025-09-10" + "playwright": "1.56.0-alpha-2025-09-17", + "playwright-core": "1.56.0-alpha-2025-09-17" }, "bin": { "mcp-server-playwright": "cli.js" }, "devDependencies": { "@modelcontextprotocol/sdk": "^1.17.5", - "@playwright/test": "1.56.0-alpha-2025-09-10", + "@playwright/test": "1.56.0-alpha-2025-09-17", "@types/node": "^24.3.0", "zod-to-json-schema": "^3.24.6" } diff --git a/update-readme.js b/update-readme.js index 15e4ac0..28a90a7 100644 --- a/update-readme.js +++ b/update-readme.js @@ -21,7 +21,7 @@ const path = require('path') const { zodToJsonSchema } = require('zod-to-json-schema') const { execSync } = require('child_process'); -const { allTools } = require('playwright/lib/mcp/browser/tools'); +const { browserTools } = require('playwright/lib/mcp/browser/tools'); const capabilities = { 'core': 'Core automation', @@ -33,7 +33,7 @@ const capabilities = { 'tracing': 'Tracing (opt-in via --caps=tracing)', }; -const toolsByCapability = Object.fromEntries(Object.entries(capabilities).map(([capability, title]) => [title, allTools.filter(tool => tool.capability === capability).sort((a, b) => a.schema.name.localeCompare(b.schema.name))])); +const toolsByCapability = Object.fromEntries(Object.entries(capabilities).map(([capability, title]) => [title, browserTools.filter(tool => tool.capability === capability).sort((a, b) => a.schema.name.localeCompare(b.schema.name))])); /** * @param {any} tool