smart-web-mcp 0.20.1 → 0.20.2

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
@@ -70,6 +70,7 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
70
70
 
71
71
  ### Fixed
72
72
 
73
+ - `smartfetch target=naver_blog` now safely hydrates desktop/direct `blog.naver.com` pages through trusted `m.blog.naver.com` or frame content, while still rejecting arbitrary cross-origin iframe URLs and preserving unavailable/deleted blog guidance.
73
74
  - `smartcrawl` docs summaries now suppress previous/next pager links from ranked results while still allowing pagination traversal, preventing duplicated navigation context from outranking relevant docs pages in configured MCP smokes.
74
75
  - `kr_public_restroom` now returns structured coordinate guidance when neither `lat`/`lon` nor Kakao geocoding are available, instead of raising an MCP tool error.
75
76
  - `smartfetch target=naver_blog` now treats invalid/deleted Naver Blog error shells as partial `blocked_or_unavailable` results with explicit guidance instead of rendering CSS/font declarations and asset links as successful post text.
@@ -108,6 +109,13 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
108
109
  - Korean public API helpers now validate outbound URLs and redirects before fetching, blocking localhost, private, and reserved targets unless `network.allowPrivateHosts` is explicitly enabled.
109
110
  - 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.
110
111
 
112
+ ## [0.20.2](https://github.com/jojo-labs/smart-web/compare/v0.20.1...v0.20.2) (2026-06-21)
113
+
114
+
115
+ ### Bug Fixes
116
+
117
+ * hydrate Naver Blog desktop pages ([#309](https://github.com/jojo-labs/smart-web/issues/309)) ([90d6c18](https://github.com/jojo-labs/smart-web/commit/90d6c186c308536197e857f54d95fb0b7d7c16d3))
118
+
111
119
  ## [0.20.1](https://github.com/jojo-labs/smart-web/compare/v0.20.0...v0.20.1) (2026-06-20)
112
120
 
113
121
 
@@ -3,6 +3,7 @@ type ProviderRequestMode = "same-origin" | "relay";
3
3
  type ProviderRequestOptions = {
4
4
  mode: ProviderRequestMode;
5
5
  sourceUrl: string;
6
+ allowedOrigins?: string[];
6
7
  };
7
8
  type ProviderFailure = {
8
9
  ok: false;
@@ -19,6 +19,15 @@ function isSameOrigin(targetUrl, sourceUrl) {
19
19
  return false;
20
20
  }
21
21
  }
22
+ function isAllowedOrigin(targetUrl, options) {
23
+ try {
24
+ const target = normalizeOrigin(new URL(targetUrl));
25
+ return target === normalizeOrigin(new URL(options.sourceUrl)) || (options.allowedOrigins || []).includes(target);
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
22
31
  function sanitizeCrossOriginRedirectHeaders(headers) {
23
32
  if (headers === undefined)
24
33
  return undefined;
@@ -36,7 +45,7 @@ async function enforcePolicy(url, options) {
36
45
  if (!validation.ok) {
37
46
  return { ok: false, error: { category: "block", code: validation.reason, message: validation.message } };
38
47
  }
39
- if (options.mode === "same-origin" && !isSameOrigin(url, options.sourceUrl)) {
48
+ if (options.mode === "same-origin" && !isAllowedOrigin(url, options)) {
40
49
  return {
41
50
  ok: false,
42
51
  error: { category: "block", code: "provider_cross_origin_blocked", message: "Provider request crossed origin unexpectedly" },
@@ -1 +1 @@
1
- {"version":3,"file":"provider-policy.js","sourceRoot":"","sources":["../../src/smartfetch/provider-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-policy.js","sourceRoot":"","sources":["../../src/smartfetch/provider-policy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { dedupeUrls, extractMetaDescription, extractMetaProperty, extractTitleFromHtml, extractUrls, stripTags } from "../../shared.js";
1
+ import { decodeHtml, dedupeUrls, extractMetaDescription, extractMetaProperty, extractTitleFromHtml, extractUrls, stripTags } from "../../shared.js";
2
2
  import { fetchProviderText } from "../provider-policy.js";
3
3
  const USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36";
4
+ const NAVER_BLOG_ORIGINS = ["https://blog.naver.com:443", "https://m.blog.naver.com:443"];
4
5
  function cleanText(value) {
5
6
  return String(value || "").replace(/\s+/g, " ").trim();
6
7
  }
@@ -10,20 +11,34 @@ function removeNonContentBlocks(html) {
10
11
  function stripNaverBlogContent(html) {
11
12
  return cleanText(stripTags(removeNonContentBlocks(html)));
12
13
  }
14
+ function isNaverBlogContentUrl(url) {
15
+ return url.protocol === "https:" && (url.hostname === "blog.naver.com" || url.hostname === "m.blog.naver.com");
16
+ }
13
17
  function resolveNaverContentUrl(url, html) {
14
18
  try {
15
19
  const parsed = new URL(url);
16
20
  const frame = html.match(/<iframe[^>]+id=["']mainFrame["'][^>]+src=["']([^"']+)["']/i)?.[1];
17
- if (frame)
18
- return new URL(frame, `${parsed.protocol}//${parsed.host}`).toString();
21
+ if (frame) {
22
+ const frameUrl = new URL(decodeHtml(frame), `${parsed.protocol}//${parsed.host}`);
23
+ if (isNaverBlogContentUrl(frameUrl))
24
+ return { url: frameUrl.toString() };
25
+ return {
26
+ url,
27
+ error: {
28
+ category: "block",
29
+ code: "naver_blog_untrusted_frame_url",
30
+ message: "Naver Blog frame URL was outside the trusted blog.naver.com/mobile blog origin set",
31
+ },
32
+ };
33
+ }
19
34
  if (parsed.hostname === "blog.naver.com") {
20
- return `https://m.blog.naver.com${parsed.pathname}${parsed.search}`;
35
+ return { url: `https://m.blog.naver.com${parsed.pathname}${parsed.search}` };
21
36
  }
22
37
  }
23
38
  catch {
24
39
  // Keep the original URL when the blog frame URL cannot be resolved.
25
40
  }
26
- return url;
41
+ return { url };
27
42
  }
28
43
  function extractNaverBody(html) {
29
44
  const patterns = [
@@ -71,9 +86,12 @@ export const naverBlogProvider = {
71
86
  id: "naver-blog",
72
87
  matches: (_url, target) => target === "naver_blog",
73
88
  async normalize(context) {
74
- const contentUrl = resolveNaverContentUrl(context.url, context.active.content);
89
+ const resolvedContent = resolveNaverContentUrl(context.url, context.active.content);
90
+ const contentUrl = resolvedContent.url;
75
91
  let html = context.active.content;
76
92
  let method = context.active.method;
93
+ let errors = resolvedContent.error ? [...context.errors, resolvedContent.error] : context.errors;
94
+ let hydrated = false;
77
95
  if (contentUrl !== context.url) {
78
96
  const result = await fetchProviderText(contentUrl, context.timeoutMs, {
79
97
  headers: {
@@ -84,16 +102,15 @@ export const naverBlogProvider = {
84
102
  }, {
85
103
  mode: "same-origin",
86
104
  sourceUrl: context.url,
105
+ allowedOrigins: NAVER_BLOG_ORIGINS,
87
106
  });
88
107
  if (result.ok) {
89
108
  html = result.text;
90
109
  method = "naver_blog_frame";
110
+ hydrated = true;
91
111
  }
92
112
  else {
93
- context = {
94
- ...context,
95
- errors: [...context.errors, result.error],
96
- };
113
+ errors = [...errors, result.error];
97
114
  }
98
115
  }
99
116
  const title = extractMetaProperty(html, "og:title") || extractTitleFromHtml(html);
@@ -101,7 +118,7 @@ export const naverBlogProvider = {
101
118
  const body = extractNaverBody(html);
102
119
  const unavailable = isNaverBlogUnavailableShell(html, title, body);
103
120
  const text = unavailable ? naverBlogUnavailableGuidance() : body;
104
- const outboundLinks = dedupeUrls([...context.active.links, ...extractUrls(html)]);
121
+ const outboundLinks = dedupeUrls([...(hydrated ? [] : context.active.links), ...extractUrls(html)]);
105
122
  return {
106
123
  post: {
107
124
  url: context.url,
@@ -117,10 +134,10 @@ export const naverBlogProvider = {
117
134
  partial: !body || unavailable,
118
135
  errors: unavailable
119
136
  ? [
120
- ...context.errors,
137
+ ...errors,
121
138
  { category: "unavailable", code: "naver_blog_post_unavailable", message: naverBlogUnavailableGuidance() },
122
139
  ]
123
- : context.errors,
140
+ : errors,
124
141
  method,
125
142
  };
126
143
  },
@@ -1 +1 @@
1
- {"version":3,"file":"naver-blog.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/naver-blog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naver-blog.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/naver-blog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "smart-web-mcp",
3
3
  "mcpName": "io.github.jojo-labs/smart-web",
4
- "version": "0.20.1",
4
+ "version": "0.20.2",
5
5
  "packageManager": "npm@11.9.0",
6
6
  "description": "Local MCP for web search, direct-URL fetch, compact normalized output, site crawling, and docs export.",
7
7
  "homepage": "https://github.com/jojo-labs/smart-web",