playwright-e2e-mcp 0.10.0 → 0.11.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 +42 -18
- package/dist/server.d.ts +14 -2
- package/dist/server.js +91 -9
- package/dist/server.js.map +1 -1
- package/dist/tools/inspect-page.js +5 -12
- package/dist/tools/inspect-page.js.map +1 -1
- package/dist/utils/compact-schema.d.ts +20 -0
- package/dist/utils/compact-schema.js +55 -0
- package/dist/utils/compact-schema.js.map +1 -0
- package/dist/utils/locator-map.d.ts +25 -0
- package/dist/utils/locator-map.js +113 -0
- package/dist/utils/locator-map.js.map +1 -0
- package/examples/github-actions/playwright-e2e.yml +1 -1
- package/package.json +1 -1
- package/skill/playwright-e2e-mcp/SKILL.md +9 -5
- package/skill/playwright-e2e-mcp/references/setup.md +2 -2
- package/skill/playwright-e2e-mcp/references/tools.md +1 -1
package/README.md
CHANGED
|
@@ -64,9 +64,11 @@ red at HEAD ─▶ bisect-failure (runs it across git history, names the breakin
|
|
|
64
64
|
- **Works on CI failures too.** Load a CI job's report and traces and get the same diagnosis and fixes.
|
|
65
65
|
- **TypeScript and Python.** Works on `@playwright/test` suites and on `pytest-playwright` ones, with the same failure diagnosis and traces.
|
|
66
66
|
- **Flakiness with evidence.** Names the flaky test, whether it's a race, shared state or test order, and the seed that reproduces it.
|
|
67
|
-
- **Lean.** With the `core` tool set, finding and fixing a broken locator took about **
|
|
68
|
-
versus about **7,
|
|
69
|
-
|
|
67
|
+
- **Lean.** With the `core` tool set, finding and fixing a broken locator took about **3,000 tokens**
|
|
68
|
+
versus about **7,200** with Playwright MCP plus a shell, and a look at a page costs about 570 tokens
|
|
69
|
+
against 2,300 for a Playwright MCP snapshot. All 19 tools add about 11.5k tokens of definitions to
|
|
70
|
+
every request, so load only the [profiles](#configuration) you use, or start with `--tools=auto`
|
|
71
|
+
(about 2.4k) and let the agent load the rest when it needs them ([benchmark](#benchmark)).
|
|
70
72
|
- **Free and open source.** MIT, no account, no API key, no telemetry. Every tool and feature is free, including the shared team history server you can host yourself.
|
|
71
73
|
|
|
72
74
|
## 🚀 What only this MCP does
|
|
@@ -190,7 +192,7 @@ or go to **Settings → MCP → Add new MCP server** and paste the standard conf
|
|
|
190
192
|
project only, put it in `.cursor/mcp.json`.
|
|
191
193
|
|
|
192
194
|
Only fixing failing tests? [Install the core tools only](https://cursor.com/en/install-mcp?name=playwright-e2e&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInBsYXl3cmlnaHQtZTJlLW1jcCIsIi0tdG9vbHM9Y29yZSJdfQ==): the seven-tool fix loop
|
|
193
|
-
(`--tools=core`), about
|
|
195
|
+
(`--tools=core`), about 2.3k tokens of tool definitions instead of 11.5k.
|
|
194
196
|
|
|
195
197
|
</details>
|
|
196
198
|
|
|
@@ -273,8 +275,8 @@ Running and fixing your own tests needs your project, so use the local install f
|
|
|
273
275
|
| --- | --- |
|
|
274
276
|
| Skill only, any agent | `npx skills add xsignon-secure/E2E` |
|
|
275
277
|
| MCP Registry | `io.github.xsignon-secure/E2E` ([listing](https://registry.modelcontextprotocol.io/)); registry-aware clients find it there |
|
|
276
|
-
| Straight from GitHub, no npm | `npx -y github:xsignon-secure/E2E#v0.
|
|
277
|
-
| Release tarball | `npm install -D https://github.com/xsignon-secure/E2E/releases/download/v0.
|
|
278
|
+
| Straight from GitHub, no npm | `npx -y github:xsignon-secure/E2E#v0.11.0` (pin a release tag) |
|
|
279
|
+
| Release tarball | `npm install -D https://github.com/xsignon-secure/E2E/releases/download/v0.11.0/playwright-e2e-mcp-0.11.0.tgz` |
|
|
278
280
|
| Docker | `docker run -i --rm -v "$PWD:/work" ghcr.io/xsignon-secure/playwright-e2e-mcp` (published on each release; see [Development](docs/development.md#docker)) |
|
|
279
281
|
| Local checkout | `"command": "node", "args": ["/path/to/E2E/dist/index.js"]` |
|
|
280
282
|
|
|
@@ -338,6 +340,18 @@ in the project, else `python3` / `python`.
|
|
|
338
340
|
pip install pytest-playwright && playwright install chromium
|
|
339
341
|
```
|
|
340
342
|
|
|
343
|
+
## What's new in 0.11
|
|
344
|
+
|
|
345
|
+
- **Fewer tokens.** `inspect-page` now returns the compact locator map by default: on the
|
|
346
|
+
benchmark storefront a page look costs about 570 tokens instead of 3,600 (Playwright MCP's
|
|
347
|
+
snapshot of the same page is about 2,300). Repeated blocks such as product cards are shown
|
|
348
|
+
once. `view: 'elements'` still gives the full DOM inventory.
|
|
349
|
+
- **Load tools on request.** `--tools=auto` (or `PW_MCP_TOOLS=auto`) starts with the core fix
|
|
350
|
+
loop plus `load-tools`, about 2.4k tokens of tool definitions instead of 11.5k; the agent
|
|
351
|
+
loads the page, audit or history tools when a task needs them.
|
|
352
|
+
- **Smaller tool definitions.** Input schemas are listed without length and item limits; the
|
|
353
|
+
server still checks every call against them.
|
|
354
|
+
|
|
341
355
|
## What's new in 0.10
|
|
342
356
|
|
|
343
357
|
- **Asks before changing your files.** Applying a fix, writing a new test, quarantining a test or
|
|
@@ -435,6 +449,8 @@ prompts.
|
|
|
435
449
|
|
|
436
450
|
**Only need the fix loop?** `--tools=core` (or `PW_MCP_TOOLS=core`) exposes seven tools and cuts the
|
|
437
451
|
tool-definition context by about three quarters ([one-click core install for Cursor](https://cursor.com/en/install-mcp?name=playwright-e2e&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInBsYXl3cmlnaHQtZTJlLW1jcCIsIi0tdG9vbHM9Y29yZSJdfQ==)). Other profiles: `triage`, `inspect`, `author`.
|
|
452
|
+
Want the savings without losing tools? `--tools=auto` starts with the same seven plus `load-tools`,
|
|
453
|
+
which the agent calls to turn on the page, audit or history tools when a task needs them.
|
|
438
454
|
|
|
439
455
|
<details>
|
|
440
456
|
<summary><b>Typical workflow</b></summary>
|
|
@@ -493,7 +509,7 @@ steps:
|
|
|
493
509
|
- uses: actions/setup-node@v6
|
|
494
510
|
with: { node-version: 24 }
|
|
495
511
|
- run: npm ci && npx playwright install --with-deps chromium
|
|
496
|
-
- uses: xsignon-secure/E2E@v0.
|
|
512
|
+
- uses: xsignon-secure/E2E@v0.11.0
|
|
497
513
|
with:
|
|
498
514
|
flaky-runs: 3 # 0 skips the flaky verdict
|
|
499
515
|
suggest: 2 # suggest-fix diffs for the first 2 failures
|
|
@@ -533,7 +549,7 @@ npx -y playwright-e2e-mcp guard --base origin/main # exit 1 on BLOCK; --strict
|
|
|
533
549
|
| Environment variable | Default | Purpose |
|
|
534
550
|
| --- | --- | --- |
|
|
535
551
|
| `PW_MCP_PROJECT_ROOT` | server cwd | Default project root for every tool |
|
|
536
|
-
| `PW_MCP_TOOLS` | all | Which tools to expose, as tool names and/or profiles, comma separated (same as the `--tools=` flag). Profiles: `core` (run, status, failure, fix, flaky, heal guard, list), `triage` (run, status, failure, CI report, flaky, history, test audit, bisect, quarantine, heal guard, list), `inspect` (page, selector, accessibility, performance, visual, login), `author` (list, page, selector, generate, run, login, heal guard). All nineteen tool definitions cost about
|
|
552
|
+
| `PW_MCP_TOOLS` | all | Which tools to expose, as tool names and/or profiles, comma separated (same as the `--tools=` flag). Profiles: `core` (run, status, failure, fix, flaky, heal guard, list), `triage` (run, status, failure, CI report, flaky, history, test audit, bisect, quarantine, heal guard, list), `inspect` (page, selector, accessibility, performance, visual, login), `author` (list, page, selector, generate, run, login, heal guard). `auto` starts with the core loop (or the tools listed with it, e.g. `auto,inspect`) plus a `load-tools` tool the agent calls to turn on more tools for the session; the client is told the tool list changed. `auto` needs a client that refreshes its tool list (Claude Code, Cursor, VS Code); over the hosted HTTP endpoint it lists every tool. All nineteen tool definitions cost the model about 11.5k tokens per request and `core` about 2.3k (the full `tools/list`, with output schemas most clients do not show the model, is about 16k and 4.8k) |
|
|
537
553
|
| `PW_MCP_OUTPUT_SCHEMAS` | on | `0` leaves the output schemas out of the tool list to save context. Results still carry `structuredContent` (see [Structured results](docs/tools.md#structured-results)) |
|
|
538
554
|
| `PW_MCP_PROTOCOL` | both | `legacy` stops offering the stateless 2026-07-28 MCP revision, for a client that trips over it. By default 2026 clients get it and 2025 clients get the old handshake |
|
|
539
555
|
| `PW_MCP_NO_UPDATE_CHECK` | off | `1` stops `doctor` from asking npm whether a newer version is out (same as `doctor --offline`) |
|
|
@@ -581,18 +597,26 @@ apply) and with Playwright MCP plus a shell (`playwright test`, `browser_navigat
|
|
|
581
597
|
|
|
582
598
|
| Step | playwright-e2e-mcp (`core` tools) | playwright-e2e-mcp (all tools) | Playwright MCP + shell |
|
|
583
599
|
| --- | ---: | ---: | ---: |
|
|
584
|
-
| Tool definitions
|
|
585
|
-
| Run the failing test |
|
|
600
|
+
| Tool definitions the model reads (every request) | 2,266 | 11,480 | 4,558 |
|
|
601
|
+
| Run the failing test | 257 | 257 | 323 |
|
|
586
602
|
| Find the element / propose the fix | 232 | 232 | 2,286 |
|
|
587
603
|
| Apply + verify (re-run) | 230 | 230 | 34 |
|
|
588
|
-
| **Total for one fix** |
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
604
|
+
| **Total for one fix** | 2,985 | 12,199 | 7,201 |
|
|
605
|
+
|
|
606
|
+
| Looking at the storefront page | Tokens |
|
|
607
|
+
| --- | ---: |
|
|
608
|
+
| `inspect-page` (default: locator map) | 571 |
|
|
609
|
+
| Playwright MCP `browser_navigate` + `browser_snapshot` | 2,286 |
|
|
610
|
+
|
|
611
|
+
Tokens are characters ÷ 4. Tool definitions count what the model reads: each tool's name,
|
|
612
|
+
description and input schema. The full `tools/list` also carries output schemas, which clients
|
|
613
|
+
keep for themselves (about 16k for all tools). The work itself (run, diagnose, fix, verify)
|
|
614
|
+
takes about 700 tokens here versus about 2,600 with Playwright MCP, but tool definitions are
|
|
615
|
+
sent with every request: with all 19 tools loaded they outweigh that saving, so set
|
|
616
|
+
`PW_MCP_TOOLS=core` (or another profile) when you only fix failing tests, or `PW_MCP_TOOLS=auto`
|
|
617
|
+
to start with the core loop (2,427 tokens) and load more tools on request. The Playwright MCP
|
|
618
|
+
route is a lower bound: it assumes the agent picks the right locator from the snapshot on the
|
|
619
|
+
first try, which the server does for it here. Run 2026-11-01 with Playwright 1.64.1; re-run with
|
|
596
620
|
`npm run build && node bench/token-benchmark.mjs`.
|
|
597
621
|
|
|
598
622
|
## Demo
|
package/dist/server.d.ts
CHANGED
|
@@ -21,6 +21,13 @@ export interface CreateServerOptions {
|
|
|
21
21
|
restricted?: boolean;
|
|
22
22
|
/** Aborted when the HTTP client goes away; combined with the MCP request signal. */
|
|
23
23
|
requestSignal?: AbortSignal;
|
|
24
|
+
/**
|
|
25
|
+
* Allow `PW_MCP_TOOLS=auto` (load more tools on request). Only a server
|
|
26
|
+
* that lives for the whole connection can keep loaded tools, so stdio
|
|
27
|
+
* sets this; the stateless HTTP bridge, which builds a server per
|
|
28
|
+
* request, lists every selected tool instead.
|
|
29
|
+
*/
|
|
30
|
+
lazyTools?: boolean;
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
26
33
|
* Tools that neither drive a browser nor write files. The HTTP bridge
|
|
@@ -31,18 +38,23 @@ export interface CreateServerOptions {
|
|
|
31
38
|
export declare const READ_ONLY_TOOLS: readonly string[];
|
|
32
39
|
/**
|
|
33
40
|
* Named tool sets for PW_MCP_TOOLS / --tools. Every tool definition costs
|
|
34
|
-
* context on each request (all nineteen are ~
|
|
41
|
+
* context on each request (all nineteen are ~11.5k tokens), so a client that
|
|
35
42
|
* only fixes failing suites can load the core loop alone.
|
|
36
43
|
*/
|
|
37
44
|
export declare const TOOL_PROFILES: Readonly<Record<string, readonly string[]>>;
|
|
45
|
+
/** The profile names a client can load later with load-tools (see PW_MCP_TOOLS=auto). */
|
|
46
|
+
export declare const LAZY_PROFILE = "auto";
|
|
38
47
|
/**
|
|
39
48
|
* Resolve a comma-separated list of tool names and profile names
|
|
40
49
|
* (`core,inspect-page`). Returns undefined (all tools) for an empty spec;
|
|
41
|
-
* unknown entries are reported, not fatal.
|
|
50
|
+
* unknown entries are reported, not fatal. `auto` starts with the listed
|
|
51
|
+
* tools (the core loop when none are listed) and sets `lazy`, so the rest
|
|
52
|
+
* can be loaded on request with load-tools.
|
|
42
53
|
*/
|
|
43
54
|
export declare function resolveToolSelection(spec: string | undefined): {
|
|
44
55
|
tools?: string[];
|
|
45
56
|
unknown: string[];
|
|
57
|
+
lazy?: boolean;
|
|
46
58
|
};
|
|
47
59
|
export declare function resolveDefaultProjectRoot(): string;
|
|
48
60
|
/** The first protocol revision without sessions or the initialize handshake. */
|
package/dist/server.js
CHANGED
|
@@ -10,6 +10,8 @@ import { createRequire } from 'node:module';
|
|
|
10
10
|
import { statSync } from 'node:fs';
|
|
11
11
|
import { serveStdio } from '@modelcontextprotocol/server/stdio';
|
|
12
12
|
import { McpServer, SUPPORTED_PROTOCOL_VERSIONS, TRACEPARENT_META_KEY } from '@modelcontextprotocol/server';
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import { withCompactJsonSchema } from './utils/compact-schema.js';
|
|
13
15
|
import { toPlaywrightMcpError } from './types/index.js';
|
|
14
16
|
import { logger } from './utils/logger.js';
|
|
15
17
|
import { killActiveChildren } from './utils/playwright-runner.js';
|
|
@@ -312,7 +314,7 @@ const TOOLS = [
|
|
|
312
314
|
export const READ_ONLY_TOOLS = ['list-tests', 'get-failure', 'analyze-history'];
|
|
313
315
|
/**
|
|
314
316
|
* Named tool sets for PW_MCP_TOOLS / --tools. Every tool definition costs
|
|
315
|
-
* context on each request (all nineteen are ~
|
|
317
|
+
* context on each request (all nineteen are ~11.5k tokens), so a client that
|
|
316
318
|
* only fixes failing suites can load the core loop alone.
|
|
317
319
|
*/
|
|
318
320
|
export const TOOL_PROFILES = {
|
|
@@ -322,10 +324,14 @@ export const TOOL_PROFILES = {
|
|
|
322
324
|
inspect: ['inspect-page', 'validate-selector', 'compare-visual-state', 'audit-accessibility', 'audit-performance', 'save-login'],
|
|
323
325
|
author: ['list-tests', 'save-login', 'inspect-page', 'validate-selector', 'generate-e2e-test', 'check-test-change', 'run-test'],
|
|
324
326
|
};
|
|
327
|
+
/** The profile names a client can load later with load-tools (see PW_MCP_TOOLS=auto). */
|
|
328
|
+
export const LAZY_PROFILE = 'auto';
|
|
325
329
|
/**
|
|
326
330
|
* Resolve a comma-separated list of tool names and profile names
|
|
327
331
|
* (`core,inspect-page`). Returns undefined (all tools) for an empty spec;
|
|
328
|
-
* unknown entries are reported, not fatal.
|
|
332
|
+
* unknown entries are reported, not fatal. `auto` starts with the listed
|
|
333
|
+
* tools (the core loop when none are listed) and sets `lazy`, so the rest
|
|
334
|
+
* can be loaded on request with load-tools.
|
|
329
335
|
*/
|
|
330
336
|
export function resolveToolSelection(spec) {
|
|
331
337
|
const entries = (spec ?? '')
|
|
@@ -337,7 +343,12 @@ export function resolveToolSelection(spec) {
|
|
|
337
343
|
const known = new Set(TOOLS.map((tool) => tool.name));
|
|
338
344
|
const selected = new Set();
|
|
339
345
|
const unknown = [];
|
|
346
|
+
let lazy = false;
|
|
340
347
|
for (const entry of entries) {
|
|
348
|
+
if (entry.toLowerCase() === LAZY_PROFILE) {
|
|
349
|
+
lazy = true;
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
341
352
|
const profile = TOOL_PROFILES[entry.toLowerCase()];
|
|
342
353
|
if (profile)
|
|
343
354
|
profile.forEach((name) => selected.add(name));
|
|
@@ -346,10 +357,12 @@ export function resolveToolSelection(spec) {
|
|
|
346
357
|
else
|
|
347
358
|
unknown.push(entry);
|
|
348
359
|
}
|
|
360
|
+
if (lazy && selected.size === 0)
|
|
361
|
+
TOOL_PROFILES.core.forEach((name) => selected.add(name));
|
|
349
362
|
if (selected.size === 0)
|
|
350
363
|
return { unknown };
|
|
351
364
|
// Keep the registry's order so tools/list is stable.
|
|
352
|
-
return { tools: TOOLS.map((tool) => tool.name).filter((name) => selected.has(name)), unknown };
|
|
365
|
+
return { tools: TOOLS.map((tool) => tool.name).filter((name) => selected.has(name)), unknown, ...(lazy ? { lazy } : {}) };
|
|
353
366
|
}
|
|
354
367
|
export function resolveDefaultProjectRoot() {
|
|
355
368
|
const fromEnv = process.env.PW_MCP_PROJECT_ROOT;
|
|
@@ -394,6 +407,59 @@ export function traceContext(meta) {
|
|
|
394
407
|
return {};
|
|
395
408
|
return { traceId: match[1], parentSpanId: match[2] };
|
|
396
409
|
}
|
|
410
|
+
const LOADABLE_PROFILES = ['triage', 'inspect', 'author', 'all'];
|
|
411
|
+
/**
|
|
412
|
+
* load-tools: the one extra tool in PW_MCP_TOOLS=auto. It turns on hidden
|
|
413
|
+
* tools for the rest of the connection and the server tells the client
|
|
414
|
+
* the tool list changed (notifications/tools/list_changed).
|
|
415
|
+
*/
|
|
416
|
+
function registerLoadTools(server, registered) {
|
|
417
|
+
const hidden = () => [...registered.entries()].filter(([, handle]) => !handle.enabled).map(([name]) => name);
|
|
418
|
+
// Name only what each profile adds to the tools already listed.
|
|
419
|
+
const profiles = LOADABLE_PROFILES.filter((name) => name !== 'all')
|
|
420
|
+
.map((name) => `${name} (${TOOL_PROFILES[name].filter((tool) => !registered.get(tool)?.enabled).join(', ')})`)
|
|
421
|
+
.join(', ');
|
|
422
|
+
server.registerTool('load-tools', {
|
|
423
|
+
title: 'Load more tools',
|
|
424
|
+
description: `Turn on more playwright-e2e-mcp tools for this session; only the core fix loop is loaded at first. Profiles: ${profiles}, all. Tool names work too.`,
|
|
425
|
+
inputSchema: withCompactJsonSchema(z.object({
|
|
426
|
+
load: z.array(z.string()).min(1).max(20).describe("Profiles or tool names, e.g. ['inspect'] or ['audit-accessibility']"),
|
|
427
|
+
})),
|
|
428
|
+
annotations: { title: 'Load more tools', readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
429
|
+
}, async (args) => {
|
|
430
|
+
const { load } = args;
|
|
431
|
+
const resolved = resolveToolSelection(load.join(','));
|
|
432
|
+
const turnedOn = [];
|
|
433
|
+
for (const name of resolved.tools ?? []) {
|
|
434
|
+
const handle = registered.get(name);
|
|
435
|
+
if (handle && !handle.enabled) {
|
|
436
|
+
// Set directly so the client gets one list_changed, not one per tool.
|
|
437
|
+
handle.enabled = true;
|
|
438
|
+
turnedOn.push(name);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
if (turnedOn.length > 0)
|
|
442
|
+
server.sendToolListChanged();
|
|
443
|
+
const lines = [];
|
|
444
|
+
if (turnedOn.length > 0) {
|
|
445
|
+
lines.push(`Loaded: ${turnedOn.map((name) => `\`${name}\``).join(', ')}. They are in your tool list now; call them directly.`);
|
|
446
|
+
lines.push('', 'If your client does not show them, it ignores tool list changes: restart the server with `--tools=all` (or the profile you need).');
|
|
447
|
+
}
|
|
448
|
+
else if ((resolved.tools ?? []).length > 0) {
|
|
449
|
+
lines.push('Those tools are already loaded.');
|
|
450
|
+
}
|
|
451
|
+
if (resolved.unknown.length > 0)
|
|
452
|
+
lines.push(`Unknown: ${resolved.unknown.map((name) => `\`${name}\``).join(', ')}. Profiles: ${LOADABLE_PROFILES.join(', ')}.`);
|
|
453
|
+
const rest = hidden();
|
|
454
|
+
if (rest.length > 0)
|
|
455
|
+
lines.push('', `Still available to load: ${rest.join(', ')}.`);
|
|
456
|
+
const failed = resolved.unknown.length > 0 && (resolved.tools ?? []).length === 0;
|
|
457
|
+
return {
|
|
458
|
+
content: [{ type: 'text', text: lines.join('\n').trim() }],
|
|
459
|
+
...(failed ? { isError: true } : {}),
|
|
460
|
+
};
|
|
461
|
+
});
|
|
462
|
+
}
|
|
397
463
|
export function createServer(options = {}) {
|
|
398
464
|
const projectRoot = options.projectRoot ?? resolveDefaultProjectRoot();
|
|
399
465
|
const store = options.store ?? createToolStore();
|
|
@@ -412,23 +478,34 @@ export function createServer(options = {}) {
|
|
|
412
478
|
cacheHints: CACHE_HINTS,
|
|
413
479
|
});
|
|
414
480
|
let selection = options.tools;
|
|
481
|
+
let lazy = false;
|
|
415
482
|
if (!selection && process.env.PW_MCP_TOOLS) {
|
|
416
483
|
const resolved = resolveToolSelection(process.env.PW_MCP_TOOLS);
|
|
417
484
|
if (resolved.unknown.length > 0) {
|
|
418
485
|
logger.warn('PW_MCP_TOOLS names unknown tools or profiles; ignoring them', {
|
|
419
486
|
unknown: resolved.unknown,
|
|
420
|
-
profiles: Object.keys(TOOL_PROFILES),
|
|
487
|
+
profiles: [...Object.keys(TOOL_PROFILES), LAZY_PROFILE],
|
|
421
488
|
});
|
|
422
489
|
}
|
|
423
490
|
selection = resolved.tools;
|
|
491
|
+
// Without a long-lived server, `auto` lists every tool: a tool loaded
|
|
492
|
+
// in one request would be gone in the next.
|
|
493
|
+
if (resolved.lazy && options.lazyTools)
|
|
494
|
+
lazy = true;
|
|
495
|
+
else if (resolved.lazy)
|
|
496
|
+
selection = undefined;
|
|
424
497
|
}
|
|
425
498
|
const enabled = selection ? TOOLS.filter((tool) => selection.includes(tool.name)) : TOOLS;
|
|
426
|
-
|
|
499
|
+
// In auto mode every tool is registered, and the ones not selected stay
|
|
500
|
+
// hidden until load-tools turns them on.
|
|
501
|
+
const registered = new Map();
|
|
502
|
+
for (const tool of lazy ? TOOLS : enabled) {
|
|
427
503
|
const input = looseInput(tool.inputSchema);
|
|
428
|
-
server.registerTool(tool.name, {
|
|
504
|
+
const handle = server.registerTool(tool.name, {
|
|
429
505
|
title: tool.title,
|
|
430
506
|
description: tool.description,
|
|
431
|
-
|
|
507
|
+
// Listed without length/item limits (the full schema still validates).
|
|
508
|
+
inputSchema: withCompactJsonSchema(input.schema),
|
|
432
509
|
// Results always carry structuredContent; the schema that describes
|
|
433
510
|
// it costs context on every request, so PW_MCP_OUTPUT_SCHEMAS=0 drops it.
|
|
434
511
|
...(process.env.PW_MCP_OUTPUT_SCHEMAS !== '0' && outputSchemaFor(tool.name) ? { outputSchema: outputSchemaFor(tool.name) } : {}),
|
|
@@ -488,11 +565,16 @@ export function createServer(options = {}) {
|
|
|
488
565
|
return toolError(error.kind, error.message, error.hint, error.details);
|
|
489
566
|
}
|
|
490
567
|
});
|
|
568
|
+
registered.set(tool.name, handle);
|
|
569
|
+
if (lazy && !enabled.includes(tool))
|
|
570
|
+
handle.disable();
|
|
491
571
|
}
|
|
572
|
+
if (lazy)
|
|
573
|
+
registerLoadTools(server, registered);
|
|
492
574
|
if (!options.tools)
|
|
493
575
|
registerPrompts(server);
|
|
494
576
|
// The interactive test report view (MCP Apps).
|
|
495
|
-
if (enabled.some((tool) => appMetaFor(tool.name)))
|
|
577
|
+
if ((lazy ? TOOLS : enabled).some((tool) => appMetaFor(tool.name)))
|
|
496
578
|
registerApps(server);
|
|
497
579
|
// The playbook for these tools, over the Skills extension (SEP-2640).
|
|
498
580
|
attachBundledSkill(server);
|
|
@@ -522,7 +604,7 @@ export async function shutdown(server, code, reason) {
|
|
|
522
604
|
* from createServer() is pinned for the connection.
|
|
523
605
|
*/
|
|
524
606
|
export async function startServer() {
|
|
525
|
-
const server = serveStdio(() => createServer(), {
|
|
607
|
+
const server = serveStdio(() => createServer({ lazyTools: true }), {
|
|
526
608
|
onerror: (error) => logger.warn('stdio transport error', { error }),
|
|
527
609
|
});
|
|
528
610
|
process.on('SIGINT', () => void shutdown(server, 0, 'SIGINT'));
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import { assertHttpUrl, bestLocator, clipLines, describePageState, describeRouteHits, describeTabs, describeBlockedWrites, guard, loginHint, pageStateShape, resolvePageState, resolveProjectRoot, runBrowserScript, toolError, toolText, } from './shared.js';
|
|
13
|
-
import {
|
|
13
|
+
import { renderLocatorMap } from '../utils/locator-map.js';
|
|
14
14
|
import { assertUrlAllowed } from '../utils/url-policy.js';
|
|
15
15
|
const inspectPageInput = z.object({
|
|
16
16
|
url: z.string().describe('Full URL of the page to open (http/https)'),
|
|
@@ -25,7 +25,7 @@ const inspectPageInput = z.object({
|
|
|
25
25
|
view: z
|
|
26
26
|
.enum(['elements', 'locators', 'aria'])
|
|
27
27
|
.optional()
|
|
28
|
-
.describe("'locators': compact map of interactive elements
|
|
28
|
+
.describe("'locators' (default): compact map of interactive elements; 'aria': accessibility snapshot + toMatchAriaSnapshot check (scoped by selector); 'elements': full DOM inventory with boxes and attributes"),
|
|
29
29
|
waitFor: z
|
|
30
30
|
.string()
|
|
31
31
|
.optional()
|
|
@@ -66,12 +66,6 @@ export function ariaAssertionCode(snapshot, selector, indent = 0) {
|
|
|
66
66
|
const target = selector ? `page.locator(${JSON.stringify(selector)})` : "page.locator('body')";
|
|
67
67
|
return [`${pad}await expect(${target}).toMatchAriaSnapshot(\``, body, `${pad}\`);`].join('\n');
|
|
68
68
|
}
|
|
69
|
-
function renderLocatorLine(element, position) {
|
|
70
|
-
const best = bestLocator(element);
|
|
71
|
-
const alt = (element.locators ?? []).slice(1).map((chain) => `\`${formatLocator(chain)}\``);
|
|
72
|
-
const label = element.role ? `${element.role}${element.name ? ` "${clipLines(element.name, 1, 60)}"` : ''}` : element.tag;
|
|
73
|
-
return `${position}. \`${best ?? element.selector}\` — ${label}${alt.length > 0 ? ` · also ${alt.join(', ')}` : ''}`;
|
|
74
|
-
}
|
|
75
69
|
function renderElement(element, position) {
|
|
76
70
|
const visibility = element.visible ? 'visible' : 'hidden';
|
|
77
71
|
const box = element.box
|
|
@@ -96,7 +90,7 @@ function renderElement(element, position) {
|
|
|
96
90
|
}
|
|
97
91
|
export const inspectPageTool = {
|
|
98
92
|
name: 'inspect-page',
|
|
99
|
-
description: "Open a URL in a fresh headless browser and return its elements with Playwright locators proven unique on the page (role + name first), CSS selectors, visibility, text and console messages. Each call starts clean (no cookies kept): put every step to reach a state, login included, in actions, or open it signed in with storageState/headers.
|
|
93
|
+
description: "Open a URL in a fresh headless browser and return its elements with Playwright locators proven unique on the page (role + name first), CSS selectors, visibility, text and console messages. Each call starts clean (no cookies kept): put every step to reach a state, login included, in actions, or open it signed in with storageState/headers. By default it returns the compact locator map; view 'elements' gives the full DOM inventory and view 'aria' returns the accessibility snapshot plus a ready toMatchAriaSnapshot assertion.",
|
|
100
94
|
inputSchema: inspectPageSchema,
|
|
101
95
|
handler: async (args, ctx) => guard('inspect-page', async () => {
|
|
102
96
|
const url = assertHttpUrl(args.url);
|
|
@@ -104,7 +98,7 @@ export const inspectPageTool = {
|
|
|
104
98
|
const root = await resolveProjectRoot(args.projectRoot, ctx);
|
|
105
99
|
const state = await resolvePageState(args, root, url, ctx);
|
|
106
100
|
const timeoutMs = args.timeoutMs ?? 45_000;
|
|
107
|
-
const view = args.view === 'aria' ? 'aria' : args.selector ? 'elements' : (args.view ?? '
|
|
101
|
+
const view = args.view === 'aria' ? 'aria' : args.selector ? 'elements' : (args.view ?? 'locators');
|
|
108
102
|
const outcome = await runBrowserScript({
|
|
109
103
|
...state,
|
|
110
104
|
mode: 'inspect',
|
|
@@ -174,8 +168,7 @@ export const inspectPageTool = {
|
|
|
174
168
|
lines.push('_No elements matched._', '');
|
|
175
169
|
}
|
|
176
170
|
else if (view === 'locators') {
|
|
177
|
-
|
|
178
|
-
lines.push(renderLocatorLine(data.elements[i], i + 1));
|
|
171
|
+
lines.push(...renderLocatorMap(data.elements));
|
|
179
172
|
lines.push('');
|
|
180
173
|
}
|
|
181
174
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect-page.js","sourceRoot":"","sources":["../../src/tools/inspect-page.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inspect-page.js","sourceRoot":"","sources":["../../src/tools/inspect-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smaller advertised input schemas.
|
|
3
|
+
*
|
|
4
|
+
* Tool definitions are sent to the model with every request, so each
|
|
5
|
+
* keyword in them costs tokens on every turn. This drops the keywords an
|
|
6
|
+
* agent does not need to write a correct call (length and item limits,
|
|
7
|
+
* `propertyNames`, `$schema`, an empty `additionalProperties`). The server
|
|
8
|
+
* still validates every call against the full schema, so an argument
|
|
9
|
+
* outside a limit is refused with a message that names the limit.
|
|
10
|
+
*
|
|
11
|
+
* Numeric `minimum` / `maximum` stay: they steer timeouts and sizes, where
|
|
12
|
+
* a guessed value would otherwise cost a failed call.
|
|
13
|
+
*/
|
|
14
|
+
import type { StandardSchemaWithJSON } from '@modelcontextprotocol/server';
|
|
15
|
+
export declare function compactJsonSchema(node: unknown, inMap?: boolean): unknown;
|
|
16
|
+
/**
|
|
17
|
+
* Wrap a schema so the JSON Schema listed in tools/list is compacted while
|
|
18
|
+
* validation (`~standard.validate`) still runs the original schema.
|
|
19
|
+
*/
|
|
20
|
+
export declare function withCompactJsonSchema(schema: StandardSchemaWithJSON): StandardSchemaWithJSON;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smaller advertised input schemas.
|
|
3
|
+
*
|
|
4
|
+
* Tool definitions are sent to the model with every request, so each
|
|
5
|
+
* keyword in them costs tokens on every turn. This drops the keywords an
|
|
6
|
+
* agent does not need to write a correct call (length and item limits,
|
|
7
|
+
* `propertyNames`, `$schema`, an empty `additionalProperties`). The server
|
|
8
|
+
* still validates every call against the full schema, so an argument
|
|
9
|
+
* outside a limit is refused with a message that names the limit.
|
|
10
|
+
*
|
|
11
|
+
* Numeric `minimum` / `maximum` stay: they steer timeouts and sizes, where
|
|
12
|
+
* a guessed value would otherwise cost a failed call.
|
|
13
|
+
*/
|
|
14
|
+
const DROPPED = new Set(['$schema', 'propertyNames', 'minLength', 'maxLength', 'minItems', 'maxItems']);
|
|
15
|
+
/** Keys whose value is a map of names to schemas, where names are not keywords. */
|
|
16
|
+
const SCHEMA_MAPS = new Set(['properties', 'patternProperties', '$defs', 'definitions']);
|
|
17
|
+
export function compactJsonSchema(node, inMap = false) {
|
|
18
|
+
if (Array.isArray(node))
|
|
19
|
+
return node.map((item) => compactJsonSchema(item));
|
|
20
|
+
if (!node || typeof node !== 'object')
|
|
21
|
+
return node;
|
|
22
|
+
const out = {};
|
|
23
|
+
for (const [key, value] of Object.entries(node)) {
|
|
24
|
+
if (!inMap) {
|
|
25
|
+
if (DROPPED.has(key))
|
|
26
|
+
continue;
|
|
27
|
+
// `additionalProperties: {}` allows anything, the same as leaving it out.
|
|
28
|
+
if (key === 'additionalProperties' && value && typeof value === 'object' && Object.keys(value).length === 0)
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
out[key] = compactJsonSchema(value, !inMap && SCHEMA_MAPS.has(key));
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Wrap a schema so the JSON Schema listed in tools/list is compacted while
|
|
37
|
+
* validation (`~standard.validate`) still runs the original schema.
|
|
38
|
+
*/
|
|
39
|
+
export function withCompactJsonSchema(schema) {
|
|
40
|
+
const std = schema['~standard'];
|
|
41
|
+
if (!std.jsonSchema)
|
|
42
|
+
return schema;
|
|
43
|
+
const jsonSchema = std.jsonSchema;
|
|
44
|
+
return {
|
|
45
|
+
'~standard': {
|
|
46
|
+
...std,
|
|
47
|
+
validate: std.validate.bind(std),
|
|
48
|
+
jsonSchema: {
|
|
49
|
+
input: (options) => compactJsonSchema(jsonSchema.input(options)),
|
|
50
|
+
output: (options) => compactJsonSchema(jsonSchema.output(options)),
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=compact-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-schema.js","sourceRoot":"","sources":["../../src/utils/compact-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAExG,mFAAmF;AACnF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAEzF,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,KAAK,GAAG,KAAK;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,0EAA0E;YAC1E,IAAI,GAAG,KAAK,sBAAsB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;QACxH,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAwC,CAAC;IACvE,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAClC,OAAO;QACL,WAAW,EAAE;YACX,GAAG,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,UAAU,EAAE;gBACV,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAA4B;gBAC3F,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAA4B;aAC9F;SACF;KACwB,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compact rendering of inspect-page's locator map.
|
|
3
|
+
*
|
|
4
|
+
* Two things keep it short without losing what an agent acts on:
|
|
5
|
+
*
|
|
6
|
+
* - Alternatives are listed only when they add a different, stable way to
|
|
7
|
+
* reach the element (a test id or role next to a text locator, say).
|
|
8
|
+
* getByText and raw CSS alternatives are dropped: the best locator is
|
|
9
|
+
* already verified unique.
|
|
10
|
+
* - Repeated blocks (product cards, table rows, list items) are shown once
|
|
11
|
+
* and the rest are summarised by name, since their locators differ only
|
|
12
|
+
* in the item's name or number.
|
|
13
|
+
*/
|
|
14
|
+
import type { ElementInfo } from '../types/index.js';
|
|
15
|
+
export declare function renderLocatorLine(element: ElementInfo, position: number): string;
|
|
16
|
+
/**
|
|
17
|
+
* The shape of an element's locator with every name and number blanked,
|
|
18
|
+
* so the "Add to cart" button of card 3 and card 7 compare equal.
|
|
19
|
+
*/
|
|
20
|
+
export declare function locatorShape(element: ElementInfo): string;
|
|
21
|
+
/**
|
|
22
|
+
* Render the locator map, numbered by position in `elements`, with
|
|
23
|
+
* repeated blocks collapsed after their first occurrence.
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderLocatorMap(elements: ElementInfo[]): string[];
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compact rendering of inspect-page's locator map.
|
|
3
|
+
*
|
|
4
|
+
* Two things keep it short without losing what an agent acts on:
|
|
5
|
+
*
|
|
6
|
+
* - Alternatives are listed only when they add a different, stable way to
|
|
7
|
+
* reach the element (a test id or role next to a text locator, say).
|
|
8
|
+
* getByText and raw CSS alternatives are dropped: the best locator is
|
|
9
|
+
* already verified unique.
|
|
10
|
+
* - Repeated blocks (product cards, table rows, list items) are shown once
|
|
11
|
+
* and the rest are summarised by name, since their locators differ only
|
|
12
|
+
* in the item's name or number.
|
|
13
|
+
*/
|
|
14
|
+
import { formatLocator } from './locator-expr.js';
|
|
15
|
+
/** Alternatives worth a reader's tokens: they address the element another stable way. */
|
|
16
|
+
const USEFUL_ALT = /^(getByTestId|getByRole|getByLabel|getByPlaceholder)\(/;
|
|
17
|
+
function clip(text, max) {
|
|
18
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
19
|
+
return flat.length > max ? `${flat.slice(0, max - 1)}…` : flat;
|
|
20
|
+
}
|
|
21
|
+
function method(locator) {
|
|
22
|
+
return locator.slice(0, locator.indexOf('(') + 1);
|
|
23
|
+
}
|
|
24
|
+
function best(element) {
|
|
25
|
+
const chain = element.locators?.[0];
|
|
26
|
+
return chain ? formatLocator(chain) : element.selector;
|
|
27
|
+
}
|
|
28
|
+
export function renderLocatorLine(element, position) {
|
|
29
|
+
const first = best(element);
|
|
30
|
+
const alts = (element.locators ?? [])
|
|
31
|
+
.slice(1)
|
|
32
|
+
.map((chain) => formatLocator(chain))
|
|
33
|
+
.filter((alt) => USEFUL_ALT.test(alt) && method(alt) !== method(first))
|
|
34
|
+
.slice(0, 1)
|
|
35
|
+
.map((alt) => `\`${alt}\``);
|
|
36
|
+
const label = element.role ? `${element.role}${element.name ? ` "${clip(element.name, 60)}"` : ''}` : element.tag;
|
|
37
|
+
return `${position}. \`${first}\` — ${label}${alts.length > 0 ? ` · also ${alts.join(', ')}` : ''}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The shape of an element's locator with every name and number blanked,
|
|
41
|
+
* so the "Add to cart" button of card 3 and card 7 compare equal.
|
|
42
|
+
*/
|
|
43
|
+
export function locatorShape(element) {
|
|
44
|
+
const shape = best(element)
|
|
45
|
+
.replace(/'(?:[^'\\]|\\.)*'/g, "'…'")
|
|
46
|
+
.replace(/"(?:[^"\\]|\\.)*"/g, '"…"')
|
|
47
|
+
.replace(/\d+/g, '#');
|
|
48
|
+
return `${element.role ?? element.tag}|${shape}`;
|
|
49
|
+
}
|
|
50
|
+
/** The longest run of a repeated block starting at `start` (block size 1–8, at least 3 repeats, 5 hidden lines). */
|
|
51
|
+
function findRun(shapes, start) {
|
|
52
|
+
let found;
|
|
53
|
+
for (let size = 1; size <= 8 && start + size * 3 <= shapes.length; size += 1) {
|
|
54
|
+
let repeats = 1;
|
|
55
|
+
while (start + (repeats + 1) * size <= shapes.length) {
|
|
56
|
+
let same = true;
|
|
57
|
+
for (let k = 0; k < size; k += 1) {
|
|
58
|
+
if (shapes[start + repeats * size + k] !== shapes[start + k]) {
|
|
59
|
+
same = false;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (!same)
|
|
64
|
+
break;
|
|
65
|
+
repeats += 1;
|
|
66
|
+
}
|
|
67
|
+
// Collapse only when it hides at least five lines; shorter runs read better in full.
|
|
68
|
+
if (repeats >= 3 && (repeats - 1) * size >= 5 && (!found || repeats * size > found.repeats * found.size))
|
|
69
|
+
found = { start, size, repeats };
|
|
70
|
+
}
|
|
71
|
+
return found;
|
|
72
|
+
}
|
|
73
|
+
/** A block's display name: its first named element (a heading or image name, usually). */
|
|
74
|
+
function blockName(block) {
|
|
75
|
+
const named = block.find((el) => el.name && el.name.trim()) ?? block.find((el) => el.text && el.text.trim());
|
|
76
|
+
const text = named?.name ?? named?.text;
|
|
77
|
+
return text ? clip(text, 40) : undefined;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Render the locator map, numbered by position in `elements`, with
|
|
81
|
+
* repeated blocks collapsed after their first occurrence.
|
|
82
|
+
*/
|
|
83
|
+
export function renderLocatorMap(elements) {
|
|
84
|
+
const shapes = elements.map(locatorShape);
|
|
85
|
+
const lines = [];
|
|
86
|
+
let i = 0;
|
|
87
|
+
while (i < elements.length) {
|
|
88
|
+
const run = findRun(shapes, i);
|
|
89
|
+
if (!run) {
|
|
90
|
+
lines.push(renderLocatorLine(elements[i], i + 1));
|
|
91
|
+
i += 1;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
for (let k = 0; k < run.size; k += 1)
|
|
95
|
+
lines.push(renderLocatorLine(elements[i + k], i + k + 1));
|
|
96
|
+
const restStart = i + run.size;
|
|
97
|
+
const restEnd = i + run.size * run.repeats;
|
|
98
|
+
const names = [];
|
|
99
|
+
for (let b = restStart; b < restEnd; b += run.size) {
|
|
100
|
+
const name = blockName(elements.slice(b, b + run.size));
|
|
101
|
+
if (name)
|
|
102
|
+
names.push(`"${name}"`);
|
|
103
|
+
}
|
|
104
|
+
const shown = names.slice(0, 30);
|
|
105
|
+
const more = names.length > shown.length ? `, …${names.length - shown.length} more` : '';
|
|
106
|
+
lines.push(`${restStart + 1}–${restEnd}. ↳ ${run.repeats - 1} more blocks like ${run.size === 1 ? i + 1 : `${i + 1}–${restStart}`}: same locators with the item's own name or number` +
|
|
107
|
+
(shown.length > 0 ? `: ${shown.join(', ')}${more}` : '') +
|
|
108
|
+
'. Pass `selector` to list one in full.');
|
|
109
|
+
i = restEnd;
|
|
110
|
+
}
|
|
111
|
+
return lines;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=locator-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locator-map.js","sourceRoot":"","sources":["../../src/utils/locator-map.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "playwright-e2e-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "MCP server and agent skill that run, diagnose and fix failing Playwright tests (TypeScript and pytest): CI report diagnosis, trace analysis, verified locator fixes, flaky verdicts, breaking commits, heal guard, accessibility and Web Vitals audits.",
|
|
5
5
|
"author": "xsignon-secure (https://github.com/xsignon-secure)",
|
|
6
6
|
"mcpName": "io.github.xsignon-secure/E2E",
|
|
@@ -13,7 +13,7 @@ and concrete next steps. It can also propose and apply a verified fix for a brok
|
|
|
13
13
|
locator, inspect pages behind a login, run long suites in the background and keep
|
|
14
14
|
a local history of every run.
|
|
15
15
|
|
|
16
|
-
This skill is written for playwright-e2e-mcp 0.
|
|
16
|
+
This skill is written for playwright-e2e-mcp 0.11.0 and works with 0.2.0 or
|
|
17
17
|
newer. If `suggest-fix`, `get-run-status` or `analyze-history` is missing, the
|
|
18
18
|
server is older than 0.2.0: use the steps that do not need those tools and tell
|
|
19
19
|
the user to update it. `diagnose-flaky`'s per-test table and `isolate` option
|
|
@@ -28,7 +28,9 @@ pytest-playwright projects (`run-test`, `get-failure`, `list-tests`) arrived in
|
|
|
28
28
|
0.8.0; the free self-hosted history server (`PW_MCP_HISTORY_URL` /
|
|
29
29
|
`PW_MCP_HISTORY_TOKEN`, replacing the old Pro settings, which still work) arrived
|
|
30
30
|
in 0.9.0; asking before changing files, the interactive test report (MCP Apps)
|
|
31
|
-
and sign-in with Client ID Metadata Documents arrived in 0.10.0
|
|
31
|
+
and sign-in with Client ID Metadata Documents arrived in 0.10.0; the compact
|
|
32
|
+
`inspect-page` locator map as the default view and `load-tools` (`--tools=auto`)
|
|
33
|
+
arrived in 0.11.0. If a tool that
|
|
32
34
|
writes returns `declined: true`, the user said no: do not retry the write, show
|
|
33
35
|
them the proposed change instead. If `doctor` says a newer version is out, pass its upgrade command on to
|
|
34
36
|
the user.
|
|
@@ -49,8 +51,10 @@ the user.
|
|
|
49
51
|
`references/writing-tests.md`. Do not fall back to shelling out to `npx playwright test` unless
|
|
50
52
|
the user asks. If only some are missing, the server may run a smaller tool
|
|
51
53
|
profile (`--tools=core` exposes `run-test`, `get-run-status`, `get-failure`,
|
|
52
|
-
`suggest-fix`, `diagnose-flaky`, `check-test-change` and `list-tests`)
|
|
53
|
-
|
|
54
|
+
`suggest-fix`, `diagnose-flaky`, `check-test-change` and `list-tests`). If a `load-tools`
|
|
55
|
+
tool is listed, call it with the profile you need (`inspect`, `triage`, `author`) or the tool
|
|
56
|
+
names, then use them; otherwise work with what is there and mention the profile when a task
|
|
57
|
+
needs a page tool.
|
|
54
58
|
3. Every tool except `get-run-status` takes an optional `projectRoot`. Leave it
|
|
55
59
|
out unless the user works in a sub-project; the server defaults to `PW_MCP_PROJECT_ROOT` or its working
|
|
56
60
|
directory, and rejects any root outside its allowed roots.
|
|
@@ -286,7 +290,7 @@ with the commit it tested. `analyze-history` views:
|
|
|
286
290
|
`selector` for one region) returns the accessibility snapshot and a
|
|
287
291
|
`toMatchAriaSnapshot` assertion to paste into a spec.
|
|
288
292
|
- **Set up CI:** when the user wants the same diagnosis on every pull request,
|
|
289
|
-
point them to the GitHub Action (`uses: xsignon-secure/E2E@v0.
|
|
293
|
+
point them to the GitHub Action (`uses: xsignon-secure/E2E@v0.11.0`) or the
|
|
290
294
|
`npx -y playwright-e2e-mcp ci` command in `references/setup.md`. It writes the
|
|
291
295
|
run, flaky verdicts and fix diffs to the job summary and one PR comment.
|
|
292
296
|
- **Accessibility:** `audit-accessibility` with `url` runs axe-core against
|
|
@@ -77,7 +77,7 @@ Set these in the server's `env` block. None of them are secrets except
|
|
|
77
77
|
| Variable | Default | Purpose |
|
|
78
78
|
| --- | --- | --- |
|
|
79
79
|
| `PW_MCP_PROJECT_ROOT` | server working directory | Default project root for every tool |
|
|
80
|
-
| `PW_MCP_TOOLS` | all | Tools to expose: names and/or profiles `core`, `triage`, `inspect`, `author` (same as the `--tools=` flag). `core`
|
|
80
|
+
| `PW_MCP_TOOLS` | all | Tools to expose: names and/or profiles `core`, `triage`, `inspect`, `author` (same as the `--tools=` flag). `core` cuts the tool-definition context by about four fifths; `auto` starts with `core` plus `load-tools`, which loads the other tools when you need them |
|
|
81
81
|
| `PW_MCP_ALLOWED_ROOTS` | none | Extra directories allowed as `projectRoot` (`:`-separated, `;` on Windows) |
|
|
82
82
|
| `PW_MCP_BLOCK_PRIVATE_URLS` | off for stdio | `1` makes the URL tools refuse loopback, private-network and cloud-metadata addresses |
|
|
83
83
|
| `PW_MCP_STORAGE_STATE` | none | Default Playwright storageState JSON (inside the project) for the page tools, so signed-in pages open logged in |
|
|
@@ -119,7 +119,7 @@ Exit code 0 means passed, 1 tests failed, 2 the run itself failed. On GitHub
|
|
|
119
119
|
Actions it also writes to the job summary. As an Action:
|
|
120
120
|
|
|
121
121
|
```yaml
|
|
122
|
-
- uses: xsignon-secure/E2E@v0.
|
|
122
|
+
- uses: xsignon-secure/E2E@v0.11.0
|
|
123
123
|
with:
|
|
124
124
|
flaky-runs: 3
|
|
125
125
|
suggest: 2
|
|
@@ -65,7 +65,7 @@ becomes the last run for `get-failure`, `suggest-fix` and `diagnose-flaky`.
|
|
|
65
65
|
| `waitUntil` | `load` \| `domcontentloaded` \| `networkidle` | Navigation wait |
|
|
66
66
|
| `includeHtml` | boolean | Include rendered HTML (capped by `maxHtmlChars`, default 20000) |
|
|
67
67
|
| `timeoutMs` | number | Default 45000 |
|
|
68
|
-
| `view` | `elements` \| `locators` \| `aria` | `locators
|
|
68
|
+
| `view` | `elements` \| `locators` \| `aria` | `locators` (default): compact map of interactive elements with verified locators, repeated blocks shown once; `elements`: full DOM inventory; `aria` (0.5.0+): accessibility snapshot of the page or of `selector`, with a `toMatchAriaSnapshot` assertion |
|
|
69
69
|
| `storageState` | string | Playwright storageState JSON inside the project (signed-in session); defaults to `PW_MCP_STORAGE_STATE` |
|
|
70
70
|
| `headers` | object | Extra HTTP headers |
|
|
71
71
|
| `actions` | array | Up to 20 steps after load: `{ type: click\|dblclick\|fill\|press\|check\|uncheck\|select\|hover\|wait\|goto, locator?, value?, url?, ms? }`. Locators may start with `frameLocator('#frame')` or use `.contentFrame()` for iframes (0.6.1+). `{ type: 'switchTab', value?: 'last'\|'first'\|'2'\|text in URL or title }` moves to a popup or new tab (0.8.0+) |
|