smart-web-mcp 0.15.1 → 0.15.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 CHANGED
@@ -9,8 +9,32 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
9
9
  ### Changed
10
10
 
11
11
  - `smartfetch` MCP calls now default the human-readable text channel to compact text while preserving projected JSON in `structuredContent`. Use `format: "json"` only when a host needs JSON repeated in `content[0].text`.
12
+ - The compact `smartfetch` text renderer now caps body text, result, comment, link, and asset lines separately, and reports omitted counts while keeping the projected JSON in `structuredContent`.
12
13
  - Documented `smartfetch` output-budget settings and the compact MCP text default in the README and configuration guide.
13
14
 
15
+ ### Fixed
16
+
17
+ - YouTube transcript enrichment now imports the public `youtube-transcript` package entry instead of a private dist path that is not exported by current package versions.
18
+ - YouTube target inference now routes only real video URLs such as watch, shorts, embed, live, and youtu.be links to the `youtube_video` provider; channel, search, and playlist pages stay generic.
19
+ - Constrained `smartfetch` browser profile names to safe single path segments before resolving persistent user-data directories.
20
+ - Persistent browser profile directories are now created with private POSIX permissions and reject symlinked profile paths before Playwright receives them.
21
+ - Korean public API helpers now validate outbound URLs and redirects before fetching, blocking localhost, private, and reserved targets unless `network.allowPrivateHosts` is explicitly enabled.
22
+ - CI now declares read-only default repository permissions, Dependabot auto-merge pins the reusable workflow without forwarding all caller secrets, and the workflow check enforces those guards.
23
+
24
+ ## [0.15.3](https://github.com/jojo-labs/smart-web/compare/v0.15.2...v0.15.3) (2026-06-11)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **smartfetch:** harden youtube transcripts and compact text ([#177](https://github.com/jojo-labs/smart-web/issues/177)) ([ae58ef5](https://github.com/jojo-labs/smart-web/commit/ae58ef5075cc47224d2a1d5e08e5871474eded16))
30
+
31
+ ## [0.15.2](https://github.com/jojo-labs/smart-web/compare/v0.15.1...v0.15.2) (2026-05-29)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * **security:** harden profile and proxy fetch boundaries ([#172](https://github.com/jojo-labs/smart-web/issues/172)) ([137613f](https://github.com/jojo-labs/smart-web/commit/137613ff4ec57eb30e4b72cc629f34ebb396c2de))
37
+
14
38
  ## [0.15.1](https://github.com/jojo-labs/smart-web/compare/v0.15.0...v0.15.1) (2026-05-28)
15
39
 
16
40
 
package/README.md CHANGED
@@ -33,6 +33,7 @@ If `smart-web` returns reproducible incorrect or misleading output, open a GitHu
33
33
  - LinkedIn authwall handling prefers compliant public fallbacks such as archives and search-indexed reference metadata before giving up
34
34
  - legal paper fallback for academic URLs: DOI-aware OpenAlex, Unpaywall, Semantic Scholar, CORE discovery, and Europe PMC enrichment plus bioRxiv/medRxiv API fallback when a direct paper page is thin or blocked
35
35
  - site-native public search fallbacks cover Reddit, GitHub repository discovery, npm, Hacker News, Stack Exchange, and Velog when a matching `site:` query is available
36
+ - YouTube watch, shorts, embed, live, and youtu.be video URLs get best-effort public caption enrichment by default while non-video YouTube pages stay on the generic fetch path
36
37
  - structured output with `assessment` and `pipeline` fields for host-side decision making
37
38
  - local-first defaults with privacy-aware search/fetch behavior
38
39
  - useful normalization for common public surfaces instead of raw HTML dumps
@@ -64,7 +65,7 @@ All three tools are shaped for agent consumption. Common high-signal fields incl
64
65
 
65
66
  This lets hosts decide whether deterministic retrieval was good enough or whether they should escalate to an auth-aware companion flow or a broader browser-task runtime.[^2]
66
67
 
67
- For `smartfetch`, MCP `structuredContent` always carries the projected JSON result. The human-readable `content[0].text` defaults to compact text instead of duplicating that JSON payload; set `format: "json"` only when a host needs JSON repeated in the text channel. `format: "markdown"` keeps the compact response shape and requests Markdown extraction when available.
68
+ For `smartfetch`, MCP `structuredContent` always carries the projected JSON result. The human-readable `content[0].text` defaults to compact text instead of duplicating that JSON payload, with separate caps for long body text, result, comment, link, and asset sections. Omitted counts are reported in the text view while the projected fields remain available through `structuredContent`; set `format: "json"` only when a host needs JSON repeated in the text channel. `format: "markdown"` keeps the compact response shape and requests Markdown extraction when available.
68
69
 
69
70
  ## Supported high-signal surfaces
70
71
 
@@ -73,7 +74,7 @@ For `smartfetch`, MCP `structuredContent` always carries the projected JSON resu
73
74
  - competitive-programming surfaces: solved.ac problem/search/profile routes, BOJ problem/workbook/user pages, Codeforces problem/profile pages, AtCoder task/contest pages, QOJ problem pages, Jungol problem pages
74
75
  - local map place pages: Naver Map, Kakao Map, and redirected `naver.me` place-share links
75
76
  - reference/article pages: NamuWiki, Wikipedia, Naver Blog, Tistory, Velog
76
- - media/social: YouTube, X, Threads, Instagram, Telegram
77
+ - media/social: YouTube video URLs with best-effort public transcripts, X, Threads, Instagram, Telegram
77
78
  - commerce pages: Amazon, Coupang, Danawa, Aladin, AliExpress
78
79
  - archives/reference wrappers: Wayback snapshots, archive.md lookup pages, arXiv abstract pages with direct paper links
79
80
  - academic paper surfaces: arXiv, PubMed, PMC, bioRxiv, medRxiv, plus legal DOI-linked OA copies surfaced from OpenAlex, Unpaywall, Semantic Scholar, CORE, and Europe PMC when a publisher page is thin or paywalled
@@ -226,6 +227,7 @@ npx -y smart-web-mcp --init-settings
226
227
  "undetectedChromedriverPython": "python3",
227
228
  // Site-specific fetches
228
229
  "enableRedditJson": true,
230
+ // YouTube video transcript enrichment for public captions (default: true)
229
231
  "enableYoutubeTranscript": true,
230
232
  // Archive fallback — Wayback and archive.md recovery
231
233
  "enableArchiveFallback": true,
@@ -242,11 +244,16 @@ npx -y smart-web-mcp --init-settings
242
244
  "maxBlocks": 60,
243
245
  "maxBlockTextChars": 1000,
244
246
  "maxItemTextChars": 1200
245
- }
247
+ },
248
+ // Optional default named browser profile for authenticated smartfetch calls.
249
+ // Names are 1-64 characters: letters, numbers, dots, underscores, or hyphens;
250
+ // they must start with a letter or number and cannot end with a dot.
251
+ "browserProfile": ""
246
252
  },
247
253
 
248
254
  "network": {
249
255
  // Allow localhost/private/reserved fetch targets (default: false)
256
+ // Applies to smartfetch, smartcrawl, and Korean public API helpers.
250
257
  "allowPrivateHosts": false
251
258
  }
252
259
  }
@@ -1,4 +1,6 @@
1
1
  import type { ToolError } from "./shared.js";
2
+ export declare const SMART_WEB_PROFILE_NAME_PATTERN: RegExp;
3
+ export declare const SMART_WEB_PROFILE_NAME_DESCRIPTION = "1-64 characters: letters, numbers, dots, underscores, or hyphens; must start with a letter or number and cannot end with a dot";
2
4
  type BrowserWaitUntil = "domcontentloaded" | "networkidle";
3
5
  type BrowserMethod = "playwright_stealth" | "undetected_chromedriver";
4
6
  export type BrowserAnchor = {
@@ -65,8 +67,10 @@ export declare function TEST_resetPlaywrightStartupWarning(): void;
65
67
  /** Override the system Chrome path for tests. Pass undefined to restore auto-detection. */
66
68
  export declare function TEST_setSystemChromePath(value: string | undefined): void;
67
69
  export declare function looksBotBlockedContent(value: string): boolean;
70
+ export declare function validateProfileName(name: string): string;
68
71
  /** Resolve the user-data-dir for a named profile (e.g. "work", "personal"). */
69
72
  export declare function resolveProfileDir(name: string): string;
73
+ export declare function ensureSecureProfileDir(userDataDir: string): void;
70
74
  export declare function warnIfPlaywrightBrowsersNeedInstall(log?: (message: string) => void): Promise<void>;
71
75
  export declare function runBrowserSession(options: BrowserSessionOptions): Promise<BrowserPageResult>;
72
76
  export {};
@@ -1,8 +1,8 @@
1
1
  import { execFile } from "node:child_process";
2
- import { existsSync, mkdirSync, readdirSync } from "node:fs";
2
+ import { chmodSync, existsSync, lstatSync, mkdirSync, readdirSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
4
  import { createRequire } from "node:module";
5
- import { dirname, join, resolve } from "node:path";
5
+ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { promisify } from "node:util";
8
8
  import { asString, configEnabled, dedupeUrls, resolveValidatedUrl } from "./shared.js";
@@ -12,6 +12,9 @@ import { DEFAULT_USER_AGENT } from "./site-hints.js";
12
12
  const PLAYWRIGHT_INSTALL_COMMAND = "npx playwright install chromium";
13
13
  const PLAYWRIGHT_INSTALL_TIMEOUT_MS = 10 * 60 * 1000;
14
14
  const execFileAsync = promisify(execFile);
15
+ export const SMART_WEB_PROFILE_NAME_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9._-]{0,62}[A-Za-z0-9_-])?$/;
16
+ export const SMART_WEB_PROFILE_NAME_DESCRIPTION = "1-64 characters: letters, numbers, dots, underscores, or hyphens; must start with a letter or number and cannot end with a dot";
17
+ const WINDOWS_RESERVED_PROFILE_NAMES = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;
15
18
  const FAILURE_CACHE_TTL_MS = 30_000;
16
19
  let chromiumCache = undefined;
17
20
  let ucAvailabilityCache = undefined;
@@ -374,9 +377,61 @@ function defaultProfileRoot() {
374
377
  return join(home, "Library", "Application Support", "smart-web", "profiles");
375
378
  return join(home, ".local", "share", "smart-web", "profiles");
376
379
  }
380
+ function isPathInside(parent, child) {
381
+ const parentPath = resolve(parent);
382
+ const childPath = resolve(child);
383
+ const rel = relative(parentPath, childPath);
384
+ return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
385
+ }
386
+ export function validateProfileName(name) {
387
+ if (!SMART_WEB_PROFILE_NAME_PATTERN.test(name) || WINDOWS_RESERVED_PROFILE_NAMES.test(name)) {
388
+ throw new Error(`Invalid browser profile name: use ${SMART_WEB_PROFILE_NAME_DESCRIPTION}`);
389
+ }
390
+ return name;
391
+ }
377
392
  /** Resolve the user-data-dir for a named profile (e.g. "work", "personal"). */
378
393
  export function resolveProfileDir(name) {
379
- return join(defaultProfileRoot(), name, "user-data-dir");
394
+ const safeName = validateProfileName(name);
395
+ const profileRoot = resolve(defaultProfileRoot());
396
+ const profileDir = resolve(profileRoot, safeName, "user-data-dir");
397
+ if (!isPathInside(profileRoot, profileDir)) {
398
+ throw new Error("Invalid browser profile path: resolved path escaped the smart-web profile root");
399
+ }
400
+ return profileDir;
401
+ }
402
+ function ensureSecureDirectory(path) {
403
+ if (existsSync(path)) {
404
+ const before = lstatSync(path);
405
+ if (before.isSymbolicLink())
406
+ throw new Error(`Invalid browser profile path: ${path} is a symlink`);
407
+ if (!before.isDirectory())
408
+ throw new Error(`Invalid browser profile path: ${path} is not a directory`);
409
+ }
410
+ else {
411
+ mkdirSync(path, { recursive: true, mode: 0o700 });
412
+ }
413
+ if (process.platform !== "win32") {
414
+ try {
415
+ chmodSync(path, 0o700);
416
+ }
417
+ catch {
418
+ // Some mounted filesystems do not support chmod; keep launch behavior
419
+ // compatible after the symlink/non-directory checks above.
420
+ }
421
+ }
422
+ const after = lstatSync(path);
423
+ if (after.isSymbolicLink())
424
+ throw new Error(`Invalid browser profile path: ${path} is a symlink`);
425
+ if (!after.isDirectory())
426
+ throw new Error(`Invalid browser profile path: ${path} is not a directory`);
427
+ }
428
+ export function ensureSecureProfileDir(userDataDir) {
429
+ const resolvedUserDataDir = resolve(userDataDir);
430
+ const profileDir = dirname(resolvedUserDataDir);
431
+ const profileRoot = dirname(profileDir);
432
+ ensureSecureDirectory(profileRoot);
433
+ ensureSecureDirectory(profileDir);
434
+ ensureSecureDirectory(resolvedUserDataDir);
380
435
  }
381
436
  async function launchBrowser(chromium, opts = {}) {
382
437
  const configuredChannel = configText("fetch.chromeChannel");
@@ -445,7 +500,7 @@ async function launchPersistentContext(chromium, userDataDir, opts = {}) {
445
500
  base.channel = configuredChannel;
446
501
  if (configuredPath)
447
502
  base.executablePath = configuredPath;
448
- mkdirSync(userDataDir, { recursive: true });
503
+ ensureSecureProfileDir(userDataDir);
449
504
  try {
450
505
  return await chromium.launchPersistentContext(userDataDir, base);
451
506
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser-session.js","sourceRoot":"","sources":["../src/browser-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-session.js","sourceRoot":"","sources":["../src/browser-session.ts"],"names":[],"mappings":"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"}
@@ -2,38 +2,109 @@
2
2
  * Shared HTTP client for k-skill-proxy and Korean public APIs.
3
3
  * Proxy base URL: KSKILL_PROXY_BASE_URL env var, default https://k-skill-proxy.nomadamas.org
4
4
  */
5
+ import { configFlag, validateOutboundUrl } from "../shared.js";
5
6
  const DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org";
6
7
  const DEFAULT_TIMEOUT_MS = 15000;
8
+ const MAX_REDIRECTS = 5;
7
9
  const BROWSER_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36";
8
10
  export function proxyBase() {
9
- return (process.env["KSKILL_PROXY_BASE_URL"] || DEFAULT_PROXY).replace(/\/$/, "");
11
+ return (process.env["KSKILL_PROXY_BASE_URL"] || DEFAULT_PROXY).replace(/\/+$/, "");
10
12
  }
11
- export async function proxyGet(path, params = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
12
- const base = proxyBase();
13
- const url = new URL(`${base}${path}`);
14
- for (const [key, value] of Object.entries(params)) {
15
- if (value !== undefined && value !== "")
16
- url.searchParams.set(key, value);
13
+ function invalidUrlError(message) {
14
+ return { ok: false, status: 0, message, code: "invalid_url" };
15
+ }
16
+ function allowPrivateHosts() {
17
+ return configFlag("network.allowPrivateHosts");
18
+ }
19
+ function blockedUrlError(message) {
20
+ return { ok: false, status: 0, message, code: "blocked_url" };
21
+ }
22
+ function isRedirectStatus(status) {
23
+ return status === 301 || status === 302 || status === 303 || status === 307 || status === 308;
24
+ }
25
+ function redirectInit(status, init) {
26
+ const method = String(init.method || "GET").toUpperCase();
27
+ if (status === 303 || ((status === 301 || status === 302) && method !== "GET" && method !== "HEAD")) {
28
+ const next = { ...init, method: "GET" };
29
+ delete next.body;
30
+ return next;
17
31
  }
18
- return httpGet(url.toString(), {}, timeoutMs);
32
+ return init;
19
33
  }
20
- export async function httpGetText(url, headers = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
34
+ function buildProxyUrl(path) {
35
+ try {
36
+ const base = proxyBase();
37
+ const baseUrl = new URL(base);
38
+ if (baseUrl.protocol !== "http:" && baseUrl.protocol !== "https:") {
39
+ return invalidUrlError("KSKILL_PROXY_BASE_URL must use http or https");
40
+ }
41
+ if (baseUrl.search || baseUrl.hash) {
42
+ return invalidUrlError("KSKILL_PROXY_BASE_URL must not include query or fragment components");
43
+ }
44
+ if (!path.startsWith("/") || path.startsWith("//")) {
45
+ return invalidUrlError("Proxy API path must start with exactly one slash");
46
+ }
47
+ return { ok: true, data: `${base}${path}` };
48
+ }
49
+ catch (err) {
50
+ const message = err instanceof Error ? err.message : String(err);
51
+ return invalidUrlError(message);
52
+ }
53
+ }
54
+ async function validatedFetchText(url, init, timeoutMs, options = {}) {
21
55
  const controller = new AbortController();
22
56
  const timer = setTimeout(() => controller.abort(), timeoutMs);
57
+ let currentUrl = url;
58
+ let currentInit = init;
59
+ const followRedirects = options.followRedirects !== false;
23
60
  try {
24
- const res = await fetch(url, {
25
- signal: controller.signal,
26
- headers: {
27
- "user-agent": BROWSER_UA,
28
- "accept-language": "ko-KR,ko;q=0.9,en;q=0.8",
29
- ...headers,
30
- },
31
- });
32
- const text = await res.text();
33
- if (!res.ok) {
34
- return { ok: false, status: res.status, message: text.slice(0, 500), code: `http_${res.status}` };
61
+ for (let hop = 0; hop <= MAX_REDIRECTS; hop++) {
62
+ const validation = await validateOutboundUrl(currentUrl, { allowPrivateHosts: allowPrivateHosts() });
63
+ if (!validation.ok)
64
+ return blockedUrlError(validation.message);
65
+ const res = await fetch(currentUrl, {
66
+ ...currentInit,
67
+ signal: controller.signal,
68
+ redirect: "manual",
69
+ });
70
+ if (!isRedirectStatus(res.status)) {
71
+ const text = await res.text();
72
+ if (!res.ok) {
73
+ return { ok: false, status: res.status, message: text.slice(0, 500), code: `http_${res.status}` };
74
+ }
75
+ return { ok: true, data: text };
76
+ }
77
+ if (!followRedirects) {
78
+ try {
79
+ await res.body?.cancel();
80
+ }
81
+ catch {
82
+ // Ignore best-effort stream cleanup failures.
83
+ }
84
+ return { ok: false, status: res.status, message: `Redirects are not allowed while requesting URL: ${url}`, code: "redirect_not_allowed" };
85
+ }
86
+ if (hop === MAX_REDIRECTS) {
87
+ try {
88
+ await res.body?.cancel();
89
+ }
90
+ catch {
91
+ // Ignore best-effort stream cleanup failures.
92
+ }
93
+ return { ok: false, status: res.status, message: `Too many redirects while requesting URL: ${url}`, code: "too_many_redirects" };
94
+ }
95
+ const location = res.headers.get("location");
96
+ try {
97
+ await res.body?.cancel();
98
+ }
99
+ catch {
100
+ // Ignore best-effort stream cleanup failures.
101
+ }
102
+ if (!location)
103
+ return { ok: false, status: res.status, message: "Redirect response did not include a Location header", code: "redirect_missing_location" };
104
+ currentUrl = new URL(location, currentUrl).toString();
105
+ currentInit = redirectInit(res.status, currentInit);
35
106
  }
36
- return { ok: true, data: text };
107
+ return { ok: false, status: 0, message: `Too many redirects while requesting URL: ${url}`, code: "too_many_redirects" };
37
108
  }
38
109
  catch (err) {
39
110
  const message = err instanceof Error ? err.message : String(err);
@@ -43,6 +114,26 @@ export async function httpGetText(url, headers = {}, timeoutMs = DEFAULT_TIMEOUT
43
114
  clearTimeout(timer);
44
115
  }
45
116
  }
117
+ export async function proxyGet(path, params = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
118
+ const proxyUrl = buildProxyUrl(path);
119
+ if (!proxyUrl.ok)
120
+ return proxyUrl;
121
+ const url = new URL(proxyUrl.data);
122
+ for (const [key, value] of Object.entries(params)) {
123
+ if (value !== undefined && value !== "")
124
+ url.searchParams.set(key, value);
125
+ }
126
+ return httpGet(url.toString(), {}, timeoutMs);
127
+ }
128
+ export async function httpGetText(url, headers = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
129
+ return validatedFetchText(url, {
130
+ headers: {
131
+ "user-agent": BROWSER_UA,
132
+ "accept-language": "ko-KR,ko;q=0.9,en;q=0.8",
133
+ ...headers,
134
+ },
135
+ }, timeoutMs);
136
+ }
46
137
  export async function httpGet(url, headers = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
47
138
  const result = await httpGetText(url, { accept: "application/json, */*", ...headers }, timeoutMs);
48
139
  if (!result.ok)
@@ -55,32 +146,16 @@ export async function httpGet(url, headers = {}, timeoutMs = DEFAULT_TIMEOUT_MS)
55
146
  }
56
147
  }
57
148
  export async function httpPost(url, body, headers = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
58
- const controller = new AbortController();
59
- const timer = setTimeout(() => controller.abort(), timeoutMs);
60
- try {
61
- const res = await fetch(url, {
62
- method: "POST",
63
- body,
64
- signal: controller.signal,
65
- headers: {
66
- "user-agent": BROWSER_UA,
67
- "accept-language": "ko-KR,ko;q=0.9,en;q=0.8",
68
- ...headers,
69
- },
70
- });
71
- const text = await res.text();
72
- if (!res.ok) {
73
- return { ok: false, status: res.status, message: text.slice(0, 500), code: `http_${res.status}` };
74
- }
75
- return { ok: true, data: text };
76
- }
77
- catch (err) {
78
- const message = err instanceof Error ? err.message : String(err);
79
- return { ok: false, status: 0, message, code: err instanceof Error && err.name === "AbortError" ? "timeout" : "network_error" };
80
- }
81
- finally {
82
- clearTimeout(timer);
83
- }
149
+ const result = await validatedFetchText(url, {
150
+ method: "POST",
151
+ body,
152
+ headers: {
153
+ "user-agent": BROWSER_UA,
154
+ "accept-language": "ko-KR,ko;q=0.9,en;q=0.8",
155
+ ...headers,
156
+ },
157
+ }, timeoutMs, { followRedirects: false });
158
+ return result.ok ? { ok: true, data: result.data } : result;
84
159
  }
85
160
  export function formatError(err) {
86
161
  return `[${err.code}] ${err.message}`;
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-client.js","sourceRoot":"","sources":["../../src/korea/proxy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-client.js","sourceRoot":"","sources":["../../src/korea/proxy-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { z } from "zod";
3
+ import { SMART_WEB_PROFILE_NAME_DESCRIPTION, SMART_WEB_PROFILE_NAME_PATTERN } from "./browser-session.js";
3
4
  import { SMARTFETCH_TARGETS } from "./smartfetch/targets.js";
4
5
  import { renderCoupang, renderDart, renderDrugSafety, renderFineDust, renderFoodSafety, renderGeeknews, renderLaw, renderNaverNews, renderNaverShopping, renderPublicRestroom, renderRealEstate, renderSpellCheck, renderStock, renderSubway, renderWeather, renderZipcode, runCoupang, runDart, runDrugSafety, runFineDust, runFoodSafety, runGeeknews, runLaw, runNaverNews, runNaverShopping, runPublicRestroom, runRealEstate, runSpellCheck, runStock, runSubway, runWeather, runZipcode, } from "./korea/index.js";
5
6
  const ISSUE_REPORT_GUIDANCE = "If smart-web returns reproducible incorrect or misleading output, open a GitHub issue on jojo-labs/smart-web with the exact input, arguments, observed output, expected behavior, and version. Skip obvious transient network/auth/rate-limit failures unless smart-web misclassified them.";
@@ -129,17 +130,17 @@ export function createSmartWebServer(version, runtime) {
129
130
  });
130
131
  server.registerTool("smartfetch", {
131
132
  title: "Smart Fetch",
132
- description: `Fetch and normalize one known URL or shortlink. Use this first for direct user-supplied URLs, browser-rendered pages, social posts, and videos; do not use smartsearch when the user already provided the URL, and use smartcrawl only when you need multiple pages from the same site. ${ISSUE_REPORT_GUIDANCE}`,
133
+ description: `Fetch and normalize one known URL or shortlink. Use this first for direct user-supplied URLs, browser-rendered pages, social posts, and videos; YouTube watch/short/embed links get best-effort transcript enrichment when public captions are available. Do not use smartsearch when the user already provided the URL, and use smartcrawl only when you need multiple pages from the same site. ${ISSUE_REPORT_GUIDANCE}`,
133
134
  inputSchema: {
134
135
  url: z.string().min(1).describe("Direct URL or shortlink to fetch. Prefer this tool when the user already supplied a URL."),
135
- target: z.enum(SMARTFETCH_TARGETS).optional().describe("Content type hint"),
136
+ target: z.enum(SMARTFETCH_TARGETS).optional().describe("Content type hint. Leave auto for normal use; youtube_video is for actual video routes such as watch, shorts, embed, live, or youtu.be links."),
136
137
  timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Fetch timeout in milliseconds"),
137
138
  download: z.boolean().optional().describe("Prefer a downloadable asset result when the URL or discovered assets point to a file"),
138
139
  force_dynamic: z.boolean().optional().describe("Skip the impit/light fetch and go straight to Playwright browser rendering. Required for sites behind Cloudflare or similar bot protection (e.g. wikidocs.net) that return challenge pages instead of content via plain HTTP. Also useful when you know the page is a full client-side SPA and want to skip the initial failed fetch attempt."),
139
140
  wait_for: z.string().min(1).optional().describe("CSS selector to wait for before capture (Playwright). Use when you know the page is an SPA that renders content into a specific element — e.g. '[data-reactroot]', 'svg.chart', '.content'. Without force_dynamic, the light fetch runs first; if it returns an SPA shell, Playwright auto-falls back using this selector."),
140
141
  strict_schema: z.boolean().optional().describe("Return schema-safe fallback output when normalization breaks"),
141
- format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content. Defaults to compact text while structuredContent always carries projected JSON; use json only when the host needs JSON duplicated in text."),
142
- profile: z.string().min(1).optional().describe("Named browser profile for authenticated fetches. Uses a persistent user-data-dir so cookies from a prior manual login are reused. Falls back to the fetch.browserProfile setting when omitted."),
142
+ format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content. Defaults to compact token-conscious text while structuredContent always carries projected JSON; use json only when the host needs JSON duplicated in text."),
143
+ profile: z.string().regex(SMART_WEB_PROFILE_NAME_PATTERN).optional().describe(`Named browser profile for authenticated fetches (${SMART_WEB_PROFILE_NAME_DESCRIPTION}). Uses a persistent user-data-dir so cookies from a prior manual login are reused. Falls back to the fetch.browserProfile setting when omitted.`),
143
144
  },
144
145
  annotations: {
145
146
  title: "Smart Fetch",