smooth-operator-mcp 2.4.11 → 3.0.1

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 CHANGED
@@ -11,10 +11,15 @@ 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=false
34
- # File uploads and generated PDFs stay inside these private roots by default.
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
+ # Compatibility baseline. Browser identity and automation signals remain native;
44
+ # set false to skip the explicit-viewport compatibility script.
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 timing is off for the fastest deterministic path; set true only
51
+ # when a site or workflow explicitly needs it.
52
+ # SMOOTH_OPERATOR_BEHAVIOR_ENABLED=false
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,7 +27,7 @@ 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 7 focused questions covering browser mode, executable, headless operation, domain policy, page JavaScript, and the data directory. 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.
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
32
  Requires Node 22.23.2+ and an installed Chromium-based browser. Profile at `~/.smooth-operator/browser` — sign in once.
33
33
 
@@ -44,12 +44,23 @@ 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. Logins and CAPTCHA challenges pause for human handoff in the Chrome window.
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 and an attempt budget; the connected AI keeps using ordinary browser actions and calls it again until the final classification is clear or the budget is exhausted. Human handoff remains available only as an explicit final option.
48
+
49
+ Browser identity remains native, page JavaScript is available by default, and
50
+ behavioral timing is off for fast deterministic input. Set the explicit
51
+ environment flags to change those choices. See `docs/STEALTH-GUIDE.md` for
52
+ details and responsible use.
53
+
54
+ For the fastest supported operation, keep behavioral timing off with
55
+ `SMOOTH_OPERATOR_BEHAVIOR_ENABLED=false`; the native browser remains bounded and
56
+ cancellable. All local browser tools and page features are available by default;
57
+ remote HTTP, private-network access, and file roots remain explicitly gated.
58
+ Faster calls do not bypass challenges or grant permission to automate a site.
48
59
 
49
60
  ## Why
50
61
 
51
62
  - Zero setup — managed, headed, persistent browser by default
52
- - Secure by default — domain and file policy, bounded outputs, redaction, and JavaScript disabled unless explicitly enabled
63
+ - Secure by default — domain and file policy, bounded outputs, redaction, and explicit safety boundaries
53
64
  - Reliable — private profiles, stale-reference recovery, reconnect handling, and structured errors
54
65
  - Flexible — stdio by default, Streamable HTTP when you need it, plus connect and disabled modes
55
66