mcp-scraper 0.83.4 → 0.83.5

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/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.83.5] - 2026-09-01
8
+
9
+ ### Fixed
10
+
11
+ - Allowed auto-discovered rules to verify bounded repeated DOM matches, including parallel desktop/mobile navigation and repeated semantic CTAs, instead of falsely treating every selector as unique.
12
+
7
13
  ## [0.83.4] - 2026-09-01
8
14
 
9
15
  ### Fixed
@@ -1607,6 +1613,7 @@ All notable changes to MCP Scraper are documented here. The format is based on [
1607
1613
  - Provider-specific connection data is normalized into one agent-facing contract.
1608
1614
 
1609
1615
  [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.3...HEAD
1616
+ [0.83.5]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.4...v0.83.5
1610
1617
  [0.83.4]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.3...v0.83.4
1611
1618
  [0.83.3]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.2...v0.83.3
1612
1619
  [0.83.2]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.1...v0.83.2
package/README.md CHANGED
@@ -175,7 +175,7 @@ Build the branded one-click bundle:
175
175
  npm run build:mcpb
176
176
  ```
177
177
 
178
- 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.83.4`, SHA-256 `6c28dbd3fc92912da0965efe80e093d47de4ed209e5b7646b4a97d4cdb23fb1b`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, API-key configuration field, and manually curated current-release message from the bundle manifest.
178
+ 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.83.5`, SHA-256 `ab7a2b9e1fb1d2020e7eeda5ef010279ce6a74effdb7399aff2f748c3ac06022`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, API-key configuration field, and manually curated current-release message from the bundle manifest.
179
179
 
180
180
  The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
181
181
 
@@ -17,7 +17,7 @@ loadDotEnv();
17
17
  async function main() {
18
18
  const [{ serve }, { app, personalAssistantProductionStartup }, { startWorker }, { migrate }] = await Promise.all([
19
19
  import("@hono/node-server"),
20
- import("../server-DMQDHAEC.js"),
20
+ import("../server-2E4YF6TY.js"),
21
21
  import("../worker-FM3ZRDY4.js"),
22
22
  import("../db-Z34LPZNR.js")
23
23
  ]);
@@ -19,7 +19,7 @@ import {
19
19
  import "../chunk-GGZEC22A.js";
20
20
  import {
21
21
  PACKAGE_VERSION
22
- } from "../chunk-GMOXDXON.js";
22
+ } from "../chunk-2B636U7P.js";
23
23
 
24
24
  // src/cli/human-cli.ts
25
25
  import { Command } from "commander";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runMcpScraperStdio
4
- } from "../chunk-52TSKUQQ.js";
5
- import "../chunk-VP4FGTTS.js";
4
+ } from "../chunk-VJHMPJR7.js";
5
+ import "../chunk-2BOBOKFQ.js";
6
6
  import "../chunk-PGJQDMC2.js";
7
7
  import "../chunk-DNM65UCK.js";
8
8
  import "../chunk-T3MZISOF.js";
@@ -13,7 +13,7 @@ import "../chunk-OPQIGAFB.js";
13
13
  import "../chunk-UXVT7FWW.js";
14
14
  import "../chunk-BGD7U3AE.js";
15
15
  import "../chunk-GGZEC22A.js";
16
- import "../chunk-GMOXDXON.js";
16
+ import "../chunk-2B636U7P.js";
17
17
  import "../chunk-YXNDOQXN.js";
18
18
 
19
19
  // src/mcp/thorbit-restricted-tool-surface.ts
@@ -4,7 +4,7 @@ import {
4
4
  } from "../chunk-UXVT7FWW.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-GMOXDXON.js";
7
+ } from "../chunk-2B636U7P.js";
8
8
 
9
9
  // bin/mcp-scraper-install.ts
10
10
  var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runMcpScraperStdio
4
- } from "../chunk-52TSKUQQ.js";
5
- import "../chunk-VP4FGTTS.js";
4
+ } from "../chunk-VJHMPJR7.js";
5
+ import "../chunk-2BOBOKFQ.js";
6
6
  import "../chunk-PGJQDMC2.js";
7
7
  import "../chunk-DNM65UCK.js";
8
8
  import "../chunk-T3MZISOF.js";
@@ -13,7 +13,7 @@ import "../chunk-OPQIGAFB.js";
13
13
  import "../chunk-UXVT7FWW.js";
14
14
  import "../chunk-BGD7U3AE.js";
15
15
  import "../chunk-GGZEC22A.js";
16
- import "../chunk-GMOXDXON.js";
16
+ import "../chunk-2B636U7P.js";
17
17
  import "../chunk-YXNDOQXN.js";
18
18
 
19
19
  // bin/mcp-stdio-server.ts
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var PACKAGE_VERSION = "0.83.4";
2
+ var PACKAGE_VERSION = "0.83.5";
3
3
 
4
4
  export {
5
5
  PACKAGE_VERSION
@@ -50,7 +50,7 @@ import {
50
50
  } from "./chunk-BGD7U3AE.js";
51
51
  import {
52
52
  PACKAGE_VERSION
53
- } from "./chunk-GMOXDXON.js";
53
+ } from "./chunk-2B636U7P.js";
54
54
  import {
55
55
  PUBLIC_ERROR_CODES,
56
56
  buildPublicErrorEnvelope,
@@ -12,13 +12,13 @@ import {
12
12
  registerScheduledResultsMcpTools,
13
13
  registerSerpIntelligenceCaptureTools,
14
14
  resolveDeploymentProfile
15
- } from "./chunk-VP4FGTTS.js";
15
+ } from "./chunk-2BOBOKFQ.js";
16
16
  import {
17
17
  renderInstallTerminal
18
18
  } from "./chunk-UXVT7FWW.js";
19
19
  import {
20
20
  PACKAGE_VERSION
21
- } from "./chunk-GMOXDXON.js";
21
+ } from "./chunk-2B636U7P.js";
22
22
 
23
23
  // src/mcp/stdio-runtime.ts
24
24
  import { readFileSync } from "fs";
@@ -373,7 +373,7 @@ import {
373
373
  resolveLocalSourcebookSchemaType,
374
374
  transcribeMediaUrl,
375
375
  transitionAnalyticsExperiment
376
- } from "./chunk-VP4FGTTS.js";
376
+ } from "./chunk-2BOBOKFQ.js";
377
377
  import {
378
378
  auditImageUrls,
379
379
  auditImages,
@@ -494,7 +494,7 @@ import {
494
494
  } from "./chunk-GGZEC22A.js";
495
495
  import {
496
496
  PACKAGE_VERSION
497
- } from "./chunk-GMOXDXON.js";
497
+ } from "./chunk-2B636U7P.js";
498
498
  import {
499
499
  CaptchaError,
500
500
  MapsSearchIncompletePageError,
@@ -53286,6 +53286,9 @@ async function requireSetupEntitlement(userId) {
53286
53286
  function analyticsSemanticEventName(selector) {
53287
53287
  return /^\[data-xray-event=(["'])([a-z][a-z0-9_]{1,79})\1\]$/.exec(selector)?.[2] ?? null;
53288
53288
  }
53289
+ function analyticsAutoRuleExpectedMaximum(observedCandidates) {
53290
+ return Math.max(20, Math.min(100, observedCandidates));
53291
+ }
53289
53292
  function analyticsSiteSetupService() {
53290
53293
  const db = getAnalyticsPool();
53291
53294
  return new AnalyticsSiteSetupService({
@@ -53319,7 +53322,7 @@ function analyticsSiteSetupService() {
53319
53322
  hostnames: [hostname],
53320
53323
  metadata: candidate.context,
53321
53324
  oncePerSession: false,
53322
- expectedMatches: { min: 1, max: expectedMatches }
53325
+ expectedMatches: { min: 1, max: analyticsAutoRuleExpectedMaximum(expectedMatches) }
53323
53326
  };
53324
53327
  });
53325
53328
  const manifest = await publishAnalyticsRuntimeManifest({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-scraper",
3
- "version": "0.83.4",
3
+ "version": "0.83.5",
4
4
  "description": "MCP server for MCP Scraper web intelligence tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",