smooth-operator-mcp 3.0.0 → 3.0.2
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 +5 -5
- package/README.md +5 -2
- package/dist/smooth-operator.mjs +122 -183
- package/dist/smooth-operator.mjs.map +2 -2
- package/docs/mcp-server.md +28 -24
- package/package.json +1 -1
package/docs/mcp-server.md
CHANGED
|
@@ -46,10 +46,10 @@ smooth-operator --help
|
|
|
46
46
|
The interactive installer asks exactly three questions: (1) browser profile
|
|
47
47
|
ownership, (2) headed or headless display, and (3) which Chromium executable to
|
|
48
48
|
use. Its recommended defaults are a managed private persistent profile, headed
|
|
49
|
-
display, and the first detected Chromium executable. It also enables page eval
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
display, and the first detected Chromium executable. It also enables page eval
|
|
50
|
+
and the identity-preserving compatibility profile; behavioral timing is off
|
|
51
|
+
for fast deterministic input and can be enabled explicitly. Managed mode owns
|
|
52
|
+
its profile. Connected mode launches and attaches to
|
|
53
53
|
a dedicated debugging profile and does not claim ownership of an operator's
|
|
54
54
|
daily browser.
|
|
55
55
|
|
|
@@ -147,7 +147,9 @@ smooth-operator
|
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
Remote mode is rejected unless the token is at least 32 characters. Do not
|
|
150
|
-
use a token from a shell history, checked-in file, or shared log.
|
|
150
|
+
use a token from a shell history, checked-in file, or shared log. POST requests
|
|
151
|
+
must declare `Content-Type: application/json`; unsupported media types are
|
|
152
|
+
rejected before their body is read. A reverse
|
|
151
153
|
proxy can add TLS and network access controls, but it does not replace the
|
|
152
154
|
application token, Host/Origin allowlists, or request-size limit. Allowed host
|
|
153
155
|
and origin values are hostnames without a scheme; browser preflight requests
|
|
@@ -167,11 +169,11 @@ The managed browser is headed by default for sign-in and human handoff. On CI or
|
|
|
167
169
|
displayless host, explicitly set `SMOOTH_OPERATOR_BROWSER_HEADLESS=true` or use
|
|
168
170
|
Xvfb. If you set both `SMOOTH_OPERATOR_BROWSER_VIEWPORT_WIDTH` and
|
|
169
171
|
`SMOOTH_OPERATOR_BROWSER_VIEWPORT_HEIGHT`, that explicit viewport is applied to
|
|
170
|
-
the browser and any
|
|
171
|
-
features are available by default, including page evaluation and the
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
the remaining boundaries.
|
|
172
|
+
the browser and any explicitly configured viewport. All local browser tools and
|
|
173
|
+
features are available by default, including page evaluation and the
|
|
174
|
+
identity-preserving compatibility profile. Behavioral timing is off by default
|
|
175
|
+
for fast deterministic input. See `STEALTH-GUIDE.md` for challenge handling
|
|
176
|
+
and the remaining boundaries.
|
|
175
177
|
|
|
176
178
|
### Managed mode (default)
|
|
177
179
|
|
|
@@ -312,10 +314,10 @@ variables include:
|
|
|
312
314
|
| `SMOOTH_OPERATOR_ALLOWED_FILE_ROOTS` | data `files`, `downloads` | Explicit roots replace defaults |
|
|
313
315
|
| `SMOOTH_OPERATOR_ALLOW_PRIVATE_NETWORK` | `false` | Allows non-loopback private targets when true |
|
|
314
316
|
| `SMOOTH_OPERATOR_ALLOW_EVAL` | `true` | Set `false` to disable page JavaScript |
|
|
315
|
-
| `SMOOTH_OPERATOR_STEALTH_ENABLED` | `true` |
|
|
317
|
+
| `SMOOTH_OPERATOR_STEALTH_ENABLED` | `true` | Native-identity viewport compatibility script |
|
|
316
318
|
| `SMOOTH_OPERATOR_STEALTH_PROFILE` | `balanced` | `balanced` or `max` compatibility label |
|
|
317
319
|
| `SMOOTH_OPERATOR_STEALTH_GPU` | `false` | Adds opt-in GPU launch flags |
|
|
318
|
-
| `SMOOTH_OPERATOR_BEHAVIOR_ENABLED` | `
|
|
320
|
+
| `SMOOTH_OPERATOR_BEHAVIOR_ENABLED` | `false` | Opt-in timing wrappers |
|
|
319
321
|
| `SMOOTH_OPERATOR_HTTP_HOST` | `127.0.0.1` | HTTP bind host |
|
|
320
322
|
| `SMOOTH_OPERATOR_HTTP_PORT` | `3344` | HTTP bind port |
|
|
321
323
|
| `SMOOTH_OPERATOR_HTTP_PATH` | `/mcp` | HTTP endpoint path |
|
|
@@ -328,13 +330,11 @@ variables include:
|
|
|
328
330
|
|
|
329
331
|
### Fast operation mode
|
|
330
332
|
|
|
331
|
-
The default configuration is a native managed browser with
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
when page JavaScript is not needed. Tool calls remain bounded and cancellable;
|
|
337
|
-
no hidden planning loop is introduced.
|
|
333
|
+
The default configuration is a native managed browser with page evaluation
|
|
334
|
+
available, native browser identity, and deterministic input. Enable
|
|
335
|
+
`SMOOTH_OPERATOR_BEHAVIOR_ENABLED=true` only when a workflow explicitly needs
|
|
336
|
+
timing wrappers. Tool calls remain bounded and cancellable; no hidden planning
|
|
337
|
+
loop is introduced.
|
|
338
338
|
|
|
339
339
|
Raw MCP/tool-call speed is not the main bot-detection vector. Sites can score
|
|
340
340
|
network and browser identity, IP reputation, session history, and interaction
|
|
@@ -411,13 +411,16 @@ disabled explicitly with `SMOOTH_OPERATOR_ALLOW_EVAL=false`.
|
|
|
411
411
|
`browser_evaluate` is page JavaScript and is available by default (set
|
|
412
412
|
`SMOOTH_OPERATOR_ALLOW_EVAL=false` when it is not wanted). `browser_exec`
|
|
413
413
|
accepts only a JSON array of validated browser actions; it is not a shell,
|
|
414
|
-
Python, or arbitrary code runner.
|
|
414
|
+
Python, or arbitrary code runner. Its explicit `evaluate` action still follows
|
|
415
|
+
the page-evaluation policy. Destructive batch actions require explicit
|
|
415
416
|
confirmation. `browser_wait_for_human` pauses for an operator to complete a
|
|
416
417
|
visible sign-in or challenge. `browser_solve_challenge` is an internal
|
|
417
418
|
connected-AI observe/act/verify loop: it returns bounded evidence and is
|
|
418
419
|
successful only when a fresh final classification explicitly reports the
|
|
419
|
-
challenge absent
|
|
420
|
-
|
|
420
|
+
challenge absent; present and exhausted cycles report the remaining attempt
|
|
421
|
+
budget and `automation_exhausted` is the final non-success state.
|
|
422
|
+
`browser_close_session`
|
|
423
|
+
closes the one native browser session by its explicit session identifier.
|
|
421
424
|
|
|
422
425
|
Actions that leave a usable page—navigation, click, input, select, scroll, key,
|
|
423
426
|
back, forward, and reload—accept optional `includeSnapshot: true`. The action
|
|
@@ -472,8 +475,9 @@ The server publishes read-only resources:
|
|
|
472
475
|
Resource output is bounded and follows the same redaction and policy rules as
|
|
473
476
|
tool output. The capabilities resource also reports the native defaults and
|
|
474
477
|
effective feature flags for local browser tools, page evaluation, stealth, and
|
|
475
|
-
behavioral timing
|
|
476
|
-
|
|
478
|
+
behavioral timing. Its challenge metadata includes the default and maximum
|
|
479
|
+
connected-AI attempt budgets and states that success requires an explicit
|
|
480
|
+
absent classification.
|
|
477
481
|
|
|
478
482
|
### Prompts
|
|
479
483
|
|