mcp-scraper 0.2.17 → 0.2.19
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/README.md +15 -7
- package/dist/bin/api-server.cjs +1 -1
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +1 -1
- package/dist/bin/browser-agent-stdio-server.cjs +1 -1
- package/dist/bin/browser-agent-stdio-server.cjs.map +1 -1
- package/dist/bin/browser-agent-stdio-server.js +2 -2
- package/dist/bin/mcp-scraper-cli.cjs +1 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +1 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs +105 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.js +18 -3
- package/dist/bin/mcp-scraper-combined-stdio-server.js.map +1 -1
- package/dist/bin/mcp-scraper-install.cjs +7 -4
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +5 -91
- package/dist/bin/mcp-scraper-install.js.map +1 -1
- package/dist/bin/mcp-stdio-server.cjs +1 -1
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +2 -2
- package/dist/{chunk-BYF7HTLJ.js → chunk-4UEVYYDW.js} +2 -2
- package/dist/{chunk-ZA7IZZKN.js → chunk-76P4DKWR.js} +2 -2
- package/dist/chunk-MCBOZ2JF.js +96 -0
- package/dist/chunk-MCBOZ2JF.js.map +1 -0
- package/dist/chunk-RU2HZD55.js +7 -0
- package/dist/chunk-RU2HZD55.js.map +1 -0
- package/dist/{server-AK3UME3Y.js → server-CRUSZA2Q.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-NZG2K6CJ.js +0 -7
- package/dist/chunk-NZG2K6CJ.js.map +0 -1
- /package/dist/{chunk-BYF7HTLJ.js.map → chunk-4UEVYYDW.js.map} +0 -0
- /package/dist/{chunk-ZA7IZZKN.js.map → chunk-76P4DKWR.js.map} +0 -0
- /package/dist/{server-AK3UME3Y.js.map → server-CRUSZA2Q.js.map} +0 -0
|
@@ -212,7 +212,7 @@ var import_node_os2 = require("os");
|
|
|
212
212
|
var import_node_path2 = require("path");
|
|
213
213
|
|
|
214
214
|
// src/version.ts
|
|
215
|
-
var PACKAGE_VERSION = "0.2.
|
|
215
|
+
var PACKAGE_VERSION = "0.2.19";
|
|
216
216
|
|
|
217
217
|
// src/mcp/browser-agent-tool-schemas.ts
|
|
218
218
|
var import_zod = require("zod");
|
|
@@ -3429,7 +3429,111 @@ function registerPaaExtractorMcpTools(server2, executor, options = {}) {
|
|
|
3429
3429
|
}, async (input) => formatCreditsInfo(await executor.creditsInfo(input), input));
|
|
3430
3430
|
}
|
|
3431
3431
|
|
|
3432
|
+
// src/install-terminal.ts
|
|
3433
|
+
var CODES = {
|
|
3434
|
+
reset: "\x1B[0m",
|
|
3435
|
+
cyan: "\x1B[36m",
|
|
3436
|
+
lime: "\x1B[32m",
|
|
3437
|
+
amber: "\x1B[33m",
|
|
3438
|
+
red: "\x1B[31m",
|
|
3439
|
+
muted: "\x1B[90m",
|
|
3440
|
+
bold: "\x1B[1m"
|
|
3441
|
+
};
|
|
3442
|
+
function colorize(value, tone, enabled) {
|
|
3443
|
+
if (!enabled) return value;
|
|
3444
|
+
return `${CODES[tone]}${value}${CODES.reset}`;
|
|
3445
|
+
}
|
|
3446
|
+
function toolRow(label, tools, enabled) {
|
|
3447
|
+
const padded = label.padEnd(9, " ");
|
|
3448
|
+
return ` ${colorize(padded, "muted", enabled)} ${tools.join(colorize(" . ", "muted", enabled))}`;
|
|
3449
|
+
}
|
|
3450
|
+
function renderInstallTerminal(options) {
|
|
3451
|
+
const color = options.color ?? true;
|
|
3452
|
+
const apiKeyValue = options.apiKeyConfigured ? "$MCP_SCRAPER_API_KEY" : "sk_live_your_key";
|
|
3453
|
+
const ascii = String.raw`
|
|
3454
|
+
__ __ ____ ____
|
|
3455
|
+
| \/ |/ ___| _ \
|
|
3456
|
+
| |\/| | | | |_) |
|
|
3457
|
+
| | | | |___| __/
|
|
3458
|
+
|_| |_|\____|_|
|
|
3459
|
+
|
|
3460
|
+
____ ____ ____ _ ____ _____ ____
|
|
3461
|
+
/ ___| / ___| _ \ / \ | _ \| ____| _ \
|
|
3462
|
+
\___ \| | | |_) | / _ \ | |_) | _| | |_) |
|
|
3463
|
+
___) | |___| _ < / ___ \| __/| |___| _ <
|
|
3464
|
+
|____/ \____|_| \_\/_/ \_\_| |_____|_| \_\
|
|
3465
|
+
`;
|
|
3466
|
+
const claudeCommand = [
|
|
3467
|
+
"claude mcp add mcp-scraper --scope user",
|
|
3468
|
+
` --env MCP_SCRAPER_API_KEY=${apiKeyValue}`,
|
|
3469
|
+
" -- npx -y -p mcp-scraper@latest mcp-scraper-combined"
|
|
3470
|
+
].join(" \\\n");
|
|
3471
|
+
const codexConfig = [
|
|
3472
|
+
"[mcp_servers.mcp-scraper]",
|
|
3473
|
+
'command = "npx"',
|
|
3474
|
+
'args = ["-y", "-p", "mcp-scraper@latest", "mcp-scraper-combined"]',
|
|
3475
|
+
`env = { MCP_SCRAPER_API_KEY = "${apiKeyValue}" }`
|
|
3476
|
+
].join("\n");
|
|
3477
|
+
return [
|
|
3478
|
+
colorize(`mcp-scraper v${options.version}`, "bold", color),
|
|
3479
|
+
colorize("> mcp-scraper-install", "muted", color),
|
|
3480
|
+
colorize(ascii, "amber", color),
|
|
3481
|
+
`${colorize("MCP Scraper Agent", "cyan", color)} . v${options.version} . mcpscraper.dev`,
|
|
3482
|
+
"1/1 install surfaces ready",
|
|
3483
|
+
colorize("Newest: MCP workflow tools for market analysis, ICP research, CRO audits, brand briefs, and AI search visibility.", "lime", color),
|
|
3484
|
+
"",
|
|
3485
|
+
`${colorize("Tools", "cyan", color)} ${colorize("(38 MCP tools)", "muted", color)}`,
|
|
3486
|
+
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
3487
|
+
toolRow("extract", ["extract_url", "map_site_urls", "extract_site", "directory_workflow"], color),
|
|
3488
|
+
toolRow("build", ["rank_tracker_blueprint", "cron plan", "database prompt"], color),
|
|
3489
|
+
toolRow("media", ["youtube_harvest", "youtube_transcribe", "facebook_ad_search", "facebook_page_intel", "facebook_ad_transcribe", "facebook_video_transcribe"], color),
|
|
3490
|
+
toolRow("browser", ["browser_open", "browser_screenshot", "browser_read", "browser_locate", "browser_replay_mark", "browser_replay_annotate"], color),
|
|
3491
|
+
toolRow("account", ["credits_info", "local reports", "MCP resources"], color),
|
|
3492
|
+
`${colorize("Workflows", "cyan", color)} ${colorize("(MCP + CLI + API)", "muted", color)}`,
|
|
3493
|
+
toolRow("route", ["workflow_list", "workflow_suggest", "workflow_run", "workflow_status", "workflow_artifact_read"], color),
|
|
3494
|
+
toolRow("seo", ["directory", "agent-packet", "local audit", "map/serp comparison", "PAA/AIO briefs", "scheduled runs"], color),
|
|
3495
|
+
"",
|
|
3496
|
+
colorize("Usage tips:", "amber", color),
|
|
3497
|
+
"Run mcp-scraper-combined in a human terminal to print this card; MCP clients get the same command as a silent stdio server.",
|
|
3498
|
+
"Explicit card command: npx -y -p mcp-scraper@latest mcp-scraper-install",
|
|
3499
|
+
"Start with workflow_suggest for broad jobs like market analysis, ICP research, CRO audits, brand briefs, content gaps, and AI visibility.",
|
|
3500
|
+
"For MCP clients, use mcp-scraper-combined so one install can mix SERP, Maps, browser, reports, and saved MCP resources.",
|
|
3501
|
+
"If you hit the concurrency limit, add an extra slot for $5/month with mcp-scraper-cli billing concurrency checkout.",
|
|
3502
|
+
"",
|
|
3503
|
+
`${colorize("Ready.", "lime", color)} Install the combined MCP server with one of these paths:`,
|
|
3504
|
+
"",
|
|
3505
|
+
colorize("Setup doctor", "amber", color),
|
|
3506
|
+
"npx -y -p mcp-scraper@latest mcp-scraper-cli doctor",
|
|
3507
|
+
"",
|
|
3508
|
+
colorize("Claude Code", "amber", color),
|
|
3509
|
+
claudeCommand,
|
|
3510
|
+
"",
|
|
3511
|
+
colorize("Codex config", "amber", color),
|
|
3512
|
+
codexConfig,
|
|
3513
|
+
"",
|
|
3514
|
+
colorize("Claude Desktop Extension", "amber", color),
|
|
3515
|
+
"Download: https://mcpscraper.dev/downloads/mcp-scraper.mcpb",
|
|
3516
|
+
"",
|
|
3517
|
+
colorize("Safety note:", "muted", color),
|
|
3518
|
+
"mcp-scraper-combined prints this card only when stdin/stdout are an interactive TTY. In MCP clients it writes only JSON-RPC to stdout.",
|
|
3519
|
+
"Use --stdio or MCP_SCRAPER_FORCE_STDIO=1 to force server mode from a terminal.",
|
|
3520
|
+
""
|
|
3521
|
+
].join("\n");
|
|
3522
|
+
}
|
|
3523
|
+
|
|
3432
3524
|
// bin/mcp-scraper-combined-stdio-server.ts
|
|
3525
|
+
var forceStdio = process.argv.includes("--stdio") || process.env.MCP_SCRAPER_FORCE_STDIO === "1";
|
|
3526
|
+
var interactiveTerminal = Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
3527
|
+
var wantsHelp = process.argv.includes("--help") || process.argv.includes("-h");
|
|
3528
|
+
if (!forceStdio && (interactiveTerminal || wantsHelp)) {
|
|
3529
|
+
const noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
|
|
3530
|
+
process.stdout.write(renderInstallTerminal({
|
|
3531
|
+
version: PACKAGE_VERSION,
|
|
3532
|
+
color: !noColor,
|
|
3533
|
+
apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim())
|
|
3534
|
+
}));
|
|
3535
|
+
process.exit(0);
|
|
3536
|
+
}
|
|
3433
3537
|
function readApiKeyFile() {
|
|
3434
3538
|
const explicitPath = process.env.MCP_SCRAPER_KEY_PATH?.trim();
|
|
3435
3539
|
const paths = [explicitPath, (0, import_node_path5.join)((0, import_node_os4.homedir)(), ".mcp-scraper-key")].filter(Boolean);
|