cdp-mcp-server 5.0.2 → 5.0.3

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/README.md CHANGED
@@ -40,6 +40,37 @@ JSON output.
40
40
  The server auto-connects to Chrome on your first tool call. Edge and Brave
41
41
  work the same way (same protocol).
42
42
 
43
+ ## Troubleshooting
44
+
45
+ Connect errors name the exact failure mode and print the exact fix:
46
+
47
+ - `no browser with debugging enabled` — nothing listening on any debug port,
48
+ no browser processes found: launch with `--remote-debugging-port=9222`
49
+ plus an explicit `--user-data-dir`
50
+ - Browser running but launched without the flag — same guidance; Chrome/Brave
51
+ 153+ can instead enable `chrome://inspect/#remote-debugging`
52
+ ("Allow remote debugging for this browser instance")
53
+ - Port bound but `/json/version` returns 404 — gated remote-debugging is
54
+ active: click **Allow** on Chrome's permission dialog when the server
55
+ connects (needs a visible browser window), or relaunch with the flag +
56
+ explicit non-default `--user-data-dir`
57
+ - Flag given but connection refused (Chrome 136+ default-profile restriction)
58
+ — pair `--remote-debugging-port` with an explicit **non-default**
59
+ `--user-data-dir` (Chrome for Testing exempt)
60
+
61
+ Discovery scans running browser processes' command lines for the port and
62
+ profile directory (portable/custom installs need zero configuration; full
63
+ command lines are never logged — disable with `CDP_PROCESS_SCAN=false`), and
64
+ can connect via the `chrome://inspect` toggle by reading `DevToolsActivePort`.
65
+ `ping`/`status` report the connection mode (`legacy` | `approval`).
66
+
67
+ ## Environment variables
68
+
69
+ | Variable | Default | Description |
70
+ |----------|---------|-------------|
71
+ | `CDP_PROCESS_SCAN` | `true` | Scan running browser processes' command lines for `--user-data-dir` / `--remote-debugging-port` |
72
+ | `CDP_USER_DATA` | — | Extra User Data directory checked first during discovery |
73
+
43
74
  ## Highlights
44
75
 
45
76
  - Stable element refs that survive DOM changes
package/dist/config.js CHANGED
@@ -29,6 +29,10 @@ export function loadConfig() {
29
29
  maxTempFiles: 50,
30
30
  maxTempAgeMs: 30 * 60 * 1000, // 30 minutes
31
31
  autoConnectProfile: process.env.CDP_PROFILE || '',
32
+ /** Extra User Data dir checked first during discovery (CDP_USER_DATA). */
33
+ userDataDir: process.env.CDP_USER_DATA || '',
34
+ /** Process command-line scan on discovery failure (default ON). */
35
+ processScan: process.env.CDP_PROCESS_SCAN !== 'false',
32
36
  slimMode: process.env.CDP_SLIM_MODE === 'true',
33
37
  };
34
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW;QAC5C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC;QAErD,kBAAkB;QAClB,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC;QACtE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9E,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC1E,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,CAAC;QAE/D,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,EAAE,EAAE,CAAC;QACjE,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAE1E,mEAAmE;QACnE,sBAAsB,EACnB,OAAO,CAAC,GAAG,CAAC,oBAAwC,IAAI,QAAQ;QAEnE,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,sBAAsB;QAC/D,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;QAE3C,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QAEjD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW;QAC5C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC;QAErD,kBAAkB;QAClB,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC;QACtE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9E,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC1E,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,CAAC;QAE/D,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,EAAE,EAAE,CAAC;QACjE,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAE1E,mEAAmE;QACnE,sBAAsB,EACnB,OAAO,CAAC,GAAG,CAAC,oBAAwC,IAAI,QAAQ;QAEnE,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,sBAAsB;QAC/D,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;QAE3C,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QAEjD,0EAA0E;QAC1E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAE5C,mEAAmE;QACnE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO;QAErD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;KAC/C,CAAC;AACJ,CAAC"}
@@ -23,22 +23,59 @@ export type { BrowserInstance, ProfileInfo };
23
23
  export declare function discoverBrowserInstances(opts?: DiscoverOptions): BrowserInstance[];
24
24
  /**
25
25
  * Resolve the WebSocket URL by scanning known User Data directories
26
- * for a DevToolsActivePort file. Falls back to querying /json/version
27
- * on the fallback host:port (P0-3).
26
+ * for a DevToolsActivePort file. Falls back to constructing a URL
27
+ * (caller should try /json/version at runtime) (P0-3).
28
28
  *
29
29
  * @param overrideDir User Data dir override (e.g. from `browser.connect`)
30
+ * @param extraPaths Additional dirs to check first (CDP_USER_DATA,
31
+ * process-scan results — configured upstream)
30
32
  * @param fallbackHost Default host (from config)
31
33
  * @param fallbackPort Default port (from config)
32
34
  */
33
- export declare function resolveWsUrl(overrideDir: string | null, fallbackHost: string, fallbackPort: number): WsUrlResult;
35
+ export declare function resolveWsUrl(overrideDir: string | null, extraPaths: string[], fallbackHost: string, fallbackPort: number): WsUrlResult;
34
36
  /**
35
37
  * Async variant that queries /json/version when file-based discovery fails.
36
38
  * P0-3 fix: Uses the HTTP endpoint to get the correct WebSocket URL
37
39
  * instead of guessing.
38
40
  */
39
- export declare function resolveWsUrlAsync(overrideDir: string | null, fallbackHost: string, fallbackPort: number): Promise<WsUrlResult>;
41
+ export declare function resolveWsUrlAsync(overrideDir: string | null, extraPaths: string[], fallbackHost: string, fallbackPort: number): Promise<WsUrlResult>;
40
42
  /**
41
43
  * Find the best matching instance given user input (name, port, or path).
42
44
  * Returns null if no match is found.
43
45
  */
44
46
  export declare function findBestInstance(instances: BrowserInstance[], input: string): BrowserInstance | null;
47
+ export interface CommandLineInfo {
48
+ /** Recognized browser basename (e.g. 'brave'), if the line is a browser. */
49
+ browserName?: string;
50
+ /** Extracted --user-data-dir value, if present. */
51
+ userDataDir?: string;
52
+ /** Extracted --remote-debugging-port value, if present. */
53
+ port?: number;
54
+ }
55
+ export interface ProcessScanResult {
56
+ /** Discovered User Data dirs (deduped, order-stable). */
57
+ userDataDirs: string[];
58
+ /** Discovered debug ports (deduped). */
59
+ ports: number[];
60
+ /** Recognized browser basenames seen running (deduped). */
61
+ browsersRunning: string[];
62
+ }
63
+ /**
64
+ * Parse one process command line. Extracts ONLY the two flags we need —
65
+ * full command lines are never returned or logged (privacy rule).
66
+ */
67
+ export declare function parseBrowserCommandLine(cmd: string): CommandLineInfo;
68
+ type ProcessRunner = (file: string, args: string[], timeoutMs: number) => Promise<string>;
69
+ /**
70
+ * Scan running Chromium-family browser processes for their launch flags.
71
+ * Read-only, same-user, non-elevated. Returns ONLY extracted fields —
72
+ * never raw command lines (privacy rule).
73
+ *
74
+ * Controlled by `CDP_PROCESS_SCAN` (default ON, `false` disables) —
75
+ * enforced by the caller.
76
+ */
77
+ export declare function scanBrowserProcesses(opts?: {
78
+ timeoutMs?: number;
79
+ runner?: ProcessRunner;
80
+ os?: string;
81
+ }): Promise<ProcessScanResult>;
@@ -4,14 +4,16 @@
4
4
  *
5
5
  * Extracted from `discoverChromeInstances` and `getWsUrl` in server.js.
6
6
  */
7
+ import { execFile } from 'child_process';
7
8
  import { readFileSync } from 'fs';
8
- import { join } from 'path';
9
+ import { join, basename } from 'path';
9
10
  import { platform, homedir } from 'os';
10
11
  function getBrowserCandidates() {
11
12
  const os = platform();
12
13
  const home = homedir();
13
14
  if (os === 'win32') {
14
15
  const local = process.env.LOCALAPPDATA || join(home, 'AppData', 'Local');
16
+ const roaming = process.env.APPDATA || join(home, 'AppData', 'Roaming');
15
17
  return [
16
18
  { name: 'Chrome', path: join(local, 'Google', 'Chrome', 'User Data') },
17
19
  { name: 'Chrome Beta', path: join(local, 'Google', 'Chrome Beta', 'User Data') },
@@ -19,6 +21,8 @@ function getBrowserCandidates() {
19
21
  { name: 'Chromium', path: join(local, 'Chromium', 'User Data') },
20
22
  { name: 'Edge', path: join(local, 'Microsoft', 'Edge', 'User Data') },
21
23
  { name: 'Brave', path: join(local, 'BraveSoftware', 'Brave-Browser', 'User Data') },
24
+ { name: 'Vivaldi', path: join(local, 'Vivaldi', 'User Data') },
25
+ { name: 'Opera', path: join(roaming, 'Opera Software', 'Opera Stable') },
22
26
  ];
23
27
  }
24
28
  else if (os === 'darwin') {
@@ -29,6 +33,8 @@ function getBrowserCandidates() {
29
33
  { name: 'Chromium', path: join(appSupport, 'Chromium') },
30
34
  { name: 'Edge', path: join(appSupport, 'Microsoft Edge') },
31
35
  { name: 'Brave', path: join(appSupport, 'BraveSoftware', 'Brave-Browser') },
36
+ { name: 'Vivaldi', path: join(appSupport, 'Vivaldi') },
37
+ { name: 'Opera', path: join(appSupport, 'com.operasoftware.Opera') },
32
38
  ];
33
39
  }
34
40
  else {
@@ -38,6 +44,8 @@ function getBrowserCandidates() {
38
44
  { name: 'Chromium', path: join(home, '.config', 'chromium') },
39
45
  { name: 'Edge', path: join(home, '.config', 'microsoft-edge') },
40
46
  { name: 'Brave', path: join(home, '.config', 'BraveSoftware', 'Brave-Browser') },
47
+ { name: 'Vivaldi', path: join(home, '.config', 'vivaldi') },
48
+ { name: 'Opera', path: join(home, '.config', 'opera') },
41
49
  ];
42
50
  }
43
51
  }
@@ -107,19 +115,22 @@ export function discoverBrowserInstances(opts = {}) {
107
115
  }
108
116
  /**
109
117
  * Resolve the WebSocket URL by scanning known User Data directories
110
- * for a DevToolsActivePort file. Falls back to querying /json/version
111
- * on the fallback host:port (P0-3).
118
+ * for a DevToolsActivePort file. Falls back to constructing a URL
119
+ * (caller should try /json/version at runtime) (P0-3).
112
120
  *
113
121
  * @param overrideDir User Data dir override (e.g. from `browser.connect`)
122
+ * @param extraPaths Additional dirs to check first (CDP_USER_DATA,
123
+ * process-scan results — configured upstream)
114
124
  * @param fallbackHost Default host (from config)
115
125
  * @param fallbackPort Default port (from config)
116
126
  */
117
- export function resolveWsUrl(overrideDir, fallbackHost, fallbackPort) {
127
+ export function resolveWsUrl(overrideDir, extraPaths, fallbackHost, fallbackPort) {
118
128
  const extra = [];
119
129
  if (overrideDir)
120
130
  extra.push(overrideDir);
121
- if (process.env.CDP_USER_DATA)
122
- extra.push(process.env.CDP_USER_DATA);
131
+ for (const p of extraPaths)
132
+ if (p)
133
+ extra.push(p);
123
134
  const candidates = getCandidates(extra);
124
135
  for (const { path: udPath } of candidates) {
125
136
  const portInfo = readPortFile(udPath);
@@ -141,9 +152,9 @@ export function resolveWsUrl(overrideDir, fallbackHost, fallbackPort) {
141
152
  * P0-3 fix: Uses the HTTP endpoint to get the correct WebSocket URL
142
153
  * instead of guessing.
143
154
  */
144
- export async function resolveWsUrlAsync(overrideDir, fallbackHost, fallbackPort) {
155
+ export async function resolveWsUrlAsync(overrideDir, extraPaths, fallbackHost, fallbackPort) {
145
156
  // Try synchronous file-based discovery first
146
- const syncResult = resolveWsUrl(overrideDir, fallbackHost, fallbackPort);
157
+ const syncResult = resolveWsUrl(overrideDir, extraPaths, fallbackHost, fallbackPort);
147
158
  if (syncResult.userDataDir)
148
159
  return syncResult;
149
160
  // File-based discovery failed — try HTTP /json/version endpoint
@@ -173,4 +184,110 @@ export function findBestInstance(instances, input) {
173
184
  i.port.toString() === needle ||
174
185
  i.userDataDir.toLowerCase() === needle) ?? null);
175
186
  }
187
+ // ─── Process Command-Line Scan (5.0.3) ──────────────────────────────
188
+ /** Chromium-family browser executables we recognize (basename, lowercase, no ext). */
189
+ const KNOWN_BROWSERS = [
190
+ 'chrome',
191
+ 'brave',
192
+ 'msedge',
193
+ 'chromium',
194
+ 'vivaldi',
195
+ 'opera',
196
+ ];
197
+ /**
198
+ * Parse one process command line. Extracts ONLY the two flags we need —
199
+ * full command lines are never returned or logged (privacy rule).
200
+ */
201
+ export function parseBrowserCommandLine(cmd) {
202
+ // Executable may be quoted ("C:\Program Files\...\chrome.exe")
203
+ const exeMatch = cmd.match(/^\s*(?:"([^"]+)"|'([^']+)'|(\S+))/);
204
+ const firstToken = (exeMatch
205
+ ? exeMatch[1] ?? exeMatch[2] ?? exeMatch[3]
206
+ : '').toLowerCase();
207
+ const base = basename(firstToken).replace(/\.exe$/, '');
208
+ const browserName = KNOWN_BROWSERS.find((n) => base === n || base.startsWith(`${n}-`));
209
+ const info = {};
210
+ if (!browserName)
211
+ return info;
212
+ info.browserName = browserName;
213
+ const dirMatch = cmd.match(/--user-data-dir=(?:"([^"]+)"|'([^']+)'|([^\s]+))/);
214
+ if (dirMatch)
215
+ info.userDataDir = dirMatch[1] ?? dirMatch[2] ?? dirMatch[3];
216
+ const portMatch = cmd.match(/--remote-debugging-port=(\d+)/);
217
+ if (portMatch)
218
+ info.port = parseInt(portMatch[1], 10);
219
+ return info;
220
+ }
221
+ function defaultRunner(file, args, timeoutMs) {
222
+ return new Promise((resolve, reject) => {
223
+ execFile(file, args, { timeout: timeoutMs, windowsHide: true }, (err, stdout) => {
224
+ if (err)
225
+ reject(err);
226
+ else
227
+ resolve(stdout);
228
+ });
229
+ });
230
+ }
231
+ function buildProcessQueryCommand(os) {
232
+ if (os === 'win32') {
233
+ const filter = ["Name='chrome.exe'", "Name='brave.exe'", "Name='msedge.exe'",
234
+ "Name='chromium.exe'", "Name='vivaldi.exe'", "Name='opera.exe'"].join(' OR ');
235
+ return {
236
+ file: 'powershell.exe',
237
+ args: [
238
+ '-NoProfile',
239
+ '-NonInteractive',
240
+ '-Command',
241
+ `Get-CimInstance Win32_Process -Filter "${filter}" | Select-Object -ExpandProperty CommandLine`,
242
+ ],
243
+ };
244
+ }
245
+ // macOS + Linux: ps is universal enough for same-user processes
246
+ return { file: 'ps', args: ['-axo', 'command'] };
247
+ }
248
+ /**
249
+ * Scan running Chromium-family browser processes for their launch flags.
250
+ * Read-only, same-user, non-elevated. Returns ONLY extracted fields —
251
+ * never raw command lines (privacy rule).
252
+ *
253
+ * Controlled by `CDP_PROCESS_SCAN` (default ON, `false` disables) —
254
+ * enforced by the caller.
255
+ */
256
+ export async function scanBrowserProcesses(opts = {}) {
257
+ const timeoutMs = opts.timeoutMs ?? 5000;
258
+ const runner = opts.runner ?? defaultRunner;
259
+ const os = opts.os ?? platform();
260
+ const result = {
261
+ userDataDirs: [],
262
+ ports: [],
263
+ browsersRunning: [],
264
+ };
265
+ const { file, args } = buildProcessQueryCommand(os);
266
+ let stdout;
267
+ try {
268
+ stdout = await runner(file, args, timeoutMs);
269
+ }
270
+ catch {
271
+ return result; // non-fatal: scan is best-effort
272
+ }
273
+ const dirs = new Set();
274
+ const ports = new Set();
275
+ const names = new Set();
276
+ for (const line of stdout.split(/\r?\n/)) {
277
+ if (!line.trim())
278
+ continue;
279
+ const info = parseBrowserCommandLine(line);
280
+ if (!info.browserName)
281
+ continue;
282
+ names.add(info.browserName);
283
+ if (info.userDataDir)
284
+ dirs.add(info.userDataDir);
285
+ if (info.port !== undefined)
286
+ ports.add(info.port);
287
+ }
288
+ result.userDataDirs = [...dirs];
289
+ result.ports = [...ports];
290
+ result.browsersRunning = [...names];
291
+ return result;
292
+ }
176
293
  //# sourceMappingURL=browser-discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-discovery.js","sourceRoot":"","sources":["../../src/connection/browser-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-discovery.js","sourceRoot":"","sources":["../../src/connection/browser-discovery.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * 3. Lazy auto-connect on first tool call (Fix 8)
8
8
  */
9
9
  import type { CDPClient } from './cdp-client.js';
10
+ import { discoverBrowserInstances, scanBrowserProcesses } from './browser-discovery.js';
10
11
  export type HealthStatus = 'disconnected' | 'connected' | 'unhealthy' | 'dead' | 'error';
11
12
  export interface HealthState {
12
13
  status: HealthStatus;
@@ -33,7 +34,16 @@ export interface HealthMonitorOptions {
33
34
  overrideUserDataDir?: string | null;
34
35
  /** Preferred Chrome profile for auto-connect (from CDP_PROFILE env). */
35
36
  preferredProfile?: string;
37
+ /** Extra User Data dirs to check first (CDP_USER_DATA). */
38
+ extraUserDataDirs?: string[];
39
+ /** Process command-line scan on discovery failure (CDP_PROCESS_SCAN, default true). */
40
+ processScan?: boolean;
41
+ /** Injected process scanner (tests). Defaults to scanBrowserProcesses. */
42
+ scanFn?: typeof scanBrowserProcesses;
43
+ /** Injected instance discovery (tests). Defaults to discoverBrowserInstances. */
44
+ discoverFn?: typeof discoverBrowserInstances;
36
45
  }
46
+ export type ConnectionMode = 'legacy' | 'approval' | 'unknown';
37
47
  export declare class HealthMonitor {
38
48
  private client;
39
49
  private timer;
@@ -43,6 +53,8 @@ export declare class HealthMonitor {
43
53
  private lastGoodWsUrl;
44
54
  /** When true, onDisconnect() skips auto-reconnect (P1-4: browser.connect race). */
45
55
  suppressAutoReconnect: boolean;
56
+ /** How the current connection was established (5.0.3). */
57
+ connectionMode: ConnectionMode;
46
58
  private pingIntervalMs;
47
59
  private pongTimeoutMs;
48
60
  private maxMissedPongs;
@@ -52,6 +64,10 @@ export declare class HealthMonitor {
52
64
  private cdpPort;
53
65
  private overrideUserDataDir;
54
66
  private preferredProfile;
67
+ private extraUserDataDirs;
68
+ private processScan;
69
+ private scanFn;
70
+ private discoverFn;
55
71
  readonly health: HealthState;
56
72
  constructor(client: CDPClient, opts?: HealthMonitorOptions);
57
73
  /** Start the periodic health-check timer. */
@@ -75,6 +91,12 @@ export declare class HealthMonitor {
75
91
  autoConnect(): Promise<void>;
76
92
  /** Internal auto-connect implementation. */
77
93
  private _doAutoConnect;
94
+ /**
95
+ * After a successful connect via the file-based path, detect whether the
96
+ * browser is a legacy CDP server or the gated/approval-mode server by
97
+ * probing /json/version (which only legacy servers answer).
98
+ */
99
+ private _detectMode;
78
100
  /** Update the override directory (e.g. after `browser.connect`). */
79
101
  setOverrideUserDataDir(dir: string | null): void;
80
102
  private _ping;
@@ -7,9 +7,9 @@
7
7
  * 3. Lazy auto-connect on first tool call (Fix 8)
8
8
  */
9
9
  import WebSocket from 'ws';
10
- import { discoverBrowserInstances, resolveWsUrlAsync, findBestInstance, } from './browser-discovery.js';
10
+ import { discoverBrowserInstances, resolveWsUrlAsync, findBestInstance, scanBrowserProcesses, } from './browser-discovery.js';
11
11
  import { ActionableError } from '../utils/error-handler.js';
12
- // ─── HealthMonitor ──────────────────────────────────────────────────
12
+ import { classifyConnectFailure, } from '../utils/connect-diagnostics.js';
13
13
  export class HealthMonitor {
14
14
  client;
15
15
  timer = null;
@@ -19,6 +19,8 @@ export class HealthMonitor {
19
19
  lastGoodWsUrl = null;
20
20
  /** When true, onDisconnect() skips auto-reconnect (P1-4: browser.connect race). */
21
21
  suppressAutoReconnect = false;
22
+ /** How the current connection was established (5.0.3). */
23
+ connectionMode = 'unknown';
22
24
  // Options (with defaults)
23
25
  pingIntervalMs;
24
26
  pongTimeoutMs;
@@ -29,6 +31,10 @@ export class HealthMonitor {
29
31
  cdpPort;
30
32
  overrideUserDataDir;
31
33
  preferredProfile;
34
+ extraUserDataDirs;
35
+ processScan;
36
+ scanFn;
37
+ discoverFn;
32
38
  // Observable health state
33
39
  health = {
34
40
  status: 'disconnected',
@@ -47,6 +53,10 @@ export class HealthMonitor {
47
53
  this.cdpPort = opts.cdpPort ?? 9222;
48
54
  this.overrideUserDataDir = opts.overrideUserDataDir ?? null;
49
55
  this.preferredProfile = opts.preferredProfile ?? '';
56
+ this.extraUserDataDirs = opts.extraUserDataDirs ?? [];
57
+ this.processScan = opts.processScan ?? true;
58
+ this.scanFn = opts.scanFn ?? scanBrowserProcesses;
59
+ this.discoverFn = opts.discoverFn ?? discoverBrowserInstances;
50
60
  }
51
61
  // ── Lifecycle ───────────────────────────────────────────────────
52
62
  /** Start the periodic health-check timer. */
@@ -86,7 +96,7 @@ export class HealthMonitor {
86
96
  const delay = this.reconnectBaseDelayMs * Math.pow(2, this.reconnectAttempts - 1);
87
97
  await this._sleep(delay);
88
98
  try {
89
- const { wsUrl } = await resolveWsUrlAsync(this.overrideUserDataDir, this.cdpHost, this.cdpPort);
99
+ const { wsUrl } = await resolveWsUrlAsync(this.overrideUserDataDir, this.extraUserDataDirs, this.cdpHost, this.cdpPort);
90
100
  await this.client.connect(wsUrl);
91
101
  this.lastGoodWsUrl = wsUrl;
92
102
  this.onConnected();
@@ -120,14 +130,21 @@ export class HealthMonitor {
120
130
  }
121
131
  /** Internal auto-connect implementation. */
122
132
  async _doAutoConnect() {
133
+ const probes = [];
134
+ const connectErrors = [];
135
+ let portFilesFound = 0;
136
+ let scan = null;
123
137
  // Strategy 1: Try last known good connection
124
138
  if (this.lastGoodWsUrl) {
125
139
  try {
126
140
  await this.client.connect(this.lastGoodWsUrl);
127
141
  this.onConnected();
142
+ this.connectionMode = await this._detectMode();
128
143
  return;
129
144
  }
130
- catch { /* try next strategy */ }
145
+ catch (e) {
146
+ connectErrors.push(errText(e));
147
+ }
131
148
  }
132
149
  // Strategy 2: Probe common debugging ports via HTTP /json/version
133
150
  const COMMON_PORTS = [this.cdpPort, 9222, 9229, 9333, 9515];
@@ -137,41 +154,145 @@ export class HealthMonitor {
137
154
  const resp = await fetch(`http://${this.cdpHost}:${port}/json/version`, {
138
155
  signal: AbortSignal.timeout(2000),
139
156
  });
140
- const data = (await resp.json());
141
- if (data.webSocketDebuggerUrl) {
142
- await this.client.connect(data.webSocketDebuggerUrl);
143
- this.lastGoodWsUrl = data.webSocketDebuggerUrl;
144
- this.onConnected();
145
- return;
157
+ if (resp.ok) {
158
+ probes.push({ port, outcome: 'ok', status: resp.status });
159
+ const data = (await resp.json());
160
+ if (data.webSocketDebuggerUrl) {
161
+ await this.client.connect(data.webSocketDebuggerUrl);
162
+ this.lastGoodWsUrl = data.webSocketDebuggerUrl;
163
+ this.onConnected();
164
+ this.connectionMode = 'legacy';
165
+ return;
166
+ }
167
+ }
168
+ else {
169
+ probes.push({
170
+ port,
171
+ outcome: resp.status === 404 ? 'not_found' : 'error',
172
+ status: resp.status,
173
+ });
146
174
  }
147
175
  }
148
- catch {
149
- continue;
176
+ catch (e) {
177
+ probes.push({ port, outcome: 'refused', detail: errText(e) });
150
178
  }
151
179
  }
152
- // Strategy 3: File-based discovery (DevToolsActivePort)
153
- const instances = discoverBrowserInstances();
154
- if (instances.length > 0) {
180
+ // Strategy 3: File-based discovery (DevToolsActivePort). The port file
181
+ // points at /devtools/browser/<uuid> — the same WS endpoint the gated
182
+ // approval-mode server exposes — so a connect here succeeds where HTTP
183
+ // discovery 404s (approval mode), and the user gets a permission dialog.
184
+ const tryFileDiscovery = async (extraDirs) => {
185
+ const instances = this.discoverFn({ extraPaths: extraDirs });
186
+ portFilesFound += instances.length;
187
+ if (instances.length === 0)
188
+ return false;
155
189
  const best = this.preferredProfile
156
190
  ? findBestInstance(instances, this.preferredProfile)
157
191
  : instances[0];
158
- if (best) {
192
+ if (!best)
193
+ return false;
194
+ try {
195
+ await this.client.connect(best.wsUrl);
196
+ this.lastGoodWsUrl = best.wsUrl;
197
+ this.overrideUserDataDir = best.userDataDir;
198
+ this.onConnected();
199
+ this.connectionMode = await this._detectMode();
200
+ return true;
201
+ }
202
+ catch (e) {
203
+ connectErrors.push(errText(e));
204
+ return false;
205
+ }
206
+ };
207
+ if (await tryFileDiscovery(this.extraUserDataDirs))
208
+ return;
209
+ // Strategy 4: Process command-line scan (default ON) — finds
210
+ // portable/custom browser data dirs and debug ports, then retries the
211
+ // HTTP probe and file discovery with enriched inputs.
212
+ if (this.processScan) {
213
+ scan = await this.scanFn();
214
+ const enrichedPorts = scan.ports.filter((p) => !uniquePorts.includes(p));
215
+ for (const port of enrichedPorts) {
159
216
  try {
160
- await this.client.connect(best.wsUrl);
161
- this.lastGoodWsUrl = best.wsUrl;
162
- this.overrideUserDataDir = best.userDataDir;
163
- this.onConnected();
164
- return;
217
+ const resp = await fetch(`http://${this.cdpHost}:${port}/json/version`, {
218
+ signal: AbortSignal.timeout(2000),
219
+ });
220
+ if (resp.ok) {
221
+ probes.push({ port, outcome: 'ok', status: resp.status });
222
+ const data = (await resp.json());
223
+ if (data.webSocketDebuggerUrl) {
224
+ await this.client.connect(data.webSocketDebuggerUrl);
225
+ this.lastGoodWsUrl = data.webSocketDebuggerUrl;
226
+ this.onConnected();
227
+ this.connectionMode = 'legacy';
228
+ return;
229
+ }
230
+ }
231
+ else {
232
+ probes.push({
233
+ port,
234
+ outcome: resp.status === 404 ? 'not_found' : 'error',
235
+ status: resp.status,
236
+ });
237
+ }
165
238
  }
166
- catch { /* fall through to error */ }
239
+ catch (e) {
240
+ probes.push({ port, outcome: 'refused', detail: errText(e) });
241
+ }
242
+ }
243
+ if (scan.userDataDirs.length > 0 &&
244
+ (await tryFileDiscovery(scan.userDataDirs))) {
245
+ return;
167
246
  }
168
247
  }
169
- // All strategies failed — throw actionable error
170
- throw new ActionableError('Could not find any browser with remote debugging enabled.', `To fix, do ONE of these:\n` +
171
- ` 1. Chrome/Edge: Go to chrome://flags → search "remote debugging" → Enable → Relaunch\n` +
172
- ` 2. Or launch with flag: chrome --remote-debugging-port=9222\n` +
173
- ` 3. Or set CDP_PORT env var if using a non-standard port\n\n` +
174
- `The server will auto-connect once debugging is enabled. No manual connect needed.`);
248
+ // All strategies failed — classify and throw an actionable error
249
+ const processInfo = scan
250
+ ? {
251
+ browsersRunning: scan.browsersRunning,
252
+ flagPresent: scan.ports.length > 0,
253
+ }
254
+ : null;
255
+ const diagnosis = classifyConnectFailure({
256
+ probes,
257
+ portFilesFound,
258
+ connectErrors,
259
+ processInfo,
260
+ host: this.cdpHost,
261
+ primaryPort: this.cdpPort,
262
+ });
263
+ throw new ActionableError(diagnosis.headline, diagnosis.fix, {
264
+ kind: diagnosis.kind,
265
+ probes,
266
+ });
267
+ }
268
+ /**
269
+ * After a successful connect via the file-based path, detect whether the
270
+ * browser is a legacy CDP server or the gated/approval-mode server by
271
+ * probing /json/version (which only legacy servers answer).
272
+ */
273
+ async _detectMode() {
274
+ let host = this.cdpHost;
275
+ let port = this.cdpPort;
276
+ const url = this.client.url;
277
+ if (url) {
278
+ try {
279
+ const parsed = new URL(url);
280
+ host = parsed.hostname || host;
281
+ port = parseInt(parsed.port || String(this.cdpPort), 10);
282
+ }
283
+ catch { /* keep defaults */ }
284
+ }
285
+ try {
286
+ const resp = await fetch(`http://${host}:${port}/json/version`, {
287
+ signal: AbortSignal.timeout(2000),
288
+ });
289
+ return resp.ok ? 'legacy' : 'approval';
290
+ }
291
+ catch {
292
+ // Legacy servers always answer /json/version; failure + live WS
293
+ // strongly suggests approval mode, but stay honest.
294
+ return 'approval';
295
+ }
175
296
  }
176
297
  /** Update the override directory (e.g. after `browser.connect`). */
177
298
  setOverrideUserDataDir(dir) {
@@ -216,4 +337,10 @@ export class HealthMonitor {
216
337
  return new Promise((resolve) => setTimeout(resolve, ms));
217
338
  }
218
339
  }
340
+ /** Extract a short error message from an unknown thrown value. */
341
+ function errText(e) {
342
+ if (e instanceof Error)
343
+ return e.message;
344
+ return String(e);
345
+ }
219
346
  //# sourceMappingURL=health-monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/connection/health-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/connection/health-monitor.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@
3
3
  */
4
4
  export { CDPClient } from './cdp-client.js';
5
5
  export type { ConnectionState, CDPClientOptions } from './cdp-client.js';
6
- export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, } from './browser-discovery.js';
7
- export type { DiscoverOptions, WsUrlResult } from './browser-discovery.js';
6
+ export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, parseBrowserCommandLine, scanBrowserProcesses, } from './browser-discovery.js';
7
+ export type { DiscoverOptions, WsUrlResult, CommandLineInfo, ProcessScanResult, } from './browser-discovery.js';
8
8
  export { HealthMonitor } from './health-monitor.js';
9
- export type { HealthStatus, HealthState, HealthMonitorOptions, } from './health-monitor.js';
9
+ export type { HealthStatus, HealthState, HealthMonitorOptions, ConnectionMode, } from './health-monitor.js';
10
10
  export { DomainManager } from './domain-manager.js';
11
11
  export { TabSessionService } from './tab-session-service.js';
@@ -2,7 +2,7 @@
2
2
  * Connection module — public surface.
3
3
  */
4
4
  export { CDPClient } from './cdp-client.js';
5
- export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, } from './browser-discovery.js';
5
+ export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, parseBrowserCommandLine, scanBrowserProcesses, } from './browser-discovery.js';
6
6
  export { HealthMonitor } from './health-monitor.js';
7
7
  export { DomainManager } from './domain-manager.js';
8
8
  export { TabSessionService } from './tab-session-service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -50,7 +50,7 @@ import { registerDebugTools } from './tools/debug.js';
50
50
  import { registerFormTools } from './tools/form.js';
51
51
  import { getSlimTools, mapSlimToFull } from './tools/slim-mode.js';
52
52
  // ─── Bootstrap ──────────────────────────────────────────────────────
53
- const VERSION = '5.0.2';
53
+ const VERSION = '5.0.3';
54
54
  const config = loadConfig();
55
55
  const cdpClient = new CDPClient({ commandTimeout: config.globalTimeout });
56
56
  // Lazy initialization: HealthMonitor is created but doesn't discover browsers
@@ -58,6 +58,8 @@ const healthMonitor = new HealthMonitor(cdpClient, {
58
58
  cdpHost: config.cdpHost,
59
59
  cdpPort: config.cdpPort,
60
60
  preferredProfile: config.autoConnectProfile,
61
+ extraUserDataDirs: config.userDataDir ? [config.userDataDir] : [],
62
+ processScan: config.processScan,
61
63
  });
62
64
  const domainManager = new DomainManager();
63
65
  const tabSessionService = new TabSessionService();
@@ -444,7 +446,8 @@ registry.register(defineTool({
444
446
  name: 'ping',
445
447
  description: 'Health check. Returns server version and connection status.',
446
448
  inputSchema: { type: 'object', properties: {} },
447
- handler: async () => success(`pong — CDP Browser MCP v${VERSION}\nConnected: ${cdpClient.isConnected}`),
449
+ handler: async () => success(`pong — CDP Browser MCP v${VERSION}\nConnected: ${cdpClient.isConnected}` +
450
+ (cdpClient.isConnected ? `\nMode: ${healthMonitor.connectionMode}` : '')),
448
451
  }));
449
452
  registry.register(defineTool({
450
453
  name: 'status',
@@ -454,6 +457,10 @@ registry.register(defineTool({
454
457
  const lines = [
455
458
  `## CDP Browser MCP Server v${VERSION}`,
456
459
  `Connected: ${cdpClient.isConnected}`,
460
+ ...(cdpClient.isConnected
461
+ ? [`Connection mode: ${healthMonitor.connectionMode}`]
462
+ : []),
463
+ `Process scan: ${config.processScan ? 'on' : 'off'}`,
457
464
  `Default timeout: ${config.globalTimeout}ms`,
458
465
  `Default cleanup: ${config.defaultCleanupStrategy}`,
459
466
  `Session TTL: ${config.sessionTTL}ms`,
@@ -484,7 +491,7 @@ if (config.slimMode) {
484
491
  registerFormTools(registry, ctx);
485
492
  }
486
493
  else {
487
- // Full mode: all 15 tools
494
+ // Full mode: all 14 tools
488
495
  registerTabsTools(registry, ctx);
489
496
  registerPageTools(registry, ctx);
490
497
  registerInteractTools(registry, ctx);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -43,6 +43,10 @@ export interface ServerConfig {
43
43
  maxTempAgeMs: number;
44
44
  /** If set, auto-connect to this Chrome instance/profile on startup */
45
45
  autoConnectProfile: string;
46
+ /** Extra User Data dir checked first during discovery (CDP_USER_DATA) */
47
+ userDataDir: string;
48
+ /** Process command-line scan on discovery failure (CDP_PROCESS_SCAN, default ON) */
49
+ processScan: boolean;
46
50
  /** If true, expose 6 slim tools instead of 15 full tools (for small-context models) */
47
51
  slimMode: boolean;
48
52
  }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Connect-failure diagnostics — classifies why auto-connect failed and
3
+ * produces a kind + human message with the exact fix.
4
+ *
5
+ * Failure signatures (source-verified, see _archive research 2026-10):
6
+ * - TCP refused on every port, no browser processes → no browser / not launched
7
+ * - TCP refused, browser running WITH debug flag → Chrome 136+ default-profile block
8
+ * - Port bound, /json/version → 404 → gated remote-debugging (toggle)
9
+ * - WS rejected with --remote-allow-origins hint → origin allowlist
10
+ * - Port file existed but WS connect failed → approval dialog denied / stale file
11
+ */
12
+ /** Outcome of probing one HTTP debug port. */
13
+ export type PortProbeOutcome = 'refused' | 'not_found' | 'timeout' | 'ok' | 'error';
14
+ export interface PortProbeEvidence {
15
+ port: number;
16
+ outcome: PortProbeOutcome;
17
+ /** HTTP status code when available (404 for gated mode). */
18
+ status?: number;
19
+ /** Short error detail (error message, never a full stack). */
20
+ detail?: string;
21
+ }
22
+ /** What the (optional) process scan saw on the machine. */
23
+ export interface ProcessInfo {
24
+ /** Browser process names seen running (e.g. 'brave', 'chrome'). */
25
+ browsersRunning: string[];
26
+ /** At least one browser was launched with --remote-debugging-port. */
27
+ flagPresent: boolean;
28
+ }
29
+ export type ConnectFailureKind = 'no_browser' | 'no_debug_flag' | 'm136_default_dir' | 'toggle_mode' | 'approval_denied' | 'origin_blocked' | 'generic';
30
+ export interface ConnectDiagnosis {
31
+ kind: ConnectFailureKind;
32
+ headline: string;
33
+ fix: string;
34
+ }
35
+ export interface ClassifyInput {
36
+ probes: PortProbeEvidence[];
37
+ /** True when file-based discovery found at least one DevToolsActivePort. */
38
+ portFilesFound: number;
39
+ /** Error messages captured from failed WS connect attempts. */
40
+ connectErrors: string[];
41
+ /** Process-scan result, or null when scan disabled/unavailable. */
42
+ processInfo: ProcessInfo | null;
43
+ host: string;
44
+ primaryPort: number;
45
+ }
46
+ export declare function classifyConnectFailure(input: ClassifyInput): ConnectDiagnosis;
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Connect-failure diagnostics — classifies why auto-connect failed and
3
+ * produces a kind + human message with the exact fix.
4
+ *
5
+ * Failure signatures (source-verified, see _archive research 2026-10):
6
+ * - TCP refused on every port, no browser processes → no browser / not launched
7
+ * - TCP refused, browser running WITH debug flag → Chrome 136+ default-profile block
8
+ * - Port bound, /json/version → 404 → gated remote-debugging (toggle)
9
+ * - WS rejected with --remote-allow-origins hint → origin allowlist
10
+ * - Port file existed but WS connect failed → approval dialog denied / stale file
11
+ */
12
+ // ─── Helpers ────────────────────────────────────────────────────────
13
+ const ANY_BOUND = (probes) => probes.some((p) => p.outcome === 'not_found' || p.outcome === 'ok');
14
+ const ALL_REFUSED = (probes) => probes.length > 0 && probes.every((p) => p.outcome === 'refused');
15
+ function relaunchCommand(host, port) {
16
+ const target = host === '127.0.0.1' || host === 'localhost' ? '' : ` ${host}`;
17
+ return (`& '<browser.exe>' --user-data-dir='<dir>' --remote-debugging-port=${port}${target}`);
18
+ }
19
+ // ─── Classifier ─────────────────────────────────────────────────────
20
+ export function classifyConnectFailure(input) {
21
+ const { probes, portFilesFound, connectErrors, processInfo, host, primaryPort } = input;
22
+ const originError = connectErrors.find((e) => e.includes('--remote-allow-origins'));
23
+ if (originError) {
24
+ return {
25
+ kind: 'origin_blocked',
26
+ headline: 'The browser rejected this WebSocket origin.',
27
+ fix: `Relaunch the browser with:\n` +
28
+ ` --remote-allow-origins=${host === '127.0.0.1' ? '*' : host}\n` +
29
+ `Or connect from the same origin the browser expects.`,
30
+ };
31
+ }
32
+ // Most specific: a port file was found and a WS connect was attempted but
33
+ // failed (approval dialog denied, stale file, no visible window).
34
+ if (portFilesFound > 0 && connectErrors.length > 0) {
35
+ return {
36
+ kind: 'approval_denied',
37
+ headline: 'A DevToolsActivePort file was found but the WebSocket connection ' +
38
+ 'was rejected.',
39
+ fix: `Likely causes:\n` +
40
+ ` 1. The permission dialog was dismissed or no browser window was ` +
41
+ `visible (approval mode auto-denies without a window).\n` +
42
+ ` 2. The port file is stale (browser restarted on another port). ` +
43
+ `Retry after the browser settles.\n` +
44
+ ` 3. Or relaunch with the flag: ${relaunchCommand(host, primaryPort)}`,
45
+ };
46
+ }
47
+ // Gated remote-debugging: port bound but the legacy HTTP API is absent.
48
+ const gated = probes.find((p) => p.outcome === 'not_found' && p.status === 404);
49
+ if (gated) {
50
+ return {
51
+ kind: 'toggle_mode',
52
+ headline: 'Your browser is running the new gated remote-debugging ' +
53
+ '(chrome://inspect/#remote-debugging toggle). It does not serve the ' +
54
+ 'legacy HTTP discovery API.',
55
+ fix: `Do ONE of these:\n` +
56
+ ` 1. Look at your browser — a permission dialog may be waiting. ` +
57
+ `Click "Allow" (needs a visible browser window).\n` +
58
+ ` 2. Or relaunch with the flag (same data dir keeps your logins):\n` +
59
+ ` ${relaunchCommand(host, primaryPort)}\n` +
60
+ ` 3. Or keep the toggle and make sure the browser's User Data dir ` +
61
+ `is discoverable (CDP_USER_DATA env or process scan).`,
62
+ };
63
+ }
64
+ if (ALL_REFUSED(probes)) {
65
+ const browsers = processInfo?.browsersRunning ?? [];
66
+ if (browsers.length === 0) {
67
+ return {
68
+ kind: 'no_browser',
69
+ headline: 'Could not find any browser with remote debugging enabled.',
70
+ fix: `To fix, do ONE of these:\n` +
71
+ ` 1. Launch your browser with the debug flag:\n` +
72
+ ` ${relaunchCommand(host, primaryPort)}\n` +
73
+ ` 2. Or enable the chrome://inspect/#remote-debugging toggle ` +
74
+ `(Chrome/Brave 144+)\n` +
75
+ ` 3. Or set CDP_PORT env var if using a non-standard port\n\n` +
76
+ `The server will auto-connect once debugging is enabled.`,
77
+ };
78
+ }
79
+ if (processInfo?.flagPresent) {
80
+ // Flag present but nothing listening → Chrome 136+ default-profile block
81
+ return {
82
+ kind: 'm136_default_dir',
83
+ headline: 'The debug port was requested but Chromium 136+ refuses CDP on the ' +
84
+ 'DEFAULT User Data directory.',
85
+ fix: `Relaunch with an explicit NON-DEFAULT data dir (your logins stay ` +
86
+ `if you reuse the same dir):\n` +
87
+ ` ${relaunchCommand(host, primaryPort)}\n` +
88
+ `Note: Chrome for Testing is exempt from this restriction.`,
89
+ };
90
+ }
91
+ return {
92
+ kind: 'no_debug_flag',
93
+ headline: 'A browser is running, but without remote debugging enabled.',
94
+ fix: `Do ONE of these:\n` +
95
+ ` 1. Fully exit the browser, then relaunch with:\n` +
96
+ ` ${relaunchCommand(host, primaryPort)}\n` +
97
+ ` 2. Or enable the chrome://inspect/#remote-debugging toggle ` +
98
+ `(Chrome/Brave 144+) — the server will ask for permission on connect.`,
99
+ };
100
+ }
101
+ // Port file existed but connect failed without a recognizable signature —
102
+ // handled above; this branch is unreachable but kept for safety.
103
+ if (portFilesFound > 0 && connectErrors.length > 0) {
104
+ return {
105
+ kind: 'approval_denied',
106
+ headline: 'A DevToolsActivePort file was found but the WebSocket connection ' +
107
+ 'was rejected.',
108
+ fix: `Likely causes:\n` +
109
+ ` 1. The permission dialog was dismissed or no browser window was ` +
110
+ `visible (approval mode auto-denies without a window).\n` +
111
+ ` 2. The port file is stale (browser restarted on another port). ` +
112
+ `Retry after the browser settles.\n` +
113
+ ` 3. Or relaunch with the flag: ${relaunchCommand(host, primaryPort)}`,
114
+ };
115
+ }
116
+ return {
117
+ kind: 'generic',
118
+ headline: 'Could not connect to any browser.',
119
+ fix: `Launch the browser with:\n` +
120
+ ` ${relaunchCommand(host, primaryPort)}\n` +
121
+ `Or enable the chrome://inspect/#remote-debugging toggle.`,
122
+ };
123
+ }
124
+ //# sourceMappingURL=connect-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-diagnostics.js","sourceRoot":"","sources":["../../src/utils/connect-diagnostics.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdp-mcp-server",
3
- "version": "5.0.2",
3
+ "version": "5.0.3",
4
4
  "description": "The power user's browser MCP — connects to your real Chrome/Edge/Brave with full DevTools capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",