@playwright-repl/mcp 0.21.10 → 0.22.0
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 +11 -16
- package/dist/evaluate.d.ts +7 -0
- package/dist/evaluate.d.ts.map +1 -0
- package/dist/evaluate.js +46 -0
- package/dist/evaluate.js.map +1 -0
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/package.json +25 -24
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ MCP server that lets AI agents (Claude Desktop, Claude Code, or any MCP client)
|
|
|
4
4
|
|
|
5
5
|
Two modes:
|
|
6
6
|
- **Bridge mode** (default) — controls your real Chrome browser through the **Dramaturg** Chrome extension
|
|
7
|
-
- **Standalone mode** (`--standalone`) — launches
|
|
7
|
+
- **Standalone mode** (`--standalone`) — launches Chromium with the Dramaturg extension, supports keyword commands and JavaScript
|
|
8
8
|
|
|
9
9
|
## Why
|
|
10
10
|
|
|
@@ -53,10 +53,10 @@ Playwright running in your real Chrome session
|
|
|
53
53
|
Claude Desktop / Claude Code (or any MCP client)
|
|
54
54
|
↕ MCP (stdio)
|
|
55
55
|
playwright-repl MCP server
|
|
56
|
-
↕
|
|
57
|
-
|
|
58
|
-
↕
|
|
59
|
-
|
|
56
|
+
↕ serviceWorker.evaluate()
|
|
57
|
+
Dramaturg extension (service worker)
|
|
58
|
+
↕ playwright-crx
|
|
59
|
+
Chromium (launched with extension)
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
## Setup
|
|
@@ -77,12 +77,12 @@ Load `packages/extension/dist/` as an unpacked extension in Chrome (`chrome://ex
|
|
|
77
77
|
|
|
78
78
|
Or install from the [Chrome Web Store](https://chromewebstore.google.com/detail/dramaturg/ppbkmncnmjkfppilnmplpokdfagobipa).
|
|
79
79
|
|
|
80
|
-
#### Standalone mode —
|
|
80
|
+
#### Standalone mode — launches browser with extension
|
|
81
81
|
|
|
82
|
-
Add `--standalone` to the MCP server command. The server launches
|
|
82
|
+
Add `--standalone` to the MCP server command. The server launches Chromium with the Dramaturg extension pre-installed.
|
|
83
83
|
|
|
84
84
|
- Default: headless. Add `--headed` to show the browser window.
|
|
85
|
-
-
|
|
85
|
+
- Supports both keyword commands and JavaScript/Playwright API.
|
|
86
86
|
|
|
87
87
|
### 3. Configure your MCP client
|
|
88
88
|
|
|
@@ -180,9 +180,9 @@ select "Country" "United States" # select dropdown option
|
|
|
180
180
|
localstorage-list # list localStorage
|
|
181
181
|
```
|
|
182
182
|
|
|
183
|
-
### Playwright API / JavaScript
|
|
183
|
+
### Playwright API / JavaScript
|
|
184
184
|
|
|
185
|
-
|
|
185
|
+
Both modes accept raw Playwright expressions and JavaScript:
|
|
186
186
|
|
|
187
187
|
```
|
|
188
188
|
await page.url()
|
|
@@ -193,9 +193,6 @@ await page.evaluate(() => document.title)
|
|
|
193
193
|
await page.evaluate(() => document.querySelectorAll('a').length)
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
> In standalone mode, use the `run-code` or `eval` keywords to run Playwright API / JavaScript:
|
|
197
|
-
> `run-code await page.url()` or `eval document.title`.
|
|
198
|
-
|
|
199
196
|
## Tool: `run_script`
|
|
200
197
|
|
|
201
198
|
Batch execution for multi-line scripts.
|
|
@@ -211,9 +208,7 @@ press Enter
|
|
|
211
208
|
verify-text "Buy groceries"
|
|
212
209
|
```
|
|
213
210
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
### JavaScript (`language="javascript"`) — bridge mode only
|
|
211
|
+
### JavaScript (`language="javascript"`)
|
|
217
212
|
|
|
218
213
|
Runs the entire block as one evaluation — use for Playwright API with assertions:
|
|
219
214
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate runner — connects to Chrome via serviceWorker.evaluate().
|
|
3
|
+
* No WebSocket bridge needed.
|
|
4
|
+
*/
|
|
5
|
+
import type { RunnerModule, SnapshotCache } from './types.js';
|
|
6
|
+
export declare function createEvaluateRunner(argv: string[], snapshotCache: SnapshotCache): Promise<RunnerModule>;
|
|
7
|
+
//# sourceMappingURL=evaluate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI9D,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,aAAa,EAAE,aAAa,GAC7B,OAAO,CAAC,YAAY,CAAC,CAuCvB"}
|
package/dist/evaluate.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate runner — connects to Chrome via serviceWorker.evaluate().
|
|
3
|
+
* No WebSocket bridge needed.
|
|
4
|
+
*/
|
|
5
|
+
import { EvaluateConnection, findExtensionPath, UPDATE_COMMANDS, parseInput } from '@playwright-repl/core';
|
|
6
|
+
import { logEvent } from './logger.js';
|
|
7
|
+
import { descriptions } from './bridge.js';
|
|
8
|
+
export async function createEvaluateRunner(argv, snapshotCache) {
|
|
9
|
+
const headed = argv.includes('--headed');
|
|
10
|
+
const extPath = findExtensionPath(import.meta.url);
|
|
11
|
+
if (!extPath)
|
|
12
|
+
throw new Error('Chrome extension not found. Run "pnpm run build" first.');
|
|
13
|
+
const conn = new EvaluateConnection();
|
|
14
|
+
const pwModule = '@playwright/test';
|
|
15
|
+
const { chromium } = await (Function('m', 'return import(m)')(pwModule));
|
|
16
|
+
await conn.start(extPath, { headed, chromium });
|
|
17
|
+
console.error(`playwright-repl evaluate mode (${headed ? 'headed' : 'headless'})`);
|
|
18
|
+
logEvent(`Evaluate mode started`);
|
|
19
|
+
return {
|
|
20
|
+
descriptions,
|
|
21
|
+
runner: {
|
|
22
|
+
async runCommand(command) {
|
|
23
|
+
const parsed = parseInput(command);
|
|
24
|
+
const cmdName = parsed?._[0];
|
|
25
|
+
const isUpdate = cmdName !== undefined && UPDATE_COMMANDS.has(cmdName);
|
|
26
|
+
const result = await conn.run(command, isUpdate ? { includeSnapshot: true } : undefined);
|
|
27
|
+
if (result.isError)
|
|
28
|
+
return result;
|
|
29
|
+
if (result.text) {
|
|
30
|
+
const snapMatch = result.text.match(/### Snapshot\n([\s\S]+)$/);
|
|
31
|
+
if (snapMatch) {
|
|
32
|
+
snapshotCache.value = { url: '', snapshotString: snapMatch[1].trim() };
|
|
33
|
+
}
|
|
34
|
+
else if (cmdName === 'snapshot') {
|
|
35
|
+
snapshotCache.value = { url: '', snapshotString: result.text.trim() };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
},
|
|
40
|
+
async runScript(script, language) {
|
|
41
|
+
return conn.runScript(script, language);
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAG3G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,IAAc,EACd,aAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAEzF,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;IACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,CAAQ,CAAC;IAChF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;IACnF,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAElC,OAAO;QACH,YAAY;QACZ,MAAM,EAAE;YACJ,KAAK,CAAC,UAAU,CAAC,OAAe;gBAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACzF,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO,MAAM,CAAC;gBAElC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAChE,IAAI,SAAS,EAAE,CAAC;wBACZ,aAAa,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC3E,CAAC;yBAAM,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;wBAChC,aAAa,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1E,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,QAA6B;gBACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5C,CAAC;SACJ;KACJ,CAAC;AACN,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { z } from 'zod';
|
|
|
5
5
|
import { COMMANDS, CATEGORIES, refToLocator } from '@playwright-repl/core';
|
|
6
6
|
import pkg from '../package.json' with { type: 'json' };
|
|
7
7
|
import { createBridgeRunner } from './bridge.js';
|
|
8
|
+
import { createEvaluateRunner } from './evaluate.js';
|
|
8
9
|
import { createStandaloneRunner } from './standalone.js';
|
|
9
10
|
import { logStartup, logEvent, logToolCall, logToolResult, logError, LOG_FILE } from './logger.js';
|
|
10
11
|
const argv = process.argv.slice(2);
|
|
@@ -12,9 +13,20 @@ const standalone = argv.includes('--standalone');
|
|
|
12
13
|
const headed = argv.includes('--headed');
|
|
13
14
|
const snapshotCache = { value: null };
|
|
14
15
|
// ─── Create runner ───────────────────────────────────────────────────────────
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
let runnerModule;
|
|
17
|
+
if (standalone) {
|
|
18
|
+
// Try evaluate mode (extension + JS support), fall back to Engine (keyword only)
|
|
19
|
+
try {
|
|
20
|
+
runnerModule = await createEvaluateRunner(argv, snapshotCache);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
runnerModule = createStandaloneRunner(headed, snapshotCache);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
runnerModule = await createBridgeRunner(argv, snapshotCache);
|
|
28
|
+
}
|
|
29
|
+
const { runner, descriptions } = runnerModule;
|
|
18
30
|
logStartup(standalone ? 'standalone' : 'bridge', `log → ${LOG_FILE}`);
|
|
19
31
|
// ─── MCP server ──────────────────────────────────────────────────────────────
|
|
20
32
|
const server = new McpServer({ name: 'playwright-repl', version: pkg.version });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEzC,MAAM,aAAa,GAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAErD,gFAAgF;AAEhF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@playwright-repl/mcp",
|
|
3
|
+
"description": "MCP server — AI agents control your real Chrome browser",
|
|
4
|
+
"version": "0.22.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"playwright-repl-mcp": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc --build tsconfig.build.json"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@modelcontextprotocol/sdk": "^1.10.0",
|
|
21
|
+
"@playwright-repl/core": "workspace:*",
|
|
22
|
+
"@playwright/test": "^1.59.1",
|
|
23
|
+
"playwright-repl": "workspace:*",
|
|
24
|
+
"zod": "^3.24.0"
|
|
25
|
+
}
|
|
25
26
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Steve Zhang
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|