@playwright/mcp 0.0.24 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,25 +4,22 @@ A Model Context Protocol (MCP) server that provides browser automation capabilit
4
4
 
5
5
  ### Key Features
6
6
 
7
- - **Fast and lightweight**: Uses Playwright's accessibility tree, not pixel-based input.
8
- - **LLM-friendly**: No vision models needed, operates purely on structured data.
9
- - **Deterministic tool application**: Avoids ambiguity common with screenshot-based approaches.
7
+ - **Fast and lightweight**. Uses Playwright's accessibility tree, not pixel-based input.
8
+ - **LLM-friendly**. No vision models needed, operates purely on structured data.
9
+ - **Deterministic tool application**. Avoids ambiguity common with screenshot-based approaches.
10
10
 
11
- ### Use Cases
12
-
13
- - Web navigation and form-filling
14
- - Data extraction from structured content
15
- - Automated testing driven by LLMs
16
- - General-purpose browser interaction for agents
11
+ ### Requirements
12
+ - Node.js 18 or newer
13
+ - VS Code, Cursor, Windsurf, Claude Desktop or any other MCP client
17
14
 
18
15
  <!--
19
16
  // Generate using:
20
17
  node utils/generate-links.js
21
18
  -->
22
19
 
23
- [<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D) [<img alt="Install in VS Code Insiders" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D)
20
+ ### Getting started
24
21
 
25
- ### Example config
22
+ First, install the Playwright MCP server with your client. A typical configuration looks like this:
26
23
 
27
24
  ```js
28
25
  {
@@ -37,20 +34,12 @@ node utils/generate-links.js
37
34
  }
38
35
  ```
39
36
 
40
- ### Table of Contents
37
+ [<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D) [<img alt="Install in VS Code Insiders" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D)
41
38
 
42
- - [Installation in VS Code](#installation-in-vs-code)
43
- - [Command line](#command-line)
44
- - [User profile](#user-profile)
45
- - [Configuration file](#configuration-file)
46
- - [Running on Linux](#running-on-linux)
47
- - [Docker](#docker)
48
- - [Programmatic usage](#programmatic-usage)
49
- - [Tool modes](#tool-modes)
50
39
 
51
- ### Installation in VS Code
40
+ <details><summary><b>Install in VS Code</b></summary>
52
41
 
53
- You can install the Playwright MCP server using the VS Code CLI:
42
+ You can also install the Playwright MCP server using the VS Code CLI:
54
43
 
55
44
  ```bash
56
45
  # For VS Code
@@ -58,45 +47,173 @@ code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@la
58
47
  ```
59
48
 
60
49
  After installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.
50
+ </details>
61
51
 
62
- ### Command line
63
-
64
- The Playwright MCP server supports the following command-line options:
65
-
66
- - `--browser <browser>`: Browser or chrome channel to use. Possible values:
67
- - `chrome`, `firefox`, `webkit`, `msedge`
68
- - Chrome channels: `chrome-beta`, `chrome-canary`, `chrome-dev`
69
- - Edge channels: `msedge-beta`, `msedge-canary`, `msedge-dev`
70
- - Default: `chrome`
71
- - `--caps <caps>`: Comma-separated list of capabilities to enable, possible values: tabs, pdf, history, wait, files, install. Default is all.
72
- - `--cdp-endpoint <endpoint>`: CDP endpoint to connect to
73
- - `--executable-path <path>`: Path to the browser executable
74
- - `--headless`: Run browser in headless mode (headed by default)
75
- - `--device`: Emulate mobile device
76
- - `--user-data-dir <path>`: Path to the user data directory
77
- - `--port <port>`: Port to listen on for SSE transport
78
- - `--host <host>`: Host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.
79
- - `--allowed-origins <origins>`: Semicolon-separated list of origins to allow the browser to request. Default is to allow all. Origins matching both `--allowed-origins` and `--blocked-origins` will be blocked.
80
- - `--blocked-origins <origins>`: Semicolon-separated list of origins to block the browser to request. Origins matching both `--allowed-origins` and `--blocked-origins` will be blocked.
81
- - `--vision`: Run server that uses screenshots (Aria snapshots are used by default)
82
- - `--output-dir`: Directory for output files
83
- - `--config <path>`: Path to the configuration file
52
+ <details>
53
+ <summary><b>Install in Cursor</b></summary>
84
54
 
85
- ### User profile
55
+ Go to `Cursor Settings` -> `MCP` -> `Add new MCP Server`. Name to your liking, use `command` type with the command `npx @playwright/mcp`. You can also verify config or add command like arguments via clicking `Edit`.
56
+
57
+ ```js
58
+ {
59
+ "mcpServers": {
60
+ "playwright": {
61
+ "command": "npx",
62
+ "args": [
63
+ "@playwright/mcp@latest"
64
+ ]
65
+ }
66
+ }
67
+ }
68
+ ```
69
+ </details>
70
+
71
+ <details>
72
+ <summary><b>Install in Windsurf</b></summary>
73
+
74
+ Follow Windsuff MCP [documentation](https://docs.windsurf.com/windsurf/cascade/mcp). Use following configuration:
75
+
76
+ ```js
77
+ {
78
+ "mcpServers": {
79
+ "playwright": {
80
+ "command": "npx",
81
+ "args": [
82
+ "@playwright/mcp@latest"
83
+ ]
84
+ }
85
+ }
86
+ }
87
+ ```
88
+ </details>
89
+
90
+ <details>
91
+ <summary><b>Install in Claude Desktop</b></summary>
92
+
93
+ Follow the MCP install [guide](https://modelcontextprotocol.io/quickstart/user), use following configuration:
94
+
95
+ ```js
96
+ {
97
+ "mcpServers": {
98
+ "playwright": {
99
+ "command": "npx",
100
+ "args": [
101
+ "@playwright/mcp@latest"
102
+ ]
103
+ }
104
+ }
105
+ }
106
+ ```
107
+ </details>
108
+
109
+ ### Configuration
110
+
111
+ Playwright MCP server supports following arguments. They can be provided in the JSON configuration above, as a part of the `"args"` list:
86
112
 
87
- Playwright MCP will launch the browser with the new profile, located at
113
+ <!--- Options generated by update-readme.js -->
88
114
 
89
115
  ```
90
- - `%USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-profile` on Windows
91
- - `~/Library/Caches/ms-playwright/mcp-{channel}-profile` on macOS
92
- - `~/.cache/ms-playwright/mcp-{channel}-profile` on Linux
116
+ > npx @playwright/mcp@latest --help
117
+ --allowed-origins <origins> semicolon-separated list of origins to allow the
118
+ browser to request. Default is to allow all.
119
+ --blocked-origins <origins> semicolon-separated list of origins to block the
120
+ browser from requesting. Blocklist is evaluated
121
+ before allowlist. If used without the allowlist,
122
+ requests not matching the blocklist are still
123
+ allowed.
124
+ --block-service-workers block service workers
125
+ --browser <browser> browser or chrome channel to use, possible
126
+ values: chrome, firefox, webkit, msedge.
127
+ --caps <caps> comma-separated list of capabilities to enable,
128
+ possible values: tabs, pdf, history, wait, files,
129
+ install. Default is all.
130
+ --cdp-endpoint <endpoint> CDP endpoint to connect to.
131
+ --config <path> path to the configuration file.
132
+ --device <device> device to emulate, for example: "iPhone 15"
133
+ --executable-path <path> path to the browser executable.
134
+ --headless run browser in headless mode, headed by default
135
+ --host <host> host to bind server to. Default is localhost. Use
136
+ 0.0.0.0 to bind to all interfaces.
137
+ --ignore-https-errors ignore https errors
138
+ --isolated keep the browser profile in memory, do not save
139
+ it to disk.
140
+ --no-image-responses do not send image responses to the client.
141
+ --no-sandbox disable the sandbox for all process types that
142
+ are normally sandboxed.
143
+ --output-dir <path> path to the directory for output files.
144
+ --port <port> port to listen on for SSE transport.
145
+ --proxy-bypass <bypass> comma-separated domains to bypass proxy, for
146
+ example ".com,chromium.org,.domain.com"
147
+ --proxy-server <proxy> specify proxy server, for example
148
+ "http://myproxy:3128" or "socks5://myproxy:8080"
149
+ --save-trace Whether to save the Playwright Trace of the
150
+ session into the output directory.
151
+ --storage-state <path> path to the storage state file for isolated
152
+ sessions.
153
+ --user-agent <ua string> specify user agent string
154
+ --user-data-dir <path> path to the user data directory. If not
155
+ specified, a temporary directory will be created.
156
+ --viewport-size <size> specify browser viewport size in pixels, for
157
+ example "1280, 720"
158
+ --vision Run server that uses screenshots (Aria snapshots
159
+ are used by default)
160
+ ```
161
+
162
+ <!--- End of options generated section -->
163
+
164
+ ### User profile
165
+
166
+ You can run Playwright MCP with persistent profile like a regular browser (default), or in the isolated contexts for the testing sessions.
167
+
168
+ **Persistent profile**
169
+
170
+ All the logged in information will be stored in the persistent profile, you can delete it between sessions if you'd like to clear the offline state.
171
+ Persistent profile is located at the following locations and you can override it with the `--user-data-dir` argument.
172
+
173
+ ```bash
174
+ # Windows
175
+ %USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-profile
176
+
177
+ # macOS
178
+ - ~/Library/Caches/ms-playwright/mcp-{channel}-profile
179
+
180
+ # Linux
181
+ - ~/.cache/ms-playwright/mcp-{channel}-profile
93
182
  ```
94
183
 
95
- All the logged in information will be stored in that profile, you can delete it between sessions if you'd like to clear the offline state.
184
+ **Isolated**
185
+
186
+ In the isolated mode, each session is started in the isolated profile. Every time you ask MCP to close the browser,
187
+ the session is closed and all the storage state for this session is lost. You can provide initial storage state
188
+ to the browser via the config's `contextOptions` or via the `--storage-state` argument. Learn more about the storage
189
+ state [here](https://playwright.dev/docs/auth).
190
+
191
+ ```js
192
+ {
193
+ "mcpServers": {
194
+ "playwright": {
195
+ "command": "npx",
196
+ "args": [
197
+ "@playwright/mcp@latest",
198
+ "--isolated",
199
+ "--storage-state={path/to/storage.json}
200
+ ]
201
+ }
202
+ }
203
+ }
204
+ ```
96
205
 
97
206
  ### Configuration file
98
207
 
99
- The Playwright MCP server can be configured using a JSON configuration file. Here's the complete configuration format:
208
+ The Playwright MCP server can be configured using a JSON configuration file. You can specify the configuration file
209
+ using the `--config` command line option:
210
+
211
+ ```bash
212
+ npx @playwright/mcp@latest --config path/to/config.json
213
+ ```
214
+
215
+ <details>
216
+ <summary>Configuration file schema</summary>
100
217
 
101
218
  ```typescript
102
219
  {
@@ -105,6 +222,9 @@ The Playwright MCP server can be configured using a JSON configuration file. Her
105
222
  // Browser type to use (chromium, firefox, or webkit)
106
223
  browserName?: 'chromium' | 'firefox' | 'webkit';
107
224
 
225
+ // Keep the browser profile in memory, do not save it to disk.
226
+ isolated?: boolean;
227
+
108
228
  // Path to user data directory for browser profile persistence
109
229
  userDataDir?: string;
110
230
 
@@ -170,14 +290,9 @@ The Playwright MCP server can be configured using a JSON configuration file. Her
170
290
  noImageResponses?: boolean;
171
291
  }
172
292
  ```
293
+ </details>
173
294
 
174
- You can specify the configuration file using the `--config` command line option:
175
-
176
- ```bash
177
- npx @playwright/mcp@latest --config path/to/config.json
178
- ```
179
-
180
- ### Running on Linux
295
+ ### Standalone MCP server
181
296
 
182
297
  When running headed browser on system w/o display or from worker processes of the IDEs,
183
298
  run the MCP server from environment with the DISPLAY and pass the `--port` flag to enable SSE transport.
@@ -198,7 +313,8 @@ And then in MCP client config, set the `url` to the SSE endpoint:
198
313
  }
199
314
  ```
200
315
 
201
- ### Docker
316
+ <details>
317
+ <summary><b>Docker</b></summary>
202
318
 
203
319
  **NOTE:** The Docker implementation only supports headless chromium at the moment.
204
320
 
@@ -218,8 +334,10 @@ You can build the Docker image yourself.
218
334
  ```
219
335
  docker build -t mcr.microsoft.com/playwright/mcp .
220
336
  ```
337
+ </details>
221
338
 
222
- ### Programmatic usage
339
+ <details>
340
+ <summary><b>Programmatic usage</b></summary>
223
341
 
224
342
  ```js
225
343
  import http from 'http';
@@ -238,8 +356,9 @@ http.createServer(async (req, res) => {
238
356
  // ...
239
357
  });
240
358
  ```
359
+ </details>
241
360
 
242
- ### Tool modes
361
+ ### Tools
243
362
 
244
363
  The tools are available in two modes:
245
364
 
@@ -265,10 +384,10 @@ To use Vision Mode, add the `--vision` flag when starting the server:
265
384
  Vision Mode works best with the computer use models that are able to interact with elements using
266
385
  X Y coordinate space, based on the provided screenshot.
267
386
 
387
+ <!--- Tools generated by update-readme.js -->
268
388
 
269
- <!--- Generated by update-readme.js -->
270
-
271
- ### Snapshot-based Interactions
389
+ <details>
390
+ <summary><b>Interactions</b></summary>
272
391
 
273
392
  <!-- NOTE: This has been generated via update-readme.js -->
274
393
 
@@ -336,6 +455,80 @@ X Y coordinate space, based on the provided screenshot.
336
455
 
337
456
  <!-- NOTE: This has been generated via update-readme.js -->
338
457
 
458
+ - **browser_press_key**
459
+ - Title: Press a key
460
+ - Description: Press a key on the keyboard
461
+ - Parameters:
462
+ - `key` (string): Name of the key to press or a character to generate, such as `ArrowLeft` or `a`
463
+ - Read-only: **false**
464
+
465
+ <!-- NOTE: This has been generated via update-readme.js -->
466
+
467
+ - **browser_wait_for**
468
+ - Title: Wait for
469
+ - Description: Wait for text to appear or disappear or a specified time to pass
470
+ - Parameters:
471
+ - `time` (number, optional): The time to wait in seconds
472
+ - `text` (string, optional): The text to wait for
473
+ - `textGone` (string, optional): The text to wait for to disappear
474
+ - Read-only: **true**
475
+
476
+ <!-- NOTE: This has been generated via update-readme.js -->
477
+
478
+ - **browser_file_upload**
479
+ - Title: Upload files
480
+ - Description: Upload one or multiple files
481
+ - Parameters:
482
+ - `paths` (array): The absolute paths to the files to upload. Can be a single file or multiple files.
483
+ - Read-only: **false**
484
+
485
+ <!-- NOTE: This has been generated via update-readme.js -->
486
+
487
+ - **browser_handle_dialog**
488
+ - Title: Handle a dialog
489
+ - Description: Handle a dialog
490
+ - Parameters:
491
+ - `accept` (boolean): Whether to accept the dialog.
492
+ - `promptText` (string, optional): The text of the prompt in case of a prompt dialog.
493
+ - Read-only: **false**
494
+
495
+ </details>
496
+
497
+ <details>
498
+ <summary><b>Navigation</b></summary>
499
+
500
+ <!-- NOTE: This has been generated via update-readme.js -->
501
+
502
+ - **browser_navigate**
503
+ - Title: Navigate to a URL
504
+ - Description: Navigate to a URL
505
+ - Parameters:
506
+ - `url` (string): The URL to navigate to
507
+ - Read-only: **false**
508
+
509
+ <!-- NOTE: This has been generated via update-readme.js -->
510
+
511
+ - **browser_navigate_back**
512
+ - Title: Go back
513
+ - Description: Go back to the previous page
514
+ - Parameters: None
515
+ - Read-only: **true**
516
+
517
+ <!-- NOTE: This has been generated via update-readme.js -->
518
+
519
+ - **browser_navigate_forward**
520
+ - Title: Go forward
521
+ - Description: Go forward to the next page
522
+ - Parameters: None
523
+ - Read-only: **true**
524
+
525
+ </details>
526
+
527
+ <details>
528
+ <summary><b>Resources</b></summary>
529
+
530
+ <!-- NOTE: This has been generated via update-readme.js -->
531
+
339
532
  - **browser_take_screenshot**
340
533
  - Title: Take a screenshot
341
534
  - Description: Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.
@@ -346,62 +539,66 @@ X Y coordinate space, based on the provided screenshot.
346
539
  - `ref` (string, optional): 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.
347
540
  - Read-only: **true**
348
541
 
349
- ### Vision-based Interactions
542
+ <!-- NOTE: This has been generated via update-readme.js -->
543
+
544
+ - **browser_pdf_save**
545
+ - Title: Save as PDF
546
+ - Description: Save page as PDF
547
+ - Parameters:
548
+ - `filename` (string, optional): File name to save the pdf to. Defaults to `page-{timestamp}.pdf` if not specified.
549
+ - Read-only: **true**
350
550
 
351
551
  <!-- NOTE: This has been generated via update-readme.js -->
352
552
 
353
- - **browser_screen_capture**
354
- - Title: Take a screenshot
355
- - Description: Take a screenshot of the current page
553
+ - **browser_network_requests**
554
+ - Title: List network requests
555
+ - Description: Returns all network requests since loading the page
356
556
  - Parameters: None
357
557
  - Read-only: **true**
358
558
 
359
559
  <!-- NOTE: This has been generated via update-readme.js -->
360
560
 
361
- - **browser_screen_move_mouse**
362
- - Title: Move mouse
363
- - Description: Move mouse to a given position
364
- - Parameters:
365
- - `element` (string): Human-readable element description used to obtain permission to interact with the element
366
- - `x` (number): X coordinate
367
- - `y` (number): Y coordinate
561
+ - **browser_console_messages**
562
+ - Title: Get console messages
563
+ - Description: Returns all console messages
564
+ - Parameters: None
368
565
  - Read-only: **true**
369
566
 
567
+ </details>
568
+
569
+ <details>
570
+ <summary><b>Utilities</b></summary>
571
+
370
572
  <!-- NOTE: This has been generated via update-readme.js -->
371
573
 
372
- - **browser_screen_click**
373
- - Title: Click
374
- - Description: Click left mouse button
375
- - Parameters:
376
- - `element` (string): Human-readable element description used to obtain permission to interact with the element
377
- - `x` (number): X coordinate
378
- - `y` (number): Y coordinate
574
+ - **browser_install**
575
+ - Title: Install the browser specified in the config
576
+ - Description: Install the browser specified in the config. Call this if you get an error about the browser not being installed.
577
+ - Parameters: None
379
578
  - Read-only: **false**
380
579
 
381
580
  <!-- NOTE: This has been generated via update-readme.js -->
382
581
 
383
- - **browser_screen_drag**
384
- - Title: Drag mouse
385
- - Description: Drag left mouse button
386
- - Parameters:
387
- - `element` (string): Human-readable element description used to obtain permission to interact with the element
388
- - `startX` (number): Start X coordinate
389
- - `startY` (number): Start Y coordinate
390
- - `endX` (number): End X coordinate
391
- - `endY` (number): End Y coordinate
392
- - Read-only: **false**
582
+ - **browser_close**
583
+ - Title: Close browser
584
+ - Description: Close the page
585
+ - Parameters: None
586
+ - Read-only: **true**
393
587
 
394
588
  <!-- NOTE: This has been generated via update-readme.js -->
395
589
 
396
- - **browser_screen_type**
397
- - Title: Type text
398
- - Description: Type text
590
+ - **browser_resize**
591
+ - Title: Resize browser window
592
+ - Description: Resize the browser window
399
593
  - Parameters:
400
- - `text` (string): Text to type into the element
401
- - `submit` (boolean, optional): Whether to submit entered text (press Enter after)
402
- - Read-only: **false**
594
+ - `width` (number): Width of the browser window
595
+ - `height` (number): Height of the browser window
596
+ - Read-only: **true**
597
+
598
+ </details>
403
599
 
404
- ### Tab Management
600
+ <details>
601
+ <summary><b>Tabs</b></summary>
405
602
 
406
603
  <!-- NOTE: This has been generated via update-readme.js -->
407
604
 
@@ -438,83 +635,88 @@ X Y coordinate space, based on the provided screenshot.
438
635
  - `index` (number, optional): The index of the tab to close. Closes current tab if not provided.
439
636
  - Read-only: **false**
440
637
 
441
- ### Navigation
638
+ </details>
639
+
640
+ <details>
641
+ <summary><b>Testing</b></summary>
442
642
 
443
643
  <!-- NOTE: This has been generated via update-readme.js -->
444
644
 
445
- - **browser_navigate**
446
- - Title: Navigate to a URL
447
- - Description: Navigate to a URL
645
+ - **browser_generate_playwright_test**
646
+ - Title: Generate a Playwright test
647
+ - Description: Generate a Playwright test for given scenario
448
648
  - Parameters:
449
- - `url` (string): The URL to navigate to
450
- - Read-only: **false**
649
+ - `name` (string): The name of the test
650
+ - `description` (string): The description of the test
651
+ - `steps` (array): The steps of the test
652
+ - Read-only: **true**
451
653
 
452
- <!-- NOTE: This has been generated via update-readme.js -->
654
+ </details>
453
655
 
454
- - **browser_navigate_back**
455
- - Title: Go back
456
- - Description: Go back to the previous page
457
- - Parameters: None
458
- - Read-only: **true**
656
+ <details>
657
+ <summary><b>Vision mode</b></summary>
459
658
 
460
659
  <!-- NOTE: This has been generated via update-readme.js -->
461
660
 
462
- - **browser_navigate_forward**
463
- - Title: Go forward
464
- - Description: Go forward to the next page
661
+ - **browser_screen_capture**
662
+ - Title: Take a screenshot
663
+ - Description: Take a screenshot of the current page
465
664
  - Parameters: None
466
665
  - Read-only: **true**
467
666
 
468
- ### Keyboard
469
-
470
667
  <!-- NOTE: This has been generated via update-readme.js -->
471
668
 
472
- - **browser_press_key**
473
- - Title: Press a key
474
- - Description: Press a key on the keyboard
669
+ - **browser_screen_move_mouse**
670
+ - Title: Move mouse
671
+ - Description: Move mouse to a given position
475
672
  - Parameters:
476
- - `key` (string): Name of the key to press or a character to generate, such as `ArrowLeft` or `a`
477
- - Read-only: **false**
478
-
479
- ### Console
673
+ - `element` (string): Human-readable element description used to obtain permission to interact with the element
674
+ - `x` (number): X coordinate
675
+ - `y` (number): Y coordinate
676
+ - Read-only: **true**
480
677
 
481
678
  <!-- NOTE: This has been generated via update-readme.js -->
482
679
 
483
- - **browser_console_messages**
484
- - Title: Get console messages
485
- - Description: Returns all console messages
486
- - Parameters: None
487
- - Read-only: **true**
488
-
489
- ### Files and Media
680
+ - **browser_screen_click**
681
+ - Title: Click
682
+ - Description: Click left mouse button
683
+ - Parameters:
684
+ - `element` (string): Human-readable element description used to obtain permission to interact with the element
685
+ - `x` (number): X coordinate
686
+ - `y` (number): Y coordinate
687
+ - Read-only: **false**
490
688
 
491
689
  <!-- NOTE: This has been generated via update-readme.js -->
492
690
 
493
- - **browser_file_upload**
494
- - Title: Upload files
495
- - Description: Upload one or multiple files
691
+ - **browser_screen_drag**
692
+ - Title: Drag mouse
693
+ - Description: Drag left mouse button
496
694
  - Parameters:
497
- - `paths` (array): The absolute paths to the files to upload. Can be a single file or multiple files.
695
+ - `element` (string): Human-readable element description used to obtain permission to interact with the element
696
+ - `startX` (number): Start X coordinate
697
+ - `startY` (number): Start Y coordinate
698
+ - `endX` (number): End X coordinate
699
+ - `endY` (number): End Y coordinate
498
700
  - Read-only: **false**
499
701
 
500
702
  <!-- NOTE: This has been generated via update-readme.js -->
501
703
 
502
- - **browser_pdf_save**
503
- - Title: Save as PDF
504
- - Description: Save page as PDF
704
+ - **browser_screen_type**
705
+ - Title: Type text
706
+ - Description: Type text
505
707
  - Parameters:
506
- - `filename` (string, optional): File name to save the pdf to. Defaults to `page-{timestamp}.pdf` if not specified.
507
- - Read-only: **true**
508
-
509
- ### Utilities
708
+ - `text` (string): Text to type into the element
709
+ - `submit` (boolean, optional): Whether to submit entered text (press Enter after)
710
+ - Read-only: **false**
510
711
 
511
712
  <!-- NOTE: This has been generated via update-readme.js -->
512
713
 
513
- - **browser_close**
514
- - Title: Close browser
515
- - Description: Close the page
516
- - Parameters: None
517
- - Read-only: **true**
714
+ - **browser_press_key**
715
+ - Title: Press a key
716
+ - Description: Press a key on the keyboard
717
+ - Parameters:
718
+ - `key` (string): Name of the key to press or a character to generate, such as `ArrowLeft` or `a`
719
+ - Read-only: **false**
518
720
 
519
721
  <!-- NOTE: This has been generated via update-readme.js -->
520
722
 
@@ -529,20 +731,11 @@ X Y coordinate space, based on the provided screenshot.
529
731
 
530
732
  <!-- NOTE: This has been generated via update-readme.js -->
531
733
 
532
- - **browser_resize**
533
- - Title: Resize browser window
534
- - Description: Resize the browser window
734
+ - **browser_file_upload**
735
+ - Title: Upload files
736
+ - Description: Upload one or multiple files
535
737
  - Parameters:
536
- - `width` (number): Width of the browser window
537
- - `height` (number): Height of the browser window
538
- - Read-only: **true**
539
-
540
- <!-- NOTE: This has been generated via update-readme.js -->
541
-
542
- - **browser_install**
543
- - Title: Install the browser specified in the config
544
- - Description: Install the browser specified in the config. Call this if you get an error about the browser not being installed.
545
- - Parameters: None
738
+ - `paths` (array): The absolute paths to the files to upload. Can be a single file or multiple files.
546
739
  - Read-only: **false**
547
740
 
548
741
  <!-- NOTE: This has been generated via update-readme.js -->
@@ -555,25 +748,7 @@ X Y coordinate space, based on the provided screenshot.
555
748
  - `promptText` (string, optional): The text of the prompt in case of a prompt dialog.
556
749
  - Read-only: **false**
557
750
 
558
- <!-- NOTE: This has been generated via update-readme.js -->
559
-
560
- - **browser_network_requests**
561
- - Title: List network requests
562
- - Description: Returns all network requests since loading the page
563
- - Parameters: None
564
- - Read-only: **true**
565
-
566
- ### Testing
751
+ </details>
567
752
 
568
- <!-- NOTE: This has been generated via update-readme.js -->
569
-
570
- - **browser_generate_playwright_test**
571
- - Title: Generate a Playwright test
572
- - Description: Generate a Playwright test for given scenario
573
- - Parameters:
574
- - `name` (string): The name of the test
575
- - `description` (string): The description of the test
576
- - `steps` (array): The steps of the test
577
- - Read-only: **true**
578
753
 
579
- <!--- End of generated section -->
754
+ <!--- End of tools generated section -->