chore: roll Playwright to latest (#1050)

This commit is contained in:
Pavel Feldman
2025-09-17 09:38:19 -07:00
committed by GitHub
parent c49dedb83f
commit 335315f158
4 changed files with 90 additions and 121 deletions

173
README.md
View File

@@ -180,65 +180,76 @@ Playwright MCP server supports following arguments. They can be provided in the
``` ```
> npx @playwright/mcp@latest --help > npx @playwright/mcp@latest --help
--allowed-origins <origins> semicolon-separated list of origins to allow --allowed-origins <origins> semicolon-separated list of origins to
the browser to request. Default is to allow allow the browser to request. Default is
all. to allow all.
--blocked-origins <origins> semicolon-separated list of origins to block --blocked-origins <origins> semicolon-separated list of origins to
the browser from requesting. Blocklist is block the browser from requesting.
evaluated before allowlist. If used without Blocklist is evaluated before allowlist.
the allowlist, requests not matching the If used without the allowlist, requests
blocklist are still allowed. not matching the blocklist are still
--block-service-workers block service workers allowed.
--browser <browser> browser or chrome channel to use, possible --block-service-workers block service workers
values: chrome, firefox, webkit, msedge. --browser <browser> browser or chrome channel to use,
--caps <caps> comma-separated list of additional possible values: chrome, firefox,
capabilities to enable, possible values: webkit, msedge.
vision, pdf. --caps <caps> comma-separated list of additional
--cdp-endpoint <endpoint> CDP endpoint to connect to. capabilities to enable, possible values:
--cdp-header <headers...> CDP headers to send with the connect request, vision, pdf.
multiple can be specified. --cdp-endpoint <endpoint> CDP endpoint to connect to.
--config <path> path to the configuration file. --cdp-header <headers...> CDP headers to send with the connect
--device <device> device to emulate, for example: "iPhone 15" request, multiple can be specified.
--executable-path <path> path to the browser executable. --config <path> path to the configuration file.
--extension Connect to a running browser instance --device <device> device to emulate, for example: "iPhone
(Edge/Chrome only). Requires the "Playwright 15"
MCP Bridge" browser extension to be installed. --executable-path <path> path to the browser executable.
--headless run browser in headless mode, headed by --extension Connect to a running browser instance
default (Edge/Chrome only). Requires the
--host <host> host to bind server to. Default is localhost. "Playwright MCP Bridge" browser
Use 0.0.0.0 to bind to all interfaces. extension to be installed.
--ignore-https-errors ignore https errors --grant-permissions <permissions...> List of permissions to grant to the
--isolated keep the browser profile in memory, do not browser context, for example
save it to disk. "geolocation", "clipboard-read",
--image-responses <mode> whether to send image responses to the client. "clipboard-write".
Can be "allow" or "omit", Defaults to "allow". --headless run browser in headless mode, headed by
--no-sandbox disable the sandbox for all process types that default
are normally sandboxed. --host <host> host to bind server to. Default is
--output-dir <path> path to the directory for output files. localhost. Use 0.0.0.0 to bind to all
--port <port> port to listen on for SSE transport. interfaces.
--proxy-bypass <bypass> comma-separated domains to bypass proxy, for --ignore-https-errors ignore https errors
example ".com,chromium.org,.domain.com" --isolated keep the browser profile in memory, do
--proxy-server <proxy> specify proxy server, for example not save it to disk.
"http://myproxy:3128" or --image-responses <mode> whether to send image responses to the
"socks5://myproxy:8080" client. Can be "allow" or "omit",
--save-session Whether to save the Playwright MCP session Defaults to "allow".
into the output directory. --no-sandbox disable the sandbox for all process
--save-trace Whether to save the Playwright Trace of the types that are normally sandboxed.
session into the output directory. --output-dir <path> path to the directory for output files.
--secrets <path> path to a file containing secrets in the --port <port> port to listen on for SSE transport.
dotenv format --proxy-bypass <bypass> comma-separated domains to bypass proxy,
--storage-state <path> path to the storage state file for isolated for example
sessions. ".com,chromium.org,.domain.com"
--timeout-action <timeout> specify action timeout in milliseconds, --proxy-server <proxy> specify proxy server, for example
defaults to 5000ms "http://myproxy:3128" or
--timeout-navigation <timeout> specify navigation timeout in milliseconds, "socks5://myproxy:8080"
defaults to 60000ms --save-session Whether to save the Playwright MCP
--user-agent <ua string> specify user agent string session into the output directory.
--user-data-dir <path> path to the user data directory. If not --save-trace Whether to save the Playwright Trace of
specified, a temporary directory will be the session into the output directory.
created. --secrets <path> path to a file containing secrets in the
--viewport-size <size> specify browser viewport size in pixels, for dotenv format
example "1280, 720" --storage-state <path> path to the storage state file for
isolated sessions.
--timeout-action <timeout> specify action timeout in milliseconds,
defaults to 5000ms
--timeout-navigation <timeout> specify navigation timeout in
milliseconds, defaults to 60000ms
--user-agent <ua string> specify user agent string
--user-data-dir <path> path to the user data directory. If not
specified, a temporary directory will be
created.
--viewport-size <size> specify browser viewport size in pixels,
for example "1280, 720"
``` ```
<!--- End of options generated section --> <!--- End of options generated section -->
@@ -503,7 +514,7 @@ http.createServer(async (req, res) => {
- Title: Upload files - Title: Upload files
- Description: Upload one or multiple files - Description: Upload one or multiple files
- Parameters: - 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** - Read-only: **false**
<!-- NOTE: This has been generated via update-readme.js --> <!-- NOTE: This has been generated via update-readme.js -->
@@ -722,48 +733,6 @@ http.createServer(async (req, res) => {
<details> <details>
<summary><b>Verify (opt-in via --caps=verify)</b></summary> <summary><b>Verify (opt-in via --caps=verify)</b></summary>
<!-- NOTE: This has been generated via update-readme.js -->
- **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**
<!-- NOTE: This has been generated via update-readme.js -->
- **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**
<!-- NOTE: This has been generated via update-readme.js -->
- **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**
<!-- NOTE: This has been generated via update-readme.js -->
- **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**
</details> </details>
<details> <details>

28
package-lock.json generated
View File

@@ -9,15 +9,15 @@
"version": "0.0.37", "version": "0.0.37",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright": "1.56.0-alpha-2025-09-10", "playwright": "1.56.0-alpha-2025-09-17",
"playwright-core": "1.56.0-alpha-2025-09-10" "playwright-core": "1.56.0-alpha-2025-09-17"
}, },
"bin": { "bin": {
"mcp-server-playwright": "cli.js" "mcp-server-playwright": "cli.js"
}, },
"devDependencies": { "devDependencies": {
"@modelcontextprotocol/sdk": "^1.17.5", "@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", "@types/node": "^24.3.0",
"zod-to-json-schema": "^3.24.6" "zod-to-json-schema": "^3.24.6"
}, },
@@ -50,13 +50,13 @@
} }
}, },
"node_modules/@playwright/test": { "node_modules/@playwright/test": {
"version": "1.56.0-alpha-2025-09-10", "version": "1.56.0-alpha-2025-09-17",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.0-alpha-2025-09-10.tgz", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.0-alpha-2025-09-17.tgz",
"integrity": "sha512-A23DUBZqe4332NnYroG8OQCTku9lsGDdg64Pz83r26Tt04/nsR562tNlu74HrmfPNt9W88Px5Gev/Wk5f2wvnQ==", "integrity": "sha512-AzA5lm7escacg1nrZK5E6HPaPD9adZOfk/yJ9ZYidpuyxA6L9CnP5UoR2ndOj4FyYitEik+y38j4LY7lM04FTg==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright": "1.56.0-alpha-2025-09-10" "playwright": "1.56.0-alpha-2025-09-17"
}, },
"bin": { "bin": {
"playwright": "cli.js" "playwright": "cli.js"
@@ -825,12 +825,12 @@
} }
}, },
"node_modules/playwright": { "node_modules/playwright": {
"version": "1.56.0-alpha-2025-09-10", "version": "1.56.0-alpha-2025-09-17",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0-alpha-2025-09-10.tgz", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0-alpha-2025-09-17.tgz",
"integrity": "sha512-7oGiB+gujhVGhnNcG4Eel2N/gJ6XGF836a/vbgF9ZkyhxTHnibbG3H2Q/hWh8slAVtp7nEbobLvmZuUrYBj5xg==", "integrity": "sha512-3EvJPE+iMxHo9pm5vgcBRlfxHWw4qNxJBLqPiNQIJiigYBd4TF/1h5Zqk/EJd9VB4eI60t+N8W5jXQSlu3D18w==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright-core": "1.56.0-alpha-2025-09-10" "playwright-core": "1.56.0-alpha-2025-09-17"
}, },
"bin": { "bin": {
"playwright": "cli.js" "playwright": "cli.js"
@@ -843,9 +843,9 @@
} }
}, },
"node_modules/playwright-core": { "node_modules/playwright-core": {
"version": "1.56.0-alpha-2025-09-10", "version": "1.56.0-alpha-2025-09-17",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0-alpha-2025-09-10.tgz", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0-alpha-2025-09-17.tgz",
"integrity": "sha512-ToRfUbRUMOyMu6UsYbfNHl4QuSP5DpY8LWBRQ0rhWKpnIEREgQsvS7BOoySxssTnjm4Js0PpGxy98ng/SaZGBA==", "integrity": "sha512-5Mk0sZSbEbYKk9seSO7Rbn4k2XkcQqnKp00nld4enDdxjoyLsBeGghvWAxGmK0Es+WFaBLJp0GOt/gKtj0NW4A==",
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"playwright-core": "cli.js" "playwright-core": "cli.js"

View File

@@ -33,15 +33,15 @@
} }
}, },
"dependencies": { "dependencies": {
"playwright": "1.56.0-alpha-2025-09-10", "playwright": "1.56.0-alpha-2025-09-17",
"playwright-core": "1.56.0-alpha-2025-09-10" "playwright-core": "1.56.0-alpha-2025-09-17"
}, },
"bin": { "bin": {
"mcp-server-playwright": "cli.js" "mcp-server-playwright": "cli.js"
}, },
"devDependencies": { "devDependencies": {
"@modelcontextprotocol/sdk": "^1.17.5", "@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", "@types/node": "^24.3.0",
"zod-to-json-schema": "^3.24.6" "zod-to-json-schema": "^3.24.6"
} }

View File

@@ -21,7 +21,7 @@ const path = require('path')
const { zodToJsonSchema } = require('zod-to-json-schema') const { zodToJsonSchema } = require('zod-to-json-schema')
const { execSync } = require('child_process'); const { execSync } = require('child_process');
const { allTools } = require('playwright/lib/mcp/browser/tools'); const { browserTools } = require('playwright/lib/mcp/browser/tools');
const capabilities = { const capabilities = {
'core': 'Core automation', 'core': 'Core automation',
@@ -33,7 +33,7 @@ const capabilities = {
'tracing': 'Tracing (opt-in via --caps=tracing)', '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 * @param {any} tool