playwriter 0.0.7 → 0.0.11

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/dist/mcp.js CHANGED
@@ -7,18 +7,70 @@ import path from 'node:path';
7
7
  import { spawn } from 'node:child_process';
8
8
  import { createRequire } from 'node:module';
9
9
  import vm from 'node:vm';
10
+ import dedent from 'string-dedent';
11
+ import { createPatch } from 'diff';
10
12
  import { getCdpUrl } from './utils.js';
11
13
  const require = createRequire(import.meta.url);
14
+ const usefulGlobals = {
15
+ setTimeout,
16
+ setInterval,
17
+ clearTimeout,
18
+ clearInterval,
19
+ URL,
20
+ URLSearchParams,
21
+ fetch,
22
+ Buffer,
23
+ TextEncoder,
24
+ TextDecoder,
25
+ crypto,
26
+ AbortController,
27
+ AbortSignal,
28
+ structuredClone,
29
+ };
12
30
  const state = {
13
31
  isConnected: false,
14
32
  page: null,
15
33
  browser: null,
16
34
  context: null,
17
35
  };
36
+ const userState = {};
37
+ // Store logs per page targetId
38
+ const browserLogs = new Map();
39
+ const MAX_LOGS_PER_PAGE = 5000;
40
+ // Store last accessibility snapshot per page for diff feature
41
+ const lastSnapshots = new WeakMap();
18
42
  const RELAY_PORT = 19988;
43
+ const NO_TABS_ERROR = `No browser tabs are connected. Please install and enable the Playwriter extension on at least one tab: https://chromewebstore.google.com/detail/playwriter-mcp/jfeammnjpkecdekppnclgkkffahnhfhe`;
44
+ function isRegExp(value) {
45
+ return typeof value === 'object' && value !== null && typeof value.test === 'function' && typeof value.exec === 'function';
46
+ }
47
+ function clearUserState() {
48
+ Object.keys(userState).forEach((key) => delete userState[key]);
49
+ }
50
+ function clearConnectionState() {
51
+ state.isConnected = false;
52
+ state.browser = null;
53
+ state.page = null;
54
+ state.context = null;
55
+ }
56
+ async function sendLogToRelayServer(level, ...args) {
57
+ try {
58
+ await fetch(`http://localhost:${RELAY_PORT}/mcp-log`, {
59
+ method: 'POST',
60
+ headers: { 'Content-Type': 'application/json' },
61
+ body: JSON.stringify({ level, args }),
62
+ signal: AbortSignal.timeout(1000),
63
+ });
64
+ }
65
+ catch {
66
+ // Silently fail if relay server is not available
67
+ }
68
+ }
19
69
  async function isPortTaken(port) {
20
70
  try {
21
- const response = await fetch(`http://localhost:${port}/`);
71
+ const response = await fetch(`http://localhost:${port}/`, {
72
+ signal: AbortSignal.timeout(100),
73
+ });
22
74
  return response.ok;
23
75
  }
24
76
  catch {
@@ -28,19 +80,24 @@ async function isPortTaken(port) {
28
80
  async function ensureRelayServer() {
29
81
  const portTaken = await isPortTaken(RELAY_PORT);
30
82
  if (portTaken) {
31
- console.error('CDP relay server already running');
32
83
  return;
33
84
  }
34
- console.error('Starting CDP relay server...');
85
+ console.error('CDP relay server not running, starting it...');
35
86
  const scriptPath = require.resolve('../dist/start-relay-server.js');
36
87
  const serverProcess = spawn(process.execPath, [scriptPath], {
37
88
  detached: true,
38
89
  stdio: 'ignore',
39
90
  });
40
91
  serverProcess.unref();
41
- // wait for extension to connect
42
- await new Promise((resolve) => setTimeout(resolve, 1000));
43
- console.error('CDP relay server started');
92
+ for (let i = 0; i < 10; i++) {
93
+ await new Promise((resolve) => setTimeout(resolve, 500));
94
+ const isRunning = await isPortTaken(RELAY_PORT);
95
+ if (isRunning) {
96
+ console.error('CDP relay server started successfully');
97
+ return;
98
+ }
99
+ }
100
+ throw new Error('Failed to start CDP relay server after 5 seconds');
44
101
  }
45
102
  async function ensureConnection() {
46
103
  if (state.isConnected && state.browser && state.page) {
@@ -51,15 +108,79 @@ async function ensureConnection() {
51
108
  const browser = await chromium.connectOverCDP(cdpEndpoint);
52
109
  const contexts = browser.contexts();
53
110
  const context = contexts.length > 0 ? contexts[0] : await browser.newContext();
111
+ // Set up console listener for all future pages
112
+ context.on('page', (page) => {
113
+ setupPageConsoleListener(page);
114
+ });
54
115
  const pages = context.pages();
55
- const page = pages.length > 0 ? pages[0] : await context.newPage();
116
+ if (pages.length === 0) {
117
+ throw new Error(NO_TABS_ERROR);
118
+ }
119
+ const page = pages[0];
120
+ // Set up console listener for all existing pages
121
+ context.pages().forEach((p) => setupPageConsoleListener(p));
56
122
  state.browser = browser;
57
123
  state.page = page;
58
124
  state.context = context;
59
125
  state.isConnected = true;
60
126
  return { browser, page };
61
127
  }
62
- async function getCurrentPage() {
128
+ async function getPageTargetId(page) {
129
+ if (!page) {
130
+ throw new Error('Page is null or undefined');
131
+ }
132
+ // Always use internal _guid for consistency and speed
133
+ const guid = page._guid;
134
+ if (guid) {
135
+ return guid;
136
+ }
137
+ try {
138
+ // Fallback to CDP if _guid is not available
139
+ const client = await page.context().newCDPSession(page);
140
+ const { targetInfo } = await client.send('Target.getTargetInfo');
141
+ await client.detach();
142
+ return targetInfo.targetId;
143
+ }
144
+ catch (e) {
145
+ throw new Error(`Could not get page identifier: ${e}`);
146
+ }
147
+ }
148
+ function setupPageConsoleListener(page) {
149
+ // Get targetId synchronously using _guid
150
+ const targetId = page._guid;
151
+ if (!targetId) {
152
+ // If no _guid, silently fail - this shouldn't happen in normal operation
153
+ return;
154
+ }
155
+ // Initialize logs array for this page
156
+ if (!browserLogs.has(targetId)) {
157
+ browserLogs.set(targetId, []);
158
+ }
159
+ // Clear logs on navigation/reload
160
+ page.on('framenavigated', (frame) => {
161
+ // Only clear if it's the main frame navigating (page reload/navigation)
162
+ if (frame === page.mainFrame()) {
163
+ browserLogs.set(targetId, []);
164
+ }
165
+ });
166
+ // Delete logs when page is closed
167
+ page.on('close', () => {
168
+ browserLogs.delete(targetId);
169
+ });
170
+ page.on('console', (msg) => {
171
+ const logEntry = `[${msg.type()}] ${msg.text()}`;
172
+ // Get or create logs array for this page targetId
173
+ if (!browserLogs.has(targetId)) {
174
+ browserLogs.set(targetId, []);
175
+ }
176
+ const pageLogs = browserLogs.get(targetId);
177
+ pageLogs.push(logEntry);
178
+ if (pageLogs.length > MAX_LOGS_PER_PAGE) {
179
+ pageLogs.shift();
180
+ }
181
+ });
182
+ }
183
+ async function getCurrentPage(timeout = 5000) {
63
184
  if (state.page) {
64
185
  return state.page;
65
186
  }
@@ -69,12 +190,13 @@ async function getCurrentPage() {
69
190
  const pages = contexts[0].pages();
70
191
  if (pages.length > 0) {
71
192
  const page = pages[0];
193
+ page.waitForEvent('load', { timeout });
72
194
  await page.emulateMedia({ colorScheme: null });
73
195
  return page;
74
196
  }
75
197
  }
76
198
  }
77
- throw new Error('No page available');
199
+ throw new Error(NO_TABS_ERROR);
78
200
  }
79
201
  async function resetConnection() {
80
202
  if (state.browser) {
@@ -85,17 +207,26 @@ async function resetConnection() {
85
207
  console.error('Error closing browser:', e);
86
208
  }
87
209
  }
88
- state.browser = null;
89
- state.page = null;
90
- state.context = null;
91
- state.isConnected = false;
210
+ clearConnectionState();
211
+ clearUserState();
212
+ // DO NOT clear browser logs on reset - logs should persist across reconnections
213
+ // browserLogs.clear()
92
214
  await ensureRelayServer();
93
215
  const cdpEndpoint = getCdpUrl({ port: RELAY_PORT });
94
216
  const browser = await chromium.connectOverCDP(cdpEndpoint);
95
217
  const contexts = browser.contexts();
96
218
  const context = contexts.length > 0 ? contexts[0] : await browser.newContext();
219
+ // Set up console listener for all future pages
220
+ context.on('page', (page) => {
221
+ setupPageConsoleListener(page);
222
+ });
97
223
  const pages = context.pages();
98
- const page = pages.length > 0 ? pages[0] : await context.newPage();
224
+ if (pages.length === 0) {
225
+ throw new Error(NO_TABS_ERROR);
226
+ }
227
+ const page = pages[0];
228
+ // Set up console listener for all existing pages
229
+ context.pages().forEach((p) => setupPageConsoleListener(p));
99
230
  state.browser = browser;
100
231
  state.page = page;
101
232
  state.context = context;
@@ -114,12 +245,31 @@ server.tool('execute', promptContent, {
114
245
  .describe('js playwright code, has {page, state, context} in scope. Should be one line, using ; to execute multiple statements. you MUST call execute multiple times instead of writing complex scripts in a single tool call.'),
115
246
  timeout: z.number().default(5000).describe('Timeout in milliseconds for code execution (default: 5000ms)'),
116
247
  }, async ({ code, timeout }) => {
117
- await ensureConnection();
118
- const page = await getCurrentPage();
119
- const context = state.context || page.context();
120
- console.error('Executing code:', code);
248
+ const consoleLogs = [];
249
+ const formatConsoleLogs = (logs, prefix = 'Console output') => {
250
+ if (logs.length === 0) {
251
+ return '';
252
+ }
253
+ let text = `${prefix}:\n`;
254
+ logs.forEach(({ method, args }) => {
255
+ const formattedArgs = args
256
+ .map((arg) => {
257
+ if (typeof arg === 'object') {
258
+ return JSON.stringify(arg, null, 2);
259
+ }
260
+ return String(arg);
261
+ })
262
+ .join(' ');
263
+ text += `[${method}] ${formattedArgs}\n`;
264
+ });
265
+ return text + '\n';
266
+ };
121
267
  try {
122
- const consoleLogs = [];
268
+ await ensureRelayServer();
269
+ await ensureConnection();
270
+ const page = await getCurrentPage(timeout);
271
+ const context = state.context || page.context();
272
+ console.error('Executing code:', code);
123
273
  const customConsole = {
124
274
  log: (...args) => {
125
275
  consoleLogs.push({ method: 'log', args });
@@ -137,37 +287,140 @@ server.tool('execute', promptContent, {
137
287
  consoleLogs.push({ method: 'debug', args });
138
288
  },
139
289
  };
140
- const accessibilitySnapshot = async (targetPage) => {
290
+ const accessibilitySnapshot = async (options) => {
291
+ const { page: targetPage, search, contextLines = 10, showDiffSinceLastCall = false } = options;
141
292
  if (targetPage._snapshotForAI) {
142
293
  const snapshot = await targetPage._snapshotForAI();
143
- const snapshotStr = typeof snapshot === 'string'
144
- ? snapshot
145
- : JSON.stringify(snapshot, null, 2);
146
- return snapshotStr;
294
+ const snapshotStr = typeof snapshot === 'string' ? snapshot : JSON.stringify(snapshot, null, 2);
295
+ if (showDiffSinceLastCall) {
296
+ const previousSnapshot = lastSnapshots.get(targetPage);
297
+ lastSnapshots.set(targetPage, snapshotStr);
298
+ if (!previousSnapshot) {
299
+ return 'No previous snapshot available. This is the first call for this page. Full snapshot stored for next diff.';
300
+ }
301
+ const patch = createPatch('snapshot', previousSnapshot, snapshotStr, 'previous', 'current');
302
+ if (patch.split('\n').length <= 4) {
303
+ return 'No changes detected since last snapshot';
304
+ }
305
+ return patch;
306
+ }
307
+ lastSnapshots.set(targetPage, snapshotStr);
308
+ if (!search) {
309
+ return snapshotStr;
310
+ }
311
+ const lines = snapshotStr.split('\n');
312
+ const matches = [];
313
+ for (let i = 0; i < lines.length; i++) {
314
+ const line = lines[i];
315
+ let isMatch = false;
316
+ if (isRegExp(search)) {
317
+ isMatch = search.test(line);
318
+ }
319
+ else {
320
+ isMatch = line.includes(search);
321
+ }
322
+ if (isMatch) {
323
+ matches.push({ line, index: i });
324
+ if (matches.length >= 10)
325
+ break;
326
+ }
327
+ }
328
+ if (matches.length === 0) {
329
+ return 'No matches found';
330
+ }
331
+ return matches
332
+ .map((m) => {
333
+ const start = Math.max(0, m.index - contextLines);
334
+ const end = Math.min(lines.length, m.index + contextLines + 1);
335
+ return lines.slice(start, end).join('\n');
336
+ })
337
+ .join('\n\n---\n\n');
147
338
  }
148
339
  throw new Error('accessibilitySnapshot is not available on this page');
149
340
  };
341
+ const getLocatorStringForElement = async (element) => {
342
+ if (!element || typeof element.evaluate !== 'function') {
343
+ throw new Error('getLocatorStringForElement: argument must be a Playwright Locator or ElementHandle');
344
+ }
345
+ return await element.evaluate(async (el) => {
346
+ const WIN = globalThis;
347
+ if (!WIN.__selectorGenerator) {
348
+ const module = await import(
349
+ // @ts-ignore
350
+ 'https://unpkg.com/@mizchi/selector-generator@1.50.0-next/dist/index.js');
351
+ WIN.__selectorGenerator = {
352
+ createSelectorGenerator: module.createSelectorGenerator,
353
+ toLocator: module.toLocator,
354
+ };
355
+ }
356
+ const { createSelectorGenerator, toLocator } = WIN.__selectorGenerator;
357
+ const generator = createSelectorGenerator(WIN);
358
+ const result = generator(el);
359
+ return toLocator(result.selector, 'javascript');
360
+ });
361
+ };
362
+ const getLatestLogs = async (options) => {
363
+ const { page: filterPage, count, search } = options || {};
364
+ let allLogs = [];
365
+ if (filterPage) {
366
+ const targetId = await getPageTargetId(filterPage);
367
+ const pageLogs = browserLogs.get(targetId) || [];
368
+ allLogs = [...pageLogs];
369
+ }
370
+ else {
371
+ for (const pageLogs of browserLogs.values()) {
372
+ allLogs.push(...pageLogs);
373
+ }
374
+ }
375
+ if (search) {
376
+ allLogs = allLogs.filter((log) => {
377
+ if (typeof search === 'string') {
378
+ return log.includes(search);
379
+ }
380
+ else if (isRegExp(search)) {
381
+ return search.test(log);
382
+ }
383
+ return false;
384
+ });
385
+ }
386
+ return count !== undefined ? allLogs.slice(-count) : allLogs;
387
+ };
388
+ const clearAllLogs = () => {
389
+ browserLogs.clear();
390
+ };
150
391
  let vmContextObj = {
151
392
  page,
152
393
  context,
153
- state,
394
+ state: userState,
154
395
  console: customConsole,
155
396
  accessibilitySnapshot,
397
+ getLocatorStringForElement,
398
+ getLatestLogs,
399
+ clearAllLogs,
156
400
  resetPlaywright: async () => {
157
401
  const { page: newPage, context: newContext } = await resetConnection();
158
- Object.keys(state).forEach(key => delete state[key]);
159
402
  const resetObj = {
160
403
  page: newPage,
161
404
  context: newContext,
162
- state,
405
+ state: userState,
163
406
  console: customConsole,
164
407
  accessibilitySnapshot,
165
- resetPlaywright: vmContextObj.resetPlaywright
408
+ getLocatorStringForElement,
409
+ getLatestLogs,
410
+ clearAllLogs,
411
+ resetPlaywright: vmContextObj.resetPlaywright,
412
+ require,
413
+ // TODO --experimental-vm-modules is needed to make import work in vm
414
+ import: vmContextObj.import,
415
+ ...usefulGlobals,
166
416
  };
167
- Object.keys(vmContextObj).forEach(key => delete vmContextObj[key]);
417
+ Object.keys(vmContextObj).forEach((key) => delete vmContextObj[key]);
168
418
  Object.assign(vmContextObj, resetObj);
169
419
  return { page: newPage, context: newContext };
170
- }
420
+ },
421
+ require,
422
+ import: (specifier) => import(specifier),
423
+ ...usefulGlobals,
171
424
  };
172
425
  const vmContext = vm.createContext(vmContextObj);
173
426
  const wrappedCode = `(async () => { ${code} })()`;
@@ -178,22 +431,7 @@ server.tool('execute', promptContent, {
178
431
  }),
179
432
  new Promise((_, reject) => setTimeout(() => reject(new Error(`Code execution timed out after ${timeout}ms`)), timeout)),
180
433
  ]);
181
- let responseText = '';
182
- if (consoleLogs.length > 0) {
183
- responseText += 'Console output:\n';
184
- consoleLogs.forEach(({ method, args }) => {
185
- const formattedArgs = args
186
- .map((arg) => {
187
- if (typeof arg === 'object') {
188
- return JSON.stringify(arg, null, 2);
189
- }
190
- return String(arg);
191
- })
192
- .join(' ');
193
- responseText += `[${method}] ${formattedArgs}\n`;
194
- });
195
- responseText += '\n';
196
- }
434
+ let responseText = formatConsoleLogs(consoleLogs);
197
435
  if (result !== undefined) {
198
436
  responseText += 'Return value:\n';
199
437
  if (typeof result === 'string') {
@@ -206,10 +444,12 @@ server.tool('execute', promptContent, {
206
444
  else if (consoleLogs.length === 0) {
207
445
  responseText += 'Code executed successfully (no output)';
208
446
  }
209
- const MAX_LENGTH = 1000;
447
+ const MAX_LENGTH = 6000;
210
448
  let finalText = responseText.trim();
211
449
  if (finalText.length > MAX_LENGTH) {
212
- finalText = finalText.slice(0, MAX_LENGTH) + `\n\n[Truncated to ${MAX_LENGTH} characters. Better manage your logs or paginate them to read the full logs]`;
450
+ finalText =
451
+ finalText.slice(0, MAX_LENGTH) +
452
+ `\n\n[Truncated to ${MAX_LENGTH} characters. Better manage your logs or paginate them to read the full logs]`;
213
453
  }
214
454
  return {
215
455
  content: [
@@ -221,11 +461,52 @@ server.tool('execute', promptContent, {
221
461
  };
222
462
  }
223
463
  catch (error) {
464
+ const errorStack = error.stack || error.message;
465
+ console.error('Error in execute tool:', errorStack);
466
+ const logsText = formatConsoleLogs(consoleLogs, 'Console output (before error)');
467
+ const isTimeoutError = error.name === 'TimeoutError' || error.message.includes('Timeout');
468
+ if (!isTimeoutError) {
469
+ sendLogToRelayServer('error', '[MCP] Error:', errorStack);
470
+ }
471
+ const resetHint = isTimeoutError
472
+ ? ''
473
+ : '\n\n[HINT: If this is an internal Playwright error, page/browser closed, or connection issue, call the `reset` tool to reconnect. Do NOT reset for other non-connection non-internal errors.]';
224
474
  return {
225
475
  content: [
226
476
  {
227
477
  type: 'text',
228
- text: `Error executing code: ${error.message}\n${error.stack || ''}`,
478
+ text: `${logsText}\nError executing code: ${error.message}\n${errorStack}${resetHint}`,
479
+ },
480
+ ],
481
+ isError: true,
482
+ };
483
+ }
484
+ });
485
+ server.tool('reset', dedent `
486
+ Recreates the CDP connection and resets the browser/page/context. Use this when the MCP stops responding, you get connection errors, assertion failures, page closed, or timeout issues.
487
+
488
+ After calling this tool, the page and context variables are automatically updated in the execution environment.
489
+
490
+ IMPORTANT: this completely resets the execution context, removing any custom properties you may have added to the global scope AND clearing all keys from the \`state\` object. Only \`page\`, \`context\`, \`state\` (empty), \`console\`, and utility functions will remain.
491
+ `, {}, async () => {
492
+ try {
493
+ const { page, context } = await resetConnection();
494
+ const pagesCount = context.pages().length;
495
+ return {
496
+ content: [
497
+ {
498
+ type: 'text',
499
+ text: `Connection reset successfully. ${pagesCount} page(s) available. Current page URL: ${page.url()}`,
500
+ },
501
+ ],
502
+ };
503
+ }
504
+ catch (error) {
505
+ return {
506
+ content: [
507
+ {
508
+ type: 'text',
509
+ text: `Failed to reset connection: ${error.message}`,
229
510
  },
230
511
  ],
231
512
  isError: true,
@@ -234,27 +515,10 @@ server.tool('execute', promptContent, {
234
515
  });
235
516
  // Start the server
236
517
  async function main() {
518
+ await ensureRelayServer();
237
519
  const transport = new StdioServerTransport();
238
520
  await server.connect(transport);
239
- console.error('Playwright MCP server running on stdio');
521
+ // console.error('Playwright MCP server running on stdio')
240
522
  }
241
- async function cleanup() {
242
- console.error('Shutting down MCP server...');
243
- if (state.browser) {
244
- try {
245
- await state.browser.close();
246
- }
247
- catch (e) {
248
- // Ignore errors during browser close
249
- }
250
- }
251
- process.exit(0);
252
- }
253
- // Handle process termination
254
- process.on('SIGINT', cleanup);
255
- process.on('SIGTERM', cleanup);
256
- process.on('exit', () => {
257
- // Browser cleanup is handled by the async cleanup function
258
- });
259
523
  main().catch(console.error);
260
524
  //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,10 @@
1
- export {};
1
+ import type { ExtensionState } from 'mcp-extension/src/types.js';
2
+ declare global {
3
+ var toggleExtensionForActiveTab: () => Promise<{
4
+ isConnected: boolean;
5
+ state: ExtensionState;
6
+ }>;
7
+ var getExtensionState: () => ExtensionState;
8
+ var disconnectEverything: () => Promise<void>;
9
+ }
2
10
  //# sourceMappingURL=mcp.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.test.d.ts","sourceRoot":"","sources":["../src/mcp.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"mcp.test.d.ts","sourceRoot":"","sources":["../src/mcp.test.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AA4ChE,OAAO,CAAC,MAAM,CAAC;IACX,IAAI,2BAA2B,EAAE,MAAM,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAChG,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC;IAC5C,IAAI,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD"}