mcp-scraper 0.88.1 → 0.88.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.88.2] - 2026-09-02
8
+
9
+ ### Fixed
10
+
11
+ - Normalized mounted `/analytics` route paths before sampled REST response validation, preventing successful X-Ray responses from intermittently becoming `analytics_rest_operation_unknown` 500 errors in production.
12
+ - Applied the current additive analytics schema migration so consented authenticated identity events can populate the governed person graph without a missing `crm_entity_id` column failure.
13
+
7
14
  ## [0.88.1] - 2026-09-02
8
15
 
9
16
  ### Fixed
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.88.1`, SHA-256 `f08c1c24f5537e4ba5fdaa9abac2124b38b1c05dc00c4a67596e51717731f78a`). 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.88.2`, SHA-256 `353608a80e9c4b9879e3fa293aaa095a7f5c75b4b713f127d044775b329e455f`). 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-JCJML2EW.js"),
20
+ import("../server-SQZ3A7SY.js"),
21
21
  import("../worker-LDCAULWL.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-HIMFLGLV.js";
22
+ } from "../chunk-K45K75OF.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-65OWZPWE.js";
5
- import "../chunk-EG2PDKD7.js";
4
+ } from "../chunk-LFW2FRPJ.js";
5
+ import "../chunk-PKZS6SHW.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-ABF2CGOZ.js";
14
14
  import "../chunk-P7FWOMU7.js";
15
15
  import "../chunk-GGZEC22A.js";
16
- import "../chunk-HIMFLGLV.js";
16
+ import "../chunk-K45K75OF.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-ABF2CGOZ.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-HIMFLGLV.js";
7
+ } from "../chunk-K45K75OF.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-65OWZPWE.js";
5
- import "../chunk-EG2PDKD7.js";
4
+ } from "../chunk-LFW2FRPJ.js";
5
+ import "../chunk-PKZS6SHW.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-ABF2CGOZ.js";
14
14
  import "../chunk-P7FWOMU7.js";
15
15
  import "../chunk-GGZEC22A.js";
16
- import "../chunk-HIMFLGLV.js";
16
+ import "../chunk-K45K75OF.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.88.1";
2
+ var PACKAGE_VERSION = "0.88.2";
3
3
 
4
4
  export {
5
5
  PACKAGE_VERSION
@@ -12,13 +12,13 @@ import {
12
12
  registerScheduledResultsMcpTools,
13
13
  registerSerpIntelligenceCaptureTools,
14
14
  resolveDeploymentProfile
15
- } from "./chunk-EG2PDKD7.js";
15
+ } from "./chunk-PKZS6SHW.js";
16
16
  import {
17
17
  renderInstallTerminal
18
18
  } from "./chunk-ABF2CGOZ.js";
19
19
  import {
20
20
  PACKAGE_VERSION
21
- } from "./chunk-HIMFLGLV.js";
21
+ } from "./chunk-K45K75OF.js";
22
22
 
23
23
  // src/mcp/stdio-runtime.ts
24
24
  import { readFileSync } from "fs";
@@ -50,7 +50,7 @@ import {
50
50
  } from "./chunk-P7FWOMU7.js";
51
51
  import {
52
52
  PACKAGE_VERSION
53
- } from "./chunk-HIMFLGLV.js";
53
+ } from "./chunk-K45K75OF.js";
54
54
  import {
55
55
  PUBLIC_ERROR_CODES,
56
56
  buildPublicErrorEnvelope,
@@ -18425,6 +18425,10 @@ function operationIdForAnalyticsRoute(method, path) {
18425
18425
  const domain = path.split("/").filter(Boolean).map((segment) => segment.startsWith(":") ? `by_${segment.slice(1)}` : segment).join("_").replace(/[^a-zA-Z0-9_]+/g, "_").replace(/([a-z0-9])([A-Z])/g, "$1_$2").toLowerCase() || "root";
18426
18426
  return `analytics.${domain}.${method.toLowerCase()}.v1`;
18427
18427
  }
18428
+ function normalizeAnalyticsContractRoutePath(path) {
18429
+ if (path === "/analytics") return "/";
18430
+ return path.startsWith("/analytics/") ? path.slice("/analytics".length) : path;
18431
+ }
18428
18432
  var CurrencySchema = z19.object({
18429
18433
  valueMinor: z19.number().int().safe(),
18430
18434
  currency: z19.string().regex(/^[A-Z]{3}$/).nullable()
@@ -33119,6 +33123,7 @@ export {
33119
33123
  buildPaaExtractorMcpServer,
33120
33124
  registerPaaExtractorMcpTools,
33121
33125
  operationIdForAnalyticsRoute,
33126
+ normalizeAnalyticsContractRoutePath,
33122
33127
  normalizeAnalyticsRestErrorEnvelope,
33123
33128
  ANALYTICS_REST_GENERIC_EXEMPTIONS,
33124
33129
  analyticsRestContractMetadata,
@@ -370,6 +370,7 @@ import {
370
370
  leadListOutputRows,
371
371
  listAnalyticsRuntimeExperiments,
372
372
  localSourcebookSchemaContract,
373
+ normalizeAnalyticsContractRoutePath,
373
374
  normalizeAnalyticsRestErrorEnvelope,
374
375
  normalizeLeadRows,
375
376
  operationIdForAnalyticsRoute,
@@ -388,7 +389,7 @@ import {
388
389
  transcribeMediaUrl,
389
390
  transitionAnalyticsExperiment,
390
391
  validateAnalyticsRestResponseForRequest
391
- } from "./chunk-EG2PDKD7.js";
392
+ } from "./chunk-PKZS6SHW.js";
392
393
  import {
393
394
  auditImageUrls,
394
395
  auditImages,
@@ -509,7 +510,7 @@ import {
509
510
  } from "./chunk-GGZEC22A.js";
510
511
  import {
511
512
  PACKAGE_VERSION
512
- } from "./chunk-HIMFLGLV.js";
513
+ } from "./chunk-K45K75OF.js";
513
514
  import {
514
515
  CaptchaError,
515
516
  MapsSearchIncompletePageError,
@@ -53896,7 +53897,10 @@ analyticsApp.use("*", async (c, next) => {
53896
53897
  return;
53897
53898
  }
53898
53899
  if (c.res.status >= 200 && c.res.status < 300 && contentType.includes("application/json") && routePath && ["GET", "POST", "PATCH", "DELETE"].includes(method)) {
53899
- const operationId = operationIdForAnalyticsRoute(method, routePath);
53900
+ const operationId = operationIdForAnalyticsRoute(
53901
+ method,
53902
+ normalizeAnalyticsContractRoutePath(routePath)
53903
+ );
53900
53904
  if (!analyticsGenericContractExemptions.has(operationId)) {
53901
53905
  const payload = await c.res.clone().json();
53902
53906
  validateAnalyticsRestResponseForRequest(operationId, payload, analyticsContractRequestId(c));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-scraper",
3
- "version": "0.88.1",
3
+ "version": "0.88.2",
4
4
  "description": "MCP server for MCP Scraper web intelligence tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",