chrome-devtools-mcp 0.8.1 → 0.9.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 (87) hide show
  1. package/README.md +58 -3
  2. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +8 -6
  3. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1 -1
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Worker.js +10 -2
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +2 -1
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +1 -1
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +15 -27
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +2 -8
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +42 -7
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +34 -6
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +3 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +2 -2
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +3 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +2 -1
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +336 -40
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +56 -13
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +32 -7
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +1 -1
  20. package/build/node_modules/chrome-devtools-frontend/front_end/{models/source_map_scopes → core/sdk}/ScopeTreeCache.js +9 -5
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +48 -11
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +8 -2
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +131 -8
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +0 -21
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +9 -6
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +2 -1
  27. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +1301 -174
  28. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +7 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +8 -6
  30. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +16 -19
  31. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +50 -34
  32. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +2 -3
  33. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +45 -2
  34. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +14 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +5 -11
  36. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +1 -2
  37. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +8 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +6 -3
  39. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +10 -3
  40. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +4 -1
  41. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +1 -1
  42. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +2 -1
  43. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +2 -1
  44. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +2 -1
  45. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +2 -1
  46. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +2 -1
  47. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +2 -1
  48. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +3 -2
  49. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +2 -1
  50. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +2 -1
  51. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +2 -1
  52. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +2 -1
  53. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +2 -1
  54. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +2 -1
  55. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +2 -1
  56. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +2 -1
  57. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +2 -1
  58. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +2 -1
  59. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +2 -1
  60. package/build/src/DevToolsConnectionAdapter.js +32 -0
  61. package/build/src/McpContext.js +70 -31
  62. package/build/src/McpResponse.js +145 -44
  63. package/build/src/PageCollector.js +110 -26
  64. package/build/src/WaitForHelper.js +5 -0
  65. package/build/src/browser.js +16 -4
  66. package/build/src/cli.js +82 -6
  67. package/build/src/formatters/consoleFormatter.js +29 -62
  68. package/build/src/formatters/networkFormatter.js +5 -6
  69. package/build/src/formatters/snapshotFormatter.js +10 -5
  70. package/build/src/logger.js +1 -1
  71. package/build/src/main.js +18 -5
  72. package/build/src/polyfill.js +2 -2
  73. package/build/src/third_party/THIRD_PARTY_NOTICES +1393 -0
  74. package/build/src/third_party/index.js +76159 -0
  75. package/build/src/tools/ToolDefinition.js +2 -2
  76. package/build/src/tools/categories.js +17 -9
  77. package/build/src/tools/console.js +71 -6
  78. package/build/src/tools/emulation.js +6 -7
  79. package/build/src/tools/input.js +21 -21
  80. package/build/src/tools/network.js +18 -10
  81. package/build/src/tools/pages.js +19 -19
  82. package/build/src/tools/performance.js +8 -8
  83. package/build/src/tools/screenshot.js +8 -8
  84. package/build/src/tools/script.js +29 -15
  85. package/build/src/tools/snapshot.js +15 -20
  86. package/build/src/utils/types.js +6 -0
  87. package/package.json +16 -13
@@ -3,45 +3,40 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Locator } from 'puppeteer-core';
7
- import z from 'zod';
8
- import { ToolCategories } from './categories.js';
6
+ import { zod } from '../third_party/index.js';
7
+ import { ToolCategory } from './categories.js';
9
8
  import { defineTool, timeoutSchema } from './ToolDefinition.js';
10
9
  export const takeSnapshot = defineTool({
11
10
  name: 'take_snapshot',
12
- description: `Take a text snapshot of the currently selected page. The snapshot lists page elements along with a unique
11
+ description: `Take a text snapshot of the currently selected page based on the a11y tree. The snapshot lists page elements along with a unique
13
12
  identifier (uid). Always use the latest snapshot. Prefer taking a snapshot over taking a screenshot.`,
14
13
  annotations: {
15
- category: ToolCategories.DEBUGGING,
14
+ category: ToolCategory.DEBUGGING,
16
15
  readOnlyHint: true,
17
16
  },
18
- schema: {},
19
- handler: async (_request, response) => {
20
- response.setIncludeSnapshot(true);
17
+ schema: {
18
+ verbose: zod
19
+ .boolean()
20
+ .optional()
21
+ .describe('Whether to include all possible information available in the full a11y tree. Default is false.'),
22
+ },
23
+ handler: async (request, response) => {
24
+ response.setIncludeSnapshot(true, request.params.verbose ?? false);
21
25
  },
22
26
  });
23
27
  export const waitFor = defineTool({
24
28
  name: 'wait_for',
25
29
  description: `Wait for the specified text to appear on the selected page.`,
26
30
  annotations: {
27
- category: ToolCategories.NAVIGATION_AUTOMATION,
31
+ category: ToolCategory.NAVIGATION,
28
32
  readOnlyHint: true,
29
33
  },
30
34
  schema: {
31
- text: z.string().describe('Text to appear on the page'),
35
+ text: zod.string().describe('Text to appear on the page'),
32
36
  ...timeoutSchema,
33
37
  },
34
38
  handler: async (request, response, context) => {
35
- const page = context.getSelectedPage();
36
- const frames = page.frames();
37
- const locator = Locator.race(frames.flatMap(frame => [
38
- frame.locator(`aria/${request.params.text}`),
39
- frame.locator(`text/${request.params.text}`),
40
- ]));
41
- if (request.params.timeout) {
42
- locator.setTimeout(request.params.timeout);
43
- }
44
- await locator.wait();
39
+ await context.waitForTextOnPage(request.params);
45
40
  response.appendResponseLine(`Element with text "${request.params.text}" found.`);
46
41
  response.setIncludeSnapshot(true);
47
42
  },
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "chrome-devtools-mcp",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "MCP server for Chrome DevTools",
5
5
  "type": "module",
6
6
  "bin": "./build/src/index.js",
7
7
  "main": "index.js",
8
8
  "scripts": {
9
- "build": "tsc && node --experimental-strip-types --no-warnings=ExperimentalWarning scripts/post-build.ts",
9
+ "clean": "node -e \"require('fs').rmSync('build', {recursive: true, force: true})\"",
10
+ "build": "npm run clean && tsc && node --experimental-strip-types --no-warnings=ExperimentalWarning scripts/post-build.ts && rollup -c rollup.config.mjs",
10
11
  "typecheck": "tsc --noEmit",
11
12
  "format": "eslint --cache --fix . && prettier --write --cache .",
12
13
  "check-format": "eslint --cache . && prettier --check --cache .;",
@@ -36,16 +37,12 @@
36
37
  },
37
38
  "homepage": "https://github.com/ChromeDevTools/chrome-devtools-mcp#readme",
38
39
  "mcpName": "io.github.ChromeDevTools/chrome-devtools-mcp",
39
- "dependencies": {
40
- "@modelcontextprotocol/sdk": "1.20.0",
41
- "core-js": "3.46.0",
42
- "debug": "4.4.3",
43
- "puppeteer-core": "^24.24.1",
44
- "yargs": "18.0.0",
45
- "zod": "^3.25.76"
46
- },
47
40
  "devDependencies": {
48
41
  "@eslint/js": "^9.35.0",
42
+ "@modelcontextprotocol/sdk": "1.20.1",
43
+ "@rollup/plugin-commonjs": "^28.0.8",
44
+ "@rollup/plugin-json": "^6.1.0",
45
+ "@rollup/plugin-node-resolve": "^16.0.3",
49
46
  "@stylistic/eslint-plugin": "^5.4.0",
50
47
  "@types/debug": "^4.1.12",
51
48
  "@types/filesystem": "^0.0.36",
@@ -54,16 +51,22 @@
54
51
  "@types/yargs": "^17.0.33",
55
52
  "@typescript-eslint/eslint-plugin": "^8.43.0",
56
53
  "@typescript-eslint/parser": "^8.43.0",
57
- "chrome-devtools-frontend": "1.0.1524741",
54
+ "chrome-devtools-frontend": "1.0.1532884",
55
+ "core-js": "3.46.0",
56
+ "debug": "4.4.3",
58
57
  "eslint": "^9.35.0",
59
58
  "eslint-import-resolver-typescript": "^4.4.4",
60
59
  "eslint-plugin-import": "^2.32.0",
61
60
  "globals": "^16.4.0",
62
61
  "prettier": "^3.6.2",
63
- "puppeteer": "24.24.1",
62
+ "puppeteer": "24.26.0",
63
+ "rollup": "4.52.5",
64
+ "rollup-plugin-cleanup": "^3.2.1",
65
+ "rollup-plugin-license": "^3.6.0",
64
66
  "sinon": "^21.0.0",
65
67
  "typescript": "^5.9.2",
66
- "typescript-eslint": "^8.43.0"
68
+ "typescript-eslint": "^8.43.0",
69
+ "yargs": "18.0.0"
67
70
  },
68
71
  "engines": {
69
72
  "node": "^20.19.0 || ^22.12.0 || >=23"