mcp-scraper 0.74.0 → 0.75.0

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,26 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.75.0] - 2026-08-28
8
+
9
+ ### Added
10
+
11
+ - Added a production X-Ray customer loop spanning tiered onboarding, editable and live-verifiable event definitions, deterministic known-person journeys, seven attribution models, CRM/call connections, governed manual data movement, ad-platform activation, privacy lifecycle controls, and durable scheduled lanes.
12
+ - Added fail-closed capability and privacy registries, normalized analytics error envelopes, CSV formula neutralization, deletion-aware provider send fences, and complete retention/anonymization coverage across analytics relations.
13
+ - Added dedicated MCP tools and REST operations for CRM preview/commit/export, Google Ads CSV export, Meta technical export, activation mappings and automation, live event verification, enhanced person journeys, and scheduled operations.
14
+
15
+ ### Changed
16
+
17
+ - Reworked X-Ray setup around Minimum, Production, and Advanced outcomes; kept Business selection stable across setup, testing, visual picking, navigation, CRM, and activation; and separated simulations from persisted live evidence.
18
+ - Rebuilt journey and attribution reporting around confirmed versus candidate-assisted evidence, deep-linkable person histories, actionable lead-generation summaries, responsive tables and charts, and explicit unavailable or unproven states.
19
+ - Expanded the public MCP catalog to 339 tools and generated the Web, documentation, authority, SDK, and package contracts from the same release inventory.
20
+
21
+ ### Fixed
22
+
23
+ - Prevented candidate identity, withdrawn consent, or deleted subjects from reaching CRM and ad-provider transports, and prevented IP, coarse location, or device continuity from independently confirming a person.
24
+ - Made activation readiness depend on accepted provider receipts, preserved Google partial-failure evidence and Meta event IDs, and kept unsupported manual or direct-upload claims unavailable instead of optimistic.
25
+ - Added responsive release proof across all 12 X-Ray routes at seven viewport widths, including data, empty, loading, handled-error, table/card, chart-containment, and mobile navigation states.
26
+
7
27
  ## [0.74.0] - 2026-08-28
8
28
 
9
29
  ### Added
@@ -1372,7 +1392,8 @@ All notable changes to MCP Scraper are documented here. The format is based on [
1372
1392
  - Write actions remain unavailable until the account owner explicitly enables them.
1373
1393
  - Provider-specific connection data is normalized into one agent-facing contract.
1374
1394
 
1375
- [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.74.0...HEAD
1395
+ [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.75.0...HEAD
1396
+ [0.75.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.74.0...v0.75.0
1376
1397
  [0.74.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.73.8...v0.74.0
1377
1398
  [0.73.8]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.73.7...v0.73.8
1378
1399
  [0.73.7]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.73.6...v0.73.7
package/README.md CHANGED
@@ -173,7 +173,7 @@ Build the branded one-click bundle:
173
173
  npm run build:mcpb
174
174
  ```
175
175
 
176
- 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.74.0`, SHA-256 `36ad707d2e5ba87b12ef755baa9dcc16105d3548f9a9d904e6059ad6a3d89665`). 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.
176
+ 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.75.0`, SHA-256 `e1987385ca67a469f9fb73959b123ac8d925bee1f88c8d94252e9239d1e842f9`). 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.
177
177
 
178
178
  The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
179
179
 
@@ -335,7 +335,7 @@ The `mcp-scraper` server (and the MCPB bundle, which runs it) exposes both secti
335
335
 
336
336
  All MCP tools 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, plus readable text content for compatibility. Runtime `tools/list` omits output schemas so strict clients can register the complete catalog; the generated developer manifest retains every canonical output schema for validation and typed SDK generation. All tools carry MCP annotations; file-writing tools such as replay downloads and annotations state their filesystem side effects.
337
337
 
338
- The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 331 tools: 230 scraper, browser, workflow, billing, and connected-service tools plus 101 durable-memory tools. The scraper-side inventory includes complete Gmail selection, message, attachment, export, bulk-action, and Memory-import workflows; durable PAA starts and status; rendered site-content similarity; governed Local Sourcebook and Transparent Commons workflows; direct site-export reads; Editorial Reading Room and News Publisher templates; and production X-Ray analytics, attribution, CRM policy and receipt, campaign, export, and scheduled-report tools. Successful evidence-compiled Local Sourcebook revisions publish automatically to their canonical `localsourcebook.com` category profile and review URLs; administrator controls handle exceptional rejection or unpublishing. Release verification compares the exact local and hosted tool-name sets, not only the count.
338
+ The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 339 tools: 238 scraper, browser, workflow, billing, and connected-service tools plus 101 durable-memory tools. The scraper-side inventory includes complete Gmail selection, message, attachment, export, bulk-action, and Memory-import workflows; durable PAA starts and status; rendered site-content similarity; governed Local Sourcebook and Transparent Commons workflows; direct site-export reads; Editorial Reading Room and News Publisher templates; and production X-Ray analytics, attribution, CRM policy and receipt, campaign, export, and scheduled-report tools. Successful evidence-compiled Local Sourcebook revisions publish automatically to their canonical `localsourcebook.com` category profile and review URLs; administrator controls handle exceptional rejection or unpublishing. Release verification compares the exact local and hosted tool-name sets, not only the count.
339
339
 
340
340
  For contract parity, stdio and MCPB memory calls invoke the matching public tool on the hosted MCP Scraper `/mcp` endpoint. The hosted aggregate runtime owns MCP Scraper-specific billing, scheduling, credential, and in-process cutover policy; its internal `/memory/mcp-call` bridge is a fallback to the standalone memory service, not the public stdio execution path. Direct `mcp-memory` OAuth and stdio clients continue to use `memory.mcpscraper.dev` and must be verified as a separate dependent release surface.
341
341
 
@@ -8,6 +8,7 @@ import {
8
8
  analyticsChannelBreakdown,
9
9
  analyticsContent,
10
10
  analyticsConversions,
11
+ analyticsCsvCell,
11
12
  analyticsDimensions,
12
13
  analyticsEventCounts,
13
14
  analyticsForecast,
@@ -84,7 +85,7 @@ import {
84
85
  updateAnalyticsPixel,
85
86
  upsertAnalyticsAdSpend,
86
87
  upsertAnalyticsHostGroup
87
- } from "./chunk-52PVP5P2.js";
88
+ } from "./chunk-IBQNOZ7E.js";
88
89
  import "./chunk-PJEEKOUM.js";
89
90
  import "./chunk-WEFPBAAG.js";
90
91
  export {
@@ -97,6 +98,7 @@ export {
97
98
  analyticsChannelBreakdown,
98
99
  analyticsContent,
99
100
  analyticsConversions,
101
+ analyticsCsvCell,
100
102
  analyticsDimensions,
101
103
  analyticsEventCounts,
102
104
  analyticsForecast,
@@ -17,15 +17,15 @@ loadDotEnv();
17
17
  async function main() {
18
18
  const [{ serve }, { app }, { startWorker }, { migrate }] = await Promise.all([
19
19
  import("@hono/node-server"),
20
- import("../server-PMHKIZU7.js"),
21
- import("../worker-CBK5DWEE.js"),
20
+ import("../server-KNCC6FXQ.js"),
21
+ import("../worker-7ASMH3MT.js"),
22
22
  import("../db-566MOHHD.js")
23
23
  ]);
24
24
  const PORT = parseInt(process.env.PORT ?? "3001");
25
25
  try {
26
26
  await migrate();
27
27
  if (process.env.ANALYTICS_DATABASE_URL) {
28
- const { migrateAnalytics } = await import("../analytics-repository-22MAFYHS.js");
28
+ const { migrateAnalytics } = await import("../analytics-repository-AUTJK4HK.js");
29
29
  await migrateAnalytics();
30
30
  }
31
31
  startWorker();
@@ -13,7 +13,7 @@ import "../chunk-VXLU74YZ.js";
13
13
  import "../chunk-GGZEC22A.js";
14
14
  import {
15
15
  PACKAGE_VERSION
16
- } from "../chunk-O5IRADYV.js";
16
+ } from "../chunk-RDPWFAR3.js";
17
17
 
18
18
  // src/cli/human-cli.ts
19
19
  import { Command } from "commander";
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  renderInstallTerminal
4
- } from "../chunk-BCA2OU5G.js";
4
+ } from "../chunk-45AZ5CR2.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-O5IRADYV.js";
7
+ } from "../chunk-RDPWFAR3.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;
@@ -13,7 +13,7 @@ import {
13
13
  registerScheduledResultsMcpTools,
14
14
  registerSerpIntelligenceCaptureTools,
15
15
  resolveDeploymentProfile
16
- } from "../chunk-IBJAMD4I.js";
16
+ } from "../chunk-DT7UD2ER.js";
17
17
  import "../chunk-PGJQDMC2.js";
18
18
  import "../chunk-T3MZISOF.js";
19
19
  import "../chunk-7RQULQF3.js";
@@ -21,14 +21,14 @@ import "../chunk-OM7HVEJ3.js";
21
21
  import "../chunk-CXY5WV45.js";
22
22
  import {
23
23
  renderInstallTerminal
24
- } from "../chunk-BCA2OU5G.js";
24
+ } from "../chunk-45AZ5CR2.js";
25
25
  import "../chunk-VXLU74YZ.js";
26
26
  import "../chunk-GGZEC22A.js";
27
27
  import {
28
28
  PACKAGE_VERSION
29
- } from "../chunk-O5IRADYV.js";
29
+ } from "../chunk-RDPWFAR3.js";
30
30
  import "../chunk-DNM65UCK.js";
31
- import "../chunk-EQJRPDUS.js";
31
+ import "../chunk-6W4ADSWE.js";
32
32
  import "../chunk-WEFPBAAG.js";
33
33
 
34
34
  // bin/mcp-stdio-server.ts
@@ -1,6 +1,6 @@
1
1
  // release-message.json
2
2
  var release_message_default = {
3
- message: "X-Ray now lets an authorized dashboard user open an approved website, select a page, button, link, phone link, or form visually, and review the resulting event draft before saving it."
3
+ message: "X-Ray now provides a production customer loop for consent-aware identity, journeys, event verification, attribution, CRM and call evidence, governed data movement, activation receipts, and durable automation."
4
4
  };
5
5
 
6
6
  // src/install-terminal.ts
@@ -55,7 +55,7 @@ function renderInstallTerminal(options) {
55
55
  "1/1 install surfaces ready",
56
56
  colorize(`Newest in v${options.version}: ${release_message_default.message}`, "lime", color),
57
57
  "",
58
- `${colorize("Tools", "cyan", color)} ${colorize("(331 MCP tools)", "muted", color)}`,
58
+ `${colorize("Tools", "cyan", color)} ${colorize("(339 MCP tools)", "muted", color)}`,
59
59
  toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
60
60
  toolRow("extract", ["extract_url", "map_site_urls", "extract_site", "audit_site", "directory_workflow"], color),
61
61
  toolRow("build", ["create_editorial_reading_room", "rank_tracker_workflow", "portable HTML"], color),
@@ -213,8 +213,8 @@ var PUBLIC_PRODUCT_CONTRACT = {
213
213
  "freeSignupCredits": 0
214
214
  },
215
215
  "inventory": {
216
- "totalTools": 331,
217
- "scraperTools": 230,
216
+ "totalTools": 339,
217
+ "scraperTools": 238,
218
218
  "memoryTools": 101
219
219
  },
220
220
  "concurrencyPack": {
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-DNM65UCK.js";
8
8
  import {
9
9
  LedgerOperation
10
- } from "./chunk-EQJRPDUS.js";
10
+ } from "./chunk-6W4ADSWE.js";
11
11
  import {
12
12
  CREDIT_LOT_TTL,
13
13
  getDb,