mcp-scraper 0.3.17 → 0.3.18
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 +26 -58
- package/dist/bin/api-server.cjs +286 -49
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +2 -2
- package/dist/bin/mcp-scraper-cli.cjs +4 -4
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +5 -5
- package/dist/bin/mcp-scraper-cli.js.map +1 -1
- package/dist/bin/mcp-scraper-install.cjs +12 -12
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +3 -3
- package/dist/bin/mcp-scraper-install.js.map +1 -1
- package/dist/bin/mcp-stdio-server.cjs +2441 -785
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +1377 -9
- package/dist/bin/mcp-stdio-server.js.map +1 -1
- package/dist/bin/paa-harvest.js +2 -3
- package/dist/bin/paa-harvest.js.map +1 -1
- package/dist/{chunk-N33YEY6W.js → chunk-2XCNU22L.js} +210 -10
- package/dist/{chunk-N33YEY6W.js.map → chunk-2XCNU22L.js.map} +1 -1
- package/dist/chunk-C7ZNIXOA.js +7 -0
- package/dist/chunk-C7ZNIXOA.js.map +1 -0
- package/dist/{chunk-ACIUCZ27.js → chunk-DE7WP4UU.js} +11 -11
- package/dist/chunk-DE7WP4UU.js.map +1 -0
- package/dist/{chunk-ZAUMSBV3.js → chunk-HDPWLYK7.js} +6 -6
- package/dist/{chunk-4OPKIDON.js → chunk-IGOEAKC7.js} +4 -6
- package/dist/{chunk-4OPKIDON.js.map → chunk-IGOEAKC7.js.map} +1 -1
- package/dist/{chunk-M2S27J6Z.js → chunk-ZAP7MYVO.js} +26 -1
- package/dist/chunk-ZAP7MYVO.js.map +1 -0
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/{server-TKWY47JA.js → server-3M3XCVOT.js} +323 -158
- package/dist/server-3M3XCVOT.js.map +1 -0
- package/dist/{worker-2WVKKCC7.js → worker-J6I5XP2F.js} +9 -10
- package/dist/{worker-2WVKKCC7.js.map → worker-J6I5XP2F.js.map} +1 -1
- package/docs/mcp-tool-manifest.generated.json +28 -27
- package/package.json +3 -3
- package/dist/bin/browser-agent-stdio-server.cjs +0 -1523
- package/dist/bin/browser-agent-stdio-server.cjs.map +0 -1
- package/dist/bin/browser-agent-stdio-server.d.cts +0 -1
- package/dist/bin/browser-agent-stdio-server.d.ts +0 -1
- package/dist/bin/browser-agent-stdio-server.js +0 -43
- package/dist/bin/browser-agent-stdio-server.js.map +0 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs +0 -5718
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs.map +0 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.d.cts +0 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.d.ts +0 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.js +0 -70
- package/dist/bin/mcp-scraper-combined-stdio-server.js.map +0 -1
- package/dist/chunk-3YGKXXUG.js +0 -133
- package/dist/chunk-3YGKXXUG.js.map +0 -1
- package/dist/chunk-ACIUCZ27.js.map +0 -1
- package/dist/chunk-M2S27J6Z.js.map +0 -1
- package/dist/chunk-PVWWY5NV.js +0 -7
- package/dist/chunk-PVWWY5NV.js.map +0 -1
- package/dist/chunk-UFD7N36R.js +0 -1332
- package/dist/chunk-UFD7N36R.js.map +0 -1
- package/dist/chunk-WN7PBKMV.js +0 -28
- package/dist/chunk-WN7PBKMV.js.map +0 -1
- package/dist/server-TKWY47JA.js.map +0 -1
- /package/dist/{chunk-ZAUMSBV3.js.map → chunk-HDPWLYK7.js.map} +0 -0
package/README.md
CHANGED
|
@@ -6,20 +6,18 @@ MCP Scraper is an MCP server for live web intelligence tools backed by `https://
|
|
|
6
6
|
|
|
7
7
|
Use the MCPB Desktop Extension for the branded Claude Desktop install, or use the npm package from any MCP client that can run stdio commands.
|
|
8
8
|
|
|
9
|
-
MCP Scraper ships
|
|
9
|
+
MCP Scraper ships one stdio entrypoint plus human-facing helper CLIs:
|
|
10
10
|
|
|
11
|
-
- `mcp-scraper` — live web intelligence
|
|
12
|
-
- `browser-agent` — agent-controlled direct/no-proxy hosted browser sessions with screenshots, clicks, typing, scrolling, watch URLs, replay links, MP4 replay download, and saved profile setup for authenticated AI visibility workflows.
|
|
13
|
-
- `mcp-scraper-combined` — one context-aware command. In a human terminal it prints the branded ASCII install card; in an MCP client it runs the combined stdio server with both tool sets. This is the entrypoint used by the MCPB Desktop Extension.
|
|
11
|
+
- `mcp-scraper` — the single MCP server with every tool: live web intelligence (SERP, PAA, site extraction, YouTube, Facebook ads and organic video transcripts, Maps, directory, rank tracker blueprint, credits) plus agent-controlled direct/no-proxy hosted browser sessions (screenshots, clicks, typing, scrolling, watch URLs, replay links, MP4 replay download, and saved profile/login setup for authenticated AI visibility workflows). It is context-aware: in a human terminal it prints the branded ASCII install card; in an MCP client it runs as a protocol-clean stdio server. This is the entrypoint used by the MCPB Desktop Extension.
|
|
14
12
|
- `mcp-scraper-install` — explicit alias for the human-facing terminal installer card with the branded ASCII intro and copyable install commands.
|
|
15
13
|
- `mcp-scraper-cli` — a human-facing CLI for setup checks, AI-agent config generation, workflow prompts, SEO workflow runs, and HTML reports. This command is safe to print because it is not an MCP stdio server.
|
|
16
14
|
|
|
17
15
|
### Terminal installer
|
|
18
16
|
|
|
19
|
-
Run the
|
|
17
|
+
Run the command when you want the designed terminal install experience:
|
|
20
18
|
|
|
21
19
|
```bash
|
|
22
|
-
npx -y -p mcp-scraper@latest mcp-scraper
|
|
20
|
+
npx -y -p mcp-scraper@latest mcp-scraper
|
|
23
21
|
```
|
|
24
22
|
|
|
25
23
|
In a human terminal, it prints the MCP Scraper banner, loaded tool groups, Desktop Extension download, Claude Code command, and Codex config. When launched by an MCP client, the same command detects non-interactive stdio and writes only valid JSON-RPC to stdout.
|
|
@@ -41,7 +39,7 @@ npx -y -p mcp-scraper@latest mcp-scraper-cli agent install codex
|
|
|
41
39
|
npx -y -p mcp-scraper@latest mcp-scraper-cli agent prompt agent-packet
|
|
42
40
|
```
|
|
43
41
|
|
|
44
|
-
`agent install claude --apply` upserts the Claude Code user-scope `mcp-scraper` entry to `npx -y -p mcp-scraper@latest mcp-scraper
|
|
42
|
+
`agent install claude --apply` upserts the Claude Code user-scope `mcp-scraper` entry to `npx -y -p mcp-scraper@latest mcp-scraper`. Fully exit Claude Code and open a new Claude terminal after applying; MCP servers are attached when Claude starts.
|
|
45
43
|
|
|
46
44
|
Check usage and upgrade concurrency from a normal terminal:
|
|
47
45
|
|
|
@@ -92,7 +90,7 @@ npm run build:mcpb
|
|
|
92
90
|
|
|
93
91
|
The generated bundle is written to `build/mcpb/mcp-scraper-<version>.mcpb` and copied to `public/downloads/` for the hosted download. The current public bundle is `https://mcpscraper.dev/downloads/mcp-scraper.mcpb` (`0.2.24`, SHA-256 `2aff0e961e3de920d1fc67230056988a4a9120735f26f234f0ada6242350a4f0`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, and API-key configuration field from the bundle manifest.
|
|
94
92
|
|
|
95
|
-
The MCPB install exposes
|
|
93
|
+
The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
|
|
96
94
|
|
|
97
95
|
### Raw stdio config
|
|
98
96
|
|
|
@@ -103,7 +101,7 @@ Claude Desktop:
|
|
|
103
101
|
"mcpServers": {
|
|
104
102
|
"mcp-scraper": {
|
|
105
103
|
"command": "npx",
|
|
106
|
-
"args": ["-y", "-p", "mcp-scraper@latest", "mcp-scraper
|
|
104
|
+
"args": ["-y", "-p", "mcp-scraper@latest", "mcp-scraper"],
|
|
107
105
|
"env": {
|
|
108
106
|
"MCP_SCRAPER_API_KEY": "sk_live_your_key",
|
|
109
107
|
"BROWSER_AGENT_PROFILE_NAME": "work-accounts"
|
|
@@ -113,15 +111,13 @@ Claude Desktop:
|
|
|
113
111
|
}
|
|
114
112
|
```
|
|
115
113
|
|
|
116
|
-
|
|
114
|
+
`npx -y mcp-scraper@latest` runs the same single server (the package's default bin), so existing configs get every tool, including browser tools, after they pull the latest package. Use `mcp-scraper@latest` to force npm to resolve the newest published package whenever the MCP client starts a fresh `npx` process.
|
|
117
115
|
|
|
118
|
-
For customer AI visibility setup, use the hosted profile connection flow
|
|
116
|
+
For customer AI visibility setup, use the hosted profile connection flow: run `browser_profile_connect`, give the user the returned `watch_url`, have them complete login, then poll `browser_profile_list` until the connection is authenticated. One profile can hold many logins — call `browser_profile_connect` again with the same profile and a different domain to stack accounts.
|
|
119
117
|
|
|
120
|
-
Browser
|
|
118
|
+
Browser hosted sessions are direct/no-proxy by default. They do not inherit the configured SERP/Maps proxy. Use proxies for SERP/Maps tools when those tools need location or anti-bot handling, not for the interactive login browser.
|
|
121
119
|
|
|
122
|
-
`BROWSER_AGENT_PROFILE_NAME` sets the default saved hosted browser profile for future sessions.
|
|
123
|
-
|
|
124
|
-
Inside MCP clients, use `browser_profile_onboard` for customer setup and reconnects. The customer signs in through the hosted `watch_url` so they control the login session directly.
|
|
120
|
+
`BROWSER_AGENT_PROFILE_NAME` sets the default saved hosted browser profile for future sessions.
|
|
125
121
|
|
|
126
122
|
Claude Code one-command setup:
|
|
127
123
|
|
|
@@ -138,14 +134,7 @@ claude mcp list
|
|
|
138
134
|
Manual Claude Code command:
|
|
139
135
|
|
|
140
136
|
```bash
|
|
141
|
-
claude mcp add mcp-scraper --scope user --env MCP_SCRAPER_API_KEY=sk_live_your_key -- npx -y -p mcp-scraper@latest mcp-scraper
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Split-server raw config still works:
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
claude mcp add mcp-scraper --scope user --env MCP_SCRAPER_API_KEY=sk_live_your_key -- npx -y mcp-scraper@latest
|
|
148
|
-
claude mcp add browser-agent --scope user --env MCP_SCRAPER_API_KEY=sk_live_your_key -- npx -y -p mcp-scraper@latest browser-agent
|
|
137
|
+
claude mcp add mcp-scraper --scope user --env MCP_SCRAPER_API_KEY=sk_live_your_key -- npx -y -p mcp-scraper@latest mcp-scraper
|
|
149
138
|
```
|
|
150
139
|
|
|
151
140
|
Codex config:
|
|
@@ -153,21 +142,7 @@ Codex config:
|
|
|
153
142
|
```toml
|
|
154
143
|
[mcp_servers.mcp-scraper]
|
|
155
144
|
command = "npx"
|
|
156
|
-
args = ["-y", "-p", "mcp-scraper@latest", "mcp-scraper
|
|
157
|
-
env = { MCP_SCRAPER_API_KEY = "sk_live_your_key" }
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Split-server Codex config:
|
|
161
|
-
|
|
162
|
-
```toml
|
|
163
|
-
[mcp_servers.mcp-scraper]
|
|
164
|
-
command = "npx"
|
|
165
|
-
args = ["-y", "mcp-scraper@latest"]
|
|
166
|
-
env = { MCP_SCRAPER_API_KEY = "sk_live_your_key" }
|
|
167
|
-
|
|
168
|
-
[mcp_servers.browser-agent]
|
|
169
|
-
command = "npx"
|
|
170
|
-
args = ["-y", "-p", "mcp-scraper@latest", "browser-agent"]
|
|
145
|
+
args = ["-y", "-p", "mcp-scraper@latest", "mcp-scraper"]
|
|
171
146
|
env = { MCP_SCRAPER_API_KEY = "sk_live_your_key" }
|
|
172
147
|
```
|
|
173
148
|
|
|
@@ -202,8 +177,8 @@ env = { MCP_SCRAPER_API_KEY = "sk_live_your_key" }
|
|
|
202
177
|
### Browser-agent tools
|
|
203
178
|
|
|
204
179
|
- `browser_open` — open a direct/no-proxy hosted browser session. Pass a saved profile name to load an authenticated session. Returns a human `watch_url`.
|
|
205
|
-
- `
|
|
206
|
-
- `
|
|
180
|
+
- `browser_profile_connect` — save a site login to a profile and return a user takeover `watch_url` on mcpscraper.dev. The user signs in through that URL, then `browser_profile_list` verifies it is authenticated. One profile holds many logins — call again with the same profile and a different domain to stack accounts. Use this again whenever a login disconnects.
|
|
181
|
+
- `browser_profile_list` — list every login saved in a profile with its auth status, account, and note. Poll it after `browser_profile_connect` until a login reads AUTHENTICATED, then launch with `browser_open`.
|
|
207
182
|
- `browser_screenshot` — capture a screenshot plus visible text and clickable element center coordinates and DOM bounds.
|
|
208
183
|
- `browser_read` — read the current page text and elements with center coordinates and DOM bounds, without an image.
|
|
209
184
|
- `browser_locate` — locate exact visible DOM elements or text ranges and return screenshot-pixel bounds.
|
|
@@ -228,15 +203,15 @@ For general SERP tools (`harvest_paa`, `search_serp`, and hosted SERP capture),
|
|
|
228
203
|
|
|
229
204
|
For Google Maps tools (`maps_search` and `directory_workflow`), keep `proxyMode` at the default `location` for US city/state work. Retryable Maps failures such as CAPTCHA, timeout, proxy tunnel failure, proxy unavailability, or browser-session death rotate to a new residential proxy and a new browser session for up to 5 attempts. Successful structured responses include sanitized attempt telemetry so callers can verify the proxy source, observed city/region, and attempt count without exposing full proxy or browser IDs.
|
|
230
205
|
|
|
231
|
-
The
|
|
206
|
+
The `mcp-scraper` server (and the MCPB bundle, which runs it) exposes both sections through one MCP server.
|
|
232
207
|
|
|
233
208
|
All MCP tools expose output schemas and return `structuredContent` with the IDs, URLs, CSV paths, transcripts, browser session handles, replay paths, artifacts, recipe fields, or blueprint fields needed by the next step. Browser Agent tools keep a JSON text block for older clients, but structured data is the primary contract. All tools carry MCP annotations; file-writing tools such as replay downloads and annotations state their filesystem side effects.
|
|
234
209
|
|
|
235
|
-
The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The
|
|
210
|
+
The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The `mcp-scraper` stdio server exposes 45 tools (25 web-intelligence/workflow tools plus 20 browser tools). The hosted MCP endpoint at `https://mcpscraper.dev/mcp` exposes the web-intelligence/workflow tools plus `capture_serp_snapshot` and `capture_serp_page_snapshots` (27 total). Across all public surfaces there are 47 unique tool names.
|
|
236
211
|
|
|
237
212
|
## Resources
|
|
238
213
|
|
|
239
|
-
The `mcp-scraper`
|
|
214
|
+
The `mcp-scraper` NPX stdio server also exposes saved reports as MCP resources: `resources/list` returns the most recent Markdown reports from your output directory as `report://` URIs, and `resources/read` returns their content — so an MCP client can pull prior research into context without re-scraping or spending credits. The hosted endpoint does not expose resources (it saves no files).
|
|
240
215
|
|
|
241
216
|
## Environment
|
|
242
217
|
|
|
@@ -245,10 +220,10 @@ The `mcp-scraper` and `mcp-scraper-combined` NPX stdio servers also expose saved
|
|
|
245
220
|
- `MCP_SCRAPER_OUTPUT_DIR` is optional and defaults to `~/Downloads/mcp-scraper`.
|
|
246
221
|
- `MCP_SCRAPER_SAVE_REPORTS=false` disables automatic Markdown report files.
|
|
247
222
|
- `MCP_SCRAPER_KEY_PATH` is optional. When no API key env var is set, the server also reads `~/.mcp-scraper-key` for compatibility with older installs.
|
|
248
|
-
- `BROWSER_AGENT_PROFILE_NAME` is optional and sets the default saved hosted browser profile for `
|
|
223
|
+
- `BROWSER_AGENT_PROFILE_NAME` is optional and sets the default saved hosted browser profile for `mcp-scraper` stdio sessions. Aliases: `BROWSER_SERVICE_PROFILE_NAME`, `KERNEL_BROWSER_PROFILE_NAME`, `KERNEL_PROFILE_NAME`.
|
|
249
224
|
- `BROWSER_AGENT_PROFILE_SAVE_CHANGES=true` is optional hosted setup behavior. It persists cookies and storage back to the named profile when `browser_close` deletes the hosted browser session. Aliases: `BROWSER_SERVICE_PROFILE_SAVE_CHANGES`, `KERNEL_BROWSER_PROFILE_SAVE_CHANGES`, `KERNEL_PROFILE_SAVE_CHANGES`.
|
|
250
225
|
|
|
251
|
-
Every web intelligence tool call made through `mcp-scraper`
|
|
226
|
+
Every web intelligence tool call made through `mcp-scraper` saves a full Markdown report to disk by default and returns the file path in the MCP response. The hosted `/mcp` endpoint returns reports inline only and never writes files. Browser replay downloads are saved by `browser_replay_download` under `MCP_SCRAPER_OUTPUT_DIR/browser-replays`. AI fan-out exports are saved by `browser_capture_fanout` with `export=true` under `MCP_SCRAPER_OUTPUT_DIR/fanout`, and return relative paths.
|
|
252
227
|
|
|
253
228
|
## Updating Existing Installs
|
|
254
229
|
|
|
@@ -257,17 +232,10 @@ Hosted API and website changes deploy immediately to `https://mcpscraper.dev`. S
|
|
|
257
232
|
Recommended config for update-friendly installs:
|
|
258
233
|
|
|
259
234
|
```bash
|
|
260
|
-
npx -y -p mcp-scraper@latest mcp-scraper
|
|
235
|
+
npx -y -p mcp-scraper@latest mcp-scraper
|
|
261
236
|
```
|
|
262
237
|
|
|
263
|
-
This is context-aware: in a normal terminal it prints the visible installer and ASCII card; in an MCP client it runs as the silent stdio server. Use `--stdio` or `MCP_SCRAPER_FORCE_STDIO=1` if you need to force server mode from a terminal.
|
|
264
|
-
|
|
265
|
-
Split-server config:
|
|
266
|
-
|
|
267
|
-
```bash
|
|
268
|
-
npx -y mcp-scraper@latest
|
|
269
|
-
npx -y -p mcp-scraper@latest browser-agent
|
|
270
|
-
```
|
|
238
|
+
This is context-aware: in a normal terminal it prints the visible installer and ASCII card; in an MCP client it runs as the silent stdio server. Use `--stdio` or `MCP_SCRAPER_FORCE_STDIO=1` if you need to force server mode from a terminal. `npx -y mcp-scraper@latest` (the package default bin) runs the same server.
|
|
271
239
|
|
|
272
240
|
If a user configured `mcp-scraper@0.2.0`, installed globally with `npm install -g mcp-scraper`, or installed it as a project dependency, they will stay on that version until they update the config or reinstall:
|
|
273
241
|
|
|
@@ -276,19 +244,19 @@ npm update -g mcp-scraper
|
|
|
276
244
|
npm install mcp-scraper@latest
|
|
277
245
|
```
|
|
278
246
|
|
|
279
|
-
Users who do not update can keep using the tools their installed package already advertises, but they will not see newly added stdio tools, schemas, or AI-facing descriptions. For example, a client running an older package cannot call `rank_tracker_blueprint`, `directory_workflow`, or browser tools through stdio even if the hosted API already supports adjacent endpoints.
|
|
247
|
+
Users who do not update can keep using the tools their installed package already advertises, but they will not see newly added stdio tools, schemas, or AI-facing descriptions. For example, a client running an older package cannot call `rank_tracker_blueprint`, `directory_workflow`, or browser tools through stdio even if the hosted API already supports adjacent endpoints.
|
|
280
248
|
|
|
281
249
|
## Branded One-Click Installs
|
|
282
250
|
|
|
283
|
-
Raw `npx` MCP server installs are command/config based. `mcp-scraper
|
|
251
|
+
Raw `npx` MCP server installs are command/config based. `mcp-scraper` is context-aware: terminal TTY prints onboarding text and the ASCII card; MCP-client stdio pipes stay protocol-clean. Do not print marketing text to stdout from an active MCP stdio session; stdout is reserved for JSON-RPC protocol messages.
|
|
284
252
|
|
|
285
|
-
For a branded Claude Desktop install, package MCP Scraper as an MCPB Desktop Extension. The repository
|
|
253
|
+
For a branded Claude Desktop install, package MCP Scraper as an MCPB Desktop Extension. The repository builds one MCPB bundle with a generated icon, `manifest.json`, bundled runtime dependencies, and `user_config` fields for API-key setup, API URL, and output folder.
|
|
286
254
|
|
|
287
255
|
```bash
|
|
288
256
|
npm run build:mcpb
|
|
289
257
|
```
|
|
290
258
|
|
|
291
|
-
The bundle
|
|
259
|
+
The bundle runs `mcp-scraper` internally, so the user installs `MCP Scraper` once and gets web-intelligence tools plus live browser tools in one MCP server.
|
|
292
260
|
|
|
293
261
|
## Development
|
|
294
262
|
|