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 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 four tools in one stdio server:
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, and scroll-heavy pages
12
- - `smartdocscrawl`: docs-site mirroring that writes a local Markdown folder plus manifest
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 `smartdocscrawl` to mirror a docs section into a local folder you can grep, index, or commit
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAcxC,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,UAAU,GAAG,OAAO;IACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACjD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;YAC/D,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,KAAe;IAChE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QACnD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,KAAe;IAC5D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAA;IACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACzC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAe,EAAE,OAAuB;IAClF,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAqC,CAAC,CAAA;IAChH,IAAI,QAAmC,CAAA;IAEvC,OAAO,KAAK,UAAU,IAAI,CAAC,YAAoB;QAC7C,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC5D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAChD,IAAI,QAAQ;gBAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACtF,QAAQ,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC/C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QACzB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAA;QAC5D,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACvC,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,IAAI,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACjD,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAA4C,CAAA,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAClI,gBAAgB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAA+C,CAAA,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QAC3I,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAgD,CAAA,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QAClJ,oBAAoB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAmD,CAAA,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;QAC3J,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAA4C,CAAA,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAClI,gBAAgB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAA+C,CAAA,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QAC3I,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAA6C,CAAA,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QACtI,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAgD,CAAA,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KAChJ,CAAA;AACH,CAAC"}
package/dist/dev.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
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
@@ -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 { z } from "zod";
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 { runSmartfetch, renderSmartfetch } from "./smartfetch.js";
10
- import { runSmartsearch, renderSmartsearch } from "./smartsearch.js";
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 = new McpServer({
13
- name: "smart-web",
14
- version: packageVersion,
15
- });
16
- server.registerTool("smartsearch", {
17
- title: "Smart Search",
18
- 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.",
19
- inputSchema: {
20
- 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."),
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":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,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,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,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,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;CACxB,CAAC,CAAA;AAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;IACE,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,+PAA+P;IAC5Q,WAAW,EAAE;QACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sGAAsG,CAAC;QACzI,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACrG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC/E,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACpH,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;QACrI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC9G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QACjI,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACjI,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACpH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACvH;IACD,WAAW,EAAE;QACX,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;CACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC9J,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;QAClC,KAAK;QACL,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACnD,GAAG,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC9D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC3D,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC9D,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACjE,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;QAC5E,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;QAC5E,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;KAChF,CAAC,CAAA;IAEF,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;KAC7D,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;IACE,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,6WAA6W;IAC1X,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2HAA2H,CAAC;QAC5J,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACzF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC5H,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8HAA8H,CAAC;QAC1L,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAC9G,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACjI,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACjI,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;QACxI,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QACnH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QAC5H,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACvG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KACzH;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;CACF,EACD,KAAK,EAAE,EACL,GAAG,EACH,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,GAAG;QACH,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC3D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC3D,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QAChF,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QAChF,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAC/E,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;QACnF,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QACpE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;KAC/D,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,MAAM,IAAI,MAAM,CAAA;IACxC,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC;aAC/G;SACF;KACF,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;IACE,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,+HAA+H;IAC5I,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uGAAuG,CAAC;QACxI,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iGAAiG,CAAC;QACzI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;QACpH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;QACjJ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACjH,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;QACpJ,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;QACpJ,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;QAC9I,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;QAClI,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;QAC/I,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KAClH;IACD,WAAW,EAAE;QACX,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;KACpB;CACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE;IAC5J,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,GAAG;QACH,SAAS,EAAE,UAAU;QACrB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC3D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC3D,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QAChF,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QAChF,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAC/E,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;QACnF,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QACpE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;KAC/D,CAAC,CAAA;IAEF,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;KAChE,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;IACE,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,yRAAyR;IACtS,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0FAA0F,CAAC;QAC3H,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC7R,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACvG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC;QACjI,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAClG,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAC9G,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KACzH;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;CACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,GAAG;QACH,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;QACvE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;KACxE,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,MAAM,IAAI,MAAM,CAAA;IACxC,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC;aAC/G;SACF;KACF,CAAA;AACH,CAAC,CACF,CAAA;AAED,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"}
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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"}
@@ -15,7 +15,7 @@ export type SmartdocscrawlDocument = {
15
15
  }>;
16
16
  };
17
17
  export type SmartdocscrawlResponse = {
18
- source: "smartdocscrawl";
18
+ source: "smartcrawl";
19
19
  url: string;
20
20
  output_dir: string;
21
21
  partial: boolean;
@@ -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 = "smartdocscrawl-manifest.json";
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
- "# smartdocscrawl export",
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
- try {
232
- const raw = await readFile(manifestPath, "utf8");
233
- const parsed = JSON.parse(raw);
234
- const candidates = new Set();
235
- if (Array.isArray(parsed.documents)) {
236
- for (const document of parsed.documents) {
237
- if (typeof document?.file_path === "string")
238
- candidates.add(resolve(document.file_path));
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: "smartdocscrawl",
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
- `Output directory: ${response.output_dir}`,
295
- `Pages attempted: ${response.evidence.pages_attempted}`,
296
- `Pages loaded: ${response.evidence.pages_loaded}`,
297
- `Files written: ${response.evidence.files_written}`,
298
- `Summary: ${response.summary_path}`,
299
- `Manifest: ${response.manifest_path}`,
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(`${index + 1}. ${document.relative_path} <- ${document.final_url}`);
310
+ lines.push(`- ${document.relative_path} <- ${document.final_url}`);
303
311
  });
304
312
  if (response.documents.length > 12)
305
- lines.push(`... ${response.documents.length - 12} more files`);
313
+ lines.push(`- ... ${response.documents.length - 12} more files`);
306
314
  if (response.notes.length > 0)
307
- lines.push(`Notes: ${response.notes.join(" | ")}`);
315
+ lines.push("", "## Notes", ...response.notes.map((note) => `- ${note}`));
308
316
  if (response.errors.length > 0)
309
- lines.push(`Errors: ${response.errors.map((item) => `${item.code}: ${item.message}`).join(" | ")}`);
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 smartdocscrawl manifest.");
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 smartdocscrawl export: ${candidate}`, { errors: crawl.errors, notes: crawl.notes, evidence: crawl.evidence });
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: "smartdocscrawl",
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.22",
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",