mcp-scraper 0.38.0 → 0.38.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.
Files changed (58) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/api-server.cjs +813 -338
  3. package/dist/bin/api-server.cjs.map +1 -1
  4. package/dist/bin/api-server.js +3 -3
  5. package/dist/bin/mcp-scraper-cli.cjs +1 -1
  6. package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
  7. package/dist/bin/mcp-scraper-cli.js +1 -1
  8. package/dist/bin/mcp-scraper-install.cjs +1 -1
  9. package/dist/bin/mcp-scraper-install.cjs.map +1 -1
  10. package/dist/bin/mcp-scraper-install.js +1 -1
  11. package/dist/bin/mcp-stdio-server.cjs +25 -7
  12. package/dist/bin/mcp-stdio-server.cjs.map +1 -1
  13. package/dist/bin/mcp-stdio-server.js +5 -5
  14. package/dist/bin/paa-harvest.cjs +65 -4
  15. package/dist/bin/paa-harvest.cjs.map +1 -1
  16. package/dist/bin/paa-harvest.js +3 -3
  17. package/dist/{chunk-PWPUKR5U.js → chunk-AZRPG43B.js} +12 -3
  18. package/dist/chunk-AZRPG43B.js.map +1 -0
  19. package/dist/{chunk-MA5JBAUZ.js → chunk-EGJKUB4Q.js} +3 -3
  20. package/dist/{chunk-MA5JBAUZ.js.map → chunk-EGJKUB4Q.js.map} +1 -1
  21. package/dist/{chunk-PUJFYJXB.js → chunk-FRYT3ID4.js} +2 -2
  22. package/dist/{chunk-CSCD2HNS.js → chunk-N7KUTTCC.js} +312 -101
  23. package/dist/chunk-N7KUTTCC.js.map +1 -0
  24. package/dist/{chunk-LOPKN3YL.js → chunk-NGM237OO.js} +66 -5
  25. package/dist/chunk-NGM237OO.js.map +1 -0
  26. package/dist/{chunk-P64PZUCA.js → chunk-NKCCGADE.js} +23 -8
  27. package/dist/chunk-NKCCGADE.js.map +1 -0
  28. package/dist/{chunk-FSAXLDB3.js → chunk-SFRMFGQ6.js} +2 -2
  29. package/dist/{chunk-Q35WZJJK.js → chunk-YCI2PNCS.js} +3 -3
  30. package/dist/chunk-YODBNTTN.js +7 -0
  31. package/dist/chunk-YODBNTTN.js.map +1 -0
  32. package/dist/{db-N3YECFWR.js → db-C5KVCOYT.js} +10 -4
  33. package/dist/{extract-bundle-346R6MXD.js → extract-bundle-KUBX6N6Z.js} +4 -4
  34. package/dist/index.cjs +65 -4
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.js +3 -3
  37. package/dist/{location-data-repository-O2VII3ON.js → location-data-repository-TTWF3OTM.js} +3 -3
  38. package/dist/{server-3Q6XIJPF.js → server-5EX6XBIA.js} +320 -152
  39. package/dist/server-5EX6XBIA.js.map +1 -0
  40. package/dist/{site-extract-repository-I3VM6WXN.js → site-extract-repository-XSPJTCIL.js} +4 -4
  41. package/dist/{worker-TTFXPPDK.js → worker-XCPU4YSN.js} +6 -6
  42. package/docs/mcp-tool-manifest.generated.json +66 -9
  43. package/package.json +4 -2
  44. package/dist/chunk-CSCD2HNS.js.map +0 -1
  45. package/dist/chunk-H3M3O457.js +0 -7
  46. package/dist/chunk-H3M3O457.js.map +0 -1
  47. package/dist/chunk-LOPKN3YL.js.map +0 -1
  48. package/dist/chunk-P64PZUCA.js.map +0 -1
  49. package/dist/chunk-PWPUKR5U.js.map +0 -1
  50. package/dist/server-3Q6XIJPF.js.map +0 -1
  51. /package/dist/{chunk-PUJFYJXB.js.map → chunk-FRYT3ID4.js.map} +0 -0
  52. /package/dist/{chunk-FSAXLDB3.js.map → chunk-SFRMFGQ6.js.map} +0 -0
  53. /package/dist/{chunk-Q35WZJJK.js.map → chunk-YCI2PNCS.js.map} +0 -0
  54. /package/dist/{db-N3YECFWR.js.map → db-C5KVCOYT.js.map} +0 -0
  55. /package/dist/{extract-bundle-346R6MXD.js.map → extract-bundle-KUBX6N6Z.js.map} +0 -0
  56. /package/dist/{location-data-repository-O2VII3ON.js.map → location-data-repository-TTWF3OTM.js.map} +0 -0
  57. /package/dist/{site-extract-repository-I3VM6WXN.js.map → site-extract-repository-XSPJTCIL.js.map} +0 -0
  58. /package/dist/{worker-TTFXPPDK.js.map → worker-XCPU4YSN.js.map} +0 -0
@@ -15,17 +15,17 @@ import {
15
15
  browserServiceProfileSaveChanges,
16
16
  recordVendorUsage,
17
17
  vendorCostUsd
18
- } from "./chunk-MA5JBAUZ.js";
18
+ } from "./chunk-EGJKUB4Q.js";
19
19
  import {
20
20
  DEFAULT_MAPS_PROXY_MODE,
21
21
  DEFAULT_PROXY_MODE
22
22
  } from "./chunk-CB5C3BPB.js";
23
23
  import {
24
24
  PACKAGE_VERSION
25
- } from "./chunk-H3M3O457.js";
25
+ } from "./chunk-YODBNTTN.js";
26
26
  import {
27
27
  MC_PER_CREDIT
28
- } from "./chunk-PWPUKR5U.js";
28
+ } from "./chunk-AZRPG43B.js";
29
29
  import {
30
30
  sanitizeVendorName
31
31
  } from "./chunk-44HZLHDV.js";
@@ -1948,8 +1948,12 @@ async function formatExtractSite(raw, input, ctx) {
1948
1948
  schemaTypes: schemaTypesOf(p)
1949
1949
  })));
1950
1950
  const preview = pages.slice(0, BULK_PAGE_THRESHOLD).map(pageRow).join("\n");
1951
+ const stoppedEarly = d.stoppedEarly;
1951
1952
  const summaryHeader = [
1952
1953
  `# Site Extract: ${input.url}`,
1954
+ stoppedEarly ? `
1955
+ > **Partial crawl.** The crawl stopped before finishing, so this covers ${pages.length} page(s) rather than the whole site. You were only charged for the pages returned. Reason: ${stoppedEarly.message ?? "unknown"}
1956
+ ` : "",
1953
1957
  durationLine,
1954
1958
  `
1955
1959
  ## Pages (first ${Math.min(BULK_PAGE_THRESHOLD, pages.length)} of ${pages.length})
@@ -4305,8 +4309,9 @@ var GoogleAdsSearchInputSchema = {
4305
4309
  maxResults: z2.number().int().min(1).max(20).default(10).describe("Maximum advertisers to return. Default 10, maximum 20.")
4306
4310
  };
4307
4311
  var GoogleAdsPageIntelInputSchema = {
4308
- advertiserId: z2.string().optional().describe("Google Ads Transparency advertiser ID (starts with AR...). Use one returned by google_ads_search; do not construct one yourself."),
4309
- domain: z2.string().optional().describe("A domain (e.g. getviktor.com) whose primary advertiser to inspect when advertiserId is unknown. One of advertiserId or domain is required."),
4312
+ domain: z2.string().optional().describe("A website from google_ads_search.websites (e.g. getviktor.com). Preferred input: people know the website, not the advertiser's registered name. Resolves to whichever advertiser account runs ads for that domain."),
4313
+ advertiserName: z2.string().optional().describe('An advertiser name exactly as returned in google_ads_search.advertisers[].name (e.g. "PPS Plumbing Services"). Use when the user picked an advertiser rather than a website.'),
4314
+ advertiserId: z2.string().optional().describe("Google Ads Transparency advertiser ID (starts with AR...). Only available if you already have one from a prior page-intel result \u2014 google_ads_search does NOT return advertiser IDs. Do not construct one yourself."),
4310
4315
  region: z2.string().length(2).default("US").describe("Two-letter region code for where the ads are shown. Default US."),
4311
4316
  maxAds: z2.number().int().min(1).max(200).default(50).describe("Maximum creatives to inspect and hydrate. Default 50, maximum 200. Prefer 25-50 for focused scans.")
4312
4317
  };
@@ -4761,6 +4766,10 @@ var DiffPageOutputSchema = {
4761
4766
  };
4762
4767
  var ExtractSiteOutputSchema = {
4763
4768
  url: z2.string(),
4769
+ stoppedEarly: z2.object({
4770
+ code: z2.string(),
4771
+ message: z2.string()
4772
+ }).nullish().describe("Present when the crawl stopped before finishing. The returned pages are everything that was captured, and billing covers only those pages - treat the result as partial, not as the whole site."),
4764
4773
  pageCount: z2.number().int().min(0).optional().describe("Absent when background is true \u2014 the crawl has not finished yet."),
4765
4774
  pages: z2.array(z2.object({
4766
4775
  url: z2.string(),
@@ -5140,9 +5149,15 @@ var GoogleAdsSearchOutputSchema = {
5140
5149
  advertisers: z2.array(z2.object({
5141
5150
  advertiserId: NullableString,
5142
5151
  name: NullableString,
5152
+ basedIn: NullableString,
5143
5153
  domain: NullableString,
5144
5154
  approxAdCount: z2.number().int().nullable(),
5145
5155
  detailUrl: NullableString
5156
+ })),
5157
+ websiteCount: z2.number().int().min(0),
5158
+ websites: z2.array(z2.object({
5159
+ domain: z2.string(),
5160
+ detailUrl: z2.string()
5146
5161
  }))
5147
5162
  };
5148
5163
  var GoogleAdsPageIntelOutputSchema = {
@@ -6451,14 +6466,14 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
6451
6466
  }, async (input) => formatFacebookAdTranscribe(await executor.facebookAdTranscribe(input), input));
6452
6467
  server.registerTool("google_ads_search", {
6453
6468
  title: "Google Ads Transparency Search",
6454
- description: "Search the Google Ads Transparency Center to find advertisers by domain or brand name. Returns advertisers with advertiser ID and approximate ad count, to pass to google_ads_page_intel.",
6469
+ description: "Search the Google Ads Transparency Center by brand, person, or website. Returns two lists: advertisers (name, country, approximate ad count) and websites (domains). Neither carries an advertiser ID. Pass a websites[].domain (preferred - users know the website, not the registered advertiser name) or an advertisers[].name to google_ads_page_intel to pull that advertiser's actual ads.",
6455
6470
  inputSchema: GoogleAdsSearchInputSchema,
6456
6471
  outputSchema: recordOutputSchema("google_ads_search", GoogleAdsSearchOutputSchema),
6457
6472
  annotations: liveWebToolAnnotations("Google Ads Transparency Search")
6458
6473
  }, async (input) => formatGoogleAdsSearch(await executor.googleAdsSearch(input), input));
6459
6474
  server.registerTool("google_ads_page_intel", {
6460
6475
  title: "Google Ads Advertiser Intel",
6461
- description: "Harvest an advertiser's ad creatives from the Google Ads Transparency Center: format, image URLs, and \u2014 for video ads \u2014 a YouTube video ID or direct video URL. Accepts advertiserId (from google_ads_search) or a domain.",
6476
+ description: "Harvest an advertiser's ad creatives from the Google Ads Transparency Center: format, image URLs, and \u2014 for video ads \u2014 a YouTube video ID or direct video URL. Accepts a domain or advertiserName from google_ads_search (google_ads_search does not return advertiser IDs). A domain may map to several advertiser accounts; this returns the primary one.",
6462
6477
  inputSchema: GoogleAdsPageIntelInputSchema,
6463
6478
  outputSchema: recordOutputSchema("google_ads_page_intel", GoogleAdsPageIntelOutputSchema),
6464
6479
  annotations: liveWebToolAnnotations("Google Ads Advertiser Intel")
@@ -11267,4 +11282,4 @@ export {
11267
11282
  MEMORY_TOOL_SCHEMAS,
11268
11283
  registerMemoryMcpTools
11269
11284
  };
11270
- //# sourceMappingURL=chunk-P64PZUCA.js.map
11285
+ //# sourceMappingURL=chunk-NKCCGADE.js.map