anymcp 0.2.0 → 0.3.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/README.md CHANGED
@@ -114,7 +114,8 @@ tools, `{ "tools": [...] }`, or a JSON string of the same.
114
114
  | Var | Default | Meaning |
115
115
  |-----|---------|---------|
116
116
  | `MCP_FORGE_HOME` | `~/.mcp-forge` | Where generated servers + `registry.json` are written. |
117
- | `FORGE_BROWSER` | *(on)* | In-process stealth browser capture (renders JS + captures XHR/fetch traffic) for dynamic / bot-walled sites. Set `0` to force the cheap static-only fetch. Needs Chromium: `npx playwright install chromium`. |
117
+ | `FORGE_BROWSER` | *(on)* | In-process stealth browser capture (renders JS + captures XHR/fetch traffic) for dynamic / bot-walled sites. Chromium auto-installs on first use. Set `0` to force the cheap static-only fetch. |
118
+ | `FORGE_NO_BROWSER_INSTALL` | *(off)* | Set `1` to never auto-download Chromium (capture stays static unless a browser is already present). |
118
119
  | `SCRAPER_DISCOVERY_MODE` | `1` | Escalate to the browser even on server-rendered pages so their API traffic is captured into tools. `0` keeps the static result when it's sufficient. |
119
120
  | `SCRAPER_INTERACT` | `1` | During a browser capture, scroll / submit a search / click "load more" to surface action-only XHR. |
120
121
  | `MCP_BROWSER_CHANNEL` | *(unset)* | Drive your real installed Chrome (`chrome`) instead of bundled Chromium — stronger stealth. |
@@ -136,20 +137,24 @@ npm run build # build @mcp/generator + this package
136
137
  npm test # 4 suites: provider resolution, stdio boot, emit-server e2e, full local pipeline (no key, no network)
137
138
  ```
138
139
 
139
- ## Dynamic / bot-walled sites
140
+ ## Install footprint
140
141
 
141
- By default the server captures with an **in-process stealth browser** (Playwright): it renders client-side JS
142
- and captures the page's XHR/fetch traffic, so it builds tools for SPAs and anti-bot-protected sites with **no
143
- backend**. It needs a Chromium binary once:
142
+ `npx -y anymcp` is tiny: the whole server is a single bundled file, and the only dependency is
143
+ **`playwright-core`** (the browser engine, **no bundled browsers**). Install is ~2s / ~14MB there is **no
144
+ 500MB browser download at install time**. The first time you scrape a *dynamic* site, the server downloads
145
+ **one** Chromium (~one-time, ~20-40s, progress shown in your client's logs), then caches it. Static / server-
146
+ rendered sites need no browser at all.
144
147
 
145
- ```bash
146
- npx playwright install chromium
147
- ```
148
+ ## Dynamic / bot-walled sites
149
+
150
+ By default the server captures with an **in-process stealth browser**: it renders client-side JS and captures
151
+ the page's XHR/fetch traffic, so it builds tools for SPAs and anti-bot-protected sites with **no backend** and
152
+ **no manual setup** — Chromium auto-installs on first use.
148
153
 
149
154
  Stealth mirrors the generated servers (AutomationControlled off, `navigator.webdriver` stripped). For hard
150
155
  walls, set `MCP_BROWSER_CHANNEL=chrome` to drive your real Chrome, or `MCP_BROWSER_DRIVER=patchright`. Set
151
- `FORGE_BROWSER=0` to skip the browser entirely (static-only). If Chromium isn't installed, the server
152
- automatically falls back to the static fetch.
156
+ `FORGE_BROWSER=0` to skip the browser entirely (static-only), or `FORGE_NO_BROWSER_INSTALL=1` to never
157
+ auto-download. If the browser is unavailable, capture falls back to the static fetch.
153
158
 
154
159
  ## Limitations (honest)
155
160