mcp-scraper 0.57.0 → 0.57.1

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,16 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.57.1] - 2026-08-16
8
+
9
+ ### Fixed
10
+
11
+ - Commons image hosting resolves the dedicated public store token and refuses to store anything unless the resolved store is Vercel Blob. `BLOB_READ_WRITE_TOKEN` is empty in production, so the previous release would have written a `file://` path into a public wiki entity instead of failing; hosting now fails loudly with `image_storage_unconfigured`.
12
+
13
+ ### Added
14
+
15
+ - `scripts/backfill-commons-images.ts` hosts the still-reachable featured images and article media on Commons storage, rewrites the entity, and records a contribution-ledger entry per rewrite. Dry run by default; `--apply` to write. Run against production: 15 featured images and 20 media sets moved onto Commons hosting; 26 sources were already dead 404s and one SVG is rejected by policy.
16
+
7
17
  ## [0.57.0] - 2026-08-16
8
18
 
9
19
  ### Fixed
package/README.md CHANGED
@@ -90,7 +90,7 @@ Build the branded one-click bundle:
90
90
  npm run build:mcpb
91
91
  ```
92
92
 
93
- 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.57.0`, SHA-256 `9d85d704c6c961f69b42bcdc015627abfb6178e2dc832712023a112ac858e53e`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, and API-key configuration field from the bundle manifest.
93
+ 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.57.1`, SHA-256 `ea84195321a47e7550348be6f61ed3e6a293a679c20a6cd39e77cd37870bd636`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, and API-key configuration field from the bundle manifest.
94
94
 
95
95
  The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
96
96
 
@@ -44624,7 +44624,7 @@ var PACKAGE_VERSION;
44624
44624
  var init_version = __esm({
44625
44625
  "src/version.ts"() {
44626
44626
  "use strict";
44627
- PACKAGE_VERSION = "0.57.0";
44627
+ PACKAGE_VERSION = "0.57.1";
44628
44628
  }
44629
44629
  });
44630
44630
 
@@ -64399,8 +64399,12 @@ function decodeBase64Image(value) {
64399
64399
  }
64400
64400
  return bytes;
64401
64401
  }
64402
+ function commonsImageBlobStore() {
64403
+ const token6 = process.env.COMMONS_IMAGE_READ_WRITE_TOKEN?.trim() || process.env.COMMONS_IMAGE_BLOB_READ_WRITE_TOKEN?.trim() || process.env.BLOB_READ_WRITE_TOKEN?.trim();
64404
+ return token6 ? new VercelBlobStore(token6) : getBlobStore();
64405
+ }
64402
64406
  function isCommonsHostedImageUrl(url) {
64403
- return /^https:\/\/[^/]*(\.public\.blob\.vercel-storage\.com|blob\.vercel-storage\.com)\//i.test(url) || url.startsWith("file://");
64407
+ return /^https:\/\/[^/]*(\.public\.blob\.vercel-storage\.com|blob\.vercel-storage\.com)\//i.test(url);
64404
64408
  }
64405
64409
  async function hostCommonsImage(input) {
64406
64410
  if (hostOverride) return hostOverride(input);
@@ -64436,7 +64440,15 @@ async function hostCommonsImage(input) {
64436
64440
  }
64437
64441
  const extension = contentType.split("/")[1] === "jpeg" ? "jpg" : contentType.split("/")[1];
64438
64442
  const storageKey = `commons/images/${digest2.slice(0, 2)}/${digest2}.${extension}`;
64439
- const stored = await getBlobStore().put(storageKey, bytes, contentType);
64443
+ const store = commonsImageBlobStore();
64444
+ if (store.kind !== "vercel-blob") {
64445
+ throw new CommonsImageError(
64446
+ "image_storage_unconfigured",
64447
+ "Commons image hosting needs a Vercel Blob token. Refusing to write a local file path into a public wiki entity.",
64448
+ 422
64449
+ );
64450
+ }
64451
+ const stored = await store.put(storageKey, bytes, contentType);
64440
64452
  const id = `TPW-IMG-${digest2.slice(0, 16).toUpperCase()}`;
64441
64453
  await getDb().execute({
64442
64454
  sql: `