mcp-accessibility-scanner 3.3.1 → 3.4.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.
Files changed (63) hide show
  1. package/README.md +74 -5
  2. package/config.d.ts +30 -0
  3. package/lib/browserServerBackend.js +6 -0
  4. package/lib/browserServerBackend.js.map +1 -1
  5. package/lib/browserSessions.js +3 -0
  6. package/lib/browserSessions.js.map +1 -1
  7. package/lib/config.js +56 -10
  8. package/lib/config.js.map +1 -1
  9. package/lib/context.js +382 -56
  10. package/lib/context.js.map +1 -1
  11. package/lib/extension/cdpRelay.js +28 -6
  12. package/lib/extension/cdpRelay.js.map +1 -1
  13. package/lib/extension/extensionContextFactory.js +11 -6
  14. package/lib/extension/extensionContextFactory.js.map +1 -1
  15. package/lib/mcp/http.js +115 -41
  16. package/lib/mcp/http.js.map +1 -1
  17. package/lib/mcp/server.js +16 -8
  18. package/lib/mcp/server.js.map +1 -1
  19. package/lib/mcp/tool.js +11 -9
  20. package/lib/mcp/tool.js.map +1 -1
  21. package/lib/program.js +6 -3
  22. package/lib/program.js.map +1 -1
  23. package/lib/response.js +14 -2
  24. package/lib/response.js.map +1 -1
  25. package/lib/sessionLog.js +66 -20
  26. package/lib/sessionLog.js.map +1 -1
  27. package/lib/tab.js +13 -7
  28. package/lib/tab.js.map +1 -1
  29. package/lib/tools/auditKeyboard.js +27 -25
  30. package/lib/tools/auditKeyboard.js.map +1 -1
  31. package/lib/tools/auditScreenReader.js +30 -53
  32. package/lib/tools/auditScreenReader.js.map +1 -1
  33. package/lib/tools/auditSite.js +88 -56
  34. package/lib/tools/auditSite.js.map +1 -1
  35. package/lib/tools/axe.js +38 -17
  36. package/lib/tools/axe.js.map +1 -1
  37. package/lib/tools/common.js +39 -1
  38. package/lib/tools/common.js.map +1 -1
  39. package/lib/tools/files.js +55 -1
  40. package/lib/tools/files.js.map +1 -1
  41. package/lib/tools/pdf.js +4 -2
  42. package/lib/tools/pdf.js.map +1 -1
  43. package/lib/tools/recorder.js +52 -0
  44. package/lib/tools/recorder.js.map +1 -0
  45. package/lib/tools/report.js +13 -0
  46. package/lib/tools/report.js.map +1 -0
  47. package/lib/tools/scanPageMatrix.js +20 -33
  48. package/lib/tools/scanPageMatrix.js.map +1 -1
  49. package/lib/tools/screenshot.js +6 -3
  50. package/lib/tools/screenshot.js.map +1 -1
  51. package/lib/tools/snapshot.js +5 -2
  52. package/lib/tools/snapshot.js.map +1 -1
  53. package/lib/tools.js +2 -0
  54. package/lib/tools.js.map +1 -1
  55. package/lib/vscode/browserContextFactory.js +11 -4
  56. package/lib/vscode/browserContextFactory.js.map +1 -1
  57. package/lib/vscode/host.js +25 -2
  58. package/lib/vscode/host.js.map +1 -1
  59. package/lib/vscode/main.js +15 -0
  60. package/lib/vscode/main.js.map +1 -1
  61. package/lib/vscode/validation.js +78 -0
  62. package/lib/vscode/validation.js.map +1 -0
  63. package/package.json +6 -5
@@ -21,7 +21,7 @@ import { generateLocator } from './utils.js';
21
21
  const screenshotSchema = z.object({
22
22
  type: z.enum(['png', 'jpeg', 'webp']).default('png').describe('Image format for the screenshot. Default is png.'),
23
23
  scale: z.enum(['css', 'device']).default('css').describe(`Image resolution scale. 'css' produces a screenshot sized in CSS pixels (smaller, consistent across devices). 'device' produces a high-resolution screenshot using device pixels (larger, accounts for the device pixel ratio). Default is css.`),
24
- filename: z.string().optional().describe('File name to save the screenshot to. Defaults to `page-{timestamp}-{token}.{png|jpeg|webp}` if not specified (the random token keeps concurrent sessions from overwriting each other).'),
24
+ filename: z.string().optional().describe('File name to save the screenshot to. Existing files are never overwritten. Defaults to `page-{timestamp}-{token}.{png|jpeg|webp}` if not specified.'),
25
25
  element: z.string().optional().describe('Human-readable element description used to obtain permission to screenshot the element. If not provided, the screenshot will be taken of viewport. If element is provided, ref must be provided too.'),
26
26
  ref: z.string().optional().describe('Exact target element reference from the page snapshot. If not provided, the screenshot will be taken of viewport. If ref is provided, element must be provided too.'),
27
27
  fullPage: z.boolean().optional().describe('When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots.'),
@@ -49,8 +49,11 @@ const screenshot = defineTabTool({
49
49
  const fileType = params.type || 'png';
50
50
  // The default name carries a random token besides the timestamp: sessions
51
51
  // share one output directory, and two same-millisecond screenshots would
52
- // otherwise overwrite each other. User-specified filenames stay untouched.
53
- const fileName = await tab.context.outputFile(params.filename ?? `page-${safeIsoTimestampForFileName()}.${fileType}`);
52
+ // otherwise overwrite each other. User-specified filenames are reserved
53
+ // exclusively so an existing artifact is never replaced.
54
+ const fileName = await tab.context.outputFile(params.filename ?? `page-${safeIsoTimestampForFileName()}.${fileType}`, params.filename !== undefined);
55
+ if (params.filename !== undefined)
56
+ response.deleteFileOnError(fileName);
54
57
  const options = {
55
58
  type: fileType,
56
59
  quality: fileType === 'png' ? undefined : 90,
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import { z } from 'zod';
19
19
  import { defineTabTool, defineTool } from './tool.js';
20
20
  import * as javascript from '../utils/codegen.js';
21
21
  import { generateLocator } from './utils.js';
22
+ import { prepareUploadFiles } from './files.js';
22
23
  import { axeRuleSchemaShape, axeScopeSchemaShape, axeTagValues, dedupeAxeNodes, defaultAxeTags, prepareAxeResults, runAxeScan, unscannedFrameLines } from './axe.js';
23
24
  import { truncateDataUrls } from '../utils/dataUrl.js';
24
25
  import { safeIsoTimestampForFileName } from '../utils/fileUtils.js';
@@ -49,6 +50,7 @@ const scanPageSchema = z.object({
49
50
  });
50
51
  const snapshotSchema = z.object({
51
52
  compress: z.boolean().optional().describe('Collapse repeated non-interactive ARIA nodes in large snapshots when a repeated structural pattern appears more than 100 times. Keeps the first 10 examples of each collapsed pattern. Use browser_evaluate() to retrieve the full list if needed.'),
53
+ boxes: z.boolean().optional().describe('Include each element\'s bounding box as [box=x,y,width,height]. Coordinates are viewport-relative, in CSS pixels (Element.getBoundingClientRect). Overrides snapshot.boxes for this call.'),
52
54
  });
53
55
  const findSchema = z.object({
54
56
  text: z.string().optional().describe('Plain text to search for in the page snapshot (case-insensitive substring match). Provide either text or regex, not both.'),
@@ -300,7 +302,7 @@ const snapshot = defineTool({
300
302
  },
301
303
  handle: async (context, params, response) => {
302
304
  await context.ensureTab();
303
- response.setIncludeSnapshot(params.compress);
305
+ response.setIncludeSnapshot(params.compress, params.boxes);
304
306
  },
305
307
  });
306
308
  const find = defineTabTool({
@@ -502,13 +504,14 @@ const drop = defineTabTool({
502
504
  payload.files = params.paths;
503
505
  if (Object.keys(params.data ?? {}).length)
504
506
  payload.data = params.data;
507
+ const files = payload.files ? await prepareUploadFiles(tab.context.config, payload.files) : undefined;
505
508
  const locator = await tab.refLocator(params);
506
509
  response.addCode(`await page.${await generateLocator(locator)}.drop(${JSON.stringify(payload)});`);
507
510
  await tab.waitForCompletion(async () => {
508
511
  // `drop` rejects when the target's dragover listener never calls
509
512
  // preventDefault(), which is Playwright's way of saying the element does
510
513
  // not accept the payload.
511
- await locator.drop(payload);
514
+ await locator.drop(files ? { ...payload, files } : payload);
512
515
  });
513
516
  },
514
517
  });
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"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"}
package/lib/tools.js CHANGED
@@ -25,6 +25,7 @@ import mouse from './tools/mouse.js';
25
25
  import navigate from './tools/navigate.js';
26
26
  import network from './tools/network.js';
27
27
  import pdf from './tools/pdf.js';
28
+ import recorder from './tools/recorder.js';
28
29
  import session from './tools/session.js';
29
30
  import snapshot from './tools/snapshot.js';
30
31
  import tabs from './tools/tabs.js';
@@ -49,6 +50,7 @@ export const allTools = [
49
50
  ...network,
50
51
  ...mouse,
51
52
  ...pdf,
53
+ ...recorder,
52
54
  ...screenshot,
53
55
  ...session,
54
56
  ...snapshot,
package/lib/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAK7D,sFAAsF;AACtF,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,GAAG,MAAM;IACT,GAAG,OAAO;IACV,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,KAAK;IACR,GAAG,IAAI;IACP,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,OAAO;IACV,GAAG,KAAK;IACR,GAAG,GAAG;IACN,GAAG,UAAU;IACb,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,MAAM;IACT,GAAG,SAAS;IACZ,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,iBAAiB;CACrB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iHAAiH;IACjH,gHAAgH;IAChH,2GAA2G;IAC3G,kHAAkH;IAClH,6EAA6E;IAC7E,mHAAmH;IACnH,qFAAqF;IACrF,4GAA4G;IAC5G,+GAA+G;IAC/G,8GAA8G;IAC9G,uGAAuG;CACxG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAK7D,sFAAsF;AACtF,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,GAAG,MAAM;IACT,GAAG,OAAO;IACV,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,KAAK;IACR,GAAG,IAAI;IACP,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,OAAO;IACV,GAAG,KAAK;IACR,GAAG,GAAG;IACN,GAAG,QAAQ;IACX,GAAG,UAAU;IACb,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,MAAM;IACT,GAAG,SAAS;IACZ,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,iBAAiB;CACrB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iHAAiH;IACjH,gHAAgH;IAChH,2GAA2G;IAC3G,kHAAkH;IAClH,6EAA6E;IAC7E,mHAAmH;IACnH,qFAAqF;IACrF,4GAA4G;IAC5G,+GAA+G;IAC/G,8GAA8G;IAC9G,uGAAuG;CACxG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -14,9 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { applyStorageStateToReusedContext, assertStorageStateDoesNotResetUserProfile } from '../browserContextFactory.js';
17
- // Shared with the host's browser_connect validation so the two never drift:
18
- // the host checks the combination before tearing down the working provider,
19
- // and the factory keeps the same check as the last line of defense.
17
+ import { validateBrowserConnectConnectionString } from './validation.js';
18
+ // Shared with the host's browser_connect validation (see validation.ts) so
19
+ // the two never drift: the host checks the combination before tearing down
20
+ // the working provider, and the factory keeps the same check as the last
21
+ // line of defense.
20
22
  export const vscodeProfileConflictRemedy = 'Drop --user-data-dir (the state is applied inside the extension\'s own browser profile), or drop the storage state and sign in in that profile instead.';
21
23
  export class VSCodeBrowserContextFactory {
22
24
  _config;
@@ -44,7 +46,9 @@ export class VSCodeBrowserContextFactory {
44
46
  // already refuses to do. Checked before connecting, so the contradiction
45
47
  // fails fast without ever reaching the browser.
46
48
  assertStorageStateDoesNotResetUserProfile(this._config, vscodeProfileConflictRemedy);
47
- let launchOptions = this._config.browser.launchOptions;
49
+ let launchOptions = { ...this._config.browser.launchOptions };
50
+ if (this._config.browser.chromiumSandboxDefaulted)
51
+ delete launchOptions.chromiumSandbox;
48
52
  if (this._config.browser.userDataDir) {
49
53
  launchOptions = {
50
54
  ...launchOptions,
@@ -52,6 +56,9 @@ export class VSCodeBrowserContextFactory {
52
56
  userDataDir: this._config.browser.userDataDir,
53
57
  };
54
58
  }
59
+ const connectionError = validateBrowserConnectConnectionString(this._connectionString);
60
+ if (connectionError)
61
+ throw new Error(connectionError);
55
62
  const connectionString = new URL(this._connectionString);
56
63
  connectionString.searchParams.set('launch-options', JSON.stringify(launchOptions));
57
64
  const browserType = this._playwright.chromium; // it could also be firefox or webkit, we just need some browser type to call `connect` on
@@ -1 +1 @@
1
- {"version":3,"file":"browserContextFactory.js","sourceRoot":"","sources":["../../src/vscode/browserContextFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gCAAgC,EAAE,yCAAyC,EAAE,MAAM,6BAA6B,CAAC;AAK1H,4EAA4E;AAC5E,4EAA4E;AAC5E,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,yJAAyJ,CAAC;AAErM,MAAM,OAAO,2BAA2B;IAWlB,OAAO;IAAsB,WAAW;IAAuC,iBAAiB;IAVpH,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,kEAAkE,CAAC;IACjF,6EAA6E;IAC7E,6EAA6E;IACpE,mBAAmB,GAAG,IAAI,CAAC;IACpC,4EAA4E;IAC5E,yEAAyE;IACzE,gEAAgE;IACvD,yBAAyB,GAAG,mIAAmI,CAAC;IAEzK,YAAoB,OAAmB,EAAU,WAAwC,EAAU,iBAAyB;uBAAxG,OAAO;2BAAsB,WAAW;iCAAuC,iBAAiB;IAAW,CAAC;IAEhI,KAAK,CAAC,aAAa,CAAC,UAAsB,EAAE,WAAwB;QAClE,sEAAsE;QACtE,yEAAyE;QACzE,kEAAkE;QAClE,qEAAqE;QACrE,yEAAyE;QACzE,gDAAgD;QAChD,yCAAyC,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;QACrF,IAAI,aAAa,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAC5D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,aAAa,GAAG;gBACd,GAAG,aAAa;gBAChB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc;gBACtC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW;aAC9C,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,0FAA0F;QACzI,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEvE,IAAI,OAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACb,wEAAwE;gBACxE,qEAAqE;gBACrE,mEAAmE;gBACnE,MAAM,gCAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC/D,OAAO,GAAG,QAAQ,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yEAAyE;YACzE,uDAAuD;YACvD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"browserContextFactory.js","sourceRoot":"","sources":["../../src/vscode/browserContextFactory.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ import { BrowserServerBackend } from '../browserServerBackend.js';
28
28
  import { BrowserSessionRegistry } from '../browserSessions.js';
29
29
  import { assertStorageStateDoesNotResetUserProfile, contextFactory } from '../browserContextFactory.js';
30
30
  import { vscodeProfileConflictRemedy } from './browserContextFactory.js';
31
+ import { validateBrowserConnectConnectionString, validateBrowserConnectLib } from './validation.js';
31
32
  const contextSwitchOptions = z.object({
32
33
  connectionString: z.string().optional().describe('The connection string to use to connect to the browser'),
33
34
  lib: z.string().optional().describe('The library to use for the connection'),
@@ -147,6 +148,24 @@ export class VSCodeProxyBackend {
147
148
  content: [{ type: 'text', text: '### Result\nSuccessfully disconnected.\n' }],
148
149
  };
149
150
  }
151
+ // Strict allowlist validation before spawning: `lib` flows into a bare
152
+ // `import()` in the child and `connectionString` into `connect()`, so an
153
+ // unconstrained value gives any MCP caller server-side RCE/SSRF. Rejected
154
+ // here, before the working provider is torn down.
155
+ const libError = validateBrowserConnectLib(params.lib);
156
+ if (libError) {
157
+ return {
158
+ content: [{ type: 'text', text: `### Result\n${libError}\n` }],
159
+ isError: true,
160
+ };
161
+ }
162
+ const connectionError = validateBrowserConnectConnectionString(params.connectionString);
163
+ if (connectionError) {
164
+ return {
165
+ content: [{ type: 'text', text: `### Result\n${connectionError}\n` }],
166
+ isError: true,
167
+ };
168
+ }
150
169
  // The child's factory would only surface this on the first browser
151
170
  // operation — after the working provider has already been torn down,
152
171
  // leaving the session attached to a provider that can never create a
@@ -173,6 +192,7 @@ export class VSCodeProxyBackend {
173
192
  return new StdioClientTransport({
174
193
  command: process.execPath,
175
194
  cwd: process.cwd(),
195
+ env: { PLAYWRIGHT_MCP_VSCODE_ALLOW_REMOTE: process.env.PLAYWRIGHT_MCP_VSCODE_ALLOW_REMOTE ?? '' },
176
196
  args: [
177
197
  path.join(fileURLToPath(import.meta.url), '..', 'main.js'),
178
198
  // The fallback output dir is memoized on the config OBJECT, and
@@ -180,7 +200,7 @@ export class VSCodeProxyBackend {
180
200
  // materializing the resolved dir here, the spawned provider would
181
201
  // open a second temp root and scatter one run's artifacts across
182
202
  // the provider switch.
183
- JSON.stringify({ ...this._config, outputDir: resolveOutputDir(this._config) }),
203
+ JSON.stringify({ ...this._config, server: { ...this._config.server, authToken: undefined }, outputDir: resolveOutputDir(this._config) }),
184
204
  connectionString,
185
205
  lib,
186
206
  ],
@@ -227,7 +247,10 @@ export class VSCodeProxyBackend {
227
247
  inputSchema: z.toJSONSchema(contextSwitchOptions),
228
248
  annotations: {
229
249
  title: 'Connect to a browser running in VS Code.',
230
- readOnlyHint: true,
250
+ // Spawns a provider child process and tears down the working one —
251
+ // decidedly not read-only.
252
+ readOnlyHint: false,
253
+ destructiveHint: true,
231
254
  openWorldHint: false,
232
255
  },
233
256
  };
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/vscode/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/vscode/host.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,22 @@ import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
17
17
  import * as mcpServer from '../mcp/server.js';
18
18
  import { BrowserServerBackend } from '../browserServerBackend.js';
19
19
  import { VSCodeBrowserContextFactory } from './browserContextFactory.js';
20
+ import { validateBrowserConnectConnectionString, validateBrowserConnectLib } from './validation.js';
20
21
  async function main(config, connectionString, lib) {
22
+ // Defense-in-depth: the child must not trust parent argv blindly — the
23
+ // host already validated both values before spawning (see validation.ts).
24
+ const libError = validateBrowserConnectLib(lib);
25
+ if (libError) {
26
+ // eslint-disable-next-line no-console
27
+ console.error(`browser_connect: ${libError}`);
28
+ process.exit(1);
29
+ }
30
+ const connectionError = validateBrowserConnectConnectionString(connectionString);
31
+ if (connectionError) {
32
+ // eslint-disable-next-line no-console
33
+ console.error(`browser_connect: ${connectionError}`);
34
+ process.exit(1);
35
+ }
21
36
  const playwright = await import(lib).then(mod => mod.default ?? mod);
22
37
  const factory = new VSCodeBrowserContextFactory(config, playwright, connectionString);
23
38
  await mcpServer.connect({
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/vscode/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAGzE,KAAK,UAAU,IAAI,CAAC,MAAkB,EAAE,gBAAwB,EAAE,GAAW;IAC3E,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,2BAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACtF,MAAM,SAAS,CAAC,OAAO,CACnB;QACE,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE,mBAAmB;QACjC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC;QACvD,OAAO,EAAE,QAAQ;KAClB,EACD,IAAI,oBAAoB,EAAE,EAC1B,KAAK,CACR,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,CACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/vscode/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGpG,KAAK,UAAU,IAAI,CAAC,MAAkB,EAAE,gBAAwB,EAAE,GAAW;IAC3E,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,eAAe,GAAG,sCAAsC,CAAC,gBAAgB,CAAC,CAAC;IACjF,IAAI,eAAe,EAAE,CAAC;QACpB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,eAAe,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,2BAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACtF,MAAM,SAAS,CAAC,OAAO,CACnB;QACE,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE,mBAAmB;QACjC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC;QACvD,OAAO,EAAE,QAAQ;KAClB,EACD,IAAI,oBAAoB,EAAE,EAC1B,KAAK,CACR,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,CACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ // Shared `browser_connect` validation for the VS Code bridge, used by the
17
+ // host (before spawning the child), the child entrypoint (before `import()`),
18
+ // and the factory (before `connect()`), so the three never drift.
19
+ const allowedBrowserConnectLibs = new Set(['playwright', 'playwright-core']);
20
+ function isRemoteBrowserConnectAllowed() {
21
+ const value = process.env.PLAYWRIGHT_MCP_VSCODE_ALLOW_REMOTE?.trim().toLowerCase();
22
+ return value === '1' || value === 'true' || value === 'yes';
23
+ }
24
+ function isLoopbackHostname(hostname) {
25
+ const normalized = hostname.trim().toLowerCase().replace(/^\[(.*)\]$/, '$1').replace(/\.$/, '');
26
+ if (normalized === 'localhost' || normalized === '127.0.0.1' || normalized === '::1')
27
+ return true;
28
+ // The URL parser canonicalizes an IPv4-mapped IPv6 loopback such as
29
+ // [::ffff:127.0.0.1] to the hex form ::ffff:7f00:1 (two 16-bit groups),
30
+ // so accept that spelling too instead of failing closed on a legitimate
31
+ // loopback.
32
+ const v4Mapped = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(normalized);
33
+ if (v4Mapped)
34
+ return ((Number.parseInt(v4Mapped[1], 16) << 16) | Number.parseInt(v4Mapped[2], 16)) === 0x7f000001;
35
+ return false;
36
+ }
37
+ export function validateBrowserConnectLib(lib) {
38
+ if (typeof lib !== 'string' || !lib)
39
+ return 'Invalid `lib`: expected one of "playwright", "playwright-core".';
40
+ if (lib.includes('\0'))
41
+ return 'Invalid `lib`: null bytes are not allowed.';
42
+ if (lib.includes('/') || lib.includes('\\'))
43
+ return 'Invalid `lib`: path separators are not allowed, expected one of "playwright", "playwright-core".';
44
+ // The colon check also rejects every URL scheme (`data:`, `file:`, `https:`,
45
+ // `node:`, ...) — none may reach the child's `import()`.
46
+ if (lib.includes(':'))
47
+ return 'Invalid `lib`: URL schemes are not allowed, expected one of "playwright", "playwright-core".';
48
+ if (lib.startsWith('.'))
49
+ return 'Invalid `lib`: relative paths are not allowed, expected one of "playwright", "playwright-core".';
50
+ if (!allowedBrowserConnectLibs.has(lib))
51
+ return 'Invalid `lib`: expected one of "playwright", "playwright-core".';
52
+ return undefined;
53
+ }
54
+ export function validateBrowserConnectConnectionString(connectionString) {
55
+ if (typeof connectionString !== 'string' || !connectionString)
56
+ return 'Invalid `connectionString`: expected a ws: or wss: URL.';
57
+ if (connectionString.includes('\0'))
58
+ return 'Invalid `connectionString`: null bytes are not allowed.';
59
+ let url;
60
+ try {
61
+ url = new URL(connectionString);
62
+ }
63
+ catch {
64
+ return 'Invalid `connectionString`: expected a ws: or wss: URL.';
65
+ }
66
+ if (url.protocol !== 'ws:' && url.protocol !== 'wss:')
67
+ return `Invalid \`connectionString\`: only ws: and wss: URLs are allowed (got "${url.protocol}").`;
68
+ if (url.username || url.password)
69
+ return 'Invalid `connectionString`: credentials (userinfo) are not allowed.';
70
+ if (!url.hostname)
71
+ return 'Invalid `connectionString`: missing hostname.';
72
+ if (!isRemoteBrowserConnectAllowed() && !isLoopbackHostname(url.hostname))
73
+ return 'Invalid `connectionString`: only loopback hosts (localhost, 127.0.0.1, ::1) are allowed. Set PLAYWRIGHT_MCP_VSCODE_ALLOW_REMOTE=1 to allow remote hosts.';
74
+ if (!isLoopbackHostname(url.hostname) && url.protocol !== 'wss:')
75
+ return 'Invalid `connectionString`: remote hosts require wss: to protect connection credentials.';
76
+ return undefined;
77
+ }
78
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/vscode/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-accessibility-scanner",
3
- "version": "3.3.1",
3
+ "version": "3.4.0",
4
4
  "mcpName": "io.github.JustasMonkev/mcp-accessibility-scanner",
5
5
  "description": "A Model Context Protocol (MCP) server for performing automated accessibility scans of web pages using Playwright and Axe-core",
6
6
  "type": "module",
@@ -35,8 +35,9 @@
35
35
  "npm-publish": "npm run clean && npm run build && npm publish",
36
36
  "test": "vitest run",
37
37
  "test:docker": "bash ./tests/docker-smoke.sh",
38
- "test:mcp": "node .claude/run-mcp-direct-harness.mjs",
39
- "test:mcp:install": "node .claude/run-mcp-direct-harness.mjs --include-install",
38
+ "test:mcp": "npm run build && node .codex/run-mcp-direct-harness.mjs",
39
+ "test:mcp:install": "npm run build && node .codex/run-mcp-direct-harness.mjs --include-install",
40
+ "test:mcp:luna": "node .codex/run-mcp-tool-loop.mjs",
40
41
  "bench": "node bench/mcp-bench.mjs",
41
42
  "bench:compare": "node bench/mcp-bench.mjs --compare",
42
43
  "test:watch": "vitest",
@@ -51,8 +52,8 @@
51
52
  "axe-core": "4.13.0",
52
53
  "commander": "^15.0.0",
53
54
  "debug": "^4.4.3",
54
- "playwright": "1.63.0-alpha-2026-08-22",
55
- "playwright-core": "1.63.0-alpha-2026-08-22",
55
+ "playwright": "1.63.0",
56
+ "playwright-core": "1.63.0",
56
57
  "re2": "^1.26.1",
57
58
  "ws": "^8.21.3",
58
59
  "zod": "^4.4.3"