mcp-scraper 0.84.0 → 0.86.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 (26) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/README.md +2 -2
  3. package/dist/{analytics-repository-4VZQ4TKW.js → analytics-repository-GGJJCVVP.js} +9 -1
  4. package/dist/bin/api-server.js +3 -3
  5. package/dist/bin/mcp-scraper-cli.js +3 -3
  6. package/dist/bin/mcp-scraper-core.js +6 -6
  7. package/dist/bin/mcp-scraper-install.js +2 -2
  8. package/dist/bin/mcp-stdio-server.js +6 -6
  9. package/dist/{chunk-OUTE3755.js → chunk-36EAKRR6.js} +1 -1
  10. package/dist/{chunk-LHIWX7RM.js → chunk-6IOGTFNS.js} +1 -1
  11. package/dist/{chunk-NLWBM55O.js → chunk-7523VOQT.js} +2 -2
  12. package/dist/{chunk-U77X4NIR.js → chunk-FBB6DEUV.js} +5735 -292
  13. package/dist/{chunk-ZB55UMMF.js → chunk-KQWVJOVR.js} +1 -1
  14. package/dist/{chunk-UM7DCY6W.js → chunk-NKRO2SUO.js} +3 -3
  15. package/dist/{chunk-4S6HPHPB.js → chunk-P7FWOMU7.js} +6 -9
  16. package/dist/{chunk-WDWWCNMW.js → chunk-QKWNEMGH.js} +3 -3
  17. package/dist/{chunk-4KFD2WXG.js → chunk-WFGAR4BZ.js} +33 -7
  18. package/dist/{chunk-TLRJV4SL.js → chunk-X623GTBV.js} +427 -155
  19. package/dist/{extract-bundle-SI35H4HR.js → extract-bundle-FALNLKYY.js} +2 -2
  20. package/dist/{gmail-service-MOZ6S56I.js → gmail-service-BUSU4BVX.js} +2 -2
  21. package/dist/{server-3F3JMHBF.js → server-OZBTZIDZ.js} +1518 -1249
  22. package/dist/{site-extract-repository-3WC3VB5Y.js → site-extract-repository-S5FYNFDY.js} +2 -2
  23. package/dist/{worker-VTFGHWZL.js → worker-OQSFSLNG.js} +1 -1
  24. package/package.json +15 -4
  25. package/public/.well-known/xray-install.json +5 -8
  26. package/public/agent-install.md +4 -8
package/CHANGELOG.md CHANGED
@@ -4,6 +4,42 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.86.0] - 2026-09-01
8
+
9
+ ### Added
10
+
11
+ - Added separate authenticated Research and native CRM workspaces with owner-scoped people, organizations, activities, tasks, deals, pipelines, imports, duplicate review, and quality queues.
12
+ - Added 27 governed Memory tools, including native CRM work search and pipeline list/upsert, plus X-Ray handoffs that create or update canonical relationship records without making the analytics store a second CRM.
13
+ - Added operator and agent documentation for choosing Research versus CRM, stable ID handoffs, migration gates, preview/apply authority, first-party tracking limits, and provider readiness.
14
+
15
+ ### Changed
16
+
17
+ - Expanded the unified MCP contract to 377 tools and the direct Memory contract to 148 tools, with generated Node, Python, CLI, cURL, and public product projections kept in parity.
18
+ - Redirected legacy Analytics CRM bookmarks into native CRM Settings while preserving recognized X-Ray context, and made Vault creation choose an explicit Research or CRM domain.
19
+
20
+ ### Removed
21
+
22
+ - Withdrew all public Salesforce, Pipedrive, Stripe, and other external CRM setup, discovery, synchronization, and write operations that lack the complete provider release evidence contract.
23
+
24
+ ### Security
25
+
26
+ - Kept Research evidence and managed CRM relationships in separate schemas and authority domains; counterpart links copy no fields, governed mutations use owner-scoped IDs and idempotency, and real-customer migration remains blocked pending explicit approval.
27
+
28
+ ## [0.85.0] - 2026-09-01
29
+
30
+ ### Changed
31
+
32
+ - Corrected X-Ray's public contract to a provider-neutral measurement foundation: the Pixel, seven observed attribution models, structured post-purchase surveys, explicit Observed + Reported impact, privacy lifecycle, and truthful unavailable view-evidence states remain supported.
33
+ - Advanced the X-Ray install protocol to 3.0.0 and removed provider authorization and revenue-source continuations from generated install guidance.
34
+
35
+ ### Removed
36
+
37
+ - Removed the four revenue-source setup MCP tools, five REST operations, revenue-setup ResourceTemplate, Stripe dashboard workflow, and deployable Stripe, Salesforce, and Pipedrive Nango registrations until each provider has complete production receipts.
38
+
39
+ ### Fixed
40
+
41
+ - Routed the public X-Ray product page and nested attribution and SaaS guides through the canonical `mcpscraper.dev` host instead of leaving the successfully deployed web routes unreachable behind the API project.
42
+
7
43
  ## [0.84.0] - 2026-09-01
8
44
 
9
45
  ### Added
@@ -1636,7 +1672,8 @@ All notable changes to MCP Scraper are documented here. The format is based on [
1636
1672
  - Write actions remain unavailable until the account owner explicitly enables them.
1637
1673
  - Provider-specific connection data is normalized into one agent-facing contract.
1638
1674
 
1639
- [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.84.0...HEAD
1675
+ [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.86.0...HEAD
1676
+ [0.86.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.85.0...v0.86.0
1640
1677
  [0.84.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.5...v0.84.0
1641
1678
  [0.83.5]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.4...v0.83.5
1642
1679
  [0.83.4]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.3...v0.83.4
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.84.0`, SHA-256 `488d73bb3e41439c6b3676a25850ab4e9b883c29986b59732474ac3bfd48f79b`). 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.86.0`, SHA-256 `f8de9e415f4215c7d244ed18222640aabea0743c063c95ce5ad7f3d44303700e`). 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
 
@@ -337,7 +337,7 @@ The `mcp-scraper` server (and the MCPB bundle, which runs it) exposes both secti
337
337
 
338
338
  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.
339
339
 
340
- The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 373 tools: 272 scraper, browser, workflow, billing, connected-service, and personal-assistant tools plus 101 durable-memory tools. The scraper-side inventory includes complete Gmail selection, message, attachment, export, bulk-action, and Memory-import workflows; governed personal-assistant commands, messaging, approvals, grants, number setup, and execution readback; 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 setup, analytics, attribution, authoritative SaaS revenue, post-purchase surveys, reported impact, view-evidence status, 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.
340
+ The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 377 tools: 249 scraper, browser, workflow, billing, connected-service, and personal-assistant tools plus 128 durable-memory tools. The scraper-side inventory includes complete Gmail selection, message, attachment, export, bulk-action, and Memory-import workflows; governed personal-assistant commands, messaging, approvals, grants, number setup, and execution readback; 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 setup, analytics, seven-model attribution, structured post-purchase surveys, reported impact, truthful view-evidence status, CRM policy and receipt, campaign, export, and scheduled-report tools. Provider setup remains absent until its authorization, ingestion, reconciliation, privacy, canary, cleanup, and deployment receipts are complete. 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.
341
341
 
342
342
  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.
343
343
 
@@ -21,11 +21,13 @@ import {
21
21
  appendAnalyticsAuthoritativeOutcomeVersion,
22
22
  archiveAnalyticsActivationDestination,
23
23
  archiveAnalyticsCampaignLink,
24
+ assignAnalyticsIdentityNode,
24
25
  backfillAnalyticsConfirmedHistory,
25
26
  claimAnalyticsCrmImportRows,
26
27
  claimAnalyticsFormDeliveryJobs,
27
28
  closeAnalyticsPool,
28
29
  completeAnalyticsCrmImportRow,
30
+ completeAnalyticsFormBridgeDelivery,
29
31
  completeAnalyticsFormDelivery,
30
32
  consumeAnalyticsSurveyInvite,
31
33
  createAnalyticsActivationDestination,
@@ -39,6 +41,7 @@ import {
39
41
  deferAnalyticsCrmImportRow,
40
42
  deferAnalyticsFormDelivery,
41
43
  deleteAnalyticsSite,
44
+ deterministicAnalyticsCrmEntityId,
42
45
  enrichAnalyticsExistingCrmIdentity,
43
46
  getAnalyticsActivationDestinationConnectionRef,
44
47
  getAnalyticsPersonJourney,
@@ -69,6 +72,7 @@ import {
69
72
  projectAnalyticsAuthoritativeConversion,
70
73
  projectAnalyticsPixelEventConsent,
71
74
  queueAnalyticsActivation,
75
+ queueAnalyticsFormBridgeTransaction,
72
76
  queueAnalyticsFormDelivery,
73
77
  recordAnalyticsFormSubmission,
74
78
  redeemAnalyticsLinkerRecord,
@@ -89,7 +93,7 @@ import {
89
93
  updateAnalyticsPixel,
90
94
  upsertAnalyticsAdSpend,
91
95
  upsertAnalyticsHostGroup
92
- } from "./chunk-TLRJV4SL.js";
96
+ } from "./chunk-X623GTBV.js";
93
97
  import "./chunk-C5Z4OFKW.js";
94
98
  import "./chunk-YXNDOQXN.js";
95
99
  export {
@@ -115,11 +119,13 @@ export {
115
119
  appendAnalyticsAuthoritativeOutcomeVersion,
116
120
  archiveAnalyticsActivationDestination,
117
121
  archiveAnalyticsCampaignLink,
122
+ assignAnalyticsIdentityNode,
118
123
  backfillAnalyticsConfirmedHistory,
119
124
  claimAnalyticsCrmImportRows,
120
125
  claimAnalyticsFormDeliveryJobs,
121
126
  closeAnalyticsPool,
122
127
  completeAnalyticsCrmImportRow,
128
+ completeAnalyticsFormBridgeDelivery,
123
129
  completeAnalyticsFormDelivery,
124
130
  consumeAnalyticsSurveyInvite,
125
131
  createAnalyticsActivationDestination,
@@ -133,6 +139,7 @@ export {
133
139
  deferAnalyticsCrmImportRow,
134
140
  deferAnalyticsFormDelivery,
135
141
  deleteAnalyticsSite,
142
+ deterministicAnalyticsCrmEntityId,
136
143
  enrichAnalyticsExistingCrmIdentity,
137
144
  getAnalyticsActivationDestinationConnectionRef,
138
145
  getAnalyticsPersonJourney,
@@ -163,6 +170,7 @@ export {
163
170
  projectAnalyticsAuthoritativeConversion,
164
171
  projectAnalyticsPixelEventConsent,
165
172
  queueAnalyticsActivation,
173
+ queueAnalyticsFormBridgeTransaction,
166
174
  queueAnalyticsFormDelivery,
167
175
  recordAnalyticsFormSubmission,
168
176
  redeemAnalyticsLinkerRecord,
@@ -17,8 +17,8 @@ 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-3F3JMHBF.js"),
21
- import("../worker-VTFGHWZL.js"),
20
+ import("../server-OZBTZIDZ.js"),
21
+ import("../worker-OQSFSLNG.js"),
22
22
  import("../db-Z34LPZNR.js")
23
23
  ]);
24
24
  const PORT = parseInt(process.env.PORT ?? "3001");
@@ -26,7 +26,7 @@ async function main() {
26
26
  await personalAssistantProductionStartup;
27
27
  await migrate();
28
28
  if (process.env.ANALYTICS_DATABASE_URL) {
29
- const { migrateAnalytics } = await import("../analytics-repository-4VZQ4TKW.js");
29
+ const { migrateAnalytics } = await import("../analytics-repository-GGJJCVVP.js");
30
30
  await migrateAnalytics();
31
31
  }
32
32
  startWorker();
@@ -6,7 +6,7 @@ import {
6
6
  openWorkflowReport,
7
7
  runWorkflow,
8
8
  workflowOutputBaseDir
9
- } from "../chunk-LHIWX7RM.js";
9
+ } from "../chunk-6IOGTFNS.js";
10
10
  import "../chunk-RJ7JVYKU.js";
11
11
  import "../chunk-OWF2JJKN.js";
12
12
  import {
@@ -15,11 +15,11 @@ import {
15
15
  XRAY_INSTALL_PROTOCOL_VERSION,
16
16
  renderXraySetupPrompt,
17
17
  xrayHostRecipe
18
- } from "../chunk-4S6HPHPB.js";
18
+ } from "../chunk-P7FWOMU7.js";
19
19
  import "../chunk-GGZEC22A.js";
20
20
  import {
21
21
  PACKAGE_VERSION
22
- } from "../chunk-OUTE3755.js";
22
+ } from "../chunk-36EAKRR6.js";
23
23
 
24
24
  // src/cli/human-cli.ts
25
25
  import { Command } from "commander";
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runMcpScraperStdio
4
- } from "../chunk-WDWWCNMW.js";
5
- import "../chunk-U77X4NIR.js";
4
+ } from "../chunk-QKWNEMGH.js";
5
+ import "../chunk-FBB6DEUV.js";
6
6
  import "../chunk-PGJQDMC2.js";
7
7
  import "../chunk-DNM65UCK.js";
8
8
  import "../chunk-T3MZISOF.js";
9
9
  import "../chunk-6HAV7LCE.js";
10
- import "../chunk-UM7DCY6W.js";
10
+ import "../chunk-NKRO2SUO.js";
11
11
  import "../chunk-OM7HVEJ3.js";
12
12
  import "../chunk-OPQIGAFB.js";
13
- import "../chunk-NLWBM55O.js";
14
- import "../chunk-4S6HPHPB.js";
13
+ import "../chunk-7523VOQT.js";
14
+ import "../chunk-P7FWOMU7.js";
15
15
  import "../chunk-GGZEC22A.js";
16
- import "../chunk-OUTE3755.js";
16
+ import "../chunk-36EAKRR6.js";
17
17
  import "../chunk-YXNDOQXN.js";
18
18
 
19
19
  // src/mcp/thorbit-restricted-tool-surface.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  renderInstallTerminal
4
- } from "../chunk-NLWBM55O.js";
4
+ } from "../chunk-7523VOQT.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-OUTE3755.js";
7
+ } from "../chunk-36EAKRR6.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,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runMcpScraperStdio
4
- } from "../chunk-WDWWCNMW.js";
5
- import "../chunk-U77X4NIR.js";
4
+ } from "../chunk-QKWNEMGH.js";
5
+ import "../chunk-FBB6DEUV.js";
6
6
  import "../chunk-PGJQDMC2.js";
7
7
  import "../chunk-DNM65UCK.js";
8
8
  import "../chunk-T3MZISOF.js";
9
9
  import "../chunk-6HAV7LCE.js";
10
- import "../chunk-UM7DCY6W.js";
10
+ import "../chunk-NKRO2SUO.js";
11
11
  import "../chunk-OM7HVEJ3.js";
12
12
  import "../chunk-OPQIGAFB.js";
13
- import "../chunk-NLWBM55O.js";
14
- import "../chunk-4S6HPHPB.js";
13
+ import "../chunk-7523VOQT.js";
14
+ import "../chunk-P7FWOMU7.js";
15
15
  import "../chunk-GGZEC22A.js";
16
- import "../chunk-OUTE3755.js";
16
+ import "../chunk-36EAKRR6.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.84.0";
2
+ var PACKAGE_VERSION = "0.86.0";
3
3
 
4
4
  export {
5
5
  PACKAGE_VERSION
@@ -11,7 +11,7 @@ import {
11
11
  extractContactEvidence,
12
12
  extractSerpEmailEvidence,
13
13
  selectPrimaryEmail
14
- } from "./chunk-4S6HPHPB.js";
14
+ } from "./chunk-P7FWOMU7.js";
15
15
 
16
16
  // src/lib/slugify.ts
17
17
  function slugify(s) {
@@ -1,6 +1,6 @@
1
1
  // release-message.json
2
2
  var release_message_default = {
3
- message: "Connect authoritative subscription outcomes, keep customer-reported influence separate from observed attribution, and complete the evidence-governed SaaS setup through dashboard or MCP."
3
+ message: "Keep X-Ray measurement, seven-model attribution, structured surveys, privacy controls, and truthful evidence states while withdrawing provider setup that is not yet production-proven."
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("(373 MCP tools)", "muted", color)}`,
58
+ `${colorize("Tools", "cyan", color)} ${colorize("(377 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),