mcp-scraper 0.66.2 → 0.66.3
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 +12 -1
- package/README.md +2 -2
- package/dist/bin/api-server.cjs +19 -3
- package/dist/bin/api-server.js +1 -1
- package/dist/bin/mcp-scraper-cli.cjs +1 -1
- package/dist/bin/mcp-scraper-cli.js +1 -1
- package/dist/bin/mcp-scraper-install.cjs +2 -2
- package/dist/bin/mcp-scraper-install.js +2 -2
- package/dist/bin/mcp-stdio-server.cjs +19 -3
- package/dist/bin/mcp-stdio-server.js +3 -3
- package/dist/{chunk-OZDCTNUV.js → chunk-2XVDLF6H.js} +1 -1
- package/dist/{chunk-ALEBMPOW.js → chunk-JBFLOJGM.js} +1 -1
- package/dist/{chunk-YKL3O7IU.js → chunk-LNLMOBP6.js} +18 -2
- package/dist/{server-Q7VYGSGQ.js → server-D47PNEXR.js} +2 -2
- package/package.json +4 -2
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.66.3] - 2026-08-25
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Runtime MCP discovery now omits output schemas across hosted OAuth, API-key, npm stdio, and MCPB clients, while the complete generated developer contract continues to supply typed Node and Python SDK outputs.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Restored compatibility for strict MCP clients that could connect successfully but silently register zero tools when the complete output-schema catalog was advertised; tool calls retain both readable content and structured results.
|
|
16
|
+
|
|
7
17
|
## [0.66.2] - 2026-08-24
|
|
8
18
|
|
|
9
19
|
### Changed
|
|
@@ -1088,7 +1098,8 @@ All notable changes to MCP Scraper are documented here. The format is based on [
|
|
|
1088
1098
|
- Write actions remain unavailable until the account owner explicitly enables them.
|
|
1089
1099
|
- Provider-specific connection data is normalized into one agent-facing contract.
|
|
1090
1100
|
|
|
1091
|
-
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.
|
|
1101
|
+
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.3...HEAD
|
|
1102
|
+
[0.66.3]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.2...v0.66.3
|
|
1092
1103
|
[0.66.2]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.1...v0.66.2
|
|
1093
1104
|
[0.66.1]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.66.0...v0.66.1
|
|
1094
1105
|
[0.66.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.65.1...v0.66.0
|
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.66.
|
|
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.66.3`, SHA-256 `353b034b878340971fc1e07ca2ccf11578d6fd2e2ff894c8da1fa7df2c2bbd2d`). 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
|
|
|
@@ -315,7 +315,7 @@ For Google SERP and Maps tools, callers provide the query, two-letter country co
|
|
|
315
315
|
|
|
316
316
|
The `mcp-scraper` server (and the MCPB bundle, which runs it) exposes both sections through one MCP server.
|
|
317
317
|
|
|
318
|
-
All MCP tools
|
|
318
|
+
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.
|
|
319
319
|
|
|
320
320
|
The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 259 tools: 158 scraper, browser, workflow, billing, and connected-service tools plus 101 durable-memory tools. The scraper-side inventory includes rendered site-content similarity, governed Local Sourcebook tools, Transparent Commons entity, linkset, and publication tools, direct site-export text and image readers, the searchable News Publisher and Editorial Reading Room template workflow, and 24 X-Ray tools for pixel administration, reporting, attribution journeys, campaign links, exports, and scheduled reports. 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.
|
|
321
321
|
|
package/dist/bin/api-server.cjs
CHANGED
|
@@ -49679,7 +49679,7 @@ var PACKAGE_VERSION;
|
|
|
49679
49679
|
var init_version = __esm({
|
|
49680
49680
|
"src/version.ts"() {
|
|
49681
49681
|
"use strict";
|
|
49682
|
-
PACKAGE_VERSION = "0.66.
|
|
49682
|
+
PACKAGE_VERSION = "0.66.3";
|
|
49683
49683
|
}
|
|
49684
49684
|
});
|
|
49685
49685
|
|
|
@@ -50109,14 +50109,30 @@ var init_server_instructions = __esm({
|
|
|
50109
50109
|
});
|
|
50110
50110
|
|
|
50111
50111
|
// src/mcp/output-schema-registry.ts
|
|
50112
|
+
function resolveOutputSchemaMode(env = process.env) {
|
|
50113
|
+
const requested = env.MCP_SCRAPER_OUTPUT_SCHEMA_MODE?.trim().toLowerCase();
|
|
50114
|
+
if (requested) {
|
|
50115
|
+
if (requested === "contract" || requested === "all") return "contract";
|
|
50116
|
+
if (requested === "runtime" || requested === "none" || requested === "essential") return "runtime";
|
|
50117
|
+
throw new Error(`Unsupported MCP_SCRAPER_OUTPUT_SCHEMA_MODE: ${requested}`);
|
|
50118
|
+
}
|
|
50119
|
+
const legacyAdvertisement = env.MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS?.trim().toLowerCase();
|
|
50120
|
+
if (legacyAdvertisement === "true") return "contract";
|
|
50121
|
+
if (legacyAdvertisement === void 0 || legacyAdvertisement === "" || legacyAdvertisement === "false") {
|
|
50122
|
+
return "runtime";
|
|
50123
|
+
}
|
|
50124
|
+
throw new Error(`Unsupported MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS value: ${legacyAdvertisement}`);
|
|
50125
|
+
}
|
|
50112
50126
|
function recordOutputSchema(name, schema) {
|
|
50113
50127
|
OUTPUT_SCHEMAS[name] = schema;
|
|
50114
|
-
return schema;
|
|
50128
|
+
return ADVERTISE_OUTPUT_SCHEMAS ? schema : void 0;
|
|
50115
50129
|
}
|
|
50116
|
-
var OUTPUT_SCHEMAS;
|
|
50130
|
+
var OUTPUT_SCHEMA_MODE, ADVERTISE_OUTPUT_SCHEMAS, OUTPUT_SCHEMAS;
|
|
50117
50131
|
var init_output_schema_registry = __esm({
|
|
50118
50132
|
"src/mcp/output-schema-registry.ts"() {
|
|
50119
50133
|
"use strict";
|
|
50134
|
+
OUTPUT_SCHEMA_MODE = resolveOutputSchemaMode();
|
|
50135
|
+
ADVERTISE_OUTPUT_SCHEMAS = OUTPUT_SCHEMA_MODE === "contract";
|
|
50120
50136
|
OUTPUT_SCHEMAS = {};
|
|
50121
50137
|
}
|
|
50122
50138
|
});
|
package/dist/bin/api-server.js
CHANGED
|
@@ -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-
|
|
20
|
+
import("../server-D47PNEXR.js"),
|
|
21
21
|
import("../worker-UTBUWEXQ.js"),
|
|
22
22
|
import("../db-4RVZ3NYZ.js")
|
|
23
23
|
]);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
// release-message.json
|
|
5
5
|
var release_message_default = {
|
|
6
|
-
message: "
|
|
6
|
+
message: "Strict MCP clients now discover all 259 tools through a compact runtime catalog, while generated SDKs retain complete output types."
|
|
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.66.
|
|
115
|
+
var PACKAGE_VERSION = "0.66.3";
|
|
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-
|
|
4
|
+
} from "../chunk-2XVDLF6H.js";
|
|
5
5
|
import {
|
|
6
6
|
PACKAGE_VERSION
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-JBFLOJGM.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;
|
|
@@ -1232,7 +1232,7 @@ render();
|
|
|
1232
1232
|
}
|
|
1233
1233
|
|
|
1234
1234
|
// src/version.ts
|
|
1235
|
-
var PACKAGE_VERSION = "0.66.
|
|
1235
|
+
var PACKAGE_VERSION = "0.66.3";
|
|
1236
1236
|
|
|
1237
1237
|
// src/mcp/input-field-descriptions.ts
|
|
1238
1238
|
var import_zod = require("zod");
|
|
@@ -2237,10 +2237,26 @@ async function annotateReplayVideo(inputFilePath, outputFilePath, options) {
|
|
|
2237
2237
|
}
|
|
2238
2238
|
|
|
2239
2239
|
// src/mcp/output-schema-registry.ts
|
|
2240
|
+
function resolveOutputSchemaMode(env = process.env) {
|
|
2241
|
+
const requested = env.MCP_SCRAPER_OUTPUT_SCHEMA_MODE?.trim().toLowerCase();
|
|
2242
|
+
if (requested) {
|
|
2243
|
+
if (requested === "contract" || requested === "all") return "contract";
|
|
2244
|
+
if (requested === "runtime" || requested === "none" || requested === "essential") return "runtime";
|
|
2245
|
+
throw new Error(`Unsupported MCP_SCRAPER_OUTPUT_SCHEMA_MODE: ${requested}`);
|
|
2246
|
+
}
|
|
2247
|
+
const legacyAdvertisement = env.MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS?.trim().toLowerCase();
|
|
2248
|
+
if (legacyAdvertisement === "true") return "contract";
|
|
2249
|
+
if (legacyAdvertisement === void 0 || legacyAdvertisement === "" || legacyAdvertisement === "false") {
|
|
2250
|
+
return "runtime";
|
|
2251
|
+
}
|
|
2252
|
+
throw new Error(`Unsupported MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS value: ${legacyAdvertisement}`);
|
|
2253
|
+
}
|
|
2254
|
+
var OUTPUT_SCHEMA_MODE = resolveOutputSchemaMode();
|
|
2255
|
+
var ADVERTISE_OUTPUT_SCHEMAS = OUTPUT_SCHEMA_MODE === "contract";
|
|
2240
2256
|
var OUTPUT_SCHEMAS = {};
|
|
2241
2257
|
function recordOutputSchema(name, schema) {
|
|
2242
2258
|
OUTPUT_SCHEMAS[name] = schema;
|
|
2243
|
-
return schema;
|
|
2259
|
+
return ADVERTISE_OUTPUT_SCHEMAS ? schema : void 0;
|
|
2244
2260
|
}
|
|
2245
2261
|
|
|
2246
2262
|
// src/mcp/browser-agent-mcp-server.ts
|
|
@@ -18639,7 +18655,7 @@ var HostedMemoryMcpToolExecutor = class {
|
|
|
18639
18655
|
|
|
18640
18656
|
// release-message.json
|
|
18641
18657
|
var release_message_default = {
|
|
18642
|
-
message: "
|
|
18658
|
+
message: "Strict MCP clients now discover all 259 tools through a compact runtime catalog, while generated SDKs retain complete output types."
|
|
18643
18659
|
};
|
|
18644
18660
|
|
|
18645
18661
|
// src/install-terminal.ts
|
|
@@ -13,18 +13,18 @@ import {
|
|
|
13
13
|
registerScheduledResultsMcpTools,
|
|
14
14
|
registerSerpIntelligenceCaptureTools,
|
|
15
15
|
resolveDeploymentProfile
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-LNLMOBP6.js";
|
|
17
17
|
import "../chunk-PGJQDMC2.js";
|
|
18
18
|
import "../chunk-3EYALCYK.js";
|
|
19
19
|
import "../chunk-3TKKJQB4.js";
|
|
20
20
|
import {
|
|
21
21
|
renderInstallTerminal
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-2XVDLF6H.js";
|
|
23
23
|
import "../chunk-VXLU74YZ.js";
|
|
24
24
|
import "../chunk-GGZEC22A.js";
|
|
25
25
|
import {
|
|
26
26
|
PACKAGE_VERSION
|
|
27
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-JBFLOJGM.js";
|
|
28
28
|
import "../chunk-DNM65UCK.js";
|
|
29
29
|
import "../chunk-AYJHI2FK.js";
|
|
30
30
|
import "../chunk-55B3T5L2.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// release-message.json
|
|
2
2
|
var release_message_default = {
|
|
3
|
-
message: "
|
|
3
|
+
message: "Strict MCP clients now discover all 259 tools through a compact runtime catalog, while generated SDKs retain complete output types."
|
|
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-
|
|
28
|
+
} from "./chunk-JBFLOJGM.js";
|
|
29
29
|
import {
|
|
30
30
|
createPrivateArtifact,
|
|
31
31
|
privateArtifactOwnerId,
|
|
@@ -5006,10 +5006,26 @@ ${rows}` : ""
|
|
|
5006
5006
|
}
|
|
5007
5007
|
|
|
5008
5008
|
// src/mcp/output-schema-registry.ts
|
|
5009
|
+
function resolveOutputSchemaMode(env = process.env) {
|
|
5010
|
+
const requested = env.MCP_SCRAPER_OUTPUT_SCHEMA_MODE?.trim().toLowerCase();
|
|
5011
|
+
if (requested) {
|
|
5012
|
+
if (requested === "contract" || requested === "all") return "contract";
|
|
5013
|
+
if (requested === "runtime" || requested === "none" || requested === "essential") return "runtime";
|
|
5014
|
+
throw new Error(`Unsupported MCP_SCRAPER_OUTPUT_SCHEMA_MODE: ${requested}`);
|
|
5015
|
+
}
|
|
5016
|
+
const legacyAdvertisement = env.MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS?.trim().toLowerCase();
|
|
5017
|
+
if (legacyAdvertisement === "true") return "contract";
|
|
5018
|
+
if (legacyAdvertisement === void 0 || legacyAdvertisement === "" || legacyAdvertisement === "false") {
|
|
5019
|
+
return "runtime";
|
|
5020
|
+
}
|
|
5021
|
+
throw new Error(`Unsupported MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS value: ${legacyAdvertisement}`);
|
|
5022
|
+
}
|
|
5023
|
+
var OUTPUT_SCHEMA_MODE = resolveOutputSchemaMode();
|
|
5024
|
+
var ADVERTISE_OUTPUT_SCHEMAS = OUTPUT_SCHEMA_MODE === "contract";
|
|
5009
5025
|
var OUTPUT_SCHEMAS = {};
|
|
5010
5026
|
function recordOutputSchema(name, schema) {
|
|
5011
5027
|
OUTPUT_SCHEMAS[name] = schema;
|
|
5012
|
-
return schema;
|
|
5028
|
+
return ADVERTISE_OUTPUT_SCHEMAS ? schema : void 0;
|
|
5013
5029
|
}
|
|
5014
5030
|
|
|
5015
5031
|
// src/mcp/meta-ad-creative-media.ts
|
|
@@ -199,7 +199,7 @@ import {
|
|
|
199
199
|
resolveDeploymentProfile,
|
|
200
200
|
resolveLocalSourcebookSchemaType,
|
|
201
201
|
transcribeMediaUrl
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-LNLMOBP6.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-
|
|
259
|
+
} from "./chunk-JBFLOJGM.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.66.
|
|
3
|
+
"version": "0.66.3",
|
|
4
4
|
"description": "MCP server for MCP Scraper web intelligence tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"build": "tsup",
|
|
38
38
|
"build:md": "node scripts/build-md-mirror.mjs",
|
|
39
39
|
"build:mcpb": "npm run build && node scripts/build-mcpb.mjs",
|
|
40
|
+
"build:mcpb:candidate": "npm run build && node scripts/build-mcpb.mjs --candidate",
|
|
40
41
|
"build:rates": "node --import tsx scripts/gen-rates.ts",
|
|
41
42
|
"build:geotargets": "node --import tsx scripts/gen-geotargets.ts",
|
|
42
43
|
"build:blog": "node scripts/run-ts-sandbox-safe.mjs scripts/build-blog.ts",
|
|
@@ -79,7 +80,8 @@
|
|
|
79
80
|
"db:migrate": "node --import tsx scripts/run-core-migration.ts",
|
|
80
81
|
"analytics:migrate": "node --import tsx scripts/run-analytics-migration.ts",
|
|
81
82
|
"analytics:rollups": "node --import tsx scripts/run-analytics-rollups.ts",
|
|
82
|
-
"mcp
|
|
83
|
+
"test:mcp-output-contract": "vitest run --config vitest.mcp-output-contract.config.ts tests/unit/golden-payloads.test.ts tests/unit/mcp-formatter-structured.test.ts tests/unit/mcp-2026-stdio.test.ts",
|
|
84
|
+
"mcp:verify": "npm run build && npm run mcp:manifest && npm run build:rates && npm run mcp:measure-catalog && npm run mcp:lint-tools && npm run test:mcp-output-contract && npm run typecheck && npm test && npm run package:verify-entrypoints",
|
|
83
85
|
"prepack": "npm run mcp:verify",
|
|
84
86
|
"package:verify-entrypoints": "node scripts/verify-package-entrypoints.mjs"
|
|
85
87
|
},
|