Compare commits

...

10 Commits

Author SHA1 Message Date
Yury Semikhatsky
b4e016a0b8 chore: mark v0.0.42 (#1125) 2025-10-09 14:57:41 -07:00
Yury Semikhatsky
e17bf17dff chore: roll 1.57.0-alpha-2025-10-09 (#1123) 2025-10-09 13:32:16 -07:00
Isuru-F
7ee5c87a4b docs: add Amp setup instructions to README (#1105) 2025-10-03 14:00:36 -07:00
TheLazyIndianTechie
2817952d0d docs: updated Warp MCP documentation (#1104) 2025-10-03 13:59:34 -07:00
Kim Hallberg
fb900a8827 docs: add instructions for Warp (#1103) 2025-10-02 13:05:41 -07:00
Yury Semikhatsky
29e532687c chore: mark v0.0.41 (#1099) 2025-10-01 15:54:05 -07:00
Yury Semikhatsky
d149b89889 chore: roll to 1.56.0-alpha-2025-10-01 (#1098) 2025-10-01 14:55:17 -07:00
Pavel Feldman
1caecd00c7 Revert "chore: include cwd in a vscode config" (#1095)
Reverts microsoft/playwright-mcp#1085
2025-09-30 13:30:06 -07:00
Pavel Feldman
9657b58e17 chore: include cwd in a vscode config (#1085) 2025-09-26 17:35:03 -07:00
zhu733756
8dfea1c67f docs: running the Playwright-MCP server in docker (#1074) 2025-09-25 08:23:28 -07:00
6 changed files with 97 additions and 30 deletions

View File

@@ -38,6 +38,31 @@ First, install the Playwright MCP server with your client.
[<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) [<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)
<details>
<summary>Amp</summary>
Add via the Amp VS Code extension settings screen or by updating your settings.json file:
```json
"amp.mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
```
**Amp CLI Setup:**
Add via the `amp mcp add`command below
```bash
amp mcp add playwright -- npx @playwright/mcp@latest
```
</details>
<details> <details>
<summary>Claude Code</summary> <summary>Claude Code</summary>
@@ -165,6 +190,27 @@ code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@la
After installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code. After installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.
</details> </details>
<details>
<summary>Warp</summary>
Go to `Settings` -> `AI` -> `Manage MCP Servers` -> `+ Add` to [add an MCP Server](https://docs.warp.dev/knowledge-and-collaboration/mcp#adding-an-mcp-server). Use the standard config above.
Alternatively, use the slash command `/add-mcp` in the Warp prompt and paste the standard config from above:
```js
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
```
</details>
<details> <details>
<summary>Windsurf</summary> <summary>Windsurf</summary>
@@ -183,7 +229,7 @@ Playwright MCP server supports following arguments. They can be provided in the
--allowed-hosts <hosts...> comma-separated list of hosts this --allowed-hosts <hosts...> comma-separated list of hosts this
server is allowed to serve from. server is allowed to serve from.
Defaults to the host the server is bound Defaults to the host the server is bound
to. to. Pass '*' to disable the host check.
--allowed-origins <origins> semicolon-separated list of origins to --allowed-origins <origins> semicolon-separated list of origins to
allow the browser to request. Default is allow the browser to request. Default is
to allow all. to allow all.
@@ -254,6 +300,8 @@ Playwright MCP server supports following arguments. They can be provided in the
all connected HTTP clients. all connected HTTP clients.
--storage-state <path> path to the storage state file for --storage-state <path> path to the storage state file for
isolated sessions. isolated sessions.
--test-id-attribute <attribute> specify the attribute to use for test
ids, defaults to "data-testid"
--timeout-action <timeout> specify action timeout in milliseconds, --timeout-action <timeout> specify action timeout in milliseconds,
defaults to 5000ms defaults to 5000ms
--timeout-navigation <timeout> specify navigation timeout in --timeout-navigation <timeout> specify navigation timeout in
@@ -434,6 +482,19 @@ And then in MCP client config, set the `url` to the HTTP endpoint:
} }
``` ```
Or If you prefer to run the container as a long-lived service instead of letting the MCP client spawn it, use:
```
docker run -d -i --rm --init --pull=always \
--entrypoint node \
--name playwright \
-p 8931:8931 \
mcr.microsoft.com/playwright/mcp \
cli.js --headless --browser chromium --no-sandbox --port 8931
```
The server will listen on host port **8931** and can be reached by any MCP client.
You can build the Docker image yourself. You can build the Docker image yourself.
``` ```
@@ -489,14 +550,15 @@ http.createServer(async (req, res) => {
- Title: Close browser - Title: Close browser
- Description: Close the page - Description: Close the page
- Parameters: None - Parameters: None
- Read-only: **true** - Read-only: **false**
<!-- NOTE: This has been generated via update-readme.js --> <!-- NOTE: This has been generated via update-readme.js -->
- **browser_console_messages** - **browser_console_messages**
- Title: Get console messages - Title: Get console messages
- Description: Returns all console messages - Description: Returns all console messages
- Parameters: None - Parameters:
- `onlyErrors` (boolean, optional): Only return error messages
- Read-only: **true** - Read-only: **true**
<!-- NOTE: This has been generated via update-readme.js --> <!-- NOTE: This has been generated via update-readme.js -->
@@ -558,7 +620,7 @@ http.createServer(async (req, res) => {
- Parameters: - Parameters:
- `element` (string): Human-readable element description used to obtain permission to interact with the element - `element` (string): Human-readable element description used to obtain permission to interact with the element
- `ref` (string): Exact target element reference from the page snapshot - `ref` (string): Exact target element reference from the page snapshot
- Read-only: **true** - Read-only: **false**
<!-- NOTE: This has been generated via update-readme.js --> <!-- NOTE: This has been generated via update-readme.js -->
@@ -575,7 +637,7 @@ http.createServer(async (req, res) => {
- Title: Go back - Title: Go back
- Description: Go back to the previous page - Description: Go back to the previous page
- Parameters: None - Parameters: None
- Read-only: **true** - Read-only: **false**
<!-- NOTE: This has been generated via update-readme.js --> <!-- NOTE: This has been generated via update-readme.js -->
@@ -602,7 +664,7 @@ http.createServer(async (req, res) => {
- Parameters: - Parameters:
- `width` (number): Width of the browser window - `width` (number): Width of the browser window
- `height` (number): Height of the browser window - `height` (number): Height of the browser window
- Read-only: **true** - Read-only: **false**
<!-- NOTE: This has been generated via update-readme.js --> <!-- NOTE: This has been generated via update-readme.js -->
@@ -658,7 +720,7 @@ http.createServer(async (req, res) => {
- `time` (number, optional): The time to wait in seconds - `time` (number, optional): The time to wait in seconds
- `text` (string, optional): The text to wait for - `text` (string, optional): The text to wait for
- `textGone` (string, optional): The text to wait for to disappear - `textGone` (string, optional): The text to wait for to disappear
- Read-only: **true** - Read-only: **false**
</details> </details>
@@ -726,7 +788,7 @@ http.createServer(async (req, res) => {
- `element` (string): Human-readable element description used to obtain permission to interact with the element - `element` (string): Human-readable element description used to obtain permission to interact with the element
- `x` (number): X coordinate - `x` (number): X coordinate
- `y` (number): Y coordinate - `y` (number): Y coordinate
- Read-only: **true** - Read-only: **false**
</details> </details>

5
config.d.ts vendored
View File

@@ -149,6 +149,11 @@ export type Config = {
blockedOrigins?: string[]; blockedOrigins?: string[];
}; };
/**
* Specify the attribute to use for test ids, defaults to "data-testid".
*/
testIdAttribute?: string;
timeouts?: { timeouts?: {
/* /*
* Configures default action timeout: https://playwright.dev/docs/api/class-page#page-set-default-timeout. Defaults to 5000ms. * Configures default action timeout: https://playwright.dev/docs/api/class-page#page-set-default-timeout. Defaults to 5000ms.

View File

@@ -1,7 +1,7 @@
{ {
"manifest_version": 3, "manifest_version": 3,
"name": "Playwright MCP Bridge", "name": "Playwright MCP Bridge",
"version": "0.0.40", "version": "0.0.42",
"description": "Share browser tabs with Playwright MCP server", "description": "Share browser tabs with Playwright MCP server",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9nMS2b0WCohjVHPGb8D9qAdkbIngDqoAjTeSccHJijgcONejge+OJxOQOMLu7b0ovt1c9BiEJa5JcpM+EHFVGL1vluBxK71zmBy1m2f9vZF3HG0LSCp7YRkum9rAIEthDwbkxx6XTvpmAY5rjFa/NON6b9Hlbo+8peUSkoOK7HTwYnnI36asZ9eUTiveIf+DMPLojW2UX33vDWG2UKvMVDewzclb4+uLxAYshY7Mx8we/b44xu+Anb/EBLKjOPk9Yh541xJ5Ozc8EiP/5yxOp9c/lRiYUHaRW+4r0HKZyFt0eZ52ti2iM4Nfk7jRXR7an3JPsUIf5deC/1cVM/+1ZQIDAQAB", "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9nMS2b0WCohjVHPGb8D9qAdkbIngDqoAjTeSccHJijgcONejge+OJxOQOMLu7b0ovt1c9BiEJa5JcpM+EHFVGL1vluBxK71zmBy1m2f9vZF3HG0LSCp7YRkum9rAIEthDwbkxx6XTvpmAY5rjFa/NON6b9Hlbo+8peUSkoOK7HTwYnnI36asZ9eUTiveIf+DMPLojW2UX33vDWG2UKvMVDewzclb4+uLxAYshY7Mx8we/b44xu+Anb/EBLKjOPk9Yh541xJ5Ozc8EiP/5yxOp9c/lRiYUHaRW+4r0HKZyFt0eZ52ti2iM4Nfk7jRXR7an3JPsUIf5deC/1cVM/+1ZQIDAQAB",
"permissions": [ "permissions": [

View File

@@ -1,6 +1,6 @@
{ {
"name": "@playwright/mcp-extension", "name": "@playwright/mcp-extension",
"version": "0.0.40", "version": "0.0.42",
"description": "Playwright MCP Browser Extension", "description": "Playwright MCP Browser Extension",
"private": true, "private": true,
"repository": { "repository": {

32
package-lock.json generated
View File

@@ -1,23 +1,23 @@
{ {
"name": "@playwright/mcp", "name": "@playwright/mcp",
"version": "0.0.40", "version": "0.0.42",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@playwright/mcp", "name": "@playwright/mcp",
"version": "0.0.40", "version": "0.0.42",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright": "1.56.0-alpha-1758750661000", "playwright": "1.57.0-alpha-2025-10-09",
"playwright-core": "1.56.0-alpha-1758750661000" "playwright-core": "1.57.0-alpha-2025-10-09"
}, },
"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-1758750661000", "@playwright/test": "1.57.0-alpha-2025-10-09",
"@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-1758750661000", "version": "1.57.0-alpha-2025-10-09",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.0-alpha-1758750661000.tgz", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0-alpha-2025-10-09.tgz",
"integrity": "sha512-sQT1R0BDA/+KYSx8fCps7i0RGB/EyakmXN+xoYCj5F7oDvJo8lr9urEbnP5RytBfsYoqBqNkIGdCbyebF4+a0A==", "integrity": "sha512-2JBSbeimUS2kQQxvi9x17GqsU5AWeB33gKUAGv08ViYfoIop+b++t2vzUoid2+Bq3xYWd4JpBoUPAz+/tQZ7LQ==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright": "1.56.0-alpha-1758750661000" "playwright": "1.57.0-alpha-2025-10-09"
}, },
"bin": { "bin": {
"playwright": "cli.js" "playwright": "cli.js"
@@ -825,12 +825,12 @@
} }
}, },
"node_modules/playwright": { "node_modules/playwright": {
"version": "1.56.0-alpha-1758750661000", "version": "1.57.0-alpha-2025-10-09",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0-alpha-1758750661000.tgz", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0-alpha-2025-10-09.tgz",
"integrity": "sha512-15C/m7NPpAmBX2MFMrepCMj18ksBYvhbT90cvFjG2iBs2YPqO2U4f9OjcX207ITSmDAAJ8pWBlJutcZUYUERXg==", "integrity": "sha512-43vX0bt/YQANmKuWMDJSQMtic5iKBgqD6YMFgM045hELzFE5/mbRKRZI+iPVrFbKsvyClWzd/HVIvluwkbJVqg==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright-core": "1.56.0-alpha-1758750661000" "playwright-core": "1.57.0-alpha-2025-10-09"
}, },
"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-1758750661000", "version": "1.57.0-alpha-2025-10-09",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0-alpha-1758750661000.tgz", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0-alpha-2025-10-09.tgz",
"integrity": "sha512-ivP4xjc6EHkUqF80pMFfDRijKLEvO64qC6DTgyYrbsyCo8gugkqwKm6lFWn4W47g4S8juoUwQhlRVjM2BJ+ruA==", "integrity": "sha512-K6BwJMLn+2wLRu/iqk0l4MJ1Ou1tObap3UMX+sVoXrgAOBG1/L5RTe70NVTB1ROrsgZYxaqFGMyo53bBN/uw5Q==",
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"playwright-core": "cli.js" "playwright-core": "cli.js"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@playwright/mcp", "name": "@playwright/mcp",
"version": "0.0.40", "version": "0.0.42",
"description": "Playwright Tools for MCP", "description": "Playwright Tools for MCP",
"repository": { "repository": {
"type": "git", "type": "git",
@@ -35,15 +35,15 @@
} }
}, },
"dependencies": { "dependencies": {
"playwright": "1.56.0-alpha-1758750661000", "playwright": "1.57.0-alpha-2025-10-09",
"playwright-core": "1.56.0-alpha-1758750661000" "playwright-core": "1.57.0-alpha-2025-10-09"
}, },
"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-1758750661000", "@playwright/test": "1.57.0-alpha-2025-10-09",
"@types/node": "^24.3.0", "@types/node": "^24.3.0",
"zod-to-json-schema": "^3.24.6" "zod-to-json-schema": "^3.24.6"
} }