smooth-operator-mcp 2.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 +45 -0
- package/LICENSE +21 -0
- package/README.md +63 -0
- package/dist/smooth-operator.mjs +8128 -0
- package/dist/smooth-operator.mjs.map +6 -0
- package/docs/harnesses.md +272 -0
- package/docs/mcp-server.md +427 -0
- package/package.json +69 -0
package/.env.example
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Native MCP transport
|
|
2
|
+
SMOOTH_OPERATOR_TRANSPORT=stdio
|
|
3
|
+
SMOOTH_OPERATOR_DATA_DIR=~/.smooth-operator
|
|
4
|
+
|
|
5
|
+
# Managed agent Chrome is the zero-setup default. It discovers Google Chrome,
|
|
6
|
+
# then creates one private persistent profile under SMOOTH_OPERATOR_DATA_DIR.
|
|
7
|
+
SMOOTH_OPERATOR_BROWSER_MODE=managed
|
|
8
|
+
# For an advanced DevTools connection, use mode=connect and set this endpoint.
|
|
9
|
+
# SMOOTH_OPERATOR_BROWSER_MODE=connect
|
|
10
|
+
# SMOOTH_OPERATOR_BROWSER_URL=http://127.0.0.1:9222
|
|
11
|
+
# For explicit launch mode, set a Chromium/Chrome executable.
|
|
12
|
+
# SMOOTH_OPERATOR_BROWSER_MODE=launch
|
|
13
|
+
# SMOOTH_OPERATOR_BROWSER_EXECUTABLE=/path/to/chrome
|
|
14
|
+
# SMOOTH_OPERATOR_BROWSER_HEADLESS=true
|
|
15
|
+
# SMOOTH_OPERATOR_BROWSER_USER_DATA_DIR=~/.smooth-operator/browser
|
|
16
|
+
# SMOOTH_OPERATOR_BROWSER_AUTO_LAUNCH=false
|
|
17
|
+
# Test-only opt-in live suite override (the CI script discovers Chrome itself).
|
|
18
|
+
# SMOOTH_OPERATOR_TEST_BROWSER_EXECUTABLE=/path/to/chrome
|
|
19
|
+
# Browser output and operation bounds
|
|
20
|
+
SMOOTH_OPERATOR_BROWSER_TIMEOUT_MS=15000
|
|
21
|
+
SMOOTH_OPERATOR_BROWSER_CONNECT_TIMEOUT_MS=30000
|
|
22
|
+
SMOOTH_OPERATOR_BROWSER_CDP_TIMEOUT_MS=30000
|
|
23
|
+
SMOOTH_OPERATOR_MAX_SCREENSHOT_BYTES=8000000
|
|
24
|
+
SMOOTH_OPERATOR_MAX_HTML_CHARS=200000
|
|
25
|
+
|
|
26
|
+
# Network and page-operation safety invariants
|
|
27
|
+
SMOOTH_OPERATOR_ALLOWED_DOMAINS=
|
|
28
|
+
SMOOTH_OPERATOR_BLOCKED_DOMAINS=
|
|
29
|
+
SMOOTH_OPERATOR_ALLOW_PRIVATE_NETWORK=false
|
|
30
|
+
SMOOTH_OPERATOR_ALLOW_EVAL=false
|
|
31
|
+
# File uploads and generated PDFs stay inside these private roots by default.
|
|
32
|
+
# SMOOTH_OPERATOR_ALLOWED_FILE_ROOTS=~/.smooth-operator/files,~/.smooth-operator/downloads
|
|
33
|
+
|
|
34
|
+
# HTTP is opt-in; use a strong token before enabling remote access
|
|
35
|
+
# SMOOTH_OPERATOR_TRANSPORT=http
|
|
36
|
+
# SMOOTH_OPERATOR_HTTP_HOST=127.0.0.1
|
|
37
|
+
# SMOOTH_OPERATOR_HTTP_PORT=3344
|
|
38
|
+
# SMOOTH_OPERATOR_HTTP_PATH=/mcp
|
|
39
|
+
# SMOOTH_OPERATOR_HTTP_TOKEN=replace-with-at-least-32-random-characters
|
|
40
|
+
# SMOOTH_OPERATOR_ALLOW_REMOTE_HTTP=false
|
|
41
|
+
# SMOOTH_OPERATOR_HTTP_MAX_BODY_BYTES=2000000
|
|
42
|
+
# SMOOTH_OPERATOR_ALLOWED_HOSTS=localhost,127.0.0.1,[::1]
|
|
43
|
+
# SMOOTH_OPERATOR_ALLOWED_ORIGINS=localhost,127.0.0.1,[::1]
|
|
44
|
+
|
|
45
|
+
SMOOTH_OPERATOR_LOG_LEVEL=info
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SmoothOperator Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# SmoothOperator
|
|
2
|
+
|
|
3
|
+
Give your AI a real Chrome. SmoothOperator is a tiny MCP server — your harness reasons, it clicks, types, and scrapes. No model keys. No hidden loop.
|
|
4
|
+
|
|
5
|
+
## Install — one command
|
|
6
|
+
|
|
7
|
+
Pick your harness. Run one line. Restart harness.
|
|
8
|
+
|
|
9
|
+
**From a clone (works today, no publish step):**
|
|
10
|
+
~~~sh
|
|
11
|
+
npm install -g github:Gitshop77/Smooth-Operator && smooth-operator install opencode
|
|
12
|
+
~~~
|
|
13
|
+
|
|
14
|
+
**From npm** (`smooth-operator-mcp`, once published):
|
|
15
|
+
~~~sh
|
|
16
|
+
npm install -g smooth-operator-mcp && smooth-operator install opencode
|
|
17
|
+
npm install -g smooth-operator-mcp && smooth-operator install claude-code
|
|
18
|
+
npm install -g smooth-operator-mcp && smooth-operator install copilot
|
|
19
|
+
npm install -g smooth-operator-mcp && smooth-operator install codex
|
|
20
|
+
npm install -g smooth-operator-mcp && smooth-operator install gemini
|
|
21
|
+
npm install -g smooth-operator-mcp && smooth-operator install vscode
|
|
22
|
+
npm install -g smooth-operator-mcp && smooth-operator install cursor
|
|
23
|
+
npm install -g smooth-operator-mcp && smooth-operator install windsurf
|
|
24
|
+
npm install -g smooth-operator-mcp && smooth-operator install claude-desktop
|
|
25
|
+
~~~
|
|
26
|
+
|
|
27
|
+
> Note: the plain-npm name `smooth-operator` is an unrelated library on the registry.
|
|
28
|
+
> Do NOT use `npm install -g smooth-operator`.
|
|
29
|
+
|
|
30
|
+
Or from a manual clone:
|
|
31
|
+
~~~sh
|
|
32
|
+
git clone https://github.com/Gitshop77/Smooth-Operator.git
|
|
33
|
+
cd Smooth-Operator
|
|
34
|
+
npm install -g . && smooth-operator install opencode
|
|
35
|
+
~~~
|
|
36
|
+
|
|
37
|
+
Wizard asks 6 questions (managed vs personal Chrome, headless, domains, JS). Run `smooth-operator install` with no harness to pick one interactively (TTY only; piped/CI runs print usage and exit). `--yes` skips every prompt, so give it a target: `smooth-operator install opencode --yes`. Personal Chrome → wizard launches Chrome on `9222` for you.
|
|
38
|
+
|
|
39
|
+
Requires Node 22.23.2+ and Chrome. Profile at `~/.smooth-operator/browser` — sign in once.
|
|
40
|
+
|
|
41
|
+
Verify: `smooth-operator --help` and `server_health` / `browser_doctor` appear after restart.
|
|
42
|
+
|
|
43
|
+
## What it does
|
|
44
|
+
|
|
45
|
+
- Click, type, select, scroll, hover
|
|
46
|
+
- Extract, find text, snapshot, screenshot, PDF, upload
|
|
47
|
+
- Handle tabs, dialogs, cookies, storage
|
|
48
|
+
- Search web (DuckDuckGo)
|
|
49
|
+
|
|
50
|
+
Ask: *“Scrape pricing into a table”* / *“Fill this form with ~/resume.pdf”* / *“Download monthly report as PDF”*
|
|
51
|
+
|
|
52
|
+
## How to use
|
|
53
|
+
|
|
54
|
+
Talk to your harness normally. It will call `browser_navigate` → `browser_snapshot` → `browser_click` etc. Logins/CAPTCHAs pause for you in the Chrome window.
|
|
55
|
+
|
|
56
|
+
## Why
|
|
57
|
+
|
|
58
|
+
- Zero config — headed, private, persistent Chrome
|
|
59
|
+
- Private — `~/.smooth-operator`, 0600 permissions
|
|
60
|
+
- Safe — domain policy, bounded outputs, JS off by default (`SMOOTH_OPERATOR_ALLOW_EVAL`)
|
|
61
|
+
- Works — stdio default, HTTP optional
|
|
62
|
+
|
|
63
|
+
Details: [AGENTS.md](AGENTS.md) · [MCP guide](docs/mcp-server.md) · [harnesses](docs/harnesses.md)
|