@raultov/browser-control-mcp 0.3.0-beta.3 → 0.3.1-beta.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/CHANGELOG.md CHANGED
@@ -10,6 +10,50 @@ from a copy of its code: entries describe the differences from that release.
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [0.3.1-beta.3] - 2026-10-25
14
+
15
+ Public **BETA**. Size limits: large pages, results, scripts, logs and
16
+ screenshots no longer flood the agent or drop the browser connection, and
17
+ Chrome reconnects by itself when a reply over 16 MB drops it. Some replies
18
+ change (cut texts end with a `[cut: ...]` or `[Truncated: ...]` note,
19
+ `evaluate_js` may say `truncated: true`, `inspect_dom` positions are
20
+ characters).
21
+
22
+ ### Fixed
23
+
24
+ - `capture_screenshot` with `full_page` captures at most 16 384 CSS pixels
25
+ per side, from the top left, and then adds a text note naming the
26
+ document's size (a 30 000 px page came back whole).
27
+ - Observation buffers keep a bounded copy of each item: a console message
28
+ keeps 10 000 characters, a WebSocket payload 64 000 (`payload_len` is
29
+ the whole length), custom event params over 64 000 characters of JSON
30
+ become `{"truncated": true, "characters": N}`, and `get_network_logs`
31
+ shows at most 64 000 characters of a request or response body. Each cut
32
+ text ends with `… [cut: the first N of M characters]`. Chrome no longer
33
+ fetches a response body whose `Content-Length` is over 2 MB (Firefox
34
+ keeps none larger). Two 3 MB console messages made a 6 MB reply.
35
+ - `search_scripts` previews a long line (minified code) as the match with
36
+ 100 characters on each side, `…` where it was cut: one hit in a 1.6 MB
37
+ one-line script returned the whole line.
38
+ - `evaluate_js` returns at most 100 000 characters of `value`: a longer
39
+ string is cut, and an object or array whose JSON form is longer is
40
+ measured in the page and only described ("too large to return (N
41
+ characters of JSON)"), so it never crosses the connection; the reply
42
+ says `"truncated": true`. A 3-million-element array used to time out on
43
+ Firefox and a 20 MB object to drop the connection. A string result over
44
+ 16 MB still drops it (the next call reconnects).
45
+ - `inspect_dom` searches and cuts in the page, so a large document no
46
+ longer crosses the connection (a 20 MB page used to drop it on Chrome).
47
+ Without `query` it returns at most 100 000 characters, after a
48
+ `[Truncated: ...]` note naming the total; `before`/`after` are capped at
49
+ 10 000. Positions are characters (they were bytes). On Chrome an
50
+ exception in the page is an error (it was an empty success).
51
+ - A reply over 16 MB (a huge `evaluate_js` result, a 20 MB page in
52
+ `inspect_dom`) makes the browser close the DevTools connection. Chrome
53
+ then answered `CDP Error: Connection lost` to every later call until
54
+ `restart_browser`; now the next call reconnects by itself (tab ids are
55
+ re-assigned). The failing call explains what happened on both browsers.
56
+
13
57
  ## [0.3.0-beta.3] - 2026-10-25
14
58
 
15
59
  Public **BETA**. Result of a tool-by-tool audit on real Chrome and Firefox:
package/README.md CHANGED
@@ -11,7 +11,7 @@ It is the successor of
11
11
  from a copy of its code) and complements Playwright MCP or
12
12
  chrome-devtools-mcp with runtime JavaScript debugging on both browsers.
13
13
 
14
- > **Status: BETA (0.3.0-beta.3).** This version contains known bugs and differences
14
+ > **Status: BETA (0.3.1-beta.3).** This version contains known bugs and differences
15
15
  > between Chrome and Firefox (see [Limitations and TODO](#limitations-and-todo))
16
16
  > and parts that have not been verified (see [Untested](#untested)). Tool
17
17
  > replies may change in incompatible ways before 1.0. Please report problems
@@ -49,15 +49,15 @@ see the note.
49
49
  | `navigate` | ✓ | ✓ | |
50
50
  | `reload` | ✓ | ✓ | |
51
51
  | `scroll` | ✓ | ✓ | reports the window positions before and after |
52
- | `inspect_dom` | ✓ | ✓ | |
53
- | `capture_screenshot` | ✓ | ✓ | |
52
+ | `inspect_dom` | ✓ | ✓ | at most 100 000 characters without `query` (cut in the page) |
53
+ | `capture_screenshot` | ✓ | ✓ | `full_page` at most 16 384 px per side (a text note says when cut) |
54
54
  | `click_element` | ✓ | ✓ | scrolls the element into view; fails without clicking when it is hidden or covered |
55
55
  | `fill_input` | ✓ | ✓ | picks `<select>` options; fails without typing on elements that cannot take the text; Chrome inserts the text, Firefox types keys |
56
56
  | `handle_dialog` | ✓ | ✓ | accepts or dismisses the open `alert` / `confirm` / `prompt` / `beforeunload` dialog |
57
- | `evaluate_js` | ✓ | ✓ | |
58
- | `get_console_logs` | ✓ | ✓ | Firefox: page errors, CSS warnings and platform messages need the debugger port |
59
- | `get_network_logs` | ✓ | ✓ | Firefox: WebSocket frames need the debugger port |
60
- | `get_custom_events` | ✓ | partial | Firefox: events of the modules subscribed with `send_bidi_command` |
57
+ | `evaluate_js` | ✓ | ✓ | `value` at most 100 000 characters (`truncated: true`) |
58
+ | `get_console_logs` | ✓ | ✓ | a message keeps at most 10 000 characters; Firefox: page errors, CSS warnings and platform messages need the debugger port |
59
+ | `get_network_logs` | ✓ | ✓ | bodies at most 64 000 characters, none over 2 MB; a WebSocket payload keeps 64 000 (`payload_len` is the whole); Firefox: WebSocket frames need the debugger port |
60
+ | `get_custom_events` | ✓ | partial | params over 64 000 characters of JSON are replaced by `{truncated, characters}`; Firefox: events of the modules subscribed with `send_bidi_command` |
61
61
  | `get_performance_metrics` | ✓ | partial | Firefox: `Nodes`, `Frames`, `Resources`, `TransferSize` from the Web Performance APIs (no Performance domain), plus a note |
62
62
  | `profile_page_performance` | ✓ | partial | Firefox: FCP, LCP, DCL and Load from the Web Performance APIs; no trace, so `total_blocking_time_ms` and `top_long_tasks` are `null` |
63
63
  | `set_breakpoint` | ✓ | partial | Firefox: by URL only (no `script_id` / `script_hash`) |
@@ -65,7 +65,7 @@ see the note.
65
65
  | `resume` | ✓ | ✓ | |
66
66
  | `step_over` | ✓ | ✓ | |
67
67
  | `evaluate_on_call_frame` | ✓ | ✓ | |
68
- | `search_scripts` | ✓ | ✓ | |
68
+ | `search_scripts` | ✓ | ✓ | a long line's preview is 100 characters on each side of the match |
69
69
  | `pause_on_load` | ✓ | ✗ | TODO on Firefox, see [Limitations and TODO](#limitations-and-todo) |
70
70
  | `enable_proxy_auth` | ✓ | partial | needs `--proxy-server`; untested on Firefox against a real proxy |
71
71
  | `send_cdp_command` | ✓ | ✗ | raw Chrome DevTools Protocol |
@@ -292,6 +292,9 @@ claude mcp add browser-control-mcp -- npx -y @raultov/browser-control-mcp
292
292
  by their source, Firefox only as `function`). A thrown exception or a
293
293
  rejected promise fails with what was thrown and its 1-based line and
294
294
  column, e.g. `ReferenceError: x is not defined (line 1, column 1)`.
295
+ A `value` over 100 000 characters is not returned whole: a string keeps
296
+ its first 100 000, an object or array is measured in the page and only
297
+ described; the reply then carries `"truncated": true`.
295
298
  - **Per-tab state.** Console logs, network traffic, breakpoints and custom
296
299
  events are kept per tab, in bounded buffers. A tab's console buffer (last
297
300
  1000 messages) is cleared when the tab moves to another site (registrable
@@ -19,7 +19,7 @@
19
19
  "hasInstallScript": true,
20
20
  "license": "MIT",
21
21
  "name": "@raultov/browser-control-mcp",
22
- "version": "0.3.0-beta.3"
22
+ "version": "0.3.1-beta.3"
23
23
  },
24
24
  "node_modules/detect-libc": {
25
25
  "engines": {
@@ -48,5 +48,5 @@
48
48
  }
49
49
  },
50
50
  "requires": true,
51
- "version": "0.3.0-beta.3"
51
+ "version": "0.3.1-beta.3"
52
52
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/raultov/browser-control-mcp/releases/download/v0.3.0-beta.3"
3
+ "https://github.com/raultov/browser-control-mcp/releases/download/v0.3.1-beta.3"
4
4
  ],
5
5
  "author": "raultov <raultov@protonmail.com>",
6
6
  "bin": {
@@ -92,7 +92,7 @@
92
92
  "zipExt": ".tar.xz"
93
93
  }
94
94
  },
95
- "version": "0.3.0-beta.3",
95
+ "version": "0.3.1-beta.3",
96
96
  "volta": {
97
97
  "node": "18.14.1",
98
98
  "npm": "9.5.0"