smooth-operator-mcp 2.4.10 → 3.0.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 +24 -3
- package/README.md +19 -6
- package/dist/smooth-operator.mjs +3826 -1516
- package/dist/smooth-operator.mjs.map +3 -3
- package/docs/harnesses.md +25 -4
- package/docs/mcp-server.md +84 -25
- package/package.json +2 -1
package/.env.example
CHANGED
|
@@ -5,16 +5,21 @@ SMOOTH_OPERATOR_DATA_DIR=~/.smooth-operator
|
|
|
5
5
|
# ~/.smooth-operator/config.json is loaded automatically when this is unset.
|
|
6
6
|
# SMOOTH_OPERATOR_CONFIG=~/.smooth-operator/config.json
|
|
7
7
|
|
|
8
|
-
# Managed
|
|
8
|
+
# Managed browser mode is the zero-setup default. It discovers a Chromium-based browser,
|
|
9
9
|
# then creates one private persistent profile under SMOOTH_OPERATOR_DATA_DIR.
|
|
10
10
|
SMOOTH_OPERATOR_BROWSER_MODE=managed
|
|
11
11
|
# For an advanced DevTools connection, use mode=connect and set this endpoint.
|
|
12
12
|
# SMOOTH_OPERATOR_BROWSER_MODE=connect
|
|
13
13
|
# SMOOTH_OPERATOR_BROWSER_URL=http://127.0.0.1:9222
|
|
14
|
+
# SMOOTH_OPERATOR_BROWSER_WS_ENDPOINT=ws://127.0.0.1:9222/devtools/browser/<id>
|
|
14
15
|
# For explicit launch mode, set a Chromium/Chrome executable.
|
|
15
16
|
# SMOOTH_OPERATOR_BROWSER_MODE=launch
|
|
16
17
|
# SMOOTH_OPERATOR_BROWSER_EXECUTABLE=/path/to/chrome
|
|
17
18
|
# SMOOTH_OPERATOR_BROWSER_HEADLESS=true
|
|
19
|
+
# Optional explicit viewport (both values must be set together). Stealth uses
|
|
20
|
+
# these same dimensions for its launch argument and guarded page metrics.
|
|
21
|
+
# SMOOTH_OPERATOR_BROWSER_VIEWPORT_WIDTH=1280
|
|
22
|
+
# SMOOTH_OPERATOR_BROWSER_VIEWPORT_HEIGHT=720
|
|
18
23
|
# SMOOTH_OPERATOR_BROWSER_USER_DATA_DIR=~/.smooth-operator/browser
|
|
19
24
|
# SMOOTH_OPERATOR_BROWSER_AUTO_LAUNCH=false
|
|
20
25
|
# Test-only opt-in live suite override (the CI script discovers Chrome itself).
|
|
@@ -30,10 +35,22 @@ SMOOTH_OPERATOR_MAX_HTML_CHARS=200000
|
|
|
30
35
|
SMOOTH_OPERATOR_ALLOWED_DOMAINS=
|
|
31
36
|
SMOOTH_OPERATOR_BLOCKED_DOMAINS=
|
|
32
37
|
SMOOTH_OPERATOR_ALLOW_PRIVATE_NETWORK=false
|
|
33
|
-
SMOOTH_OPERATOR_ALLOW_EVAL=
|
|
34
|
-
# File uploads and generated PDFs stay inside
|
|
38
|
+
SMOOTH_OPERATOR_ALLOW_EVAL=true
|
|
39
|
+
# Set false for a stricter profile. File uploads and generated PDFs stay inside
|
|
40
|
+
# these private roots by default.
|
|
35
41
|
# SMOOTH_OPERATOR_ALLOWED_FILE_ROOTS=~/.smooth-operator/files,~/.smooth-operator/downloads
|
|
36
42
|
|
|
43
|
+
# Optional automation-control baseline. The native default is enabled; set false
|
|
44
|
+
# to preserve raw browser automation signals.
|
|
45
|
+
# SMOOTH_OPERATOR_STEALTH_ENABLED=true
|
|
46
|
+
# Stealth profile: balanced (default) | max (accepted compatibility names; same supported patch set)
|
|
47
|
+
# SMOOTH_OPERATOR_STEALTH_PROFILE=balanced
|
|
48
|
+
# Add opt-in GPU launch flags (does not make an identity/coherence guarantee)
|
|
49
|
+
# SMOOTH_OPERATOR_STEALTH_GPU=false
|
|
50
|
+
# Behavioral realism defaults on with short bounded timing; set false for the
|
|
51
|
+
# fastest raw interaction path or override to decouple from stealth.
|
|
52
|
+
# SMOOTH_OPERATOR_BEHAVIOR_ENABLED=true
|
|
53
|
+
|
|
37
54
|
# HTTP is opt-in; use a strong token before enabling remote access
|
|
38
55
|
# SMOOTH_OPERATOR_TRANSPORT=http
|
|
39
56
|
# SMOOTH_OPERATOR_HTTP_HOST=127.0.0.1
|
|
@@ -44,5 +61,9 @@ SMOOTH_OPERATOR_ALLOW_EVAL=false
|
|
|
44
61
|
# SMOOTH_OPERATOR_HTTP_MAX_BODY_BYTES=2000000
|
|
45
62
|
# SMOOTH_OPERATOR_ALLOWED_HOSTS=localhost,127.0.0.1,[::1]
|
|
46
63
|
# SMOOTH_OPERATOR_ALLOWED_ORIGINS=localhost,127.0.0.1,[::1]
|
|
64
|
+
# Hard concurrency caps (constants, not env-configurable): max 32 concurrent
|
|
65
|
+
# requests and max 8 concurrent long-lived SSE/subscription connections.
|
|
66
|
+
# MAX_HTTP_CONCURRENCY=32
|
|
67
|
+
# MAX_HTTP_STREAM_CONCURRENCY=8
|
|
47
68
|
|
|
48
69
|
SMOOTH_OPERATOR_LOG_LEVEL=info
|
package/README.md
CHANGED
|
@@ -27,9 +27,9 @@ Or straight from GitHub:
|
|
|
27
27
|
npm install -g github:Gitshop77/Smooth-Operator && smooth-operator install opencode
|
|
28
28
|
~~~
|
|
29
29
|
|
|
30
|
-
The wizard asks
|
|
30
|
+
The wizard asks exactly 3 focused questions: browser profile ownership, browser display, and the Chromium executable. Run `smooth-operator install` with no harness to pick one interactively (TTY only; piped/CI runs print usage and exit). `--yes` applies the recommended defaults, so give it a target: `smooth-operator install opencode --yes`. Personal Chrome mode launches a dedicated debugging profile on `9222` and derives `browserUrl` automatically. Managed mode owns one private persistent profile; connected mode launches and attaches to a dedicated debugging profile and does not claim ownership of an operator's daily browser.
|
|
31
31
|
|
|
32
|
-
Requires Node 22.23.2+ and
|
|
32
|
+
Requires Node 22.23.2+ and an installed Chromium-based browser. Profile at `~/.smooth-operator/browser` — sign in once.
|
|
33
33
|
|
|
34
34
|
Verify: `smooth-operator --help` and `server_health` / `browser_doctor` appear after restart.
|
|
35
35
|
|
|
@@ -44,12 +44,20 @@ Ask: *“Scrape pricing into a table”*, *“Fill this form with ~/resume.pdf
|
|
|
44
44
|
|
|
45
45
|
## How to use
|
|
46
46
|
|
|
47
|
-
Talk to your harness normally. It can call `browser_navigate` → `browser_snapshot` → `browser_click` and the rest of the MCP surface as needed.
|
|
47
|
+
Talk to your harness normally. It can call `browser_navigate` → `browser_snapshot` → `browser_click` and the rest of the MCP surface as needed. For a challenge, `browser_solve_challenge` returns fresh bounded visual/state evidence for the connected AI; the AI uses ordinary browser actions and calls it again to verify the final classification. Human handoff remains available for logins or challenges that require the user.
|
|
48
|
+
|
|
49
|
+
Stealth and short behavioral timing are enabled in the recommended native profile. Page JavaScript is also available by default; set the explicit environment flags to `false` when a stricter profile is needed. See `docs/STEALTH-GUIDE.md` for details and responsible use.
|
|
50
|
+
|
|
51
|
+
For the fastest supported operation, keep behavioral timing off with
|
|
52
|
+
`SMOOTH_OPERATOR_BEHAVIOR_ENABLED=false`; the native browser remains bounded and
|
|
53
|
+
cancellable. All local browser tools and page features are available by default;
|
|
54
|
+
remote HTTP, private-network access, and file roots remain explicitly gated.
|
|
55
|
+
Faster calls do not bypass challenges or grant permission to automate a site.
|
|
48
56
|
|
|
49
57
|
## Why
|
|
50
58
|
|
|
51
|
-
- Zero setup — managed, headed, persistent
|
|
52
|
-
- Secure by default — domain and file policy, bounded outputs, redaction, and
|
|
59
|
+
- Zero setup — managed, headed, persistent browser by default
|
|
60
|
+
- Secure by default — domain and file policy, bounded outputs, redaction, and explicit safety boundaries
|
|
53
61
|
- Reliable — private profiles, stale-reference recovery, reconnect handling, and structured errors
|
|
54
62
|
- Flexible — stdio by default, Streamable HTTP when you need it, plus connect and disabled modes
|
|
55
63
|
|
|
@@ -57,7 +65,7 @@ Talk to your harness normally. It can call `browser_navigate` → `browser_snaps
|
|
|
57
65
|
|
|
58
66
|
Compared with [Browser Use MCP](https://github.com/browser-use/browser-use) · [](https://github.com/browser-use/browser-use)
|
|
59
67
|
|
|
60
|
-
|
|
68
|
+
Tested: 26 August 2026
|
|
61
69
|
|
|
62
70
|
| Benchmark | Metric | SmoothOperator | Browser Use MCP |
|
|
63
71
|
| --- | --- | ---: | ---: |
|
|
@@ -74,3 +82,8 @@ Compared with [Browser Use MCP](https://github.com/browser-use/browser-use) · [
|
|
|
74
82
|
| MiniWoB++ | MCP errors | **0** | 29 |
|
|
75
83
|
| MiniWoB++ | Transport errors | **0** | **0** |
|
|
76
84
|
| MiniWoB++ | Timeouts | **0** | **0** |
|
|
85
|
+
| Browser Use benchmark | Muse Spark 1.2 · score | **64% · 100 tasks** | 12% · 60 tasks |
|
|
86
|
+
|
|
87
|
+
*Task counts and scoring rules differ; comparison is directional.*
|
|
88
|
+
|
|
89
|
+
[View the Browser Use benchmark](https://github.com/browser-use/benchmark)
|