mcp-scraper 0.2.3 → 0.2.5
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 +13 -2
- 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-combined-stdio-server.cjs +1 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-scraper-combined-stdio-server.js +4 -4
- package/dist/bin/mcp-scraper-install.cjs +101 -0
- package/dist/bin/mcp-scraper-install.cjs.map +1 -0
- package/dist/bin/mcp-scraper-install.d.cts +1 -0
- package/dist/bin/mcp-scraper-install.d.ts +1 -0
- package/dist/bin/mcp-scraper-install.js +100 -0
- package/dist/bin/mcp-scraper-install.js.map +1 -0
- 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-4SIZ4G63.js → chunk-ENI4DM3S.js} +4 -4
- package/dist/chunk-JDX57SEC.js +7 -0
- package/dist/chunk-JDX57SEC.js.map +1 -0
- package/dist/{chunk-E6IQRQ2T.js → chunk-O36HHUKX.js} +2 -2
- package/dist/{server-SUSIMF72.js → server-Q3WHIS63.js} +12 -12
- package/package.json +3 -2
- package/dist/chunk-RJ6I52AM.js +0 -7
- package/dist/chunk-RJ6I52AM.js.map +0 -1
- /package/dist/{chunk-4SIZ4G63.js.map → chunk-ENI4DM3S.js.map} +0 -0
- /package/dist/{chunk-E6IQRQ2T.js.map → chunk-O36HHUKX.js.map} +0 -0
- /package/dist/{server-SUSIMF72.js.map → server-Q3WHIS63.js.map} +0 -0
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
HttpMcpToolExecutor,
|
|
4
4
|
registerPaaExtractorMcpTools
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-ENI4DM3S.js";
|
|
6
|
+
import "../chunk-M2S27J6Z.js";
|
|
6
7
|
import {
|
|
7
8
|
registerBrowserAgentMcpTools
|
|
8
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-O36HHUKX.js";
|
|
9
10
|
import {
|
|
10
11
|
PACKAGE_VERSION
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-M2S27J6Z.js";
|
|
12
|
+
} from "../chunk-JDX57SEC.js";
|
|
13
13
|
|
|
14
14
|
// bin/mcp-scraper-combined-stdio-server.ts
|
|
15
15
|
import { readFileSync } from "fs";
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
// src/install-terminal.ts
|
|
5
|
+
var CODES = {
|
|
6
|
+
reset: "\x1B[0m",
|
|
7
|
+
cyan: "\x1B[36m",
|
|
8
|
+
lime: "\x1B[32m",
|
|
9
|
+
amber: "\x1B[33m",
|
|
10
|
+
red: "\x1B[31m",
|
|
11
|
+
muted: "\x1B[90m",
|
|
12
|
+
bold: "\x1B[1m"
|
|
13
|
+
};
|
|
14
|
+
function colorize(value, tone, enabled) {
|
|
15
|
+
if (!enabled) return value;
|
|
16
|
+
return `${CODES[tone]}${value}${CODES.reset}`;
|
|
17
|
+
}
|
|
18
|
+
function toolRow(label, tools, enabled) {
|
|
19
|
+
const padded = label.padEnd(9, " ");
|
|
20
|
+
return ` ${colorize(padded, "muted", enabled)} ${tools.join(colorize(" . ", "muted", enabled))}`;
|
|
21
|
+
}
|
|
22
|
+
function renderInstallTerminal(options) {
|
|
23
|
+
const color = options.color ?? true;
|
|
24
|
+
const apiKeyValue = options.apiKeyConfigured ? "$MCP_SCRAPER_API_KEY" : "sk_live_your_key";
|
|
25
|
+
const ascii = String.raw`
|
|
26
|
+
__ __ ____ ____
|
|
27
|
+
| \/ |/ ___| _ \
|
|
28
|
+
| |\/| | | | |_) |
|
|
29
|
+
| | | | |___| __/
|
|
30
|
+
|_| |_|\____|_|
|
|
31
|
+
|
|
32
|
+
____ ____ ____ _ ____ _____ ____
|
|
33
|
+
/ ___| / ___| _ \ / \ | _ \| ____| _ \
|
|
34
|
+
\___ \| | | |_) | / _ \ | |_) | _| | |_) |
|
|
35
|
+
___) | |___| _ < / ___ \| __/| |___| _ <
|
|
36
|
+
|____/ \____|_| \_\/_/ \_\_| |_____|_| \_\
|
|
37
|
+
`;
|
|
38
|
+
const claudeCommand = [
|
|
39
|
+
"claude mcp add mcp-scraper --scope user",
|
|
40
|
+
` --env MCP_SCRAPER_API_KEY=${apiKeyValue}`,
|
|
41
|
+
" -- npx -y -p mcp-scraper@latest mcp-scraper-combined"
|
|
42
|
+
].join(" \\\n");
|
|
43
|
+
const codexConfig = [
|
|
44
|
+
"[mcp_servers.mcp-scraper]",
|
|
45
|
+
'command = "npx"',
|
|
46
|
+
'args = ["-y", "-p", "mcp-scraper@latest", "mcp-scraper-combined"]',
|
|
47
|
+
`env = { MCP_SCRAPER_API_KEY = "${apiKeyValue}" }`
|
|
48
|
+
].join("\n");
|
|
49
|
+
return [
|
|
50
|
+
colorize(`mcp-scraper v${options.version}`, "bold", color),
|
|
51
|
+
colorize("> mcp-scraper-install", "muted", color),
|
|
52
|
+
colorize(ascii, "amber", color),
|
|
53
|
+
`${colorize("MCP Scraper Agent", "cyan", color)} . v${options.version} . mcpscraper.dev`,
|
|
54
|
+
"1/1 install surfaces ready",
|
|
55
|
+
"",
|
|
56
|
+
`${colorize("Tools", "cyan", color)} ${colorize("(28 loaded)", "muted", color)}`,
|
|
57
|
+
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
58
|
+
toolRow("extract", ["extract_url", "map_site_urls", "extract_site", "directory_workflow"], color),
|
|
59
|
+
toolRow("media", ["youtube_harvest", "youtube_transcribe", "facebook_ad_search", "facebook_page_intel"], color),
|
|
60
|
+
toolRow("browser", ["browser_open", "browser_screenshot", "browser_click", "browser_replay_download"], color),
|
|
61
|
+
toolRow("account", ["credits_info", "local reports", "MCP resources"], color),
|
|
62
|
+
"",
|
|
63
|
+
`${colorize("Ready.", "lime", color)} Install the combined MCP server with one of these paths:`,
|
|
64
|
+
"",
|
|
65
|
+
colorize("Claude Code", "amber", color),
|
|
66
|
+
claudeCommand,
|
|
67
|
+
"",
|
|
68
|
+
colorize("Codex config", "amber", color),
|
|
69
|
+
codexConfig,
|
|
70
|
+
"",
|
|
71
|
+
colorize("Claude Desktop Extension", "amber", color),
|
|
72
|
+
"Download: https://mcpscraper.dev/downloads/mcp-scraper.mcpb",
|
|
73
|
+
"",
|
|
74
|
+
colorize("Safety note:", "muted", color),
|
|
75
|
+
"This installer can print terminal UI. MCP server commands stay silent so stdio JSON-RPC is not corrupted.",
|
|
76
|
+
""
|
|
77
|
+
].join("\n");
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// src/version.ts
|
|
81
|
+
var PACKAGE_VERSION = "0.2.5";
|
|
82
|
+
|
|
83
|
+
// bin/mcp-scraper-install.ts
|
|
84
|
+
var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
|
|
85
|
+
var help = process.argv.includes("--help") || process.argv.includes("-h");
|
|
86
|
+
if (help) {
|
|
87
|
+
process.stdout.write([
|
|
88
|
+
"Usage: mcp-scraper-install [--no-color]",
|
|
89
|
+
"",
|
|
90
|
+
"Prints the branded MCP Scraper terminal install card and copyable install commands.",
|
|
91
|
+
"Use mcp-scraper-combined, mcp-scraper, and browser-agent only as MCP stdio servers.",
|
|
92
|
+
""
|
|
93
|
+
].join("\n"));
|
|
94
|
+
process.exit(0);
|
|
95
|
+
}
|
|
96
|
+
process.stdout.write(renderInstallTerminal({
|
|
97
|
+
version: PACKAGE_VERSION,
|
|
98
|
+
color: !noColor,
|
|
99
|
+
apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim())
|
|
100
|
+
}));
|
|
101
|
+
//# sourceMappingURL=mcp-scraper-install.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/install-terminal.ts","../../src/version.ts","../../bin/mcp-scraper-install.ts"],"sourcesContent":["export interface InstallTerminalOptions {\n color?: boolean\n version: string\n apiKeyConfigured?: boolean\n}\n\ntype Tone = 'cyan' | 'lime' | 'amber' | 'red' | 'muted' | 'bold'\n\nconst CODES: Record<Tone | 'reset', string> = {\n reset: '\\x1b[0m',\n cyan: '\\x1b[36m',\n lime: '\\x1b[32m',\n amber: '\\x1b[33m',\n red: '\\x1b[31m',\n muted: '\\x1b[90m',\n bold: '\\x1b[1m',\n}\n\nfunction colorize(value: string, tone: Tone, enabled: boolean): string {\n if (!enabled) return value\n return `${CODES[tone]}${value}${CODES.reset}`\n}\n\nfunction toolRow(label: string, tools: string[], enabled: boolean): string {\n const padded = label.padEnd(9, ' ')\n return ` ${colorize(padded, 'muted', enabled)} ${tools.join(colorize(' . ', 'muted', enabled))}`\n}\n\nexport function renderInstallTerminal(options: InstallTerminalOptions): string {\n const color = options.color ?? true\n const apiKeyValue = options.apiKeyConfigured ? '$MCP_SCRAPER_API_KEY' : 'sk_live_your_key'\n const ascii = String.raw`\n __ __ ____ ____ \n| \\/ |/ ___| _ \\\n| |\\/| | | | |_) |\n| | | | |___| __/\n|_| |_|\\____|_|\n\n ____ ____ ____ _ ____ _____ ____\n/ ___| / ___| _ \\ / \\ | _ \\| ____| _ \\\n\\___ \\| | | |_) | / _ \\ | |_) | _| | |_) |\n ___) | |___| _ < / ___ \\| __/| |___| _ <\n|____/ \\____|_| \\_\\/_/ \\_\\_| |_____|_| \\_\\\n`\n\n const claudeCommand = [\n 'claude mcp add mcp-scraper --scope user',\n ` --env MCP_SCRAPER_API_KEY=${apiKeyValue}`,\n ' -- npx -y -p mcp-scraper@latest mcp-scraper-combined',\n ].join(' \\\\\\n')\n\n const codexConfig = [\n '[mcp_servers.mcp-scraper]',\n 'command = \"npx\"',\n 'args = [\"-y\", \"-p\", \"mcp-scraper@latest\", \"mcp-scraper-combined\"]',\n `env = { MCP_SCRAPER_API_KEY = \"${apiKeyValue}\" }`,\n ].join('\\n')\n\n return [\n colorize(`mcp-scraper v${options.version}`, 'bold', color),\n colorize('> mcp-scraper-install', 'muted', color),\n colorize(ascii, 'amber', color),\n `${colorize('MCP Scraper Agent', 'cyan', color)} . v${options.version} . mcpscraper.dev`,\n '1/1 install surfaces ready',\n '',\n `${colorize('Tools', 'cyan', color)} ${colorize('(28 loaded)', 'muted', color)}`,\n toolRow('search', ['harvest_paa', 'search_serp', 'maps_search', 'maps_place_intel'], color),\n toolRow('extract', ['extract_url', 'map_site_urls', 'extract_site', 'directory_workflow'], color),\n toolRow('media', ['youtube_harvest', 'youtube_transcribe', 'facebook_ad_search', 'facebook_page_intel'], color),\n toolRow('browser', ['browser_open', 'browser_screenshot', 'browser_click', 'browser_replay_download'], color),\n toolRow('account', ['credits_info', 'local reports', 'MCP resources'], color),\n '',\n `${colorize('Ready.', 'lime', color)} Install the combined MCP server with one of these paths:`,\n '',\n colorize('Claude Code', 'amber', color),\n claudeCommand,\n '',\n colorize('Codex config', 'amber', color),\n codexConfig,\n '',\n colorize('Claude Desktop Extension', 'amber', color),\n 'Download: https://mcpscraper.dev/downloads/mcp-scraper.mcpb',\n '',\n colorize('Safety note:', 'muted', color),\n 'This installer can print terminal UI. MCP server commands stay silent so stdio JSON-RPC is not corrupted.',\n '',\n ].join('\\n')\n}\n","export const PACKAGE_VERSION = '0.2.5'\n","#!/usr/bin/env node\nimport { renderInstallTerminal } from '../src/install-terminal.js'\nimport { PACKAGE_VERSION } from '../src/version.js'\n\nconst noColor =\n process.argv.includes('--no-color') ||\n process.env.NO_COLOR !== undefined ||\n process.env.FORCE_COLOR === '0' ||\n !process.stdout.isTTY\n\nconst help = process.argv.includes('--help') || process.argv.includes('-h')\nif (help) {\n process.stdout.write([\n 'Usage: mcp-scraper-install [--no-color]',\n '',\n 'Prints the branded MCP Scraper terminal install card and copyable install commands.',\n 'Use mcp-scraper-combined, mcp-scraper, and browser-agent only as MCP stdio servers.',\n '',\n ].join('\\n'))\n process.exit(0)\n}\n\nprocess.stdout.write(renderInstallTerminal({\n version: PACKAGE_VERSION,\n color: !noColor,\n apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim()),\n}))\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
PACKAGE_VERSION
|
|
4
|
+
} from "../chunk-JDX57SEC.js";
|
|
5
|
+
|
|
6
|
+
// src/install-terminal.ts
|
|
7
|
+
var CODES = {
|
|
8
|
+
reset: "\x1B[0m",
|
|
9
|
+
cyan: "\x1B[36m",
|
|
10
|
+
lime: "\x1B[32m",
|
|
11
|
+
amber: "\x1B[33m",
|
|
12
|
+
red: "\x1B[31m",
|
|
13
|
+
muted: "\x1B[90m",
|
|
14
|
+
bold: "\x1B[1m"
|
|
15
|
+
};
|
|
16
|
+
function colorize(value, tone, enabled) {
|
|
17
|
+
if (!enabled) return value;
|
|
18
|
+
return `${CODES[tone]}${value}${CODES.reset}`;
|
|
19
|
+
}
|
|
20
|
+
function toolRow(label, tools, enabled) {
|
|
21
|
+
const padded = label.padEnd(9, " ");
|
|
22
|
+
return ` ${colorize(padded, "muted", enabled)} ${tools.join(colorize(" . ", "muted", enabled))}`;
|
|
23
|
+
}
|
|
24
|
+
function renderInstallTerminal(options) {
|
|
25
|
+
const color = options.color ?? true;
|
|
26
|
+
const apiKeyValue = options.apiKeyConfigured ? "$MCP_SCRAPER_API_KEY" : "sk_live_your_key";
|
|
27
|
+
const ascii = String.raw`
|
|
28
|
+
__ __ ____ ____
|
|
29
|
+
| \/ |/ ___| _ \
|
|
30
|
+
| |\/| | | | |_) |
|
|
31
|
+
| | | | |___| __/
|
|
32
|
+
|_| |_|\____|_|
|
|
33
|
+
|
|
34
|
+
____ ____ ____ _ ____ _____ ____
|
|
35
|
+
/ ___| / ___| _ \ / \ | _ \| ____| _ \
|
|
36
|
+
\___ \| | | |_) | / _ \ | |_) | _| | |_) |
|
|
37
|
+
___) | |___| _ < / ___ \| __/| |___| _ <
|
|
38
|
+
|____/ \____|_| \_\/_/ \_\_| |_____|_| \_\
|
|
39
|
+
`;
|
|
40
|
+
const claudeCommand = [
|
|
41
|
+
"claude mcp add mcp-scraper --scope user",
|
|
42
|
+
` --env MCP_SCRAPER_API_KEY=${apiKeyValue}`,
|
|
43
|
+
" -- npx -y -p mcp-scraper@latest mcp-scraper-combined"
|
|
44
|
+
].join(" \\\n");
|
|
45
|
+
const codexConfig = [
|
|
46
|
+
"[mcp_servers.mcp-scraper]",
|
|
47
|
+
'command = "npx"',
|
|
48
|
+
'args = ["-y", "-p", "mcp-scraper@latest", "mcp-scraper-combined"]',
|
|
49
|
+
`env = { MCP_SCRAPER_API_KEY = "${apiKeyValue}" }`
|
|
50
|
+
].join("\n");
|
|
51
|
+
return [
|
|
52
|
+
colorize(`mcp-scraper v${options.version}`, "bold", color),
|
|
53
|
+
colorize("> mcp-scraper-install", "muted", color),
|
|
54
|
+
colorize(ascii, "amber", color),
|
|
55
|
+
`${colorize("MCP Scraper Agent", "cyan", color)} . v${options.version} . mcpscraper.dev`,
|
|
56
|
+
"1/1 install surfaces ready",
|
|
57
|
+
"",
|
|
58
|
+
`${colorize("Tools", "cyan", color)} ${colorize("(28 loaded)", "muted", color)}`,
|
|
59
|
+
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
60
|
+
toolRow("extract", ["extract_url", "map_site_urls", "extract_site", "directory_workflow"], color),
|
|
61
|
+
toolRow("media", ["youtube_harvest", "youtube_transcribe", "facebook_ad_search", "facebook_page_intel"], color),
|
|
62
|
+
toolRow("browser", ["browser_open", "browser_screenshot", "browser_click", "browser_replay_download"], color),
|
|
63
|
+
toolRow("account", ["credits_info", "local reports", "MCP resources"], color),
|
|
64
|
+
"",
|
|
65
|
+
`${colorize("Ready.", "lime", color)} Install the combined MCP server with one of these paths:`,
|
|
66
|
+
"",
|
|
67
|
+
colorize("Claude Code", "amber", color),
|
|
68
|
+
claudeCommand,
|
|
69
|
+
"",
|
|
70
|
+
colorize("Codex config", "amber", color),
|
|
71
|
+
codexConfig,
|
|
72
|
+
"",
|
|
73
|
+
colorize("Claude Desktop Extension", "amber", color),
|
|
74
|
+
"Download: https://mcpscraper.dev/downloads/mcp-scraper.mcpb",
|
|
75
|
+
"",
|
|
76
|
+
colorize("Safety note:", "muted", color),
|
|
77
|
+
"This installer can print terminal UI. MCP server commands stay silent so stdio JSON-RPC is not corrupted.",
|
|
78
|
+
""
|
|
79
|
+
].join("\n");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// bin/mcp-scraper-install.ts
|
|
83
|
+
var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
|
|
84
|
+
var help = process.argv.includes("--help") || process.argv.includes("-h");
|
|
85
|
+
if (help) {
|
|
86
|
+
process.stdout.write([
|
|
87
|
+
"Usage: mcp-scraper-install [--no-color]",
|
|
88
|
+
"",
|
|
89
|
+
"Prints the branded MCP Scraper terminal install card and copyable install commands.",
|
|
90
|
+
"Use mcp-scraper-combined, mcp-scraper, and browser-agent only as MCP stdio servers.",
|
|
91
|
+
""
|
|
92
|
+
].join("\n"));
|
|
93
|
+
process.exit(0);
|
|
94
|
+
}
|
|
95
|
+
process.stdout.write(renderInstallTerminal({
|
|
96
|
+
version: PACKAGE_VERSION,
|
|
97
|
+
color: !noColor,
|
|
98
|
+
apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim())
|
|
99
|
+
}));
|
|
100
|
+
//# sourceMappingURL=mcp-scraper-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/install-terminal.ts","../../bin/mcp-scraper-install.ts"],"sourcesContent":["export interface InstallTerminalOptions {\n color?: boolean\n version: string\n apiKeyConfigured?: boolean\n}\n\ntype Tone = 'cyan' | 'lime' | 'amber' | 'red' | 'muted' | 'bold'\n\nconst CODES: Record<Tone | 'reset', string> = {\n reset: '\\x1b[0m',\n cyan: '\\x1b[36m',\n lime: '\\x1b[32m',\n amber: '\\x1b[33m',\n red: '\\x1b[31m',\n muted: '\\x1b[90m',\n bold: '\\x1b[1m',\n}\n\nfunction colorize(value: string, tone: Tone, enabled: boolean): string {\n if (!enabled) return value\n return `${CODES[tone]}${value}${CODES.reset}`\n}\n\nfunction toolRow(label: string, tools: string[], enabled: boolean): string {\n const padded = label.padEnd(9, ' ')\n return ` ${colorize(padded, 'muted', enabled)} ${tools.join(colorize(' . ', 'muted', enabled))}`\n}\n\nexport function renderInstallTerminal(options: InstallTerminalOptions): string {\n const color = options.color ?? true\n const apiKeyValue = options.apiKeyConfigured ? '$MCP_SCRAPER_API_KEY' : 'sk_live_your_key'\n const ascii = String.raw`\n __ __ ____ ____ \n| \\/ |/ ___| _ \\\n| |\\/| | | | |_) |\n| | | | |___| __/\n|_| |_|\\____|_|\n\n ____ ____ ____ _ ____ _____ ____\n/ ___| / ___| _ \\ / \\ | _ \\| ____| _ \\\n\\___ \\| | | |_) | / _ \\ | |_) | _| | |_) |\n ___) | |___| _ < / ___ \\| __/| |___| _ <\n|____/ \\____|_| \\_\\/_/ \\_\\_| |_____|_| \\_\\\n`\n\n const claudeCommand = [\n 'claude mcp add mcp-scraper --scope user',\n ` --env MCP_SCRAPER_API_KEY=${apiKeyValue}`,\n ' -- npx -y -p mcp-scraper@latest mcp-scraper-combined',\n ].join(' \\\\\\n')\n\n const codexConfig = [\n '[mcp_servers.mcp-scraper]',\n 'command = \"npx\"',\n 'args = [\"-y\", \"-p\", \"mcp-scraper@latest\", \"mcp-scraper-combined\"]',\n `env = { MCP_SCRAPER_API_KEY = \"${apiKeyValue}\" }`,\n ].join('\\n')\n\n return [\n colorize(`mcp-scraper v${options.version}`, 'bold', color),\n colorize('> mcp-scraper-install', 'muted', color),\n colorize(ascii, 'amber', color),\n `${colorize('MCP Scraper Agent', 'cyan', color)} . v${options.version} . mcpscraper.dev`,\n '1/1 install surfaces ready',\n '',\n `${colorize('Tools', 'cyan', color)} ${colorize('(28 loaded)', 'muted', color)}`,\n toolRow('search', ['harvest_paa', 'search_serp', 'maps_search', 'maps_place_intel'], color),\n toolRow('extract', ['extract_url', 'map_site_urls', 'extract_site', 'directory_workflow'], color),\n toolRow('media', ['youtube_harvest', 'youtube_transcribe', 'facebook_ad_search', 'facebook_page_intel'], color),\n toolRow('browser', ['browser_open', 'browser_screenshot', 'browser_click', 'browser_replay_download'], color),\n toolRow('account', ['credits_info', 'local reports', 'MCP resources'], color),\n '',\n `${colorize('Ready.', 'lime', color)} Install the combined MCP server with one of these paths:`,\n '',\n colorize('Claude Code', 'amber', color),\n claudeCommand,\n '',\n colorize('Codex config', 'amber', color),\n codexConfig,\n '',\n colorize('Claude Desktop Extension', 'amber', color),\n 'Download: https://mcpscraper.dev/downloads/mcp-scraper.mcpb',\n '',\n colorize('Safety note:', 'muted', color),\n 'This installer can print terminal UI. MCP server commands stay silent so stdio JSON-RPC is not corrupted.',\n '',\n ].join('\\n')\n}\n","#!/usr/bin/env node\nimport { renderInstallTerminal } from '../src/install-terminal.js'\nimport { PACKAGE_VERSION } from '../src/version.js'\n\nconst noColor =\n process.argv.includes('--no-color') ||\n process.env.NO_COLOR !== undefined ||\n process.env.FORCE_COLOR === '0' ||\n !process.stdout.isTTY\n\nconst help = process.argv.includes('--help') || process.argv.includes('-h')\nif (help) {\n process.stdout.write([\n 'Usage: mcp-scraper-install [--no-color]',\n '',\n 'Prints the branded MCP Scraper terminal install card and copyable install commands.',\n 'Use mcp-scraper-combined, mcp-scraper, and browser-agent only as MCP stdio servers.',\n '',\n ].join('\\n'))\n process.exit(0)\n}\n\nprocess.stdout.write(renderInstallTerminal({\n version: PACKAGE_VERSION,\n color: !noColor,\n apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim()),\n}))\n"],"mappings":"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","names":[]}
|
|
@@ -136,7 +136,7 @@ var import_node_fs2 = require("fs");
|
|
|
136
136
|
var import_node_path2 = require("path");
|
|
137
137
|
|
|
138
138
|
// src/version.ts
|
|
139
|
-
var PACKAGE_VERSION = "0.2.
|
|
139
|
+
var PACKAGE_VERSION = "0.2.5";
|
|
140
140
|
|
|
141
141
|
// src/mcp/mcp-response-formatter.ts
|
|
142
142
|
var import_node_fs = require("fs");
|