mcp-scraper 0.72.6 → 0.73.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/README.md +16 -2
  3. package/dist/{analytics-repository-6YLRSWYO.js → analytics-repository-MSLJBHLU.js} +15 -1
  4. package/dist/bin/api-server.js +3 -3
  5. package/dist/bin/mcp-scraper-cli.js +1 -1
  6. package/dist/bin/mcp-scraper-install.js +2 -2
  7. package/dist/bin/mcp-stdio-server.js +4 -4
  8. package/dist/{chunk-SR7GSLEA.js → chunk-5EWXRBEH.js} +816 -113
  9. package/dist/{chunk-FVL4GUTP.js → chunk-EQJRPDUS.js} +2 -2
  10. package/dist/{chunk-D5CX3WHG.js → chunk-JIWGG7Z4.js} +1 -1
  11. package/dist/{chunk-XRH2DUAQ.js → chunk-KRIIVDV2.js} +188 -14
  12. package/dist/{chunk-RAFQEPJ4.js → chunk-Q2J23DHY.js} +1 -1
  13. package/dist/{chunk-I45JV4EU.js → chunk-RV2D27R4.js} +1 -1
  14. package/dist/{chunk-K2SXQGKM.js → chunk-S45DGELW.js} +1 -1
  15. package/dist/{extract-bundle-337ZDIIQ.js → extract-bundle-2V22S7EU.js} +2 -2
  16. package/dist/{gmail-service-QXDGNWUJ.js → gmail-service-JHL4PQFN.js} +2 -2
  17. package/dist/{server-LQ6TMI5W.js → server-N6MCRSQW.js} +14448 -12853
  18. package/dist/{site-extract-repository-ACNAVNDN.js → site-extract-repository-DUAEAU6A.js} +2 -2
  19. package/dist/{worker-JQORPCFQ.js → worker-CBK5DWEE.js} +1 -1
  20. package/package.json +16 -4
  21. package/dist/bin/api-server.cjs +0 -108648
  22. package/dist/bin/api-server.d.cts +0 -1
  23. package/dist/bin/api-server.d.ts +0 -1
  24. package/dist/bin/mcp-scraper-cli.cjs +0 -3219
  25. package/dist/bin/mcp-scraper-cli.d.cts +0 -1
  26. package/dist/bin/mcp-scraper-cli.d.ts +0 -1
  27. package/dist/bin/mcp-scraper-install.cjs +0 -134
  28. package/dist/bin/mcp-scraper-install.d.cts +0 -1
  29. package/dist/bin/mcp-scraper-install.d.ts +0 -1
  30. package/dist/bin/mcp-stdio-server.cjs +0 -22333
  31. package/dist/bin/mcp-stdio-server.d.cts +0 -1
  32. package/dist/bin/mcp-stdio-server.d.ts +0 -1
  33. package/dist/bin/paa-harvest.cjs +0 -4745
  34. package/dist/bin/paa-harvest.d.cts +0 -1
  35. package/dist/bin/paa-harvest.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,36 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.73.0] - 2026-08-27
8
+
9
+ ### Added
10
+
11
+ - Added a backend-owned, 142-operation analytics REST contract with generated Web validators and exact MCP/SDK projections for enhanced confirmed journeys.
12
+ - Added consent-governed identity promotion for verified forms and authenticated accounts, including same-Site anonymous-history backfill, encrypted masked identity profiles, audited single-person reads, and deletion tombstones that prevent silent recreation.
13
+ - Added date-bounded Journey reporting for summaries, common pages, events, acquisition and referrers, sessions, and chronology, with confirmed and best-guess totals kept separate.
14
+ - Added first-party MCP Scraper subscription revenue outcomes through the ordinary versioned conversion-rule pipeline without copying billing contact data into analytics.
15
+ - Added real PostgreSQL integration coverage for tenant isolation, consent withdrawal, deletion, no-resurrection, migration replay, and provider activation eligibility.
16
+
17
+ ### Changed
18
+
19
+ - Consolidated Scheduler, Web, and Memory source ownership into this product repository under isolated `apps/` project roots while retaining the public SDK as the only separate client repository.
20
+ - Aligned the main server with `mcpscraper-memory-tools` 1.16.0 so nested Mastra builds cannot inherit the server's former package versions from the shared repository root.
21
+ - Expanded the public MCP catalog to 331 tools, including distinct confirmed/best-guess Journey listing and complete enhanced Journey reads with bounded `from` and `to` windows.
22
+ - Browser and embedded-form conversions now preserve the conversion record while allowing provider activation only for a confirmed person with current advertising-measurement consent.
23
+
24
+ ### Fixed
25
+
26
+ - Kept nested `apps/` source available to Vercel so each consolidated project can build from its configured monorepo root.
27
+ - Prevented cross-Site identity, privacy, and Journey references; removed subject-specific export/provider payload remnants on withdrawal or deletion; and normalized unknown/deleted references to zero-discovery responses.
28
+ - Normalized PostgreSQL timestamp projections and reconciled consent-withdrawal responses with the strict public REST contract.
29
+ - Made consented login and first-party form resolution self-initialize an approved Site-scoped primary identity graph, so older Sites persist stable person references and masked profiles without manual namespace setup.
30
+
31
+ ## [0.72.7] - 2026-08-27
32
+
33
+ ### Fixed
34
+
35
+ - Completed Gmail Memory imports now report recovered historical errors as resolved and derive attachment indexing from the verified nested file-asset receipts, keeping counts and sample states consistent with durable Memory state.
36
+
7
37
  ## [0.72.6] - 2026-08-27
8
38
 
9
39
  ### Fixed
@@ -1278,7 +1308,9 @@ All notable changes to MCP Scraper are documented here. The format is based on [
1278
1308
  - Write actions remain unavailable until the account owner explicitly enables them.
1279
1309
  - Provider-specific connection data is normalized into one agent-facing contract.
1280
1310
 
1281
- [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.6...HEAD
1311
+ [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.73.0...HEAD
1312
+ [0.73.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.7...v0.73.0
1313
+ [0.72.7]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.6...v0.72.7
1282
1314
  [0.72.6]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.5...v0.72.6
1283
1315
  [0.72.5]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.4...v0.72.5
1284
1316
  [0.72.4]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.3...v0.72.4
package/README.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  MCP Scraper is an MCP server for live web intelligence tools backed by `https://mcpscraper.dev`.
4
4
 
5
+ ## Product repository
6
+
7
+ This repository owns the complete private product runtime while preserving independent service and
8
+ deployment boundaries:
9
+
10
+ - `/` — primary MCP/API server and public `mcp-scraper` package;
11
+ - `apps/scheduler` — private scheduled execution and orchestration service;
12
+ - `apps/web` — private Next.js product and marketing application;
13
+ - `apps/memory` — hosted Memory service plus its independently publishable DB, Tools, and stdio packages.
14
+
15
+ `mcpscraper-sdk` remains the only separate public-client repository. See [`apps/README.md`](apps/README.md)
16
+ and [`product-topology.json`](product-topology.json) for exact ownership, source receipts, release units,
17
+ deployment roots, and verification commands.
18
+
5
19
  ## Install
6
20
 
7
21
  Use the MCPB Desktop Extension for the branded Claude Desktop install, or use the npm package from any MCP client that can run stdio commands.
@@ -159,7 +173,7 @@ Build the branded one-click bundle:
159
173
  npm run build:mcpb
160
174
  ```
161
175
 
162
- 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.72.6`, SHA-256 `dfcf80fa18e14a314d19d459f6c3e1fa0ba0f03eb8eca6f35ca0b0fae8e267ec`). 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.73.0`, SHA-256 `570d31a9b16833b89de8ea5296e5d97b3d4696336c94651739b716a0bda81ce6`). 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.
163
177
 
164
178
  The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
165
179
 
@@ -321,7 +335,7 @@ The `mcp-scraper` server (and the MCPB bundle, which runs it) exposes both secti
321
335
 
322
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.
323
337
 
324
- The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 330 tools: 229 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 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.
325
339
 
326
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.
327
341
 
@@ -12,11 +12,14 @@ import {
12
12
  analyticsEventCounts,
13
13
  analyticsForecast,
14
14
  analyticsHealth,
15
+ analyticsIdentityPromotionAllowed,
16
+ analyticsIdentityResolutionAllowed,
15
17
  analyticsOverview,
16
18
  analyticsPaths,
17
19
  analyticsTimeseries,
18
20
  archiveAnalyticsActivationDestination,
19
21
  archiveAnalyticsCampaignLink,
22
+ backfillAnalyticsConfirmedHistory,
20
23
  claimAnalyticsCrmImportRows,
21
24
  claimAnalyticsFormDeliveryJobs,
22
25
  closeAnalyticsPool,
@@ -33,6 +36,7 @@ import {
33
36
  deferAnalyticsCrmImportRow,
34
37
  deferAnalyticsFormDelivery,
35
38
  deleteAnalyticsSite,
39
+ enrichAnalyticsExistingCrmIdentity,
36
40
  getAnalyticsActivationDestinationConnectionRef,
37
41
  getAnalyticsPersonJourney,
38
42
  getAnalyticsPool,
@@ -41,6 +45,7 @@ import {
41
45
  ingestAnalyticsEvents,
42
46
  isAnalyticsFormPlacementApproved,
43
47
  linkAnalyticsFormIdentity,
48
+ linkAnalyticsIdentityInTransaction,
44
49
  listAnalyticsActivationDestinations,
45
50
  listAnalyticsActivationReceipts,
46
51
  listAnalyticsCampaignLinks,
@@ -57,6 +62,7 @@ import {
57
62
  normalizeObservedHostname,
58
63
  pollAnalyticsActivationDiagnostics,
59
64
  prepareAnalyticsLinkerIssue,
65
+ projectAnalyticsPixelEventConsent,
60
66
  queueAnalyticsActivation,
61
67
  queueAnalyticsFormDelivery,
62
68
  recordAnalyticsFormSubmission,
@@ -66,6 +72,7 @@ import {
66
72
  requireAnalyticsAccess,
67
73
  requireAnalyticsEditor,
68
74
  resolveAnalyticsCampaignLink,
75
+ resolveAnalyticsConfirmedActivationIdentity,
69
76
  retryAnalyticsActivationJob,
70
77
  sanitizeAnalyticsProperties,
71
78
  sanitizeClickIds,
@@ -77,7 +84,7 @@ import {
77
84
  updateAnalyticsPixel,
78
85
  upsertAnalyticsAdSpend,
79
86
  upsertAnalyticsHostGroup
80
- } from "./chunk-SR7GSLEA.js";
87
+ } from "./chunk-5EWXRBEH.js";
81
88
  import "./chunk-PJEEKOUM.js";
82
89
  import "./chunk-WEFPBAAG.js";
83
90
  export {
@@ -94,11 +101,14 @@ export {
94
101
  analyticsEventCounts,
95
102
  analyticsForecast,
96
103
  analyticsHealth,
104
+ analyticsIdentityPromotionAllowed,
105
+ analyticsIdentityResolutionAllowed,
97
106
  analyticsOverview,
98
107
  analyticsPaths,
99
108
  analyticsTimeseries,
100
109
  archiveAnalyticsActivationDestination,
101
110
  archiveAnalyticsCampaignLink,
111
+ backfillAnalyticsConfirmedHistory,
102
112
  claimAnalyticsCrmImportRows,
103
113
  claimAnalyticsFormDeliveryJobs,
104
114
  closeAnalyticsPool,
@@ -115,6 +125,7 @@ export {
115
125
  deferAnalyticsCrmImportRow,
116
126
  deferAnalyticsFormDelivery,
117
127
  deleteAnalyticsSite,
128
+ enrichAnalyticsExistingCrmIdentity,
118
129
  getAnalyticsActivationDestinationConnectionRef,
119
130
  getAnalyticsPersonJourney,
120
131
  getAnalyticsPool,
@@ -123,6 +134,7 @@ export {
123
134
  ingestAnalyticsEvents,
124
135
  isAnalyticsFormPlacementApproved,
125
136
  linkAnalyticsFormIdentity,
137
+ linkAnalyticsIdentityInTransaction,
126
138
  listAnalyticsActivationDestinations,
127
139
  listAnalyticsActivationReceipts,
128
140
  listAnalyticsCampaignLinks,
@@ -139,6 +151,7 @@ export {
139
151
  normalizeObservedHostname,
140
152
  pollAnalyticsActivationDiagnostics,
141
153
  prepareAnalyticsLinkerIssue,
154
+ projectAnalyticsPixelEventConsent,
142
155
  queueAnalyticsActivation,
143
156
  queueAnalyticsFormDelivery,
144
157
  recordAnalyticsFormSubmission,
@@ -148,6 +161,7 @@ export {
148
161
  requireAnalyticsAccess,
149
162
  requireAnalyticsEditor,
150
163
  resolveAnalyticsCampaignLink,
164
+ resolveAnalyticsConfirmedActivationIdentity,
151
165
  retryAnalyticsActivationJob,
152
166
  sanitizeAnalyticsProperties,
153
167
  sanitizeClickIds,
@@ -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-LQ6TMI5W.js"),
21
- import("../worker-JQORPCFQ.js"),
20
+ import("../server-N6MCRSQW.js"),
21
+ import("../worker-CBK5DWEE.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-6YLRSWYO.js");
28
+ const { migrateAnalytics } = await import("../analytics-repository-MSLJBHLU.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-D5CX3WHG.js";
16
+ } from "../chunk-JIWGG7Z4.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-RAFQEPJ4.js";
4
+ } from "../chunk-Q2J23DHY.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-D5CX3WHG.js";
7
+ } from "../chunk-JIWGG7Z4.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-XRH2DUAQ.js";
16
+ } from "../chunk-KRIIVDV2.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-RAFQEPJ4.js";
24
+ } from "../chunk-Q2J23DHY.js";
25
25
  import "../chunk-VXLU74YZ.js";
26
26
  import "../chunk-GGZEC22A.js";
27
27
  import {
28
28
  PACKAGE_VERSION
29
- } from "../chunk-D5CX3WHG.js";
29
+ } from "../chunk-JIWGG7Z4.js";
30
30
  import "../chunk-DNM65UCK.js";
31
- import "../chunk-FVL4GUTP.js";
31
+ import "../chunk-EQJRPDUS.js";
32
32
  import "../chunk-WEFPBAAG.js";
33
33
 
34
34
  // bin/mcp-stdio-server.ts