smart-web-mcp 0.5.22 → 0.5.25
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 +27 -0
- package/README.md +18 -6
- package/dist/dev-runtime.d.ts +7 -0
- package/dist/dev-runtime.js +72 -0
- package/dist/dev-runtime.js.map +1 -0
- package/dist/dev.d.ts +2 -0
- package/dist/dev.js +20 -0
- package/dist/dev.js.map +1 -0
- package/dist/index.js +12 -181
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +12 -0
- package/dist/mcp-server.js +208 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/smartdocscrawl.d.ts +1 -1
- package/dist/smartdocscrawl.js +43 -35
- package/dist/smartdocscrawl.js.map +1 -1
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,33 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.5.25] - 2026-03-27
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- the merged `smartcrawl` contract now rejects export-only crawl budgets in summary mode, treats `mode=board` as invalid in export mode, and presents export-mode responses consistently as `smartcrawl` with `smartcrawl-manifest.json`
|
|
14
|
+
- the deprecated `smartdocscrawl` MCP alias now remains available for backward compatibility while delegating to the same `smartcrawl` export path
|
|
15
|
+
|
|
16
|
+
## [0.5.24] - 2026-03-27
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- `smartcrawl` now owns both ranked multi-page exploration and optional local Markdown export via `output_dir`, so MCP users only need one crawl tool surface for both read-only scouting and docs mirroring
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- the MCP surface is now cleaner and less ambiguous because `smartcrawl` became the primary crawl/export surface while the internal export implementation remained behind that tool boundary
|
|
25
|
+
|
|
26
|
+
## [0.5.23] - 2026-03-27
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- local repo checkouts now have a `smart-web-dev` entrypoint that hot-swaps rebuilt `dist/*.js` implementation modules between tool calls, so ordinary implementation changes can land in an already-running MCP session without restarting OpenCode
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- LinkedIn profile crawling now treats `smartcrawl.limit` as a best-effort recent public post count more accurately by deduping duplicate activity variants before gating fallback, backfilling when direct crawl found fewer unique posts than requested, and tightening ownership checks for `feed/update` discoveries
|
|
35
|
+
|
|
9
36
|
## [0.5.22] - 2026-03-27
|
|
10
37
|
|
|
11
38
|
### Fixed
|
package/README.md
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
One local MCP server for web search, page fetch, and site crawl.
|
|
6
6
|
|
|
7
|
-
`smart-web` ships
|
|
7
|
+
`smart-web` ships three primary tools in one stdio server:
|
|
8
8
|
|
|
9
9
|
- `smartsearch`: fallback web search with optional site-crawl handoff
|
|
10
10
|
- `smartfetch`: browser-aware direct-URL fetch with target-specific normalization
|
|
11
|
-
- `smartcrawl`: site exploration for docs, boards, pagination,
|
|
12
|
-
|
|
11
|
+
- `smartcrawl`: site exploration for docs, boards, pagination, scroll-heavy pages, and optional local Markdown export via `output_dir`
|
|
12
|
+
|
|
13
|
+
For backward compatibility, the server still exposes a deprecated `smartdocscrawl` alias that maps to `smartcrawl` export mode. New callers should use `smartcrawl`.
|
|
13
14
|
|
|
14
15
|
## Tool routing
|
|
15
16
|
|
|
@@ -17,8 +18,7 @@ Use the tools like this:
|
|
|
17
18
|
|
|
18
19
|
- `smartfetch` first when the user already gave a URL or shortlink
|
|
19
20
|
- `smartsearch` when the user gave a topic, keywords, or a `site:` query and you need discovery
|
|
20
|
-
- `smartcrawl` when you already know the site and need multiple relevant pages instead of one page
|
|
21
|
-
- `smartdocscrawl` when you want an offline/local Markdown copy of a docs section instead of a read-only crawl summary
|
|
21
|
+
- `smartcrawl` when you already know the site and need multiple relevant pages instead of one page, optionally with `output_dir` when you want a local Markdown mirror instead of only a ranked summary
|
|
22
22
|
|
|
23
23
|
`smartfetch` also works for commerce-style pages now: search/listing pages can be normalized into product results, and product detail pages can surface title, price, rating, and availability when the source site exposes them.
|
|
24
24
|
|
|
@@ -119,7 +119,7 @@ Everything else lives in the same JSON file as advanced overrides rather than ex
|
|
|
119
119
|
- ask `smartfetch` to fetch a normal article URL
|
|
120
120
|
- ask `smartfetch` with `download: true` on a direct PDF or media URL when you want the result shaped around the file target
|
|
121
121
|
- ask `smartcrawl` to explore a docs site or forum you actually use
|
|
122
|
-
- ask `
|
|
122
|
+
- ask `smartcrawl` with `output_dir` to mirror a docs section into a local folder you can grep, index, or commit
|
|
123
123
|
|
|
124
124
|
## Docs
|
|
125
125
|
|
|
@@ -136,6 +136,7 @@ Everything else lives in the same JSON file as advanced overrides rather than ex
|
|
|
136
136
|
|
|
137
137
|
- [Claude Code](examples/claude.mcp.json)
|
|
138
138
|
- [OpenCode](examples/opencode.json)
|
|
139
|
+
- [OpenCode dev hot-reload](examples/opencode.dev.json)
|
|
139
140
|
- [Settings template](examples/smart-web.settings.json)
|
|
140
141
|
|
|
141
142
|
These examples use `/absolute/path/to/...` placeholders for local checkouts.
|
|
@@ -149,6 +150,17 @@ npm run check
|
|
|
149
150
|
|
|
150
151
|
`npm install` also installs local git hooks for fast TypeScript checks on commit and the full verification suite on push.
|
|
151
152
|
|
|
153
|
+
### Dev MCP without restarting OpenCode
|
|
154
|
+
|
|
155
|
+
If you run `smart-web` from a local repo checkout, you can use the dev entrypoint so normal implementation changes are picked up after a rebuild without restarting the MCP host:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
npm run dev:watch
|
|
159
|
+
smart-web-dev
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
`smart-web-dev` hot-swaps the latest rebuilt `dist/*.js` modules on each tool call. That means existing tool implementations update after `tsc` rebuilds, but adding brand-new tools or changing tool schemas still needs a client reconnect because MCP tool registration happens at process start.
|
|
163
|
+
|
|
152
164
|
## License
|
|
153
165
|
|
|
154
166
|
MIT
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SmartWebRuntime } from "./mcp-server.js";
|
|
2
|
+
type LoaderOptions = {
|
|
3
|
+
importer?: (href: string) => Promise<Record<string, unknown>>;
|
|
4
|
+
};
|
|
5
|
+
export declare function createVersionedModuleLoader(baseDir: string, options?: LoaderOptions): (relativePath: string) => Promise<Record<string, unknown>>;
|
|
6
|
+
export declare function createReloadingRuntime(baseDir: string): SmartWebRuntime;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { copyFile, mkdtemp, mkdir, readdir, rm, stat } from "node:fs/promises";
|
|
2
|
+
import { join, relative, resolve, dirname } from "node:path";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
5
|
+
async function collectRuntimeFiles(rootDir, currentDir = rootDir) {
|
|
6
|
+
const entries = await readdir(currentDir, { withFileTypes: true });
|
|
7
|
+
const files = [];
|
|
8
|
+
for (const entry of entries) {
|
|
9
|
+
const absolutePath = join(currentDir, entry.name);
|
|
10
|
+
if (entry.isDirectory()) {
|
|
11
|
+
files.push(...await collectRuntimeFiles(rootDir, absolutePath));
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
if (!/\.(?:[cm]?js|json)$/i.test(entry.name))
|
|
15
|
+
continue;
|
|
16
|
+
files.push(relative(rootDir, absolutePath));
|
|
17
|
+
}
|
|
18
|
+
return files.sort();
|
|
19
|
+
}
|
|
20
|
+
async function fingerprintRuntime(rootDir, files) {
|
|
21
|
+
const parts = [];
|
|
22
|
+
for (const file of files) {
|
|
23
|
+
const fileStat = await stat(resolve(rootDir, file));
|
|
24
|
+
parts.push(`${file}:${fileStat.mtimeMs}:${fileStat.size}`);
|
|
25
|
+
}
|
|
26
|
+
return parts.join("|");
|
|
27
|
+
}
|
|
28
|
+
async function createSnapshot(rootDir, files) {
|
|
29
|
+
const snapshotDir = await mkdtemp(join(tmpdir(), "smart-web-dev-dist-"));
|
|
30
|
+
for (const file of files) {
|
|
31
|
+
const source = resolve(rootDir, file);
|
|
32
|
+
const target = resolve(snapshotDir, file);
|
|
33
|
+
await mkdir(dirname(target), { recursive: true });
|
|
34
|
+
await copyFile(source, target);
|
|
35
|
+
}
|
|
36
|
+
return snapshotDir;
|
|
37
|
+
}
|
|
38
|
+
export function createVersionedModuleLoader(baseDir, options) {
|
|
39
|
+
const importer = options?.importer || (async (href) => import(href));
|
|
40
|
+
let snapshot;
|
|
41
|
+
return async function load(relativePath) {
|
|
42
|
+
const files = await collectRuntimeFiles(baseDir);
|
|
43
|
+
const fingerprint = await fingerprintRuntime(baseDir, files);
|
|
44
|
+
if (!snapshot || snapshot.fingerprint !== fingerprint) {
|
|
45
|
+
const dir = await createSnapshot(baseDir, files);
|
|
46
|
+
if (snapshot)
|
|
47
|
+
await rm(snapshot.dir, { recursive: true, force: true }).catch(() => { });
|
|
48
|
+
snapshot = { fingerprint, dir, modules: new Map() };
|
|
49
|
+
}
|
|
50
|
+
const modulePath = resolve(snapshot.dir, relativePath);
|
|
51
|
+
const cached = snapshot.modules.get(modulePath);
|
|
52
|
+
if (cached)
|
|
53
|
+
return cached;
|
|
54
|
+
const value = await importer(pathToFileURL(modulePath).href);
|
|
55
|
+
snapshot.modules.set(modulePath, value);
|
|
56
|
+
return value;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function createReloadingRuntime(baseDir) {
|
|
60
|
+
const load = createVersionedModuleLoader(baseDir);
|
|
61
|
+
return {
|
|
62
|
+
runSmartcrawl: async (...args) => (await load("./smartcrawl.js")).runSmartcrawl(...args),
|
|
63
|
+
renderSmartcrawl: async (...args) => (await load("./smartcrawl.js")).renderSmartcrawl(...args),
|
|
64
|
+
runSmartdocscrawl: async (...args) => (await load("./smartdocscrawl.js")).runSmartdocscrawl(...args),
|
|
65
|
+
renderSmartdocscrawl: async (...args) => (await load("./smartdocscrawl.js")).renderSmartdocscrawl(...args),
|
|
66
|
+
runSmartfetch: async (...args) => (await load("./smartfetch.js")).runSmartfetch(...args),
|
|
67
|
+
renderSmartfetch: async (...args) => (await load("./smartfetch.js")).renderSmartfetch(...args),
|
|
68
|
+
runSmartsearch: async (...args) => (await load("./smartsearch.js")).runSmartsearch(...args),
|
|
69
|
+
renderSmartsearch: async (...args) => (await load("./smartsearch.js")).renderSmartsearch(...args),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=dev-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-runtime.js","sourceRoot":"","sources":["../src/dev-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.d.ts
ADDED
package/dist/dev.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { dirname } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
|
+
import { createReloadingRuntime } from "./dev-runtime.js";
|
|
7
|
+
import { createSmartWebServer } from "./mcp-server.js";
|
|
8
|
+
const packageVersion = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
|
|
9
|
+
const distDir = dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
async function main() {
|
|
11
|
+
const runtime = createReloadingRuntime(distDir);
|
|
12
|
+
const server = createSmartWebServer(`${packageVersion}-dev`, runtime);
|
|
13
|
+
const transport = new StdioServerTransport();
|
|
14
|
+
await server.connect(transport);
|
|
15
|
+
}
|
|
16
|
+
main().catch((error) => {
|
|
17
|
+
console.error(error);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAiB,CAAA;AACtH,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEvD,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,cAAc,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,191 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
|
-
import {
|
|
4
|
+
import { createSmartWebServer } from "./mcp-server.js";
|
|
6
5
|
import { initSettings, settingsPath, settingsTemplate } from "./settings.js";
|
|
7
6
|
import { renderSmartcrawl, runSmartcrawl } from "./smartcrawl.js";
|
|
8
7
|
import { renderSmartdocscrawl, runSmartdocscrawl } from "./smartdocscrawl.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { renderSmartfetch, runSmartfetch } from "./smartfetch.js";
|
|
9
|
+
import { renderSmartsearch, runSmartsearch } from "./smartsearch.js";
|
|
11
10
|
const packageVersion = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
|
|
12
|
-
const server =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
numResults: z.number().int().min(1).max(20).optional().describe("Number of search results to return"),
|
|
22
|
-
type: z.enum(["auto", "fast", "deep"]).optional().describe("Search depth hint"),
|
|
23
|
-
contextMaxCharacters: z.number().int().min(1000).max(20000).optional().describe("Maximum snippet/context size hint"),
|
|
24
|
-
site_crawl: z.boolean().optional().describe("After search, hand off into smartcrawl when a crawl_url or site: operator is available"),
|
|
25
|
-
crawl_url: z.string().optional().describe("Optional starting URL for the smartcrawl handoff"),
|
|
26
|
-
crawl_mode: z.enum(["auto", "board", "docs"]).optional().describe("Traversal hint for the smartcrawl handoff"),
|
|
27
|
-
crawl_limit: z.number().int().min(1).max(50).optional().describe("Maximum ranked crawl results to return in the handoff summary"),
|
|
28
|
-
crawl_max_pages: z.number().int().min(1).max(20).optional().describe("Maximum number of pages to visit during the crawl handoff"),
|
|
29
|
-
crawl_max_depth: z.number().int().min(0).max(3).optional().describe("Maximum recursive depth for the crawl handoff"),
|
|
30
|
-
crawl_timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Per-page timeout for the crawl handoff"),
|
|
31
|
-
},
|
|
32
|
-
annotations: {
|
|
33
|
-
title: "Smart Search",
|
|
34
|
-
readOnlyHint: true,
|
|
35
|
-
destructiveHint: false,
|
|
36
|
-
idempotentHint: true,
|
|
37
|
-
openWorldHint: true,
|
|
38
|
-
},
|
|
39
|
-
}, async ({ query, numResults, type, contextMaxCharacters, site_crawl, crawl_url, crawl_mode, crawl_limit, crawl_max_pages, crawl_max_depth, crawl_timeout_ms }) => {
|
|
40
|
-
const output = await runSmartsearch({
|
|
41
|
-
query,
|
|
42
|
-
...(numResults === undefined ? {} : { numResults }),
|
|
43
|
-
...(type === undefined ? {} : { searchType: type }),
|
|
44
|
-
...(contextMaxCharacters === undefined ? {} : { contextMaxCharacters }),
|
|
45
|
-
...(site_crawl === undefined ? {} : { siteCrawl: site_crawl }),
|
|
46
|
-
...(crawl_url === undefined ? {} : { crawlUrl: crawl_url }),
|
|
47
|
-
...(crawl_mode === undefined ? {} : { crawlMode: crawl_mode }),
|
|
48
|
-
...(crawl_limit === undefined ? {} : { crawlLimit: crawl_limit }),
|
|
49
|
-
...(crawl_max_pages === undefined ? {} : { crawlMaxPages: crawl_max_pages }),
|
|
50
|
-
...(crawl_max_depth === undefined ? {} : { crawlMaxDepth: crawl_max_depth }),
|
|
51
|
-
...(crawl_timeout_ms === undefined ? {} : { crawlTimeoutMs: crawl_timeout_ms }),
|
|
52
|
-
});
|
|
53
|
-
return {
|
|
54
|
-
structuredContent: output,
|
|
55
|
-
content: [{ type: "text", text: renderSmartsearch(output) }],
|
|
56
|
-
};
|
|
57
|
-
});
|
|
58
|
-
server.registerTool("smartcrawl", {
|
|
59
|
-
title: "Smart Crawl",
|
|
60
|
-
description: "Traverse a known site when one page is not enough and you need multiple relevant docs pages, posts, or thread items. Start from a concrete site URL; if you need to discover the site first, use smartsearch, and if you only need one direct URL, use smartfetch. For LinkedIn profile URLs this is best-effort recent public post discovery, not full archive pagination.",
|
|
61
|
-
inputSchema: {
|
|
62
|
-
url: z.string().min(1).describe("Starting site or docs URL to explore. Use this when you need multiple pages from one site, not a single direct URL fetch."),
|
|
63
|
-
query: z.string().optional().describe("Optional topic filter used to rank crawl results"),
|
|
64
|
-
mode: z.enum(["auto", "board", "docs"]).optional().describe("Traversal hint for boards, docs sites, or automatic detection"),
|
|
65
|
-
limit: z.number().int().min(1).max(50).optional().describe("Maximum number of ranked results to return. For LinkedIn profile URLs this acts like a best-effort recent public post count."),
|
|
66
|
-
max_pages: z.number().int().min(1).max(20).optional().describe("Maximum number of pages to visit during exploration"),
|
|
67
|
-
max_depth: z.number().int().min(0).max(3).optional().describe("Maximum recursive depth from the starting URL"),
|
|
68
|
-
include_patterns: z.array(z.string().min(1)).max(20).optional().describe("Optional regex or substring patterns for URLs to keep"),
|
|
69
|
-
exclude_patterns: z.array(z.string().min(1)).max(20).optional().describe("Optional regex or substring patterns for URLs to skip"),
|
|
70
|
-
same_origin_only: z.boolean().optional().describe("Restrict traversal to the starting origin while still surfacing external item links"),
|
|
71
|
-
follow_pagination: z.boolean().optional().describe("Follow next or more-style pagination links during exploration"),
|
|
72
|
-
scroll_steps: z.number().int().min(0).max(12).optional().describe("How many scroll attempts to use for scroll-driven pages"),
|
|
73
|
-
timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Crawl timeout budget per page"),
|
|
74
|
-
format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content"),
|
|
75
|
-
},
|
|
76
|
-
annotations: {
|
|
77
|
-
title: "Smart Crawl",
|
|
78
|
-
readOnlyHint: true,
|
|
79
|
-
destructiveHint: false,
|
|
80
|
-
idempotentHint: true,
|
|
81
|
-
openWorldHint: true,
|
|
82
|
-
},
|
|
83
|
-
}, async ({ url, query, mode, limit, max_pages, max_depth, include_patterns, exclude_patterns, same_origin_only, follow_pagination, scroll_steps, timeout_ms, format, }) => {
|
|
84
|
-
const output = await runSmartcrawl({
|
|
85
|
-
url,
|
|
86
|
-
...(query === undefined ? {} : { query }),
|
|
87
|
-
...(mode === undefined ? {} : { mode }),
|
|
88
|
-
...(limit === undefined ? {} : { limit }),
|
|
89
|
-
...(max_pages === undefined ? {} : { maxPages: max_pages }),
|
|
90
|
-
...(max_depth === undefined ? {} : { maxDepth: max_depth }),
|
|
91
|
-
...(include_patterns === undefined ? {} : { includePatterns: include_patterns }),
|
|
92
|
-
...(exclude_patterns === undefined ? {} : { excludePatterns: exclude_patterns }),
|
|
93
|
-
...(same_origin_only === undefined ? {} : { sameOriginOnly: same_origin_only }),
|
|
94
|
-
...(follow_pagination === undefined ? {} : { followPagination: follow_pagination }),
|
|
95
|
-
...(scroll_steps === undefined ? {} : { scrollSteps: scroll_steps }),
|
|
96
|
-
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
97
|
-
});
|
|
98
|
-
const requestedFormat = format || "json";
|
|
99
|
-
return {
|
|
100
|
-
structuredContent: output,
|
|
101
|
-
content: [
|
|
102
|
-
{
|
|
103
|
-
type: "text",
|
|
104
|
-
text: requestedFormat === "json" ? JSON.stringify(output, null, 2) : renderSmartcrawl(output, requestedFormat),
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
};
|
|
108
|
-
});
|
|
109
|
-
server.registerTool("smartdocscrawl", {
|
|
110
|
-
title: "Smart Docs Crawl",
|
|
111
|
-
description: "Mirror a docs-style site into local Markdown files when you want a reusable offline folder instead of a ranked crawl summary.",
|
|
112
|
-
inputSchema: {
|
|
113
|
-
url: z.string().min(1).describe("Starting docs URL to mirror into Markdown. Prefer a docs home or section root, not a one-off article."),
|
|
114
|
-
output_dir: z.string().min(1).describe("Local directory where Markdown files, a README summary, and a crawl manifest should be written."),
|
|
115
|
-
query: z.string().optional().describe("Optional topic filter used to prioritize which docs pages get crawled first"),
|
|
116
|
-
max_pages: z.number().int().min(1).max(200).optional().describe("Maximum number of docs pages to visit while building the local Markdown folder"),
|
|
117
|
-
max_depth: z.number().int().min(0).max(20).optional().describe("Maximum crawl depth from the starting docs page"),
|
|
118
|
-
include_patterns: z.array(z.string().min(1)).max(50).optional().describe("Optional regex or substring patterns for URLs to keep in the docs export"),
|
|
119
|
-
exclude_patterns: z.array(z.string().min(1)).max(50).optional().describe("Optional regex or substring patterns for URLs to skip in the docs export"),
|
|
120
|
-
same_origin_only: z.boolean().optional().describe("Restrict traversal to the starting origin while still exporting only local Markdown files"),
|
|
121
|
-
follow_pagination: z.boolean().optional().describe("Follow next-page style links when the docs site splits sections across pages"),
|
|
122
|
-
scroll_steps: z.number().int().min(0).max(12).optional().describe("How aggressively to scroll rendered docs pages before snapshotting content"),
|
|
123
|
-
timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Per-page timeout budget in milliseconds"),
|
|
124
|
-
},
|
|
125
|
-
annotations: {
|
|
126
|
-
title: "Smart Docs Crawl",
|
|
127
|
-
readOnlyHint: false,
|
|
128
|
-
destructiveHint: true,
|
|
129
|
-
idempotentHint: false,
|
|
130
|
-
openWorldHint: true,
|
|
131
|
-
},
|
|
132
|
-
}, async ({ url, output_dir, query, max_pages, max_depth, include_patterns, exclude_patterns, same_origin_only, follow_pagination, scroll_steps, timeout_ms }) => {
|
|
133
|
-
const output = await runSmartdocscrawl({
|
|
134
|
-
url,
|
|
135
|
-
outputDir: output_dir,
|
|
136
|
-
...(query === undefined ? {} : { query }),
|
|
137
|
-
...(max_pages === undefined ? {} : { maxPages: max_pages }),
|
|
138
|
-
...(max_depth === undefined ? {} : { maxDepth: max_depth }),
|
|
139
|
-
...(include_patterns === undefined ? {} : { includePatterns: include_patterns }),
|
|
140
|
-
...(exclude_patterns === undefined ? {} : { excludePatterns: exclude_patterns }),
|
|
141
|
-
...(same_origin_only === undefined ? {} : { sameOriginOnly: same_origin_only }),
|
|
142
|
-
...(follow_pagination === undefined ? {} : { followPagination: follow_pagination }),
|
|
143
|
-
...(scroll_steps === undefined ? {} : { scrollSteps: scroll_steps }),
|
|
144
|
-
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
145
|
-
});
|
|
146
|
-
return {
|
|
147
|
-
structuredContent: output,
|
|
148
|
-
content: [{ type: "text", text: renderSmartdocscrawl(output) }],
|
|
149
|
-
};
|
|
150
|
-
});
|
|
151
|
-
server.registerTool("smartfetch", {
|
|
152
|
-
title: "Smart Fetch",
|
|
153
|
-
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.",
|
|
154
|
-
inputSchema: {
|
|
155
|
-
url: z.string().min(1).describe("Direct URL or shortlink to fetch. Prefer this tool when the user already supplied a URL."),
|
|
156
|
-
target: z.enum(["auto", "generic", "reddit_post", "x_post", "threads_post", "instagram_post", "telegram_post", "dcinside_post", "youtube_video", "naver_blog", "naver_cafe_post", "tistory_post", "velog_post", "hackernews_post", "linkedin_post"]).optional().describe("Content type hint"),
|
|
157
|
-
timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Fetch timeout in milliseconds"),
|
|
158
|
-
download: z.boolean().optional().describe("Prefer a downloadable asset result when the URL or discovered assets point to a file"),
|
|
159
|
-
force_dynamic: z.boolean().optional().describe("Skip light fetches and go straight to Playwright"),
|
|
160
|
-
strict_schema: z.boolean().optional().describe("Return schema-safe fallback output when normalization breaks"),
|
|
161
|
-
format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content"),
|
|
162
|
-
},
|
|
163
|
-
annotations: {
|
|
164
|
-
title: "Smart Fetch",
|
|
165
|
-
readOnlyHint: true,
|
|
166
|
-
destructiveHint: false,
|
|
167
|
-
idempotentHint: true,
|
|
168
|
-
openWorldHint: true,
|
|
169
|
-
},
|
|
170
|
-
}, async ({ url, target, timeout_ms, download, force_dynamic, strict_schema, format }) => {
|
|
171
|
-
const output = await runSmartfetch({
|
|
172
|
-
url,
|
|
173
|
-
...(target === undefined ? {} : { target }),
|
|
174
|
-
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
175
|
-
...(download === undefined ? {} : { download }),
|
|
176
|
-
...(force_dynamic === undefined ? {} : { forceDynamic: force_dynamic }),
|
|
177
|
-
...(strict_schema === undefined ? {} : { strictSchema: strict_schema }),
|
|
178
|
-
});
|
|
179
|
-
const requestedFormat = format || "json";
|
|
180
|
-
return {
|
|
181
|
-
structuredContent: output,
|
|
182
|
-
content: [
|
|
183
|
-
{
|
|
184
|
-
type: "text",
|
|
185
|
-
text: requestedFormat === "json" ? JSON.stringify(output, null, 2) : renderSmartfetch(output, requestedFormat),
|
|
186
|
-
},
|
|
187
|
-
],
|
|
188
|
-
};
|
|
11
|
+
const server = createSmartWebServer(packageVersion, {
|
|
12
|
+
runSmartcrawl,
|
|
13
|
+
renderSmartcrawl,
|
|
14
|
+
runSmartdocscrawl,
|
|
15
|
+
renderSmartdocscrawl,
|
|
16
|
+
runSmartfetch,
|
|
17
|
+
renderSmartfetch,
|
|
18
|
+
runSmartsearch,
|
|
19
|
+
renderSmartsearch,
|
|
189
20
|
});
|
|
190
21
|
async function main() {
|
|
191
22
|
const args = process.argv.slice(2);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEpE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAiB,CAAA;AAEtH,MAAM,MAAM,GAAG,oBAAoB,CAAC,cAAc,EAAE;IAClD,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,iBAAiB;CAClB,CAAC,CAAA;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACxD,OAAM;IACR,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;QAC3B,OAAM;IACR,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,CAAA;QAClF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxB,OAAM;IACR,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
export type SmartWebRuntime = {
|
|
3
|
+
runSmartcrawl: typeof import("./smartcrawl.js").runSmartcrawl;
|
|
4
|
+
renderSmartcrawl: (...args: Parameters<typeof import("./smartcrawl.js").renderSmartcrawl>) => string | Promise<string>;
|
|
5
|
+
runSmartdocscrawl: typeof import("./smartdocscrawl.js").runSmartdocscrawl;
|
|
6
|
+
renderSmartdocscrawl: (...args: Parameters<typeof import("./smartdocscrawl.js").renderSmartdocscrawl>) => string | Promise<string>;
|
|
7
|
+
runSmartfetch: typeof import("./smartfetch.js").runSmartfetch;
|
|
8
|
+
renderSmartfetch: (...args: Parameters<typeof import("./smartfetch.js").renderSmartfetch>) => string | Promise<string>;
|
|
9
|
+
runSmartsearch: typeof import("./smartsearch.js").runSmartsearch;
|
|
10
|
+
renderSmartsearch: (...args: Parameters<typeof import("./smartsearch.js").renderSmartsearch>) => string | Promise<string>;
|
|
11
|
+
};
|
|
12
|
+
export declare function createSmartWebServer(version: string, runtime: SmartWebRuntime): McpServer;
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export function createSmartWebServer(version, runtime) {
|
|
4
|
+
const server = new McpServer({ name: "smart-web", version });
|
|
5
|
+
server.registerTool("smartsearch", {
|
|
6
|
+
title: "Smart Search",
|
|
7
|
+
description: "Search the web when the user gave a topic, keywords, or a `site:` query instead of a specific URL. Use this for discovery first; if you already have a direct URL, use smartfetch instead. Can optionally hand off into smartcrawl for same-site exploration.",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
query: z.string().min(1).describe("Search-engine style query. Use this when the user gave a topic or keywords rather than a direct URL."),
|
|
10
|
+
numResults: z.number().int().min(1).max(20).optional().describe("Number of search results to return"),
|
|
11
|
+
type: z.enum(["auto", "fast", "deep"]).optional().describe("Search depth hint"),
|
|
12
|
+
contextMaxCharacters: z.number().int().min(1000).max(20000).optional().describe("Maximum snippet/context size hint"),
|
|
13
|
+
site_crawl: z.boolean().optional().describe("After search, hand off into smartcrawl when a crawl_url or site: operator is available"),
|
|
14
|
+
crawl_url: z.string().optional().describe("Optional starting URL for the smartcrawl handoff"),
|
|
15
|
+
crawl_mode: z.enum(["auto", "board", "docs"]).optional().describe("Traversal hint for the smartcrawl handoff"),
|
|
16
|
+
crawl_limit: z.number().int().min(1).max(50).optional().describe("Maximum ranked crawl results to return in the handoff summary"),
|
|
17
|
+
crawl_max_pages: z.number().int().min(1).max(20).optional().describe("Maximum number of pages to visit during the crawl handoff"),
|
|
18
|
+
crawl_max_depth: z.number().int().min(0).max(3).optional().describe("Maximum recursive depth for the crawl handoff"),
|
|
19
|
+
crawl_timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Per-page timeout for the crawl handoff"),
|
|
20
|
+
},
|
|
21
|
+
annotations: {
|
|
22
|
+
title: "Smart Search",
|
|
23
|
+
readOnlyHint: true,
|
|
24
|
+
destructiveHint: false,
|
|
25
|
+
idempotentHint: true,
|
|
26
|
+
openWorldHint: true,
|
|
27
|
+
},
|
|
28
|
+
}, async ({ query, numResults, type, contextMaxCharacters, site_crawl, crawl_url, crawl_mode, crawl_limit, crawl_max_pages, crawl_max_depth, crawl_timeout_ms }) => {
|
|
29
|
+
const output = await runtime.runSmartsearch({
|
|
30
|
+
query,
|
|
31
|
+
...(numResults === undefined ? {} : { numResults }),
|
|
32
|
+
...(type === undefined ? {} : { searchType: type }),
|
|
33
|
+
...(contextMaxCharacters === undefined ? {} : { contextMaxCharacters }),
|
|
34
|
+
...(site_crawl === undefined ? {} : { siteCrawl: site_crawl }),
|
|
35
|
+
...(crawl_url === undefined ? {} : { crawlUrl: crawl_url }),
|
|
36
|
+
...(crawl_mode === undefined ? {} : { crawlMode: crawl_mode }),
|
|
37
|
+
...(crawl_limit === undefined ? {} : { crawlLimit: crawl_limit }),
|
|
38
|
+
...(crawl_max_pages === undefined ? {} : { crawlMaxPages: crawl_max_pages }),
|
|
39
|
+
...(crawl_max_depth === undefined ? {} : { crawlMaxDepth: crawl_max_depth }),
|
|
40
|
+
...(crawl_timeout_ms === undefined ? {} : { crawlTimeoutMs: crawl_timeout_ms }),
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
structuredContent: output,
|
|
44
|
+
content: [{ type: "text", text: await runtime.renderSmartsearch(output) }],
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
server.registerTool("smartcrawl", {
|
|
48
|
+
title: "Smart Crawl",
|
|
49
|
+
description: "Traverse a known site when one page is not enough and you need multiple relevant docs pages, posts, or thread items. Start from a concrete site URL; if you need to discover the site first, use smartsearch, and if you only need one direct URL, use smartfetch. Add `output_dir` when you want the crawl written to a local Markdown folder instead of returned only as a ranked summary. For LinkedIn profile URLs this is best-effort recent public post discovery, not full archive pagination.",
|
|
50
|
+
inputSchema: {
|
|
51
|
+
url: z.string().min(1).describe("Starting site or docs URL to explore. Use this when you need multiple pages from one site, not a single direct URL fetch."),
|
|
52
|
+
output_dir: z.string().min(1).optional().describe("Optional local directory where a docs-style crawl should be exported as Markdown files. When omitted, smartcrawl returns only a ranked crawl summary."),
|
|
53
|
+
query: z.string().optional().describe("Optional topic filter used to rank crawl results"),
|
|
54
|
+
mode: z.enum(["auto", "board", "docs"]).optional().describe("Traversal hint for boards, docs sites, or automatic detection"),
|
|
55
|
+
limit: z.number().int().min(1).max(50).optional().describe("Maximum number of ranked results to return. For LinkedIn profile URLs this acts like a best-effort recent public post count."),
|
|
56
|
+
max_pages: z.number().int().min(1).max(200).optional().describe("Maximum number of pages to visit. In export mode this is the docs crawl budget; otherwise smartcrawl still behaves like an exploration-oriented crawl."),
|
|
57
|
+
max_depth: z.number().int().min(0).max(20).optional().describe("Maximum recursive depth from the starting URL. Export mode can use deeper values than the summary crawl path."),
|
|
58
|
+
include_patterns: z.array(z.string().min(1)).max(50).optional().describe("Optional regex or substring patterns for URLs to keep"),
|
|
59
|
+
exclude_patterns: z.array(z.string().min(1)).max(50).optional().describe("Optional regex or substring patterns for URLs to skip"),
|
|
60
|
+
same_origin_only: z.boolean().optional().describe("Restrict traversal to the starting origin while still surfacing external item links"),
|
|
61
|
+
follow_pagination: z.boolean().optional().describe("Follow next or more-style pagination links during exploration"),
|
|
62
|
+
scroll_steps: z.number().int().min(0).max(12).optional().describe("How many scroll attempts to use for scroll-driven pages"),
|
|
63
|
+
timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Crawl timeout budget per page"),
|
|
64
|
+
format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content"),
|
|
65
|
+
},
|
|
66
|
+
annotations: {
|
|
67
|
+
title: "Smart Crawl",
|
|
68
|
+
readOnlyHint: false,
|
|
69
|
+
destructiveHint: true,
|
|
70
|
+
idempotentHint: false,
|
|
71
|
+
openWorldHint: true,
|
|
72
|
+
},
|
|
73
|
+
}, async ({ url, output_dir, query, mode, limit, max_pages, max_depth, include_patterns, exclude_patterns, same_origin_only, follow_pagination, scroll_steps, timeout_ms, format }) => {
|
|
74
|
+
if (output_dir === undefined && max_pages !== undefined && max_pages > 20) {
|
|
75
|
+
throw new Error("smartcrawl summary mode supports max_pages up to 20; set output_dir to use docs export budgets");
|
|
76
|
+
}
|
|
77
|
+
if (output_dir === undefined && max_depth !== undefined && max_depth > 3) {
|
|
78
|
+
throw new Error("smartcrawl summary mode supports max_depth up to 3; set output_dir to use docs export depths");
|
|
79
|
+
}
|
|
80
|
+
if (output_dir !== undefined) {
|
|
81
|
+
if (limit !== undefined) {
|
|
82
|
+
throw new Error("smartcrawl export mode does not support limit; use max_pages to control the docs export budget");
|
|
83
|
+
}
|
|
84
|
+
if (mode === "board") {
|
|
85
|
+
throw new Error("smartcrawl export mode is docs-focused and does not support mode=board");
|
|
86
|
+
}
|
|
87
|
+
const output = await runtime.runSmartdocscrawl({
|
|
88
|
+
url,
|
|
89
|
+
outputDir: output_dir,
|
|
90
|
+
...(query === undefined ? {} : { query }),
|
|
91
|
+
...(max_pages === undefined ? {} : { maxPages: max_pages }),
|
|
92
|
+
...(max_depth === undefined ? {} : { maxDepth: max_depth }),
|
|
93
|
+
...(include_patterns === undefined ? {} : { includePatterns: include_patterns }),
|
|
94
|
+
...(exclude_patterns === undefined ? {} : { excludePatterns: exclude_patterns }),
|
|
95
|
+
...(same_origin_only === undefined ? {} : { sameOriginOnly: same_origin_only }),
|
|
96
|
+
...(follow_pagination === undefined ? {} : { followPagination: follow_pagination }),
|
|
97
|
+
...(scroll_steps === undefined ? {} : { scrollSteps: scroll_steps }),
|
|
98
|
+
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
99
|
+
});
|
|
100
|
+
const structuredContent = { ...output, source: "smartcrawl", mode: "export" };
|
|
101
|
+
const requestedFormat = format || "json";
|
|
102
|
+
return {
|
|
103
|
+
structuredContent,
|
|
104
|
+
content: [{ type: "text", text: requestedFormat === "json" ? JSON.stringify(structuredContent, null, 2) : await runtime.renderSmartdocscrawl(output) }],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const output = await runtime.runSmartcrawl({
|
|
108
|
+
url,
|
|
109
|
+
...(query === undefined ? {} : { query }),
|
|
110
|
+
...(mode === undefined ? {} : { mode }),
|
|
111
|
+
...(limit === undefined ? {} : { limit }),
|
|
112
|
+
...(max_pages === undefined ? {} : { maxPages: max_pages }),
|
|
113
|
+
...(max_depth === undefined ? {} : { maxDepth: max_depth }),
|
|
114
|
+
...(include_patterns === undefined ? {} : { includePatterns: include_patterns }),
|
|
115
|
+
...(exclude_patterns === undefined ? {} : { excludePatterns: exclude_patterns }),
|
|
116
|
+
...(same_origin_only === undefined ? {} : { sameOriginOnly: same_origin_only }),
|
|
117
|
+
...(follow_pagination === undefined ? {} : { followPagination: follow_pagination }),
|
|
118
|
+
...(scroll_steps === undefined ? {} : { scrollSteps: scroll_steps }),
|
|
119
|
+
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
120
|
+
});
|
|
121
|
+
const requestedFormat = format || "json";
|
|
122
|
+
return {
|
|
123
|
+
structuredContent: { ...output, mode: "summary" },
|
|
124
|
+
content: [{ type: "text", text: requestedFormat === "json" ? JSON.stringify(output, null, 2) : await runtime.renderSmartcrawl(output, requestedFormat) }],
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
server.registerTool("smartdocscrawl", {
|
|
128
|
+
title: "Smart Docs Crawl (Deprecated Alias)",
|
|
129
|
+
description: "Deprecated compatibility alias for `smartcrawl` with `output_dir`. Prefer `smartcrawl` so site exploration and docs export live under one crawl surface.",
|
|
130
|
+
inputSchema: {
|
|
131
|
+
url: z.string().min(1).describe("Starting docs URL to mirror into Markdown. Prefer a docs home or section root, not a one-off article."),
|
|
132
|
+
output_dir: z.string().min(1).describe("Local directory where Markdown files, a README summary, and a crawl manifest should be written."),
|
|
133
|
+
query: z.string().optional().describe("Optional topic filter used to prioritize which docs pages get crawled first"),
|
|
134
|
+
max_pages: z.number().int().min(1).max(200).optional().describe("Maximum number of docs pages to visit while building the local Markdown folder"),
|
|
135
|
+
max_depth: z.number().int().min(0).max(20).optional().describe("Maximum crawl depth from the starting docs page"),
|
|
136
|
+
include_patterns: z.array(z.string().min(1)).max(50).optional().describe("Optional regex or substring patterns for URLs to keep in the docs export"),
|
|
137
|
+
exclude_patterns: z.array(z.string().min(1)).max(50).optional().describe("Optional regex or substring patterns for URLs to skip in the docs export"),
|
|
138
|
+
same_origin_only: z.boolean().optional().describe("Restrict traversal to the starting origin while still exporting only local Markdown files"),
|
|
139
|
+
follow_pagination: z.boolean().optional().describe("Follow next-page style links when the docs site splits sections across pages"),
|
|
140
|
+
scroll_steps: z.number().int().min(0).max(12).optional().describe("How aggressively to scroll rendered docs pages before snapshotting content"),
|
|
141
|
+
timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Per-page timeout budget in milliseconds"),
|
|
142
|
+
format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content"),
|
|
143
|
+
},
|
|
144
|
+
annotations: {
|
|
145
|
+
title: "Smart Docs Crawl (Deprecated Alias)",
|
|
146
|
+
readOnlyHint: false,
|
|
147
|
+
destructiveHint: true,
|
|
148
|
+
idempotentHint: false,
|
|
149
|
+
openWorldHint: true,
|
|
150
|
+
},
|
|
151
|
+
}, async ({ url, output_dir, query, max_pages, max_depth, include_patterns, exclude_patterns, same_origin_only, follow_pagination, scroll_steps, timeout_ms, format }) => {
|
|
152
|
+
const output = await runtime.runSmartdocscrawl({
|
|
153
|
+
url,
|
|
154
|
+
outputDir: output_dir,
|
|
155
|
+
...(query === undefined ? {} : { query }),
|
|
156
|
+
...(max_pages === undefined ? {} : { maxPages: max_pages }),
|
|
157
|
+
...(max_depth === undefined ? {} : { maxDepth: max_depth }),
|
|
158
|
+
...(include_patterns === undefined ? {} : { includePatterns: include_patterns }),
|
|
159
|
+
...(exclude_patterns === undefined ? {} : { excludePatterns: exclude_patterns }),
|
|
160
|
+
...(same_origin_only === undefined ? {} : { sameOriginOnly: same_origin_only }),
|
|
161
|
+
...(follow_pagination === undefined ? {} : { followPagination: follow_pagination }),
|
|
162
|
+
...(scroll_steps === undefined ? {} : { scrollSteps: scroll_steps }),
|
|
163
|
+
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
164
|
+
});
|
|
165
|
+
const structuredContent = { ...output, source: "smartcrawl", mode: "export", deprecated_alias: "smartdocscrawl" };
|
|
166
|
+
const requestedFormat = format || "json";
|
|
167
|
+
return {
|
|
168
|
+
structuredContent,
|
|
169
|
+
content: [{ type: "text", text: requestedFormat === "json" ? JSON.stringify(structuredContent, null, 2) : await runtime.renderSmartdocscrawl(output) }],
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
server.registerTool("smartfetch", {
|
|
173
|
+
title: "Smart Fetch",
|
|
174
|
+
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.",
|
|
175
|
+
inputSchema: {
|
|
176
|
+
url: z.string().min(1).describe("Direct URL or shortlink to fetch. Prefer this tool when the user already supplied a URL."),
|
|
177
|
+
target: z.enum(["auto", "generic", "reddit_post", "x_post", "threads_post", "instagram_post", "telegram_post", "dcinside_post", "youtube_video", "naver_blog", "naver_cafe_post", "tistory_post", "velog_post", "hackernews_post", "linkedin_post"]).optional().describe("Content type hint"),
|
|
178
|
+
timeout_ms: z.number().int().min(3000).max(120000).optional().describe("Fetch timeout in milliseconds"),
|
|
179
|
+
download: z.boolean().optional().describe("Prefer a downloadable asset result when the URL or discovered assets point to a file"),
|
|
180
|
+
force_dynamic: z.boolean().optional().describe("Skip light fetches and go straight to Playwright"),
|
|
181
|
+
strict_schema: z.boolean().optional().describe("Return schema-safe fallback output when normalization breaks"),
|
|
182
|
+
format: z.enum(["json", "text", "markdown"]).optional().describe("Text rendering format for the human-readable content"),
|
|
183
|
+
},
|
|
184
|
+
annotations: {
|
|
185
|
+
title: "Smart Fetch",
|
|
186
|
+
readOnlyHint: true,
|
|
187
|
+
destructiveHint: false,
|
|
188
|
+
idempotentHint: true,
|
|
189
|
+
openWorldHint: true,
|
|
190
|
+
},
|
|
191
|
+
}, async ({ url, target, timeout_ms, download, force_dynamic, strict_schema, format }) => {
|
|
192
|
+
const output = await runtime.runSmartfetch({
|
|
193
|
+
url,
|
|
194
|
+
...(target === undefined ? {} : { target }),
|
|
195
|
+
...(timeout_ms === undefined ? {} : { timeoutMs: timeout_ms }),
|
|
196
|
+
...(download === undefined ? {} : { download }),
|
|
197
|
+
...(force_dynamic === undefined ? {} : { forceDynamic: force_dynamic }),
|
|
198
|
+
...(strict_schema === undefined ? {} : { strictSchema: strict_schema }),
|
|
199
|
+
});
|
|
200
|
+
const requestedFormat = format || "json";
|
|
201
|
+
return {
|
|
202
|
+
structuredContent: output,
|
|
203
|
+
content: [{ type: "text", text: requestedFormat === "json" ? JSON.stringify(output, null, 2) : await runtime.renderSmartfetch(output, requestedFormat) }],
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
return server;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/smartdocscrawl.d.ts
CHANGED
package/dist/smartdocscrawl.js
CHANGED
|
@@ -6,7 +6,8 @@ import { gfm } from "turndown-plugin-gfm";
|
|
|
6
6
|
import { absolutizeUrl, extractTitleFromHtml, stripTags } from "./shared.js";
|
|
7
7
|
import { runSmartcrawlDetailed } from "./smartcrawl.js";
|
|
8
8
|
const SUMMARY_FILE = "README.md";
|
|
9
|
-
const MANIFEST_FILE = "
|
|
9
|
+
const MANIFEST_FILE = "smartcrawl-manifest.json";
|
|
10
|
+
const LEGACY_MANIFEST_FILE = "smartdocscrawl-manifest.json";
|
|
10
11
|
function buildTurndownService() {
|
|
11
12
|
const service = new TurndownService({
|
|
12
13
|
headingStyle: "atx",
|
|
@@ -182,7 +183,7 @@ function buildDocument(snapshot, rootDir, relativePath, depth) {
|
|
|
182
183
|
}
|
|
183
184
|
function renderSummary(response) {
|
|
184
185
|
const lines = [
|
|
185
|
-
"#
|
|
186
|
+
"# smartcrawl export",
|
|
186
187
|
"",
|
|
187
188
|
`- Source: ${response.url}`,
|
|
188
189
|
`- Output directory: ${response.output_dir}`,
|
|
@@ -227,27 +228,30 @@ async function removeOwnedPaths(rootDir, ownedPaths) {
|
|
|
227
228
|
await rm(directory, { force: true, recursive: false }).catch(() => { });
|
|
228
229
|
}
|
|
229
230
|
}
|
|
230
|
-
async function readPreviousExport(manifestPath) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
231
|
+
async function readPreviousExport(outputDir, manifestPath) {
|
|
232
|
+
for (const candidatePath of [manifestPath, join(outputDir, LEGACY_MANIFEST_FILE)]) {
|
|
233
|
+
try {
|
|
234
|
+
const raw = await readFile(candidatePath, "utf8");
|
|
235
|
+
const parsed = JSON.parse(raw);
|
|
236
|
+
const candidates = new Set();
|
|
237
|
+
if (Array.isArray(parsed.documents)) {
|
|
238
|
+
for (const document of parsed.documents) {
|
|
239
|
+
if (typeof document?.file_path === "string")
|
|
240
|
+
candidates.add(resolve(document.file_path));
|
|
241
|
+
}
|
|
239
242
|
}
|
|
243
|
+
if (typeof parsed.summary_path === "string")
|
|
244
|
+
candidates.add(resolve(parsed.summary_path));
|
|
245
|
+
if (typeof parsed.manifest_path === "string")
|
|
246
|
+
candidates.add(resolve(parsed.manifest_path));
|
|
247
|
+
candidates.add(resolve(candidatePath));
|
|
248
|
+
return { ownedPaths: candidates, hasManifest: true };
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
// Try current then legacy manifest names before giving up.
|
|
240
252
|
}
|
|
241
|
-
if (typeof parsed.summary_path === "string")
|
|
242
|
-
candidates.add(resolve(parsed.summary_path));
|
|
243
|
-
if (typeof parsed.manifest_path === "string")
|
|
244
|
-
candidates.add(resolve(parsed.manifest_path));
|
|
245
|
-
return { ownedPaths: candidates, hasManifest: true };
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
// Ignore missing or invalid manifests and treat the folder as a fresh export target.
|
|
249
|
-
return { ownedPaths: new Set(), hasManifest: false };
|
|
250
253
|
}
|
|
254
|
+
return { ownedPaths: new Set(), hasManifest: false };
|
|
251
255
|
}
|
|
252
256
|
async function pathExists(path) {
|
|
253
257
|
try {
|
|
@@ -272,7 +276,7 @@ async function firstAncestorConflict(rootDir, filePath) {
|
|
|
272
276
|
}
|
|
273
277
|
function blockedResponse(url, outputDir, manifestPath, summaryPath, code, message, seed) {
|
|
274
278
|
return {
|
|
275
|
-
source: "
|
|
279
|
+
source: "smartcrawl",
|
|
276
280
|
url,
|
|
277
281
|
output_dir: outputDir,
|
|
278
282
|
partial: true,
|
|
@@ -291,22 +295,26 @@ function blockedResponse(url, outputDir, manifestPath, summaryPath, code, messag
|
|
|
291
295
|
}
|
|
292
296
|
export function renderSmartdocscrawl(response) {
|
|
293
297
|
const lines = [
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
298
|
+
"# smartcrawl export",
|
|
299
|
+
"",
|
|
300
|
+
`- Output directory: ${response.output_dir}`,
|
|
301
|
+
`- Pages attempted: ${response.evidence.pages_attempted}`,
|
|
302
|
+
`- Pages loaded: ${response.evidence.pages_loaded}`,
|
|
303
|
+
`- Files written: ${response.evidence.files_written}`,
|
|
304
|
+
`- Summary: ${response.summary_path}`,
|
|
305
|
+
`- Manifest: ${response.manifest_path}`,
|
|
300
306
|
];
|
|
307
|
+
if (response.documents.length > 0)
|
|
308
|
+
lines.push("", "## Files");
|
|
301
309
|
response.documents.slice(0, 12).forEach((document, index) => {
|
|
302
|
-
lines.push(
|
|
310
|
+
lines.push(`- ${document.relative_path} <- ${document.final_url}`);
|
|
303
311
|
});
|
|
304
312
|
if (response.documents.length > 12)
|
|
305
|
-
lines.push(
|
|
313
|
+
lines.push(`- ... ${response.documents.length - 12} more files`);
|
|
306
314
|
if (response.notes.length > 0)
|
|
307
|
-
lines.push(
|
|
315
|
+
lines.push("", "## Notes", ...response.notes.map((note) => `- ${note}`));
|
|
308
316
|
if (response.errors.length > 0)
|
|
309
|
-
lines.push(
|
|
317
|
+
lines.push("", "## Errors", ...response.errors.map((item) => `- ${item.code}: ${item.message}`));
|
|
310
318
|
return lines.join("\n");
|
|
311
319
|
}
|
|
312
320
|
export async function runSmartdocscrawl(options, loader) {
|
|
@@ -314,10 +322,10 @@ export async function runSmartdocscrawl(options, loader) {
|
|
|
314
322
|
const manifestPath = join(outputDir, MANIFEST_FILE);
|
|
315
323
|
const summaryPath = join(outputDir, SUMMARY_FILE);
|
|
316
324
|
await mkdir(outputDir, { recursive: true });
|
|
317
|
-
const previousExport = await readPreviousExport(manifestPath);
|
|
325
|
+
const previousExport = await readPreviousExport(outputDir, manifestPath);
|
|
318
326
|
const existingEntries = await readdir(outputDir);
|
|
319
327
|
if (!previousExport.hasManifest && existingEntries.length > 0) {
|
|
320
|
-
return blockedResponse(options.url, outputDir, manifestPath, summaryPath, "output_dir_not_empty", "Refusing to write into a non-empty output directory without a prior
|
|
328
|
+
return blockedResponse(options.url, outputDir, manifestPath, summaryPath, "output_dir_not_empty", "Refusing to write into a non-empty output directory without a prior smartcrawl export manifest.");
|
|
321
329
|
}
|
|
322
330
|
const crawlOptions = {
|
|
323
331
|
url: options.url,
|
|
@@ -370,7 +378,7 @@ export async function runSmartdocscrawl(options, loader) {
|
|
|
370
378
|
continue;
|
|
371
379
|
const stats = await lstat(candidate);
|
|
372
380
|
if (stats.isDirectory() || !previousExport.ownedPaths.has(candidate)) {
|
|
373
|
-
return blockedResponse(options.url, outputDir, manifestPath, summaryPath, "output_path_conflict", `Refusing to overwrite a path not owned by a previous
|
|
381
|
+
return blockedResponse(options.url, outputDir, manifestPath, summaryPath, "output_path_conflict", `Refusing to overwrite a path not owned by a previous smartcrawl export: ${candidate}`, { errors: crawl.errors, notes: crawl.notes, evidence: crawl.evidence });
|
|
374
382
|
}
|
|
375
383
|
}
|
|
376
384
|
const stageDir = await mkdtemp(join(tmpdir(), "smartdocscrawl-stage-"));
|
|
@@ -390,7 +398,7 @@ export async function runSmartdocscrawl(options, loader) {
|
|
|
390
398
|
}
|
|
391
399
|
documents.sort((a, b) => a.depth - b.depth || a.relative_path.localeCompare(b.relative_path));
|
|
392
400
|
const finalResponse = {
|
|
393
|
-
source: "
|
|
401
|
+
source: "smartcrawl",
|
|
394
402
|
url: options.url,
|
|
395
403
|
output_dir: outputDir,
|
|
396
404
|
partial: crawl.partial,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartdocscrawl.js","sourceRoot":"","sources":["../src/smartdocscrawl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smartdocscrawl.js","sourceRoot":"","sources":["../src/smartdocscrawl.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.rich-jojo/smart-web",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.25",
|
|
5
5
|
"packageManager": "npm@10.8.2",
|
|
6
6
|
"description": "Portable MCP server for web search, direct-URL fetch, site crawling, and docs export.",
|
|
7
7
|
"homepage": "https://github.com/rich-jojo/smart-web",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"./shared": "./dist/shared.js"
|
|
23
23
|
},
|
|
24
24
|
"bin": {
|
|
25
|
-
"smart-web-mcp": "dist/index.js"
|
|
25
|
+
"smart-web-mcp": "dist/index.js",
|
|
26
|
+
"smart-web-dev": "dist/dev.js"
|
|
26
27
|
},
|
|
27
28
|
"files": [
|
|
28
29
|
"dist",
|
|
@@ -35,8 +36,10 @@
|
|
|
35
36
|
"scripts": {
|
|
36
37
|
"build": "tsc -p tsconfig.json",
|
|
37
38
|
"dev": "tsx src/index.ts",
|
|
39
|
+
"dev:mcp": "node dist/dev.js",
|
|
40
|
+
"dev:watch": "tsc -p tsconfig.json --watch --preserveWatchOutput",
|
|
38
41
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
39
|
-
"test": "node --import tsx --test src/shared.test.ts src/assets.test.ts src/render.test.ts src/providers.test.ts src/smartcrawl.test.ts src/smartdocscrawl.test.ts src/provider-policy.test.ts src/archive-fallback.test.ts src/mcp.test.ts",
|
|
42
|
+
"test": "node --import tsx --test src/shared.test.ts src/assets.test.ts src/dev-runtime.test.ts src/render.test.ts src/providers.test.ts src/smartcrawl.test.ts src/smartdocscrawl.test.ts src/provider-policy.test.ts src/archive-fallback.test.ts src/mcp.test.ts",
|
|
40
43
|
"check:meta": "node scripts/check-metadata.mjs",
|
|
41
44
|
"check": "npm run build && npm run check:meta && npm run test",
|
|
42
45
|
"hooks:install": "node scripts/install-git-hooks.mjs",
|