mcp-scraper 0.2.15 → 0.2.16
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 +4 -4
- package/dist/bin/api-server.cjs +11 -10
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +1 -1
- package/dist/bin/browser-agent-stdio-server.cjs +1 -1
- package/dist/bin/browser-agent-stdio-server.cjs.map +1 -1
- package/dist/bin/browser-agent-stdio-server.js +2 -2
- package/dist/bin/mcp-scraper-cli.cjs +1 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +1 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs +10 -9
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.js +3 -3
- package/dist/bin/mcp-scraper-install.cjs +3 -3
- 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 +10 -9
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +2 -2
- package/dist/{chunk-TIPUIEJN.js → chunk-ATJAINML.js} +2 -2
- package/dist/{chunk-Q4DFONIK.js → chunk-FMC3V54I.js} +11 -10
- package/dist/chunk-FMC3V54I.js.map +1 -0
- package/dist/chunk-KE4JZDLV.js +7 -0
- package/dist/chunk-KE4JZDLV.js.map +1 -0
- package/dist/{server-VD2TD3AD.js → server-KSEQLZNP.js} +4 -4
- package/dist/server-KSEQLZNP.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-2CQXHSWC.js +0 -7
- package/dist/chunk-2CQXHSWC.js.map +0 -1
- package/dist/chunk-Q4DFONIK.js.map +0 -1
- package/dist/server-VD2TD3AD.js.map +0 -1
- /package/dist/{chunk-TIPUIEJN.js.map → chunk-ATJAINML.js.map} +0 -0
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Use the MCPB Desktop Extension for the branded Claude Desktop install, or use th
|
|
|
8
8
|
|
|
9
9
|
MCP Scraper ships three local stdio entrypoints plus human-facing helper CLIs:
|
|
10
10
|
|
|
11
|
-
- `mcp-scraper` — live web intelligence, SERP, PAA, site extraction, YouTube, Facebook, Maps, directory, rank tracker blueprint, and credit tools.
|
|
11
|
+
- `mcp-scraper` — live web intelligence, SERP, PAA, site extraction, YouTube, Facebook ads and organic video transcripts, Maps, directory, rank tracker blueprint, and credit tools.
|
|
12
12
|
- `browser-agent` — an agent-controlled live cloud browser with screenshots, clicks, typing, scrolling, live watch URLs, replay links, and MP4 replay download.
|
|
13
13
|
- `mcp-scraper-combined` — one local MCP server that exposes both tool sets. This is the entrypoint used by the MCPB Desktop Extension.
|
|
14
14
|
- `mcp-scraper-install` — a human-facing terminal installer card with the branded ASCII intro and copyable install commands. This command is safe to print because it is not an MCP stdio server.
|
|
@@ -81,7 +81,7 @@ Build the branded one-click bundle:
|
|
|
81
81
|
npm run build:mcpb
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
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.
|
|
84
|
+
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.16`, SHA-256 `a581f0ddb12d3cebd03d90dfb657cc9127a1f7ef995fb0934d5428faf8aec58b`). 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.
|
|
85
85
|
|
|
86
86
|
The MCPB install exposes the same web-intelligence tools as `mcp-scraper` plus all `browser_*` tools from `browser-agent` through one server.
|
|
87
87
|
|
|
@@ -154,8 +154,8 @@ env = { MCP_SCRAPER_API_KEY = "sk_live_your_key" }
|
|
|
154
154
|
- `youtube_transcribe`
|
|
155
155
|
- `facebook_ad_search`
|
|
156
156
|
- `facebook_page_intel`
|
|
157
|
-
- `facebook_ad_transcribe`
|
|
158
|
-
- `facebook_video_transcribe` — transcribe an organic Facebook reel, video, watch, or share URL. The tool renders the page, extracts the best public Facebook CDN MP4 URL, then returns transcript text, timestamped chunks, and the extracted MP4 URL for follow-up download.
|
|
157
|
+
- `facebook_ad_transcribe` — transcribe a direct Facebook ad video URL returned by `facebook_page_intel`.
|
|
158
|
+
- `facebook_video_transcribe` — transcribe an organic Facebook reel, video, watch, post, or share URL, including `fb.watch` links. The tool renders the page, extracts the best matching public Facebook CDN MP4 URL, then returns transcript text, timestamped chunks, selected quality, video metadata, and the extracted MP4 URL for follow-up download.
|
|
159
159
|
- `maps_search` — search Google Maps for multiple business/profile candidates. Use for GMB/GBP prospect lists, competitors, categories, and anything needing more than the Google 3-pack. In default `proxyMode: "location"`, retryable failures rotate to a new residential proxy and new browser session for up to 5 attempts. `maxResults` defaults to 10 and is capped at 50.
|
|
160
160
|
- `maps_place_intel` — hydrate one known/named Google Maps business with profile details and optional reviews. Use after `maps_search` when a selected candidate needs full details.
|
|
161
161
|
- `directory_workflow` — build city-by-city directory/prospecting datasets from Census place selection plus Google Maps searches. Use it for requests like "all cities over 100k population in Tennessee, then get 20 roofers from Maps." In default `proxyMode: "location"`, each city search rotates retryable failures to a new residential proxy and new browser session for up to 5 attempts. The saved CSV includes `source_location`, `result_position`, `business_name`, `review_stars`, `review_count`, `category`, `address`, `phone`, `hours_status`, `website_url`, `directions_url`, `place_url`, `cid`, `cid_decimal`, Census population, and ZIP groups.
|
package/dist/bin/api-server.cjs
CHANGED
|
@@ -14356,7 +14356,8 @@ ${adBlocks}`,
|
|
|
14356
14356
|
`
|
|
14357
14357
|
---
|
|
14358
14358
|
\u{1F4A1} **Tips**
|
|
14359
|
-
- Transcribe video ads: use \`facebook_ad_transcribe\` with the \`videoUrl\` above
|
|
14359
|
+
- Transcribe video ads: use \`facebook_ad_transcribe\` with the direct \`videoUrl\` above
|
|
14360
|
+
- Transcribe organic Facebook reels/posts: use \`facebook_video_transcribe\` with the public Facebook URL
|
|
14360
14361
|
- Find other advertisers: use \`facebook_ad_search\``
|
|
14361
14362
|
].filter(Boolean).join("\n");
|
|
14362
14363
|
return {
|
|
@@ -14802,7 +14803,7 @@ ${text}`,
|
|
|
14802
14803
|
${chunkRows}` : "",
|
|
14803
14804
|
`
|
|
14804
14805
|
---
|
|
14805
|
-
\u{1F4A1} Get more ads from this advertiser: use \`facebook_page_intel
|
|
14806
|
+
\u{1F4A1} Get more ads from this advertiser: use \`facebook_page_intel\`. For public Facebook reel/post URLs, use \`facebook_video_transcribe\`.`
|
|
14806
14807
|
].filter(Boolean).join("\n");
|
|
14807
14808
|
return oneBlock(full);
|
|
14808
14809
|
}
|
|
@@ -14838,7 +14839,7 @@ ${text}`,
|
|
|
14838
14839
|
${chunkRows}` : "",
|
|
14839
14840
|
`
|
|
14840
14841
|
---
|
|
14841
|
-
\u{1F4A1}
|
|
14842
|
+
\u{1F4A1} Use \`videoUrl\` as the extracted MP4 for download or follow-up processing. Use \`facebook_ad_transcribe\` only for Ad Library videoUrl values.`
|
|
14842
14843
|
].filter(Boolean).join("\n");
|
|
14843
14844
|
return {
|
|
14844
14845
|
...oneBlock(full),
|
|
@@ -20145,7 +20146,7 @@ var PACKAGE_VERSION;
|
|
|
20145
20146
|
var init_version = __esm({
|
|
20146
20147
|
"src/version.ts"() {
|
|
20147
20148
|
"use strict";
|
|
20148
|
-
PACKAGE_VERSION = "0.2.
|
|
20149
|
+
PACKAGE_VERSION = "0.2.16";
|
|
20149
20150
|
}
|
|
20150
20151
|
});
|
|
20151
20152
|
|
|
@@ -20205,10 +20206,10 @@ var init_mcp_tool_schemas = __esm({
|
|
|
20205
20206
|
maxResults: import_zod26.z.number().int().min(1).max(20).default(10)
|
|
20206
20207
|
};
|
|
20207
20208
|
FacebookAdTranscribeInputSchema = {
|
|
20208
|
-
videoUrl: import_zod26.z.string().url().describe("Facebook CDN video URL from a facebook_page_intel result")
|
|
20209
|
+
videoUrl: import_zod26.z.string().url().describe("Direct Facebook CDN video URL from a facebook_page_intel ad result. Do not pass a public Facebook reel/post/share URL here; use facebook_video_transcribe for organic Facebook URLs.")
|
|
20209
20210
|
};
|
|
20210
20211
|
FacebookVideoTranscribeInputSchema = {
|
|
20211
|
-
url: import_zod26.z.string().url().describe("Organic Facebook reel, video, watch, or share URL. The tool renders the page, extracts the best public Facebook CDN MP4 URL, then transcribes it."),
|
|
20212
|
+
url: import_zod26.z.string().url().describe("Organic Facebook reel, video, watch, post, or share URL from facebook.com, m.facebook.com, or fb.watch. The tool renders the page, extracts the best matching public Facebook CDN MP4 URL, then transcribes it. Use this when the user pastes a normal Facebook video page URL and asks for the transcript or downloadable MP4."),
|
|
20212
20213
|
quality: import_zod26.z.enum(["best", "hd", "sd"]).default("best").describe("Preferred progressive MP4 quality. Use best by default; hd prefers the highest HD progressive URL; sd forces the SD URL.")
|
|
20213
20214
|
};
|
|
20214
20215
|
MapsPlaceIntelInputSchema = {
|
|
@@ -21083,7 +21084,7 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
21083
21084
|
}, async (input) => formatYoutubeTranscribe(await executor.youtubeTranscribe(input), input));
|
|
21084
21085
|
server.registerTool("facebook_page_intel", {
|
|
21085
21086
|
title: "Facebook Advertiser Ad Intel",
|
|
21086
|
-
description: withReportNote("Harvest ads from a Facebook advertiser. Returns ad copy, headlines, CTAs, creative type, status, landing URLs, and video URLs ready for
|
|
21087
|
+
description: withReportNote("Harvest ads from a Facebook advertiser. Returns ad copy, headlines, CTAs, creative type, status, landing URLs, and direct ad video URLs ready for facebook_ad_transcribe. Accepts pageId, libraryId, or a brand/advertiser name as query. Use after facebook_ad_search when possible. For normal public Facebook reels/posts/watch/share URLs, use facebook_video_transcribe instead."),
|
|
21087
21088
|
inputSchema: FacebookPageIntelInputSchema,
|
|
21088
21089
|
outputSchema: FacebookPageIntelOutputSchema,
|
|
21089
21090
|
annotations: liveWebToolAnnotations("Facebook Advertiser Ad Intel")
|
|
@@ -21097,13 +21098,13 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
21097
21098
|
}, async (input) => formatFacebookAdSearch(await executor.facebookAdSearch(input), input));
|
|
21098
21099
|
server.registerTool("facebook_ad_transcribe", {
|
|
21099
21100
|
title: "Facebook Ad Transcription",
|
|
21100
|
-
description: "Transcribe audio from a Facebook ad video. Returns full transcript and timestamped chunks. Use the videoUrl value from facebook_page_intel results.",
|
|
21101
|
+
description: "Transcribe audio from a Facebook ad video CDN URL. Returns full transcript and timestamped chunks. Use only with the direct videoUrl value from facebook_page_intel results, not public Facebook post/reel/share URLs.",
|
|
21101
21102
|
inputSchema: FacebookAdTranscribeInputSchema,
|
|
21102
21103
|
annotations: liveWebToolAnnotations("Facebook Ad Transcription")
|
|
21103
21104
|
}, async (input) => formatFacebookAdTranscribe(await executor.facebookAdTranscribe(input), input));
|
|
21104
21105
|
server.registerTool("facebook_video_transcribe", {
|
|
21105
21106
|
title: "Facebook Organic Video Transcription",
|
|
21106
|
-
description: withReportNote("Transcribe audio from an organic Facebook reel, video, watch, or share URL. Renders the Facebook page,
|
|
21107
|
+
description: withReportNote("Transcribe audio from an organic Facebook reel, video, watch, post, or share URL, including fb.watch links. Use this when the user pastes a normal Facebook video page URL and wants the transcript or downloadable MP4. Renders the Facebook page in a browser, selects the best matching public Facebook CDN MP4 URL from page state, then returns sourceUrl, resolved pageUrl, videoId, ownerName, selectedQuality, bitrate, videoDurationSec, extracted MP4 URL, full transcript, and timestamped chunks."),
|
|
21107
21108
|
inputSchema: FacebookVideoTranscribeInputSchema,
|
|
21108
21109
|
outputSchema: FacebookVideoTranscribeOutputSchema,
|
|
21109
21110
|
annotations: liveWebToolAnnotations("Facebook Organic Video Transcription")
|
|
@@ -22914,7 +22915,7 @@ __export(server_exports, {
|
|
|
22914
22915
|
app: () => app
|
|
22915
22916
|
});
|
|
22916
22917
|
function configuredOrigins() {
|
|
22917
|
-
const origins = /* @__PURE__ */ new Set(["https://mcpscraper.dev"]);
|
|
22918
|
+
const origins = /* @__PURE__ */ new Set(["https://mcpscraper.dev", "https://www.mcpscraper.dev"]);
|
|
22918
22919
|
for (const raw of (process.env.ALLOWED_ORIGINS ?? process.env.APP_ORIGIN ?? "").split(",")) {
|
|
22919
22920
|
const trimmed = raw.trim();
|
|
22920
22921
|
if (trimmed) origins.add(trimmed);
|