cdp-mcp-server 5.0.2 → 5.1.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 (54) hide show
  1. package/README.md +45 -0
  2. package/dist/config.js +6 -0
  3. package/dist/config.js.map +1 -1
  4. package/dist/connection/browser-discovery.d.ts +41 -4
  5. package/dist/connection/browser-discovery.js +125 -8
  6. package/dist/connection/browser-discovery.js.map +1 -1
  7. package/dist/connection/capabilities.d.ts +58 -0
  8. package/dist/connection/capabilities.js +126 -0
  9. package/dist/connection/capabilities.js.map +1 -0
  10. package/dist/connection/health-monitor.d.ts +22 -0
  11. package/dist/connection/health-monitor.js +155 -28
  12. package/dist/connection/health-monitor.js.map +1 -1
  13. package/dist/connection/index.d.ts +4 -3
  14. package/dist/connection/index.js +2 -1
  15. package/dist/connection/index.js.map +1 -1
  16. package/dist/connection/tab-session-service.d.ts +12 -2
  17. package/dist/connection/tab-session-service.js +48 -14
  18. package/dist/connection/tab-session-service.js.map +1 -1
  19. package/dist/index.js +51 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/snapshot/accessibility.d.ts +2 -0
  22. package/dist/snapshot/accessibility.js +1 -1
  23. package/dist/snapshot/accessibility.js.map +1 -1
  24. package/dist/tools/device-presets.d.ts +24 -0
  25. package/dist/tools/device-presets.js +62 -0
  26. package/dist/tools/device-presets.js.map +1 -0
  27. package/dist/tools/emulate.js +79 -0
  28. package/dist/tools/emulate.js.map +1 -1
  29. package/dist/tools/interact.js +191 -31
  30. package/dist/tools/interact.js.map +1 -1
  31. package/dist/tools/observe.js +201 -27
  32. package/dist/tools/observe.js.map +1 -1
  33. package/dist/tools/page.d.ts +52 -1
  34. package/dist/tools/page.js +242 -25
  35. package/dist/tools/page.js.map +1 -1
  36. package/dist/tools/storage.d.ts +1 -1
  37. package/dist/tools/storage.js +115 -3
  38. package/dist/tools/storage.js.map +1 -1
  39. package/dist/tools/tabs.js +4 -2
  40. package/dist/tools/tabs.js.map +1 -1
  41. package/dist/types.d.ts +18 -0
  42. package/dist/utils/actionability.d.ts +62 -0
  43. package/dist/utils/actionability.js +190 -0
  44. package/dist/utils/actionability.js.map +1 -0
  45. package/dist/utils/connect-diagnostics.d.ts +46 -0
  46. package/dist/utils/connect-diagnostics.js +124 -0
  47. package/dist/utils/connect-diagnostics.js.map +1 -0
  48. package/dist/utils/wait.d.ts +0 -25
  49. package/dist/utils/wait.js +0 -76
  50. package/dist/utils/wait.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/utils/retry.d.ts +0 -40
  53. package/dist/utils/retry.js +0 -75
  54. package/dist/utils/retry.js.map +0 -1
@@ -4,19 +4,37 @@
4
4
  * Read-only introspection into what the browser is doing.
5
5
  * All actions delegate to CDP domains like Log, Network, Performance.
6
6
  */
7
+ import { TempFileManager } from '../utils/temp-files.js';
8
+ import { isMethodMissingError } from '../connection/capabilities.js';
9
+ import { join } from 'path';
7
10
  import { defineTool } from './base-tool.js';
8
11
  import { ok, fail } from '../utils/helpers.js';
9
12
  // ─── Action handlers ────────────────────────────────────────────────
10
13
  async function handleConsole(ctx, params) {
11
14
  const sess = params._sessionId;
12
- // Enable monitoring — the real server enables Log/Console domain on demand
15
+ // Runtime.enable is required for Runtime.consoleAPICalled / exceptionThrown
16
+ // events (console.log/error from the page). Log domain adds browser-generated
17
+ // entries (network errors, deprecations) that never pass through console.*.
18
+ await ctx.sendCommand('Runtime.enable', {}, sess).catch(() => { });
13
19
  await ctx.sendCommand('Log.enable', {}, sess);
14
- // In the full server, console logs are stored in a per-session Map.
15
- // Here we stub the CDP call structure — the actual log buffer is managed
16
- // by the runtime integration layer.
17
- const result = (await ctx.sendCommand('Log.getEntries', {}, sess).catch(() => ({ entries: [] })));
18
- const entries = (result.entries ?? []);
19
- let logs = entries;
20
+ // Live in-memory store filled by the runtime event pipeline (index.ts)
21
+ const store = ctx.consoleLogs.get(sess) ?? [];
22
+ let logs = [...store];
23
+ // Merge browser Log-domain entries (deduped) for completeness
24
+ const browser = (await ctx.sendCommand('Log.getEntries', {}, sess).catch(() => ({ entries: [] })));
25
+ const seen = new Set(store.map((l) => `${l.level}|${l.text}|${l.url}`));
26
+ for (const e of browser.entries ?? []) {
27
+ const key = `${e.level ?? 'info'}|${e.text ?? ''}|${e.url ?? ''}`;
28
+ if (seen.has(key))
29
+ continue;
30
+ seen.add(key);
31
+ logs.push({
32
+ level: e.level ?? 'info',
33
+ text: e.text ?? '',
34
+ url: e.url ?? '',
35
+ ts: e.timestamp ? new Date(e.timestamp).getTime() : Date.now(),
36
+ });
37
+ }
20
38
  const level = params.level;
21
39
  if (level && level !== 'all') {
22
40
  logs = logs.filter(l => l.level === level);
@@ -35,12 +53,24 @@ async function handleConsole(ctx, params) {
35
53
  });
36
54
  return ok(`${logs.length} console message(s):\n\n${lines.join('\n')}`);
37
55
  }
56
+ /**
57
+ * B4: enable durable network messages so response bodies survive
58
+ * cross-process navigations. Silent-off when unsupported (pre-Chrome-153).
59
+ */
60
+ function ensureNetworkResilience(ctx, sess) {
61
+ ctx.sendCommand('Network.configureDurableMessages', {
62
+ maxTotalBufferSize: 104857600,
63
+ maxResourceBufferSize: 20971520,
64
+ }, sess).catch(() => { });
65
+ }
38
66
  async function handleNetwork(ctx, params) {
39
67
  const sess = params._sessionId;
40
68
  await ctx.sendCommand('Network.enable', {}, sess);
41
- // Network requests are tracked in an in-memory Map by the runtime layer.
42
- // Stub: return structure from the runtime integration.
43
- let reqs = [];
69
+ ensureNetworkResilience(ctx, sess);
70
+ // Live in-memory store filled by the runtime event pipeline
71
+ // (Network.requestWillBeSent / responseReceived / loadingFinished in index.ts)
72
+ const reqMap = ctx.networkReqs.get(sess);
73
+ let reqs = reqMap ? [...reqMap.values()] : [];
44
74
  const filter = params.filter;
45
75
  if (filter) {
46
76
  const f = filter.toLowerCase();
@@ -54,21 +84,23 @@ async function handleNetwork(ctx, params) {
54
84
  const last = params.last;
55
85
  if (last)
56
86
  reqs = reqs.slice(-last);
57
- if (params.clear) {
58
- // clear would reset the in-memory request map
59
- }
60
- if (!reqs.length)
61
- return ok('No network requests captured yet. Navigate or interact to start capturing.');
62
87
  const lines = reqs.map(r => {
63
88
  const status = r.status || 'pending';
64
89
  const size = r.size != null ? `${(r.size / 1024).toFixed(1)}KB` : '?';
65
90
  return `[${r.id}] ${r.method} ${status} ${size} ${r.type} ${r.url.substring(0, 120)}`;
66
91
  });
67
- return ok(`${reqs.length} request(s):\n\n${lines.join('\n')}`);
92
+ const output = reqs.length
93
+ ? `${reqs.length} request(s):\n\n${lines.join('\n')}`
94
+ : 'No network requests captured yet. Navigate or interact to start capturing.';
95
+ // clear:true resets the in-memory store after the listing is built
96
+ if (params.clear)
97
+ reqMap?.clear();
98
+ return ok(output);
68
99
  }
69
100
  async function handleRequest(ctx, params) {
70
101
  const sess = params._sessionId;
71
102
  await ctx.sendCommand('Network.enable', {}, sess);
103
+ ensureNetworkResilience(ctx, sess);
72
104
  // Parity with Playwright MCP browser_network_requests — single-call equivalent.
73
105
  // Allow `urlFilter` (substring) as an alternative to `requestId`. We resolve the
74
106
  // most-recent matching request from ctx.networkReqs so the agent doesn't have to
@@ -102,15 +134,50 @@ async function handleRequest(ctx, params) {
102
134
  const result = { requestId };
103
135
  if (resolvedFrom !== null)
104
136
  result.matchedFrom = resolvedFrom;
105
- // Get response body
137
+ // Get response body (B4: large bodies stream to a temp file instead of
138
+ // inlining; unretained bodies retry via Network.streamResourceContent)
139
+ const INLINE_BODY_CAP = 60_000;
140
+ const PREVIEW = 2_000;
106
141
  try {
107
- const resp = (await ctx.sendCommand('Network.getResponseBody', { requestId }, sess));
108
- if (resp.base64Encoded) {
109
- const decoded = Buffer.from(resp.body, 'base64');
110
- result.responseBody = decoded.toString('utf8');
142
+ let body = null;
143
+ let base64 = false;
144
+ try {
145
+ const resp = (await ctx.sendCommand('Network.getResponseBody', { requestId }, sess));
146
+ body = resp.body;
147
+ base64 = !!resp.base64Encoded;
111
148
  }
112
- else {
113
- result.responseBody = resp.body;
149
+ catch {
150
+ // Body not retained (e.g. after cross-process navigation) - stream it
151
+ // (works when durable messages are configured)
152
+ try {
153
+ const streamed = (await ctx.sendCommand('Network.streamResourceContent', { requestId }, sess));
154
+ body = streamed.bufferedData ?? null;
155
+ base64 = true;
156
+ if (body !== null)
157
+ result.bodySource = 'stream';
158
+ }
159
+ catch (e2) {
160
+ result.responseBody = `[Not available: ${e2.message}]`;
161
+ }
162
+ }
163
+ if (body !== null && body !== undefined) {
164
+ const decoded = base64 ? Buffer.from(body, 'base64') : Buffer.from(body, 'utf8');
165
+ const text = decoded.toString('utf8');
166
+ if (text.length > INLINE_BODY_CAP) {
167
+ const tempDir = ctx.config.tempDir || join(process.cwd(), '.temp');
168
+ const manager = new TempFileManager({
169
+ tempDir,
170
+ maxTempFiles: ctx.config.maxTempFiles,
171
+ maxTempAgeMs: ctx.config.maxTempAgeMs,
172
+ });
173
+ const file = manager.write(`response-${Date.now()}.txt`, decoded, 'binary');
174
+ result.responseBodyFile = file;
175
+ result.responseBodyPreview = text.slice(0, PREVIEW);
176
+ result.responseBodySize = decoded.length;
177
+ }
178
+ else {
179
+ result.responseBody = text;
180
+ }
114
181
  }
115
182
  }
116
183
  catch (e) {
@@ -152,15 +219,120 @@ async function handlePerformance(ctx, params) {
152
219
  ];
153
220
  return ok(`Performance Metrics:\n\n${lines.join('\n')}`);
154
221
  }
222
+ /** Bounded wait - never rejects; { ok: false } on timeout or error. */
223
+ function raceBounded(p, ms) {
224
+ return new Promise((resolve) => {
225
+ const t = setTimeout(() => resolve({ ok: false }), ms);
226
+ p.then((v) => { clearTimeout(t); resolve({ ok: true, value: v }); }).catch(() => { clearTimeout(t); resolve({ ok: false }); });
227
+ });
228
+ }
229
+ /**
230
+ * B5: DOM/memory counters. Memory.getDOMCounters + a forced GC sweep
231
+ * (prepareForLeakDetection) when the browser answers; falls back to the
232
+ * Performance.getMetrics counters (Documents/Nodes/JSEventListeners) when
233
+ * the Memory domain is missing or unresponsive. Every Memory call is
234
+ * bounded so an unresponsive domain degrades in seconds instead of
235
+ * deadlocking the tool call.
236
+ */
237
+ async function handleMemory(ctx, params) {
238
+ const sess = params._sessionId;
239
+ const BOUND_MS = Math.max(1, params._boundMs || 5_000);
240
+ const skipped = [];
241
+ try {
242
+ const enable = await raceBounded(ctx.sendCommand('Memory.enable', {}, sess), BOUND_MS);
243
+ if (!enable.ok)
244
+ skipped.push('Memory.enable (unsupported or timed out)');
245
+ const readMem = async () => {
246
+ const r = await raceBounded(ctx.sendCommand('Memory.getDOMCounters', {}, sess), BOUND_MS);
247
+ if (!r.ok || !r.value)
248
+ return null;
249
+ const v = r.value;
250
+ return {
251
+ documents: v.documents,
252
+ nodes: v.nodes,
253
+ jsEventListeners: v.jsEventListeners,
254
+ };
255
+ };
256
+ let counters = await readMem();
257
+ const result = {};
258
+ if (counters) {
259
+ result.source = 'Memory.getDOMCounters';
260
+ const sweep = await raceBounded(ctx.sendCommand('Memory.prepareForLeakDetection', {}, sess), BOUND_MS);
261
+ if (!sweep.ok)
262
+ skipped.push('prepareForLeakDetection (unsupported or timed out)');
263
+ const after = await readMem();
264
+ if (after) {
265
+ result.gc = {
266
+ before: counters,
267
+ after,
268
+ delta: {
269
+ documents: (after.documents ?? 0) - (counters.documents ?? 0),
270
+ nodes: (after.nodes ?? 0) - (counters.nodes ?? 0),
271
+ jsEventListeners: (after.jsEventListeners ?? 0) - (counters.jsEventListeners ?? 0),
272
+ },
273
+ };
274
+ counters = after;
275
+ }
276
+ const leak = await raceBounded(ctx.sendCommand('Memory.getDOMCountersForLeakDetection', {}, sess), BOUND_MS);
277
+ if (leak.ok && leak.value) {
278
+ const cs = leak.value.counters;
279
+ if (Array.isArray(cs) && cs.length > 0)
280
+ result.leakDetectors = cs.slice(0, 50);
281
+ }
282
+ else {
283
+ skipped.push('getDOMCountersForLeakDetection');
284
+ }
285
+ }
286
+ else {
287
+ // Memory domain unresponsive - fall back to Performance metrics counters
288
+ skipped.push('Memory.getDOMCounters (unsupported or unresponsive)');
289
+ try {
290
+ await ctx.sendCommand('Performance.enable', {}, sess);
291
+ }
292
+ catch { /* best-effort — getMetrics may still work */ }
293
+ try {
294
+ const perf = (await ctx.sendCommand('Performance.getMetrics', {}, sess));
295
+ const m = (perf.metrics ?? []);
296
+ const pick = (n) => m.find(x => x.name === n)?.value ?? null;
297
+ counters = {
298
+ documents: pick('Documents'),
299
+ nodes: pick('Nodes'),
300
+ jsEventListeners: pick('JSEventListeners'),
301
+ };
302
+ result.source = 'Performance.getMetrics (Memory domain unresponsive - no GC sweep)';
303
+ }
304
+ catch {
305
+ counters = null;
306
+ skipped.push('Performance.getMetrics fallback');
307
+ }
308
+ }
309
+ if (counters)
310
+ result.counters = counters;
311
+ if (skipped.length > 0)
312
+ result.skipped = skipped;
313
+ if (!counters) {
314
+ return fail(`Memory counters unavailable on this browser (Memory and Performance domains both unresponsive). Tried: ${skipped.join('; ')}`);
315
+ }
316
+ return ok(result);
317
+ }
318
+ catch (err) {
319
+ if (isMethodMissingError(err)) {
320
+ return fail('Memory domain is not supported on this browser. DOM/memory counters require a Chromium-based browser with the Memory CDP domain.');
321
+ }
322
+ throw err;
323
+ }
324
+ }
155
325
  async function handleDownloads(ctx, params) {
156
326
  const sess = params._sessionId;
157
327
  await ctx.sendCommand('Page.enable', {}, sess);
158
328
  // Downloads are tracked in a per-session list by the runtime layer.
159
- let dl = [];
329
+ const dlStore = ctx.downloads.get(sess) ?? [];
330
+ let dl = [...dlStore];
160
331
  const last = params.last;
161
332
  if (last)
162
333
  dl = dl.slice(-last);
163
- // if (params.clear) clear download list
334
+ if (params.clear)
335
+ ctx.downloads.delete(sess);
164
336
  if (!dl.length)
165
337
  return ok('No downloads tracked yet. Downloads are captured automatically when they occur.');
166
338
  const lines = dl.map(d => {
@@ -231,6 +403,7 @@ export function registerObserveTools(registry, _ctx) {
231
403
  '- network: List captured network requests with URLs, methods, status codes, and timing (requires: tabId; optional: filter — URL substring, types — resource type filter array, last, clear)',
232
404
  '- request: Get the full request and response body for a specific network request (requires: tabId; provide either requestId — from network listing — or urlFilter — substring of the URL; urlFilter resolves to the most recent matching request)',
233
405
  '- performance: Collect page performance metrics including DOM size, JS heap, layout counts, and paint timing (requires: tabId)',
406
+ '- memory: DOM/JS memory counters (documents, nodes, JS event listeners) before/after a forced GC sweep via Memory.prepareForLeakDetection, plus leak-detection counters when supported (requires: tabId)',
234
407
  '- downloads: List tracked file downloads with progress info (requires: tabId; optional: last, clear)',
235
408
  '- har: Export captured network requests as HAR 1.2 JSON (requires: tabId)',
236
409
  '',
@@ -244,7 +417,7 @@ export function registerObserveTools(registry, _ctx) {
244
417
  inputSchema: {
245
418
  type: 'object',
246
419
  properties: {
247
- action: { type: 'string', enum: ['console', 'network', 'request', 'performance', 'downloads', 'har'], description: 'Observe action.' },
420
+ action: { type: 'string', enum: ['console', 'network', 'request', 'performance', 'memory', 'downloads', 'har'], description: 'Observe action.' },
248
421
  tabId: { type: 'string', description: 'Tab ID.' },
249
422
  level: { type: 'string', enum: ['all', 'error', 'warning', 'log', 'info', 'debug'], description: 'Console level filter.' },
250
423
  filter: { type: 'string', description: 'Network URL filter.' },
@@ -266,9 +439,10 @@ export function registerObserveTools(registry, _ctx) {
266
439
  case 'network': return handleNetwork(ctx, params);
267
440
  case 'request': return handleRequest(ctx, params);
268
441
  case 'performance': return handlePerformance(ctx, params);
442
+ case 'memory': return handleMemory(ctx, params);
269
443
  case 'downloads': return handleDownloads(ctx, params);
270
444
  case 'har': return handleHar(ctx, params);
271
- default: return fail(`Unknown observe action: "${action}". Use: console, network, request, performance, downloads, har`);
445
+ default: return fail(`Unknown observe action: "${action}". Use: console, network, request, performance, memory, downloads, har`);
272
446
  }
273
447
  },
274
448
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/tools/observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/tools/observe.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,62 @@
5
5
  * operations: navigation, snapshots, screenshots, content extraction,
6
6
  * wait conditions, PDF export, dialogs, script/CSS injection, and CSP bypass.
7
7
  */
8
- import type { ServerContext } from '../types.js';
8
+ import type { ToolResult, ServerContext } from '../types.js';
9
9
  import type { ToolRegistry } from './registry.js';
10
+ import type { WaitUntil, SelectorState } from '../utils/wait.js';
11
+ interface PageArgs {
12
+ action: string;
13
+ tabId: string;
14
+ url?: string;
15
+ waitUntil?: WaitUntil;
16
+ ignoreCache?: boolean;
17
+ fullPage?: boolean;
18
+ quality?: number;
19
+ type?: 'png' | 'jpeg';
20
+ path?: string;
21
+ uid?: number;
22
+ selector?: string;
23
+ format?: 'text' | 'html' | 'full' | 'annotated';
24
+ text?: string;
25
+ textGone?: string;
26
+ timeout?: number;
27
+ state?: SelectorState;
28
+ accept?: boolean;
29
+ caseSensitive?: boolean;
30
+ landscape?: boolean;
31
+ scale?: number;
32
+ paperWidth?: number;
33
+ paperHeight?: number;
34
+ margin?: {
35
+ top?: number;
36
+ bottom?: number;
37
+ left?: number;
38
+ right?: number;
39
+ };
40
+ interactive?: boolean;
41
+ search?: string;
42
+ maxLength?: number;
43
+ html?: string;
44
+ css?: string;
45
+ cssUrl?: string;
46
+ persistent?: boolean;
47
+ script?: string;
48
+ audio?: boolean;
49
+ enabled?: boolean;
50
+ diff?: boolean;
51
+ sessionId?: string;
52
+ cleanupStrategy?: string;
53
+ exclusive?: boolean;
54
+ }
55
+ export declare function handleFind(ctx: ServerContext, args: PageArgs): Promise<ToolResult>;
56
+ export declare function handleFindNext(ctx: ServerContext, args: PageArgs): Promise<ToolResult>;
57
+ export declare function handleFindStop(ctx: ServerContext, args: PageArgs): Promise<ToolResult>;
58
+ export declare function handleRecordStart(ctx: ServerContext, args: PageArgs): Promise<ToolResult>;
59
+ export declare function handleRecordStop(ctx: ServerContext, args: PageArgs): Promise<ToolResult>;
10
60
  /**
11
61
  * Register the "page" tool with the given registry.
12
62
  *
13
63
  * The tool dispatches to the appropriate action handler based on `args.action`.
14
64
  */
15
65
  export declare function registerPageTools(registry: ToolRegistry, _ctx: ServerContext): void;
66
+ export {};