@raultov/browser-control-mcp 0.3.0-beta.3 → 0.3.2-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,63 @@ from a copy of its code: entries describe the differences from that release.
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [0.3.2-beta.3] - 2026-10-25
14
+
15
+ Public **BETA**. Replies up to 256 MB no longer drop the browser connection
16
+ (new `cdp-lite` and `bidi-lite` releases).
17
+
18
+ ### Fixed
19
+
20
+ - Replies up to 256 MB no longer drop the connection: built with `cdp-lite`
21
+ 0.3.1 and `bidi-lite` 0.1.4, which accept WebSocket messages up to 256 MiB
22
+ (the WebSocket library's default closed the connection on a frame over
23
+ 16 MiB, e.g. an `evaluate_js` string of 20 MB). The lost-connection error
24
+ now names the 256 MB limit.
25
+
26
+ ## [0.3.1-beta.3] - 2026-10-25
27
+
28
+ Public **BETA**. Size limits: large pages, results, scripts, logs and
29
+ screenshots no longer flood the agent or drop the browser connection, and
30
+ Chrome reconnects by itself when a reply over 16 MB drops it. Some replies
31
+ change (cut texts end with a `[cut: ...]` or `[Truncated: ...]` note,
32
+ `evaluate_js` may say `truncated: true`, `inspect_dom` positions are
33
+ characters).
34
+
35
+ ### Fixed
36
+
37
+ - `capture_screenshot` with `full_page` captures at most 16 384 CSS pixels
38
+ per side, from the top left, and then adds a text note naming the
39
+ document's size (a 30 000 px page came back whole).
40
+ - Observation buffers keep a bounded copy of each item: a console message
41
+ keeps 10 000 characters, a WebSocket payload 64 000 (`payload_len` is
42
+ the whole length), custom event params over 64 000 characters of JSON
43
+ become `{"truncated": true, "characters": N}`, and `get_network_logs`
44
+ shows at most 64 000 characters of a request or response body. Each cut
45
+ text ends with `… [cut: the first N of M characters]`. Chrome no longer
46
+ fetches a response body whose `Content-Length` is over 2 MB (Firefox
47
+ keeps none larger). Two 3 MB console messages made a 6 MB reply.
48
+ - `search_scripts` previews a long line (minified code) as the match with
49
+ 100 characters on each side, `…` where it was cut: one hit in a 1.6 MB
50
+ one-line script returned the whole line.
51
+ - `evaluate_js` returns at most 100 000 characters of `value`: a longer
52
+ string is cut, and an object or array whose JSON form is longer is
53
+ measured in the page and only described ("too large to return (N
54
+ characters of JSON)"), so it never crosses the connection; the reply
55
+ says `"truncated": true`. A 3-million-element array used to time out on
56
+ Firefox and a 20 MB object to drop the connection. A string result over
57
+ 16 MB still drops it (the next call reconnects).
58
+ - `inspect_dom` searches and cuts in the page, so a large document no
59
+ longer crosses the connection (a 20 MB page used to drop it on Chrome).
60
+ Without `query` it returns at most 100 000 characters, after a
61
+ `[Truncated: ...]` note naming the total; `before`/`after` are capped at
62
+ 10 000. Positions are characters (they were bytes). On Chrome an
63
+ exception in the page is an error (it was an empty success).
64
+ - A reply over 16 MB (a huge `evaluate_js` result, a 20 MB page in
65
+ `inspect_dom`) makes the browser close the DevTools connection. Chrome
66
+ then answered `CDP Error: Connection lost` to every later call until
67
+ `restart_browser`; now the next call reconnects by itself (tab ids are
68
+ re-assigned). The failing call explains what happened on both browsers.
69
+
13
70
  ## [0.3.0-beta.3] - 2026-10-25
14
71
 
15
72
  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.2-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.2-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.2-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.2-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.2-beta.3",
96
96
  "volta": {
97
97
  "node": "18.14.1",
98
98
  "npm": "9.5.0"