mcp-scraper 0.72.5 → 0.72.6

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.72.6] - 2026-08-27
8
+
9
+ ### Fixed
10
+
11
+ - Gmail Memory import cold starts now probe the released import tables before attempting additive schema creation, avoiding production DDL contention before a resumable job can acquire its lease.
12
+
7
13
  ## [0.72.5] - 2026-08-27
8
14
 
9
15
  ### Fixed
@@ -1272,7 +1278,8 @@ All notable changes to MCP Scraper are documented here. The format is based on [
1272
1278
  - Write actions remain unavailable until the account owner explicitly enables them.
1273
1279
  - Provider-specific connection data is normalized into one agent-facing contract.
1274
1280
 
1275
- [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.5...HEAD
1281
+ [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.6...HEAD
1282
+ [0.72.6]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.5...v0.72.6
1276
1283
  [0.72.5]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.4...v0.72.5
1277
1284
  [0.72.4]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.3...v0.72.4
1278
1285
  [0.72.3]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.72.2...v0.72.3
package/README.md CHANGED
@@ -159,7 +159,7 @@ Build the branded one-click bundle:
159
159
  npm run build:mcpb
160
160
  ```
161
161
 
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.5`, SHA-256 `fa1470cbf16f4586a6009e32f0278078e7a99065676bf8ad1975db70736ad5fb`). 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.
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.
163
163
 
164
164
  The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
165
165
 
@@ -44937,6 +44937,14 @@ async function ensureGmailImportSchema() {
44937
44937
  if (schemaReady3 && schemaDb7 === db) return schemaReady3;
44938
44938
  schemaDb7 = db;
44939
44939
  schemaReady3 = (async () => {
44940
+ try {
44941
+ await db.batch([
44942
+ `SELECT 1 FROM gmail_import_plans LIMIT 1`,
44943
+ `SELECT 1 FROM gmail_import_jobs LIMIT 1`
44944
+ ], "read");
44945
+ return;
44946
+ } catch {
44947
+ }
44940
44948
  await db.execute(`CREATE TABLE IF NOT EXISTS gmail_import_plans (
44941
44949
  import_plan_id TEXT PRIMARY KEY, owner_identity TEXT NOT NULL, plan_fingerprint TEXT NOT NULL,
44942
44950
  plan_json TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT NOT NULL,
@@ -45603,7 +45611,7 @@ function errorResponse(c, error) {
45603
45611
  if (retryAfterMs) c.header("Retry-After", String(Math.max(1, Math.ceil(retryAfterMs / 1e3))));
45604
45612
  return c.json({ ok: false, code: error.code, error: error.message, retryable: "retryable" in error ? error.retryable : false }, error.status);
45605
45613
  }
45606
- console.error("[gmail-route]", error instanceof Error ? error.name : "unknown_error");
45614
+ console.error("[gmail-route]", error instanceof Error ? { name: error.name, message: error.message, stack: error.stack } : { name: "unknown_error" });
45607
45615
  return c.json({ ok: false, code: "gmail_unavailable", error: "The Gmail workflow is temporarily unavailable.", retryable: true }, 503);
45608
45616
  }
45609
45617
  function schedulerAuthError(c, error) {
@@ -54196,7 +54204,7 @@ var PACKAGE_VERSION;
54196
54204
  var init_version = __esm({
54197
54205
  "src/version.ts"() {
54198
54206
  "use strict";
54199
- PACKAGE_VERSION = "0.72.5";
54207
+ PACKAGE_VERSION = "0.72.6";
54200
54208
  }
54201
54209
  });
54202
54210
 
@@ -17,7 +17,7 @@ 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-IABKDP7V.js"),
20
+ import("../server-LQ6TMI5W.js"),
21
21
  import("../worker-JQORPCFQ.js"),
22
22
  import("../db-566MOHHD.js")
23
23
  ]);
@@ -30,7 +30,7 @@ var import_promises5 = require("fs/promises");
30
30
  var import_node_path3 = require("path");
31
31
 
32
32
  // src/version.ts
33
- var PACKAGE_VERSION = "0.72.5";
33
+ var PACKAGE_VERSION = "0.72.6";
34
34
 
35
35
  // src/cli/agent-config.ts
36
36
  function apiKeyValue(options) {
@@ -13,7 +13,7 @@ import "../chunk-VXLU74YZ.js";
13
13
  import "../chunk-GGZEC22A.js";
14
14
  import {
15
15
  PACKAGE_VERSION
16
- } from "../chunk-WHXNA6GK.js";
16
+ } from "../chunk-D5CX3WHG.js";
17
17
 
18
18
  // src/cli/human-cli.ts
19
19
  import { Command } from "commander";
@@ -112,7 +112,7 @@ function renderInstallTerminal(options) {
112
112
  }
113
113
 
114
114
  // src/version.ts
115
- var PACKAGE_VERSION = "0.72.5";
115
+ var PACKAGE_VERSION = "0.72.6";
116
116
 
117
117
  // bin/mcp-scraper-install.ts
118
118
  var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
@@ -4,7 +4,7 @@ import {
4
4
  } from "../chunk-RAFQEPJ4.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-WHXNA6GK.js";
7
+ } from "../chunk-D5CX3WHG.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;
@@ -6950,7 +6950,7 @@ render();
6950
6950
  }
6951
6951
 
6952
6952
  // src/version.ts
6953
- var PACKAGE_VERSION = "0.72.5";
6953
+ var PACKAGE_VERSION = "0.72.6";
6954
6954
 
6955
6955
  // src/mcp/input-field-descriptions.ts
6956
6956
  var import_zod2 = require("zod");
@@ -13,7 +13,7 @@ import {
13
13
  registerScheduledResultsMcpTools,
14
14
  registerSerpIntelligenceCaptureTools,
15
15
  resolveDeploymentProfile
16
- } from "../chunk-3SECYTNB.js";
16
+ } from "../chunk-XRH2DUAQ.js";
17
17
  import "../chunk-PGJQDMC2.js";
18
18
  import "../chunk-T3MZISOF.js";
19
19
  import "../chunk-7RQULQF3.js";
@@ -26,7 +26,7 @@ import "../chunk-VXLU74YZ.js";
26
26
  import "../chunk-GGZEC22A.js";
27
27
  import {
28
28
  PACKAGE_VERSION
29
- } from "../chunk-WHXNA6GK.js";
29
+ } from "../chunk-D5CX3WHG.js";
30
30
  import "../chunk-DNM65UCK.js";
31
31
  import "../chunk-FVL4GUTP.js";
32
32
  import "../chunk-WEFPBAAG.js";
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var PACKAGE_VERSION = "0.72.5";
2
+ var PACKAGE_VERSION = "0.72.6";
3
3
 
4
4
  export {
5
5
  PACKAGE_VERSION
@@ -32,7 +32,7 @@ import {
32
32
  } from "./chunk-VXLU74YZ.js";
33
33
  import {
34
34
  PACKAGE_VERSION
35
- } from "./chunk-WHXNA6GK.js";
35
+ } from "./chunk-D5CX3WHG.js";
36
36
  import {
37
37
  createPrivateArtifact,
38
38
  privateArtifactOwnerId,
@@ -271,7 +271,7 @@ import {
271
271
  resolveDeploymentProfile,
272
272
  resolveLocalSourcebookSchemaType,
273
273
  transcribeMediaUrl
274
- } from "./chunk-3SECYTNB.js";
274
+ } from "./chunk-XRH2DUAQ.js";
275
275
  import {
276
276
  auditImageUrls,
277
277
  auditImages,
@@ -336,7 +336,7 @@ import {
336
336
  } from "./chunk-GGZEC22A.js";
337
337
  import {
338
338
  PACKAGE_VERSION
339
- } from "./chunk-WHXNA6GK.js";
339
+ } from "./chunk-D5CX3WHG.js";
340
340
  import {
341
341
  SITE_EXTRACT_ARTIFACT_PREFIX,
342
342
  abandonExtractSettlement,
@@ -21385,6 +21385,14 @@ async function ensureGmailImportSchema() {
21385
21385
  if (schemaReady && schemaDb3 === db) return schemaReady;
21386
21386
  schemaDb3 = db;
21387
21387
  schemaReady = (async () => {
21388
+ try {
21389
+ await db.batch([
21390
+ `SELECT 1 FROM gmail_import_plans LIMIT 1`,
21391
+ `SELECT 1 FROM gmail_import_jobs LIMIT 1`
21392
+ ], "read");
21393
+ return;
21394
+ } catch {
21395
+ }
21388
21396
  await db.execute(`CREATE TABLE IF NOT EXISTS gmail_import_plans (
21389
21397
  import_plan_id TEXT PRIMARY KEY, owner_identity TEXT NOT NULL, plan_fingerprint TEXT NOT NULL,
21390
21398
  plan_json TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT NOT NULL,
@@ -22017,7 +22025,7 @@ function errorResponse(c, error) {
22017
22025
  if (retryAfterMs) c.header("Retry-After", String(Math.max(1, Math.ceil(retryAfterMs / 1e3))));
22018
22026
  return c.json({ ok: false, code: error.code, error: error.message, retryable: "retryable" in error ? error.retryable : false }, error.status);
22019
22027
  }
22020
- console.error("[gmail-route]", error instanceof Error ? error.name : "unknown_error");
22028
+ console.error("[gmail-route]", error instanceof Error ? { name: error.name, message: error.message, stack: error.stack } : { name: "unknown_error" });
22021
22029
  return c.json({ ok: false, code: "gmail_unavailable", error: "The Gmail workflow is temporarily unavailable.", retryable: true }, 503);
22022
22030
  }
22023
22031
  gmailApp.use("/api/gmail/*", auth);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-scraper",
3
- "version": "0.72.5",
3
+ "version": "0.72.6",
4
4
  "description": "MCP server for MCP Scraper web intelligence tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",