better-web-search-mcp 0.8.0 → 0.8.1
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/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +40 -1
- package/dist/utils/config.js.map +1 -1
- package/mcp.json +1 -1
- package/package.json +1 -1
package/dist/utils/config.d.ts
CHANGED
|
@@ -14,6 +14,21 @@ export interface AppConfig {
|
|
|
14
14
|
cachePath: string;
|
|
15
15
|
browserEnabled: boolean;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Where the cache lives when nothing overrides it.
|
|
19
|
+
*
|
|
20
|
+
* The default used to be the relative path `data/cache.db`, which resolves
|
|
21
|
+
* against the working directory. An MCP client spawns the server from
|
|
22
|
+
* wherever it happens to be, so that scattered `data/cache.db` files around
|
|
23
|
+
* the filesystem — two were sitting in the home and Downloads folders — and
|
|
24
|
+
* meant the domain profiles and page cache never accumulated, because every
|
|
25
|
+
* launch directory got its own empty database. A per-user location is stable
|
|
26
|
+
* across launches and keeps the writes inside a directory meant for them.
|
|
27
|
+
*
|
|
28
|
+
* `BETTER_WEB_SEARCH_CACHE_PATH` still overrides, and a relative override is
|
|
29
|
+
* still honoured for anyone who wants a project-local cache.
|
|
30
|
+
*/
|
|
31
|
+
export declare function defaultCachePath(env?: NodeJS.ProcessEnv, platform?: string): string;
|
|
17
32
|
export declare function loadConfig(): AppConfig;
|
|
18
33
|
/** Shape for the provider banner (pure, testable). */
|
|
19
34
|
export interface ProviderStatus {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,MAAyB,GAClC,MAAM,CAuBR;AAED,wBAAgB,UAAU,IAAI,SAAS,CA0BtC;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,cAAc,EAAE,CAqBjE;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACtC,GAAG,EAAE,SAAS,GACb,MAAM,CAgBR"}
|
package/dist/utils/config.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* to upgrade. Also supports the BETTER_WEB_SEARCH_* prefix for namespacing
|
|
7
7
|
* (e.g. BETTER_WEB_SEARCH_BRAVE_API_KEY) as an alias for the bare name.
|
|
8
8
|
*/
|
|
9
|
+
import { join } from "node:path";
|
|
9
10
|
const KEY_ALIASES = {
|
|
10
11
|
BRAVE_API_KEY: ["BETTER_WEB_SEARCH_BRAVE_API_KEY", "BRAVE_SEARCH_API_KEY"],
|
|
11
12
|
TAVILY_API_KEY: ["BETTER_WEB_SEARCH_TAVILY_API_KEY"],
|
|
@@ -24,6 +25,44 @@ function readKey(canonical) {
|
|
|
24
25
|
const aliases = KEY_ALIASES[canonical] ?? [];
|
|
25
26
|
return pickFirstEnv([canonical, ...aliases]);
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Where the cache lives when nothing overrides it.
|
|
30
|
+
*
|
|
31
|
+
* The default used to be the relative path `data/cache.db`, which resolves
|
|
32
|
+
* against the working directory. An MCP client spawns the server from
|
|
33
|
+
* wherever it happens to be, so that scattered `data/cache.db` files around
|
|
34
|
+
* the filesystem — two were sitting in the home and Downloads folders — and
|
|
35
|
+
* meant the domain profiles and page cache never accumulated, because every
|
|
36
|
+
* launch directory got its own empty database. A per-user location is stable
|
|
37
|
+
* across launches and keeps the writes inside a directory meant for them.
|
|
38
|
+
*
|
|
39
|
+
* `BETTER_WEB_SEARCH_CACHE_PATH` still overrides, and a relative override is
|
|
40
|
+
* still honoured for anyone who wants a project-local cache.
|
|
41
|
+
*/
|
|
42
|
+
export function defaultCachePath(env = process.env, platform = process.platform) {
|
|
43
|
+
const home = env.HOME ?? env.USERPROFILE;
|
|
44
|
+
const app = "better-web-search-mcp";
|
|
45
|
+
if (platform === "win32") {
|
|
46
|
+
const base = env.LOCALAPPDATA ?? (home ? join(home, "AppData", "Local") : undefined);
|
|
47
|
+
if (base) {
|
|
48
|
+
return join(base, app, "cache.db");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (platform === "darwin") {
|
|
52
|
+
if (home) {
|
|
53
|
+
return join(home, "Library", "Caches", app, "cache.db");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const base = env.XDG_CACHE_HOME ?? (home ? join(home, ".cache") : undefined);
|
|
58
|
+
if (base) {
|
|
59
|
+
return join(base, app, "cache.db");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// No home directory to write into: fall back to the old relative path
|
|
63
|
+
// rather than failing to start.
|
|
64
|
+
return join("data", "cache.db");
|
|
65
|
+
}
|
|
27
66
|
export function loadConfig() {
|
|
28
67
|
const braveApiKey = readKey("BRAVE_API_KEY");
|
|
29
68
|
const tavilyApiKey = readKey("TAVILY_API_KEY");
|
|
@@ -32,7 +71,7 @@ export function loadConfig() {
|
|
|
32
71
|
(process.env.DISABLE_CACHE ?? "").toLowerCase() !== "true";
|
|
33
72
|
const cachePath = process.env.BETTER_WEB_SEARCH_CACHE_PATH ??
|
|
34
73
|
process.env.CACHE_PATH ??
|
|
35
|
-
|
|
74
|
+
defaultCachePath();
|
|
36
75
|
const browserEnabled = (process.env.BETTER_WEB_SEARCH_DISABLE_BROWSER ?? "").toLowerCase() !== "true" &&
|
|
37
76
|
(process.env.DISABLE_BROWSER ?? "").toLowerCase() !== "true";
|
|
38
77
|
return {
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,GAA6B;IAC5C,aAAa,EAAE,CAAC,iCAAiC,EAAE,sBAAsB,CAAC;IAC1E,cAAc,EAAE,CAAC,kCAAkC,CAAC;IACpD,WAAW,EAAE,CAAC,+BAA+B,EAAE,cAAc,CAAC;CAC/D,CAAC;AAEF,SAAS,YAAY,CAAC,KAAe;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAWD,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1C,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAC5E,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAE7D,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/mcp.json
CHANGED
package/package.json
CHANGED