mcp-scraper 0.67.0 → 0.67.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,12 @@ All notable changes to MCP Scraper are documented here. The format is based on [
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.67.1] - 2026-08-26
8
+
9
+ ### Fixed
10
+
11
+ - `commons_host_image` now returns its complete success payload through both readable JSON text and MCP `structuredContent`, so typed clients can consume permanent image provenance without reparsing text.
12
+
7
13
  ## [0.67.0] - 2026-08-26
8
14
 
9
15
  ### Added
@@ -1135,7 +1141,9 @@ All notable changes to MCP Scraper are documented here. The format is based on [
1135
1141
  - Write actions remain unavailable until the account owner explicitly enables them.
1136
1142
  - Provider-specific connection data is normalized into one agent-facing contract.
1137
1143
 
1138
- [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.7...HEAD
1144
+ [Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.67.1...HEAD
1145
+ [0.67.1]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.67.0...v0.67.1
1146
+ [0.67.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.7...v0.67.0
1139
1147
  [0.66.7]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.6...v0.66.7
1140
1148
  [0.66.6]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.5...v0.66.6
1141
1149
  [0.66.5]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.4...v0.66.5
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.67.0`, SHA-256 `03cd764c2ec1741ae0a64373f91324a8f46b523d4bf2ace8d9845f8c45f8d9e4`). 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.67.1`, SHA-256 `257eb19b72d228cc4aec4973778036cfc7c13419da6de35391ea7179ce629a03`). 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
 
@@ -50238,7 +50238,7 @@ var PACKAGE_VERSION;
50238
50238
  var init_version = __esm({
50239
50239
  "src/version.ts"() {
50240
50240
  "use strict";
50241
- PACKAGE_VERSION = "0.67.0";
50241
+ PACKAGE_VERSION = "0.67.1";
50242
50242
  }
50243
50243
  });
50244
50244
 
@@ -57192,6 +57192,18 @@ async function readResponseData(res) {
57192
57192
  return text2;
57193
57193
  }
57194
57194
  }
57195
+ function attachJsonStructuredContent(result) {
57196
+ if (result.isError || result.structuredContent) return result;
57197
+ const text2 = result.content.find((part) => part.type === "text");
57198
+ if (!text2 || text2.type !== "text") return result;
57199
+ try {
57200
+ const parsed = JSON.parse(text2.text);
57201
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return result;
57202
+ return { ...result, structuredContent: parsed };
57203
+ } catch {
57204
+ return result;
57205
+ }
57206
+ }
57195
57207
  function httpErrorPayload(path6, res, data) {
57196
57208
  const objectData = data && typeof data === "object" && !Array.isArray(data) ? data : null;
57197
57209
  const rawCode = objectData?.code ?? objectData?.errorCode ?? objectData?.error_code;
@@ -57811,8 +57823,8 @@ var init_http_mcp_tool_executor = __esm({
57811
57823
  commonsGetProposal(input) {
57812
57824
  return this.getJson(`/commons/proposals/${encodeURIComponent(input.proposalId)}`);
57813
57825
  }
57814
- commonsHostImage(input) {
57815
- return this.call("/commons/images", input);
57826
+ async commonsHostImage(input) {
57827
+ return attachJsonStructuredContent(await this.call("/commons/images", input));
57816
57828
  }
57817
57829
  commonsUpdateEditorialArticle(input) {
57818
57830
  const { idempotencyKey: idempotencyKey4, ...body } = input;
@@ -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-MFVYRB6I.js"),
20
+ import("../server-ROIJWWJG.js"),
21
21
  import("../worker-JGWV2LID.js"),
22
22
  import("../db-ZGZAKYBW.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.67.0";
33
+ var PACKAGE_VERSION = "0.67.1";
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-GT63KEUB.js";
16
+ } from "../chunk-VES63X4Q.js";
17
17
 
18
18
  // src/cli/human-cli.ts
19
19
  import { Command } from "commander";
@@ -3,7 +3,7 @@
3
3
 
4
4
  // release-message.json
5
5
  var release_message_default = {
6
- message: "Transparent Commons can now turn pasted images, generated image bytes, stored image artifacts, direct image URLs, or ordinary webpage URLs into one permanent Commons-hosted image before validation and publishing."
6
+ message: "Transparent Commons image hosting now accepts the source a user has and returns the same permanent-image result in both readable and typed MCP channels."
7
7
  };
8
8
 
9
9
  // src/install-terminal.ts
@@ -112,7 +112,7 @@ function renderInstallTerminal(options) {
112
112
  }
113
113
 
114
114
  // src/version.ts
115
- var PACKAGE_VERSION = "0.67.0";
115
+ var PACKAGE_VERSION = "0.67.1";
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;
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  renderInstallTerminal
4
- } from "../chunk-IHDTONZV.js";
4
+ } from "../chunk-HUNXSVKU.js";
5
5
  import {
6
6
  PACKAGE_VERSION
7
- } from "../chunk-GT63KEUB.js";
7
+ } from "../chunk-VES63X4Q.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;
@@ -497,6 +497,18 @@ async function readResponseData(res) {
497
497
  return text;
498
498
  }
499
499
  }
500
+ function attachJsonStructuredContent(result) {
501
+ if (result.isError || result.structuredContent) return result;
502
+ const text = result.content.find((part) => part.type === "text");
503
+ if (!text || text.type !== "text") return result;
504
+ try {
505
+ const parsed = JSON.parse(text.text);
506
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return result;
507
+ return { ...result, structuredContent: parsed };
508
+ } catch {
509
+ return result;
510
+ }
511
+ }
500
512
  function httpErrorPayload(path, res, data) {
501
513
  const objectData = data && typeof data === "object" && !Array.isArray(data) ? data : null;
502
514
  const rawCode = objectData?.code ?? objectData?.errorCode ?? objectData?.error_code;
@@ -1107,8 +1119,8 @@ var HttpMcpToolExecutor = class {
1107
1119
  commonsGetProposal(input) {
1108
1120
  return this.getJson(`/commons/proposals/${encodeURIComponent(input.proposalId)}`);
1109
1121
  }
1110
- commonsHostImage(input) {
1111
- return this.call("/commons/images", input);
1122
+ async commonsHostImage(input) {
1123
+ return attachJsonStructuredContent(await this.call("/commons/images", input));
1112
1124
  }
1113
1125
  commonsUpdateEditorialArticle(input) {
1114
1126
  const { idempotencyKey, ...body } = input;
@@ -1310,7 +1322,7 @@ render();
1310
1322
  }
1311
1323
 
1312
1324
  // src/version.ts
1313
- var PACKAGE_VERSION = "0.67.0";
1325
+ var PACKAGE_VERSION = "0.67.1";
1314
1326
 
1315
1327
  // src/mcp/input-field-descriptions.ts
1316
1328
  var import_zod = require("zod");
@@ -18796,7 +18808,7 @@ var HostedMemoryMcpToolExecutor = class {
18796
18808
 
18797
18809
  // release-message.json
18798
18810
  var release_message_default = {
18799
- message: "Transparent Commons can now turn pasted images, generated image bytes, stored image artifacts, direct image URLs, or ordinary webpage URLs into one permanent Commons-hosted image before validation and publishing."
18811
+ message: "Transparent Commons image hosting now accepts the source a user has and returns the same permanent-image result in both readable and typed MCP channels."
18800
18812
  };
18801
18813
 
18802
18814
  // src/install-terminal.ts
@@ -13,18 +13,18 @@ import {
13
13
  registerScheduledResultsMcpTools,
14
14
  registerSerpIntelligenceCaptureTools,
15
15
  resolveDeploymentProfile
16
- } from "../chunk-XOOKZYZG.js";
16
+ } from "../chunk-STQQOEHC.js";
17
17
  import "../chunk-PGJQDMC2.js";
18
18
  import "../chunk-2L4C4DAZ.js";
19
19
  import "../chunk-ES25GP6C.js";
20
20
  import {
21
21
  renderInstallTerminal
22
- } from "../chunk-IHDTONZV.js";
22
+ } from "../chunk-HUNXSVKU.js";
23
23
  import "../chunk-VXLU74YZ.js";
24
24
  import "../chunk-GGZEC22A.js";
25
25
  import {
26
26
  PACKAGE_VERSION
27
- } from "../chunk-GT63KEUB.js";
27
+ } from "../chunk-VES63X4Q.js";
28
28
  import "../chunk-DNM65UCK.js";
29
29
  import "../chunk-AYJHI2FK.js";
30
30
  import "../chunk-65FTMB7G.js";
@@ -1,6 +1,6 @@
1
1
  // release-message.json
2
2
  var release_message_default = {
3
- message: "Transparent Commons can now turn pasted images, generated image bytes, stored image artifacts, direct image URLs, or ordinary webpage URLs into one permanent Commons-hosted image before validation and publishing."
3
+ message: "Transparent Commons image hosting now accepts the source a user has and returns the same permanent-image result in both readable and typed MCP channels."
4
4
  };
5
5
 
6
6
  // src/install-terminal.ts
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-VXLU74YZ.js";
26
26
  import {
27
27
  PACKAGE_VERSION
28
- } from "./chunk-GT63KEUB.js";
28
+ } from "./chunk-VES63X4Q.js";
29
29
  import {
30
30
  createPrivateArtifact,
31
31
  privateArtifactOwnerId,
@@ -12136,6 +12136,18 @@ async function readResponseData(res) {
12136
12136
  return text;
12137
12137
  }
12138
12138
  }
12139
+ function attachJsonStructuredContent(result) {
12140
+ if (result.isError || result.structuredContent) return result;
12141
+ const text = result.content.find((part) => part.type === "text");
12142
+ if (!text || text.type !== "text") return result;
12143
+ try {
12144
+ const parsed = JSON.parse(text.text);
12145
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return result;
12146
+ return { ...result, structuredContent: parsed };
12147
+ } catch {
12148
+ return result;
12149
+ }
12150
+ }
12139
12151
  function httpErrorPayload(path, res, data) {
12140
12152
  const objectData = data && typeof data === "object" && !Array.isArray(data) ? data : null;
12141
12153
  const rawCode = objectData?.code ?? objectData?.errorCode ?? objectData?.error_code;
@@ -12746,8 +12758,8 @@ var HttpMcpToolExecutor = class {
12746
12758
  commonsGetProposal(input) {
12747
12759
  return this.getJson(`/commons/proposals/${encodeURIComponent(input.proposalId)}`);
12748
12760
  }
12749
- commonsHostImage(input) {
12750
- return this.call("/commons/images", input);
12761
+ async commonsHostImage(input) {
12762
+ return attachJsonStructuredContent(await this.call("/commons/images", input));
12751
12763
  }
12752
12764
  commonsUpdateEditorialArticle(input) {
12753
12765
  const { idempotencyKey, ...body } = input;
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var PACKAGE_VERSION = "0.67.0";
2
+ var PACKAGE_VERSION = "0.67.1";
3
3
 
4
4
  export {
5
5
  PACKAGE_VERSION
@@ -199,7 +199,7 @@ import {
199
199
  resolveDeploymentProfile,
200
200
  resolveLocalSourcebookSchemaType,
201
201
  transcribeMediaUrl
202
- } from "./chunk-XOOKZYZG.js";
202
+ } from "./chunk-STQQOEHC.js";
203
203
  import {
204
204
  auditImageUrls,
205
205
  auditImages,
@@ -256,7 +256,7 @@ import {
256
256
  } from "./chunk-GGZEC22A.js";
257
257
  import {
258
258
  PACKAGE_VERSION
259
- } from "./chunk-GT63KEUB.js";
259
+ } from "./chunk-VES63X4Q.js";
260
260
  import {
261
261
  SITE_EXTRACT_ARTIFACT_PREFIX,
262
262
  abandonExtractSettlement,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-scraper",
3
- "version": "0.67.0",
3
+ "version": "0.67.1",
4
4
  "description": "MCP server for MCP Scraper web intelligence tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",