smooth-operator-mcp 3.0.5 → 3.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.
- package/.env.example +3 -0
- package/README.md +25 -2
- package/dist/smooth-operator.mjs +2312 -348
- package/dist/smooth-operator.mjs.map +3 -3
- package/docs/STEALTH-GUIDE.md +84 -0
- package/docs/harnesses.md +7 -0
- package/docs/mcp-server.md +103 -11
- package/package.json +15 -7
package/.env.example
CHANGED
|
@@ -30,6 +30,9 @@ SMOOTH_OPERATOR_BROWSER_CONNECT_TIMEOUT_MS=30000
|
|
|
30
30
|
SMOOTH_OPERATOR_BROWSER_CDP_TIMEOUT_MS=30000
|
|
31
31
|
SMOOTH_OPERATOR_MAX_SCREENSHOT_BYTES=8000000
|
|
32
32
|
SMOOTH_OPERATOR_MAX_HTML_CHARS=200000
|
|
33
|
+
# Optional idle cleanup for the connected browser; 0 disables idle cleanup.
|
|
34
|
+
# The maximum accepted value is 86400000 ms (24 hours).
|
|
35
|
+
# SMOOTH_OPERATOR_BROWSER_IDLE_TIMEOUT_MS=0
|
|
33
36
|
|
|
34
37
|
# Network and page-operation safety invariants
|
|
35
38
|
SMOOTH_OPERATOR_ALLOWED_DOMAINS=
|
package/README.md
CHANGED
|
@@ -31,7 +31,10 @@ The wizard asks exactly 3 focused questions: browser profile ownership, browser
|
|
|
31
31
|
|
|
32
32
|
Requires Node 22.23.2+ and an installed Chromium-based browser. Profile at `~/.smooth-operator/browser` — sign in once.
|
|
33
33
|
|
|
34
|
-
Verify: `smooth-operator --help` and `server_health` / `browser_doctor` appear after restart.
|
|
34
|
+
Verify: `smooth-operator --help` and `server_health` / `browser_doctor` appear after restart. `server_health` reports `ok` when the runtime is ready, `degraded` when browser recovery is required or its managed profile lease is not held, and `shutting_down` during teardown; an idle lazy browser is healthy.
|
|
35
|
+
|
|
36
|
+
For a local release check, run `npm run verify`; it covers lint, type safety,
|
|
37
|
+
tests, dead-code analysis, and the package smoke test.
|
|
35
38
|
|
|
36
39
|
## What it does
|
|
37
40
|
|
|
@@ -39,6 +42,15 @@ Verify: `smooth-operator --help` and `server_health` / `browser_doctor` appear a
|
|
|
39
42
|
- Inspect pages with snapshots, accessibility trees, HTML, styles, text search, and bounded extraction
|
|
40
43
|
- Work across tabs, frames, popups, shadow DOM, dialogs, cookies, storage, downloads, screenshots, and PDFs
|
|
41
44
|
- Search the web through bounded DuckDuckGo retrieval
|
|
45
|
+
- Search a bounded metadata-only network journal by request ID, URL, method, status, and resource type
|
|
46
|
+
- Block page-scoped image, stylesheet, font, media, and script subresources; document and navigation requests are never selectable
|
|
47
|
+
- Inspect a selected element's safe attributes, styles, animations, and shallow children without returning scripts, event source, form values, or arbitrary data attributes
|
|
48
|
+
- Upload one file or up to 20 files from allowed roots; each file is capped at 50 MiB and the aggregate at 100 MiB
|
|
49
|
+
- Read, set, and delete URL-scoped cookies with validated SameSite settings; cookie values are omitted from reads
|
|
50
|
+
|
|
51
|
+
The MCP registry exposes 64 public tools. The surface includes bounded network
|
|
52
|
+
search, safe element inspection, page-scoped resource blocking, and file and
|
|
53
|
+
cookie controls alongside the navigation, extraction, and lifecycle tools.
|
|
42
54
|
|
|
43
55
|
Ask: *“Scrape pricing into a table”*, *“Fill this form with ~/resume.pdf”*, or *“Download the monthly report as a PDF.”*
|
|
44
56
|
|
|
@@ -48,7 +60,7 @@ Talk to your harness normally. It can call `browser_navigate` → `browser_snaps
|
|
|
48
60
|
|
|
49
61
|
Browser identity remains native, page JavaScript is available by default, and
|
|
50
62
|
behavioral timing is off for fast deterministic input. Set the explicit
|
|
51
|
-
environment flags to change those choices. See
|
|
63
|
+
environment flags to change those choices. See the [browser compatibility guide](docs/STEALTH-GUIDE.md) for
|
|
52
64
|
details and responsible use.
|
|
53
65
|
|
|
54
66
|
For the fastest supported operation, keep behavioral timing off with
|
|
@@ -57,6 +69,13 @@ cancellable. All local browser tools and page features are available by default;
|
|
|
57
69
|
remote HTTP, private-network access, and file roots remain explicitly gated.
|
|
58
70
|
Faster calls do not bypass challenges or grant permission to automate a site.
|
|
59
71
|
|
|
72
|
+
Managed mode preflights a regular executable when it needs to launch, and
|
|
73
|
+
launch mode does so before invoking Chromium. Both wait for browser launch
|
|
74
|
+
readiness and a target-guard acknowledgement before returning a usable
|
|
75
|
+
connection. The loopback DevTools `/json/version` probe is bounded to 64 KiB
|
|
76
|
+
before JSON parsing. There is no arbitrary CDP or host-code tool; page
|
|
77
|
+
evaluation remains an explicit page capability.
|
|
78
|
+
|
|
60
79
|
## Why
|
|
61
80
|
|
|
62
81
|
- Zero setup — managed, headed, persistent browser by default
|
|
@@ -64,6 +83,10 @@ Faster calls do not bypass challenges or grant permission to automate a site.
|
|
|
64
83
|
- Reliable — private profiles, stale-reference recovery, reconnect handling, and structured errors
|
|
65
84
|
- Flexible — stdio by default, Streamable HTTP when you need it, plus connect and disabled modes
|
|
66
85
|
|
|
86
|
+
For HTTP deployments, the configured MCP path also has a bounded readiness
|
|
87
|
+
endpoint at `<path>/healthz` (normally `/mcp/healthz`), subject to the same
|
|
88
|
+
HTTP authentication policy as the MCP endpoint.
|
|
89
|
+
|
|
67
90
|
## Benchmarks
|
|
68
91
|
|
|
69
92
|
Compared with [Browser Use MCP](https://github.com/browser-use/browser-use) · [](https://github.com/browser-use/browser-use)
|