chrome-devtools-mcp 0.9.0 → 0.10.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 (66) hide show
  1. package/README.md +14 -9
  2. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +1 -8
  3. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +10 -20
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +1 -2
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +3 -0
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +1 -4
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +19 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +54 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +6 -51
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +2 -2
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +32 -29
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +14 -6
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +2 -1
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +68 -188
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +2 -1
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +1 -2
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +3 -3
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +1 -1
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +3 -6
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +14 -10
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +4 -4
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +5 -33
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +9 -46
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1 -2
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +17 -3
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +59 -37
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +5 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +102 -4
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +2 -3
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +8 -1
  33. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1 -39
  34. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +58 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +46 -45
  36. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +10 -25
  37. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +1 -1
  38. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +1 -1
  39. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +6 -7
  40. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +1 -1
  41. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +12 -3
  42. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +3 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +1 -1
  44. package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +14 -0
  45. package/build/src/DevToolsConnectionAdapter.js +1 -0
  46. package/build/src/DevtoolsUtils.js +44 -0
  47. package/build/src/McpContext.js +117 -7
  48. package/build/src/McpResponse.js +32 -21
  49. package/build/src/PageCollector.js +21 -9
  50. package/build/src/browser.js +8 -8
  51. package/build/src/cli.js +8 -3
  52. package/build/src/formatters/networkFormatter.js +2 -2
  53. package/build/src/formatters/snapshotFormatter.js +18 -6
  54. package/build/src/main.js +7 -2
  55. package/build/src/third_party/THIRD_PARTY_NOTICES +72 -52
  56. package/build/src/third_party/index.js +12684 -6052
  57. package/build/src/tools/emulation.js +37 -44
  58. package/build/src/tools/input.js +36 -6
  59. package/build/src/tools/network.js +27 -5
  60. package/build/src/tools/pages.js +59 -33
  61. package/build/src/tools/performance.js +5 -2
  62. package/build/src/tools/screenshot.js +2 -1
  63. package/build/src/tools/snapshot.js +13 -4
  64. package/build/src/trace-processing/parse.js +6 -16
  65. package/build/src/utils/keyboard.js +291 -0
  66. package/package.json +7 -6
@@ -0,0 +1,291 @@
1
+ // See the KeyInput type for the list of supported keys.
2
+ const validKeys = new Set([
3
+ '0',
4
+ '1',
5
+ '2',
6
+ '3',
7
+ '4',
8
+ '5',
9
+ '6',
10
+ '7',
11
+ '8',
12
+ '9',
13
+ 'Power',
14
+ 'Eject',
15
+ 'Abort',
16
+ 'Help',
17
+ 'Backspace',
18
+ 'Tab',
19
+ 'Numpad5',
20
+ 'NumpadEnter',
21
+ 'Enter',
22
+ '\r',
23
+ '\n',
24
+ 'ShiftLeft',
25
+ 'ShiftRight',
26
+ 'ControlLeft',
27
+ 'ControlRight',
28
+ 'AltLeft',
29
+ 'AltRight',
30
+ 'Pause',
31
+ 'CapsLock',
32
+ 'Escape',
33
+ 'Convert',
34
+ 'NonConvert',
35
+ 'Space',
36
+ 'Numpad9',
37
+ 'PageUp',
38
+ 'Numpad3',
39
+ 'PageDown',
40
+ 'End',
41
+ 'Numpad1',
42
+ 'Home',
43
+ 'Numpad7',
44
+ 'ArrowLeft',
45
+ 'Numpad4',
46
+ 'Numpad8',
47
+ 'ArrowUp',
48
+ 'ArrowRight',
49
+ 'Numpad6',
50
+ 'Numpad2',
51
+ 'ArrowDown',
52
+ 'Select',
53
+ 'Open',
54
+ 'PrintScreen',
55
+ 'Insert',
56
+ 'Numpad0',
57
+ 'Delete',
58
+ 'NumpadDecimal',
59
+ 'Digit0',
60
+ 'Digit1',
61
+ 'Digit2',
62
+ 'Digit3',
63
+ 'Digit4',
64
+ 'Digit5',
65
+ 'Digit6',
66
+ 'Digit7',
67
+ 'Digit8',
68
+ 'Digit9',
69
+ 'KeyA',
70
+ 'KeyB',
71
+ 'KeyC',
72
+ 'KeyD',
73
+ 'KeyE',
74
+ 'KeyF',
75
+ 'KeyG',
76
+ 'KeyH',
77
+ 'KeyI',
78
+ 'KeyJ',
79
+ 'KeyK',
80
+ 'KeyL',
81
+ 'KeyM',
82
+ 'KeyN',
83
+ 'KeyO',
84
+ 'KeyP',
85
+ 'KeyQ',
86
+ 'KeyR',
87
+ 'KeyS',
88
+ 'KeyT',
89
+ 'KeyU',
90
+ 'KeyV',
91
+ 'KeyW',
92
+ 'KeyX',
93
+ 'KeyY',
94
+ 'KeyZ',
95
+ 'MetaLeft',
96
+ 'MetaRight',
97
+ 'ContextMenu',
98
+ 'NumpadMultiply',
99
+ 'NumpadAdd',
100
+ 'NumpadSubtract',
101
+ 'NumpadDivide',
102
+ 'F1',
103
+ 'F2',
104
+ 'F3',
105
+ 'F4',
106
+ 'F5',
107
+ 'F6',
108
+ 'F7',
109
+ 'F8',
110
+ 'F9',
111
+ 'F10',
112
+ 'F11',
113
+ 'F12',
114
+ 'F13',
115
+ 'F14',
116
+ 'F15',
117
+ 'F16',
118
+ 'F17',
119
+ 'F18',
120
+ 'F19',
121
+ 'F20',
122
+ 'F21',
123
+ 'F22',
124
+ 'F23',
125
+ 'F24',
126
+ 'NumLock',
127
+ 'ScrollLock',
128
+ 'AudioVolumeMute',
129
+ 'AudioVolumeDown',
130
+ 'AudioVolumeUp',
131
+ 'MediaTrackNext',
132
+ 'MediaTrackPrevious',
133
+ 'MediaStop',
134
+ 'MediaPlayPause',
135
+ 'Semicolon',
136
+ 'Equal',
137
+ 'NumpadEqual',
138
+ 'Comma',
139
+ 'Minus',
140
+ 'Period',
141
+ 'Slash',
142
+ 'Backquote',
143
+ 'BracketLeft',
144
+ 'Backslash',
145
+ 'BracketRight',
146
+ 'Quote',
147
+ 'AltGraph',
148
+ 'Props',
149
+ 'Cancel',
150
+ 'Clear',
151
+ 'Shift',
152
+ 'Control',
153
+ 'Alt',
154
+ 'Accept',
155
+ 'ModeChange',
156
+ ' ',
157
+ 'Print',
158
+ 'Execute',
159
+ '\u0000',
160
+ 'a',
161
+ 'b',
162
+ 'c',
163
+ 'd',
164
+ 'e',
165
+ 'f',
166
+ 'g',
167
+ 'h',
168
+ 'i',
169
+ 'j',
170
+ 'k',
171
+ 'l',
172
+ 'm',
173
+ 'n',
174
+ 'o',
175
+ 'p',
176
+ 'q',
177
+ 'r',
178
+ 's',
179
+ 't',
180
+ 'u',
181
+ 'v',
182
+ 'w',
183
+ 'x',
184
+ 'y',
185
+ 'z',
186
+ 'Meta',
187
+ '*',
188
+ '+',
189
+ '-',
190
+ '/',
191
+ ';',
192
+ '=',
193
+ ',',
194
+ '.',
195
+ '`',
196
+ '[',
197
+ '\\',
198
+ ']',
199
+ "'",
200
+ 'Attn',
201
+ 'CrSel',
202
+ 'ExSel',
203
+ 'EraseEof',
204
+ 'Play',
205
+ 'ZoomOut',
206
+ ')',
207
+ '!',
208
+ '@',
209
+ '#',
210
+ '$',
211
+ '%',
212
+ '^',
213
+ '&',
214
+ '(',
215
+ 'A',
216
+ 'B',
217
+ 'C',
218
+ 'D',
219
+ 'E',
220
+ 'F',
221
+ 'G',
222
+ 'H',
223
+ 'I',
224
+ 'J',
225
+ 'K',
226
+ 'L',
227
+ 'M',
228
+ 'N',
229
+ 'O',
230
+ 'P',
231
+ 'Q',
232
+ 'R',
233
+ 'S',
234
+ 'T',
235
+ 'U',
236
+ 'V',
237
+ 'W',
238
+ 'X',
239
+ 'Y',
240
+ 'Z',
241
+ ':',
242
+ '<',
243
+ '_',
244
+ '>',
245
+ '?',
246
+ '~',
247
+ '{',
248
+ '|',
249
+ '}',
250
+ '"',
251
+ 'SoftLeft',
252
+ 'SoftRight',
253
+ 'Camera',
254
+ 'Call',
255
+ 'EndCall',
256
+ 'VolumeDown',
257
+ 'VolumeUp',
258
+ ]);
259
+ function throwIfInvalidKey(key) {
260
+ if (validKeys.has(key)) {
261
+ return key;
262
+ }
263
+ throw new Error(`${key} is invalid. Valid keys are: ${Array.from(validKeys.values()).join(',')}.`);
264
+ }
265
+ /**
266
+ * Returns the primary key, followed by modifiers in original order.
267
+ */
268
+ export function parseKey(keyInput) {
269
+ let key = '';
270
+ const result = [];
271
+ for (const ch of keyInput) {
272
+ // Handle cases like Shift++.
273
+ if (ch === '+' && key) {
274
+ result.push(throwIfInvalidKey(key));
275
+ key = '';
276
+ }
277
+ else {
278
+ key += ch;
279
+ }
280
+ }
281
+ if (key) {
282
+ result.push(throwIfInvalidKey(key));
283
+ }
284
+ if (result.length === 0) {
285
+ throw new Error(`Key ${keyInput} could not be parsed.`);
286
+ }
287
+ if (new Set(result).size !== result.length) {
288
+ throw new Error(`Key ${keyInput} contains duplicate keys.`);
289
+ }
290
+ return [result.at(-1), ...result.slice(0, -1)];
291
+ }
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "chrome-devtools-mcp",
3
- "version": "0.9.0",
3
+ "version": "0.10.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
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
+ "bundle": "npm run clean && npm run build && rollup -c rollup.config.mjs",
11
+ "build": "tsc && node --experimental-strip-types --no-warnings=ExperimentalWarning scripts/post-build.ts",
11
12
  "typecheck": "tsc --noEmit",
12
13
  "format": "eslint --cache --fix . && prettier --write --cache .",
13
14
  "check-format": "eslint --cache . && prettier --check --cache .;",
@@ -39,8 +40,8 @@
39
40
  "mcpName": "io.github.ChromeDevTools/chrome-devtools-mcp",
40
41
  "devDependencies": {
41
42
  "@eslint/js": "^9.35.0",
42
- "@modelcontextprotocol/sdk": "1.20.1",
43
- "@rollup/plugin-commonjs": "^28.0.8",
43
+ "@modelcontextprotocol/sdk": "1.21.0",
44
+ "@rollup/plugin-commonjs": "^29.0.0",
44
45
  "@rollup/plugin-json": "^6.1.0",
45
46
  "@rollup/plugin-node-resolve": "^16.0.3",
46
47
  "@stylistic/eslint-plugin": "^5.4.0",
@@ -51,7 +52,7 @@
51
52
  "@types/yargs": "^17.0.33",
52
53
  "@typescript-eslint/eslint-plugin": "^8.43.0",
53
54
  "@typescript-eslint/parser": "^8.43.0",
54
- "chrome-devtools-frontend": "1.0.1532884",
55
+ "chrome-devtools-frontend": "1.0.1539728",
55
56
  "core-js": "3.46.0",
56
57
  "debug": "4.4.3",
57
58
  "eslint": "^9.35.0",
@@ -59,7 +60,7 @@
59
60
  "eslint-plugin-import": "^2.32.0",
60
61
  "globals": "^16.4.0",
61
62
  "prettier": "^3.6.2",
62
- "puppeteer": "24.26.0",
63
+ "puppeteer": "24.29.0",
63
64
  "rollup": "4.52.5",
64
65
  "rollup-plugin-cleanup": "^3.2.1",
65
66
  "rollup-plugin-license": "^3.6.0",