<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>API: better-web-search-mcp on BetterWebSearch MCP</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/</link><description>Recent content in API: better-web-search-mcp on BetterWebSearch MCP</description><generator>Hugo</generator><language>en</language><atom:link href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/index.xml" rel="self" type="application/rss+xml"/><item><title>API: extraction/alternative</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/alternative/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/alternative/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/alternative&lt;/p&gt;&#10;&lt;h1 id="extractionalternative"&gt;extraction/alternative&lt;a class="anchor" href="#extractionalternative"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="alternativedeps"&gt;AlternativeDeps&lt;a class="anchor" href="#alternativedeps"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/alternative.ts#L30"&gt;src/extraction/alternative.ts:30&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Injectable dependencies, defaulting to the real modules.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="aggregatesearch"&gt;&lt;/a&gt; &lt;code&gt;aggregateSearch?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(&lt;code&gt;query&lt;/code&gt;, &lt;code&gt;opts&lt;/code&gt;) =&amp;gt; &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Search aggregator used for snippet fallback.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/alternative.ts#L34"&gt;src/extraction/alternative.ts:34&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="cache"&gt;&lt;/a&gt; &lt;code&gt;cache?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Page cache consulted before fetching each variant.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/alternative.ts#L36"&gt;src/extraction/alternative.ts:36&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="fetchpage"&gt;&lt;/a&gt; &lt;code&gt;fetchPage?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(&lt;code&gt;url&lt;/code&gt;, &lt;code&gt;opts&lt;/code&gt;) =&amp;gt; &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/fetch/#fetchedpage"&gt;&lt;code&gt;FetchedPage&lt;/code&gt;&lt;/a&gt;&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Page fetcher used for URL variants.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/alternative.ts#L32"&gt;src/extraction/alternative.ts:32&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="max_snippet_chars"&gt;MAX_SNIPPET_CHARS&lt;a class="anchor" href="#max_snippet_chars"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;MAX_SNIPPET_CHARS&lt;/strong&gt;: &lt;code&gt;200&lt;/code&gt; = &lt;code&gt;200&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/alternative.ts#L27"&gt;src/extraction/alternative.ts:27&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Maximum snippet length for page-variant evidence.&lt;/p&gt;</description></item><item><title>API: extraction/apiIntercept</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/apiintercept/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/apiintercept/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/apiIntercept&lt;/p&gt;&#10;&lt;h1 id="extractionapiintercept"&gt;extraction/apiIntercept&lt;a class="anchor" href="#extractionapiintercept"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="apipatternrow"&gt;ApiPatternRow&lt;a class="anchor" href="#apipatternrow"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L145"&gt;src/extraction/apiIntercept.ts:145&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;An &lt;code&gt;api_patterns&lt;/code&gt; table row (without the auto-increment id/timestamp).&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="content_type"&gt;&lt;/a&gt; &lt;code&gt;content_type&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L149"&gt;src/extraction/apiIntercept.ts:149&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="domain"&gt;&lt;/a&gt; &lt;code&gt;domain&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L146"&gt;src/extraction/apiIntercept.ts:146&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="endpoint_pattern"&gt;&lt;/a&gt; &lt;code&gt;endpoint_pattern&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L147"&gt;src/extraction/apiIntercept.ts:147&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="method"&gt;&lt;/a&gt; &lt;code&gt;method&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L148"&gt;src/extraction/apiIntercept.ts:148&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="apiresponse"&gt;ApiResponse&lt;a class="anchor" href="#apiresponse"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L30"&gt;src/extraction/apiIntercept.ts:30&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The minimal Playwright &lt;code&gt;Response&lt;/code&gt; surface this module depends on.&lt;/p&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="headers"&gt;headers()&lt;a class="anchor" href="#headers"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;headers&lt;/strong&gt;(): &lt;code&gt;Record&lt;/code&gt;&amp;lt;&lt;code&gt;string&lt;/code&gt;, &lt;code&gt;string&lt;/code&gt;&amp;gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L33"&gt;src/extraction/apiIntercept.ts:33&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;code&gt;Record&lt;/code&gt;&amp;lt;&lt;code&gt;string&lt;/code&gt;, &lt;code&gt;string&lt;/code&gt;&amp;gt;&lt;/p&gt;&#10;&lt;h5 id="json"&gt;json()&lt;a class="anchor" href="#json"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;json&lt;/strong&gt;(): &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;code&gt;unknown&lt;/code&gt;&amp;gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/apiIntercept.ts#L34"&gt;src/extraction/apiIntercept.ts:34&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="returns-1"&gt;Returns&lt;a class="anchor" href="#returns-1"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;code&gt;unknown&lt;/code&gt;&amp;gt;&lt;/p&gt;&#10;&lt;h5 id="request"&gt;request()&lt;a class="anchor" href="#request"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;request&lt;/strong&gt;(): { &lt;code&gt;method&lt;/code&gt;: &lt;code&gt;string&lt;/code&gt;; }&lt;/p&gt;</description></item><item><title>API: extraction/browser</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/browser/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/browser/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/browser&lt;/p&gt;&#10;&lt;h1 id="extractionbrowser"&gt;extraction/browser&lt;a class="anchor" href="#extractionbrowser"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="browserpool"&gt;BrowserPool&lt;a class="anchor" href="#browserpool"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/browser.ts#L151"&gt;src/extraction/browser.ts:151&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A pool of reusable browser contexts backed by a single chromium instance.&lt;/p&gt;&#10;&lt;p&gt;The browser is launched lazily on first use and reused for every render.&#10;Contexts are created on demand up to &lt;a href="#default_pool_size"&gt;DEFAULT_POOL_SIZE&lt;/a&gt; and then&#10;reused round-robin, so no render launches a browser per request.&lt;/p&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new BrowserPool&lt;/strong&gt;(&lt;code&gt;size?&lt;/code&gt;): &lt;a href="#browserpool"&gt;&lt;code&gt;BrowserPool&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/browser.ts#L158"&gt;src/extraction/browser.ts:158&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default value&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;size&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;DEFAULT_POOL_SIZE&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#browserpool"&gt;&lt;code&gt;BrowserPool&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: extraction/evidence</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/evidence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/evidence/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/evidence&lt;/p&gt;&#10;&lt;h1 id="extractionevidence"&gt;extraction/evidence&lt;a class="anchor" href="#extractionevidence"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="evidence"&gt;Evidence&lt;a class="anchor" href="#evidence"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L18"&gt;src/extraction/evidence.ts:18&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A single piece of extracted content with provenance and confidence.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="confidence"&gt;&lt;/a&gt; &lt;code&gt;confidence&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Confidence in this evidence, 0..1.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L24"&gt;src/extraction/evidence.ts:24&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="snippet"&gt;&lt;/a&gt; &lt;code&gt;snippet?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A short snippet of the evidence, when available.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L28"&gt;src/extraction/evidence.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="source"&gt;&lt;/a&gt; &lt;code&gt;source&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="#evidencesource-1"&gt;&lt;code&gt;EvidenceSource&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Where the evidence came from (page, api, structured data, snippet).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L20"&gt;src/extraction/evidence.ts:20&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="type"&gt;&lt;/a&gt; &lt;code&gt;type&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="#evidencesource-1"&gt;&lt;code&gt;EvidenceSource&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The kind of evidence, mirroring &lt;a href="#evidencesource-1"&gt;EvidenceSource&lt;/a&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L22"&gt;src/extraction/evidence.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The URL the evidence was extracted from.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L26"&gt;src/extraction/evidence.ts:26&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="fusedcontent"&gt;FusedContent&lt;a class="anchor" href="#fusedcontent"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/evidence.ts#L54"&gt;src/extraction/evidence.ts:54&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: extraction/fetch</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/fetch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/fetch/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/fetch&lt;/p&gt;&#10;&lt;h1 id="extractionfetch"&gt;extraction/fetch&lt;a class="anchor" href="#extractionfetch"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="fetchtimeouterror"&gt;FetchTimeoutError&lt;a class="anchor" href="#fetchtimeouterror"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/fetch.ts#L55"&gt;src/extraction/fetch.ts:55&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A fetch that was aborted by the timeout.&lt;/p&gt;&#10;&lt;h4 id="extends"&gt;Extends&lt;a class="anchor" href="#extends"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Error&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new FetchTimeoutError&lt;/strong&gt;(&lt;code&gt;url&lt;/code&gt;, &lt;code&gt;timeoutMs&lt;/code&gt;): &lt;a href="#fetchtimeouterror"&gt;&lt;code&gt;FetchTimeoutError&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/fetch.ts#L56"&gt;src/extraction/fetch.ts:56&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;timeoutMs&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#fetchtimeouterror"&gt;&lt;code&gt;FetchTimeoutError&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="overrides"&gt;Overrides&lt;a class="anchor" href="#overrides"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;code&gt;Error.constructor&lt;/code&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Modifier&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Inherited from&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="cause"&gt;&lt;/a&gt; &lt;code&gt;cause?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.cause&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es2022.error.d.ts:26&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="message"&gt;&lt;/a&gt; &lt;code&gt;message&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.message&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es5.d.ts:1077&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es5.d.ts:1076&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="stack"&gt;&lt;/a&gt; &lt;code&gt;stack?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.stack&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es5.d.ts:1078&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="stacktracelimit"&gt;&lt;/a&gt; &lt;code&gt;stackTraceLimit&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;static&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The &lt;code&gt;Error.stackTraceLimit&lt;/code&gt; property specifies the number of stack frames collected by a stack trace (whether generated by &lt;code&gt;new Error().stack&lt;/code&gt; or &lt;code&gt;Error.captureStackTrace(obj)&lt;/code&gt;). The default value is &lt;code&gt;10&lt;/code&gt; but may be set to any valid JavaScript number. Changes will affect any stack trace captured &lt;em&gt;after&lt;/em&gt; the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.stackTraceLimit&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/@types/node/globals.d.ts:68&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="capturestacktrace"&gt;captureStackTrace()&lt;a class="anchor" href="#capturestacktrace"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;static&lt;/code&gt; &lt;strong&gt;captureStackTrace&lt;/strong&gt;(&lt;code&gt;targetObject&lt;/code&gt;, &lt;code&gt;constructorOpt?&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: extraction/fusion</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/fusion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/fusion/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/fusion&lt;/p&gt;&#10;&lt;h1 id="extractionfusion"&gt;extraction/fusion&lt;a class="anchor" href="#extractionfusion"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="fusecontent"&gt;fuseContent()&lt;a class="anchor" href="#fusecontent"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;fuseContent&lt;/strong&gt;(&lt;code&gt;url&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;strategiesResults&lt;/code&gt;, &lt;code&gt;metadata?&lt;/code&gt;): &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/evidence/#fusedcontent"&gt;&lt;code&gt;FusedContent&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/fusion.ts#L118"&gt;src/extraction/fusion.ts:118&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Fuse the results of several extraction strategies into one page extraction.&lt;/p&gt;&#10;&lt;p&gt;The strategy with the highest effective confidence and non-empty content&#10;becomes the primary body. Structured data and API endpoints from every&#10;strategy are merged into the returned object regardless of which strategy&#10;won the content race.&lt;/p&gt;&#10;&lt;h4 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The page URL the strategies were run against.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The page title, when known.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;strategiesResults&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;readonly &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/evidence/#strategyresult"&gt;&lt;code&gt;StrategyResult&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The per-strategy extraction results.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Record&lt;/code&gt;&amp;lt;&lt;code&gt;string&lt;/code&gt;, &lt;code&gt;string&lt;/code&gt;&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Page metadata (title, description, published, author, siteName) to attach to the result.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/evidence/#fusedcontent"&gt;&lt;code&gt;FusedContent&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: extraction/learn</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/learn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/learn/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/learn&lt;/p&gt;&#10;&lt;h1 id="extractionlearn"&gt;extraction/learn&lt;a class="anchor" href="#extractionlearn"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="recordapipatterns"&gt;recordApiPatterns()&lt;a class="anchor" href="#recordapipatterns"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;recordApiPatterns&lt;/strong&gt;(&lt;code&gt;url&lt;/code&gt;, &lt;code&gt;captured&lt;/code&gt;, &lt;code&gt;cache&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/learn.ts#L59"&gt;src/extraction/learn.ts:59&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Record discovered API patterns for a domain after a browser render.&lt;/p&gt;&#10;&lt;h4 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;captured&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;readonly &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/apiintercept/#capturedapiresponse"&gt;&lt;code&gt;CapturedApiResponse&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cache&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt; | &lt;code&gt;undefined&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;code&gt;void&lt;/code&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="tobestmethod"&gt;toBestMethod()&lt;a class="anchor" href="#tobestmethod"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;toBestMethod&lt;/strong&gt;(&lt;code&gt;method&lt;/code&gt;): &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/domainprofile/#bestmethod-1"&gt;&lt;code&gt;BestMethod&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/learn.ts#L21"&gt;src/extraction/learn.ts:21&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Map a router method to the domain-profile &lt;code&gt;best_method&lt;/code&gt; value.&lt;/p&gt;&#10;&lt;h4 id="parameters-1"&gt;Parameters&lt;a class="anchor" href="#parameters-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;method&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/router/#routermethod"&gt;&lt;code&gt;RouterMethod&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns-1"&gt;Returns&lt;a class="anchor" href="#returns-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/domainprofile/#bestmethod-1"&gt;&lt;code&gt;BestMethod&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="updatedomainprofile"&gt;updateDomainProfile()&lt;a class="anchor" href="#updatedomainprofile"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;updateDomainProfile&lt;/strong&gt;(&lt;code&gt;url&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;cache&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/learn.ts#L34"&gt;src/extraction/learn.ts:34&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Update the domain profile after a successful extraction.&lt;/p&gt;</description></item><item><title>API: extraction/metadata</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/metadata/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/metadata/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/metadata&lt;/p&gt;&#10;&lt;h1 id="extractionmetadata"&gt;extraction/metadata&lt;a class="anchor" href="#extractionmetadata"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="pagemetadata"&gt;PageMetadata&lt;a class="anchor" href="#pagemetadata"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L12"&gt;src/extraction/metadata.ts:12&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The result of a metadata extraction.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="author"&gt;&lt;/a&gt; &lt;code&gt;author&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Author from &lt;code&gt;article:author&lt;/code&gt; / &lt;code&gt;meta[name=author]&lt;/code&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L20"&gt;src/extraction/metadata.ts:20&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="description"&gt;&lt;/a&gt; &lt;code&gt;description&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Description from &lt;code&gt;og:description&lt;/code&gt; or &lt;code&gt;meta[name=description]&lt;/code&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L16"&gt;src/extraction/metadata.ts:16&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="published"&gt;&lt;/a&gt; &lt;code&gt;published&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Published date from &lt;code&gt;article:published_time&lt;/code&gt; / &lt;code&gt;datePublished&lt;/code&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L18"&gt;src/extraction/metadata.ts:18&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="sitename"&gt;&lt;/a&gt; &lt;code&gt;siteName&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Site name from &lt;code&gt;og:site_name&lt;/code&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L22"&gt;src/extraction/metadata.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="title"&gt;&lt;/a&gt; &lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tag text.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L14"&gt;src/extraction/metadata.ts:14&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="extractmetadata"&gt;extractMetadata()&lt;a class="anchor" href="#extractmetadata"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;extractMetadata&lt;/strong&gt;(&lt;code&gt;html&lt;/code&gt;): &lt;a href="#pagemetadata"&gt;&lt;code&gt;PageMetadata&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/metadata.ts#L36"&gt;src/extraction/metadata.ts:36&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: extraction/readability</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/readability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/readability/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/readability&lt;/p&gt;&#10;&lt;h1 id="extractionreadability"&gt;extraction/readability&lt;a class="anchor" href="#extractionreadability"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="readabilityresult"&gt;ReadabilityResult&lt;a class="anchor" href="#readabilityresult"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L15"&gt;src/extraction/readability.ts:15&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The result of a readability extraction.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="byline"&gt;&lt;/a&gt; &lt;code&gt;byline&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Author metadata, when present.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L27"&gt;src/extraction/readability.ts:27&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="contentmarkdown"&gt;&lt;/a&gt; &lt;code&gt;contentMarkdown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The article content converted to Markdown.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L19"&gt;src/extraction/readability.ts:19&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="excerpt"&gt;&lt;/a&gt; &lt;code&gt;excerpt&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A short excerpt / description of the article.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L23"&gt;src/extraction/readability.ts:23&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="length"&gt;&lt;/a&gt; &lt;code&gt;length&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Length of the article in characters.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L25"&gt;src/extraction/readability.ts:25&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="textcontent"&gt;&lt;/a&gt; &lt;code&gt;textContent&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Plain-text content with all HTML tags removed.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L21"&gt;src/extraction/readability.ts:21&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="title"&gt;&lt;/a&gt; &lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The article title.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/readability.ts#L17"&gt;src/extraction/readability.ts:17&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="extractwithreadability"&gt;extractWithReadability()&lt;a class="anchor" href="#extractwithreadability"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;extractWithReadability&lt;/strong&gt;(&lt;code&gt;html&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;): &lt;a href="#readabilityresult"&gt;&lt;code&gt;ReadabilityResult&lt;/code&gt;&lt;/a&gt; | &lt;code&gt;null&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: extraction/router</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/router/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/router/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/router&lt;/p&gt;&#10;&lt;h1 id="extractionrouter"&gt;extraction/router&lt;a class="anchor" href="#extractionrouter"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="getpageoptions"&gt;GetPageOptions&lt;a class="anchor" href="#getpageoptions"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/router.ts#L70"&gt;src/extraction/router.ts:70&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Options controlling the escalation pipeline.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="browser_fallback"&gt;&lt;/a&gt; &lt;code&gt;browser_fallback?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether to fall back to a browser render when HTTP is insufficient.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/router.ts#L78"&gt;src/extraction/router.ts:78&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="include_api_data"&gt;&lt;/a&gt; &lt;code&gt;include_api_data?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether to include API data captured during a browser render.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/router.ts#L74"&gt;src/extraction/router.ts:74&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="include_structured_data"&gt;&lt;/a&gt; &lt;code&gt;include_structured_data?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether to attempt structured / hydration data extraction.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/router.ts#L76"&gt;src/extraction/router.ts:76&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="mode"&gt;&lt;/a&gt; &lt;code&gt;mode?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt; | &lt;code&gt;&amp;quot;browser&amp;quot;&lt;/code&gt; | &lt;code&gt;&amp;quot;fast&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;auto&lt;/code&gt; escalates; &lt;code&gt;fast&lt;/code&gt; skips the browser; &lt;code&gt;browser&lt;/code&gt; forces it.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/router.ts#L72"&gt;src/extraction/router.ts:72&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="routedpage"&gt;RoutedPage&lt;a class="anchor" href="#routedpage"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/router.ts#L43"&gt;src/extraction/router.ts:43&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: extraction/structured</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/structured/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/structured/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/structured&lt;/p&gt;&#10;&lt;h1 id="extractionstructured"&gt;extraction/structured&lt;a class="anchor" href="#extractionstructured"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="structureddata"&gt;StructuredData&lt;a class="anchor" href="#structureddata"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L13"&gt;src/extraction/structured.ts:13&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The result of a structured-data extraction.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="apollo"&gt;&lt;/a&gt; &lt;code&gt;apollo&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Parsed &lt;code&gt;window.__APOLLO_STATE__&lt;/code&gt; payload, when present.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L23"&gt;src/extraction/structured.ts:23&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="initialstate"&gt;&lt;/a&gt; &lt;code&gt;initialState&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Parsed &lt;code&gt;window.__INITIAL_STATE__&lt;/code&gt; payload, when present.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L25"&gt;src/extraction/structured.ts:25&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="jsonld"&gt;&lt;/a&gt; &lt;code&gt;jsonLd&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Parsed JSON-LD objects (with &lt;code&gt;@graph&lt;/code&gt; unwrapped into its members).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L15"&gt;src/extraction/structured.ts:15&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="nextdata"&gt;&lt;/a&gt; &lt;code&gt;nextData&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Parsed &lt;code&gt;#__NEXT_DATA__&lt;/code&gt; payload, when present.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L17"&gt;src/extraction/structured.ts:17&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="nextflight"&gt;&lt;/a&gt; &lt;code&gt;nextFlight&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Concatenated &lt;code&gt;self.__next_f.push&lt;/code&gt; flight chunks, when present.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L19"&gt;src/extraction/structured.ts:19&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="nuxt"&gt;&lt;/a&gt; &lt;code&gt;nuxt&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Parsed &lt;code&gt;window.__NUXT__&lt;/code&gt; payload, when present.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/structured.ts#L21"&gt;src/extraction/structured.ts:21&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="empty_structured"&gt;EMPTY_STRUCTURED&lt;a class="anchor" href="#empty_structured"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;EMPTY_STRUCTURED&lt;/strong&gt;: &lt;a href="#structureddata"&gt;&lt;code&gt;StructuredData&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: extraction/untrusted</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/untrusted/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/untrusted/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / extraction/untrusted&lt;/p&gt;&#10;&lt;h1 id="extractionuntrusted"&gt;extraction/untrusted&lt;a class="anchor" href="#extractionuntrusted"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="injectionfinding"&gt;InjectionFinding&lt;a class="anchor" href="#injectionfinding"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L18"&gt;src/extraction/untrusted.ts:18&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A suspicious span found in extracted content.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="excerpt"&gt;&lt;/a&gt; &lt;code&gt;excerpt&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The matched text, truncated for reporting.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L22"&gt;src/extraction/untrusted.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="index"&gt;&lt;/a&gt; &lt;code&gt;index&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Character offset of the match within the content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L24"&gt;src/extraction/untrusted.ts:24&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="pattern"&gt;&lt;/a&gt; &lt;code&gt;pattern&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Short identifier for the pattern that matched.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L20"&gt;src/extraction/untrusted.ts:20&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="securityreport"&gt;SecurityReport&lt;a class="anchor" href="#securityreport"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L28"&gt;src/extraction/untrusted.ts:28&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The security annotation attached to extracted content.&lt;/p&gt;&#10;&lt;h4 id="properties-1"&gt;Properties&lt;a class="anchor" href="#properties-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="findings"&gt;&lt;/a&gt; &lt;code&gt;findings&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="#injectionfinding"&gt;&lt;code&gt;InjectionFinding&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The individual matches, capped to keep responses small.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L37"&gt;src/extraction/untrusted.ts:37&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="injection_suspected"&gt;&lt;/a&gt; &lt;code&gt;injection_suspected&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether any injection pattern matched.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L35"&gt;src/extraction/untrusted.ts:35&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="untrusted"&gt;&lt;/a&gt; &lt;code&gt;untrusted&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Always true. Page content comes from the open web and must be treated as data, never as instructions to the agent.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/extraction/untrusted.ts#L33"&gt;src/extraction/untrusted.ts:33&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="injection_notice"&gt;INJECTION_NOTICE&lt;a class="anchor" href="#injection_notice"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;INJECTION_NOTICE&lt;/strong&gt;: &lt;code&gt;string&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: index</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/index-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/index-1/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / index&lt;/p&gt;&#10;&lt;h1 id="index"&gt;index&lt;a class="anchor" href="#index"&gt;#&lt;/a&gt;&lt;/h1&gt;</description></item><item><title>API: providers</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / providers&lt;/p&gt;&#10;&lt;h1 id="providers"&gt;providers&lt;a class="anchor" href="#providers"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="provider_timeout_ms"&gt;PROVIDER_TIMEOUT_MS&lt;a class="anchor" href="#provider_timeout_ms"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;PROVIDER_TIMEOUT_MS&lt;/strong&gt;: &lt;code&gt;10000&lt;/code&gt; = &lt;code&gt;10_000&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/index.ts#L33"&gt;src/providers/index.ts:33&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Wall-clock budget for a single provider, in milliseconds.&lt;/p&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="aggregatesearch"&gt;aggregateSearch()&lt;a class="anchor" href="#aggregatesearch"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;aggregateSearch&lt;/strong&gt;(&lt;code&gt;query&lt;/code&gt;, &lt;code&gt;opts?&lt;/code&gt;): &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/index.ts#L69"&gt;src/providers/index.ts:69&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Aggregate search across all enabled providers.&lt;/p&gt;&#10;&lt;p&gt;Uses &lt;code&gt;Promise.allSettled&lt;/code&gt; so one failing provider never aborts the others,&#10;and caps each provider at &lt;a href="#provider_timeout_ms"&gt;PROVIDER_TIMEOUT_MS&lt;/a&gt; so one hung provider&#10;cannot gate the whole search — the others&amp;rsquo; results are still returned.&#10;Rejected and timed-out providers are logged as warnings and skipped;&#10;fulfilled results are flattened into a single array.&lt;/p&gt;</description></item><item><title>API: providers/brave</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/brave/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/brave/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / providers/brave&lt;/p&gt;&#10;&lt;h1 id="providersbrave"&gt;providers/brave&lt;a class="anchor" href="#providersbrave"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="braveprovider"&gt;BraveProvider&lt;a class="anchor" href="#braveprovider"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/brave.ts#L71"&gt;src/providers/brave.ts:71&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Brave Search provider (primary).&lt;/p&gt;&#10;&lt;p&gt;Requires &lt;code&gt;BRAVE_API_KEY&lt;/code&gt; in the environment. When the key is missing, or&#10;the API returns an auth/rate-limit error, it returns an empty array and&#10;logs a warning rather than throwing.&lt;/p&gt;&#10;&lt;h4 id="implements"&gt;Implements&lt;a class="anchor" href="#implements"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchprovider"&gt;&lt;code&gt;SearchProvider&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new BraveProvider&lt;/strong&gt;(): &lt;a href="#braveprovider"&gt;&lt;code&gt;BraveProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#braveprovider"&gt;&lt;code&gt;BraveProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Modifier&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default value&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;readonly&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;brave&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;brave&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Stable provider identifier (e.g. &amp;ldquo;brave&amp;rdquo;, &amp;ldquo;tavily&amp;rdquo;, &amp;ldquo;duckduckgo&amp;rdquo;).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/brave.ts#L72"&gt;src/providers/brave.ts:72&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="search"&gt;search()&lt;a class="anchor" href="#search"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;search&lt;/strong&gt;(&lt;code&gt;query&lt;/code&gt;, &lt;code&gt;opts&lt;/code&gt;): &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/p&gt;</description></item><item><title>API: providers/duckduckgo</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/duckduckgo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/duckduckgo/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / providers/duckduckgo&lt;/p&gt;&#10;&lt;h1 id="providersduckduckgo"&gt;providers/duckduckgo&lt;a class="anchor" href="#providersduckduckgo"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="duckduckgoprovider"&gt;DuckDuckGoProvider&lt;a class="anchor" href="#duckduckgoprovider"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/duckduckgo.ts#L16"&gt;src/providers/duckduckgo.ts:16&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;DuckDuckGo provider (free, keyless fallback).&lt;/p&gt;&#10;&lt;p&gt;Scrapes the public HTML search endpoint and parses results with cheerio.&#10;Always enabled — no API key required. On any failure (network, timeout,&#10;parse) it returns an empty array and logs a warning rather than throwing.&lt;/p&gt;&#10;&lt;h4 id="implements"&gt;Implements&lt;a class="anchor" href="#implements"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchprovider"&gt;&lt;code&gt;SearchProvider&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new DuckDuckGoProvider&lt;/strong&gt;(): &lt;a href="#duckduckgoprovider"&gt;&lt;code&gt;DuckDuckGoProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#duckduckgoprovider"&gt;&lt;code&gt;DuckDuckGoProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Modifier&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default value&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;readonly&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;duckduckgo&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;duckduckgo&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Stable provider identifier (e.g. &amp;ldquo;brave&amp;rdquo;, &amp;ldquo;tavily&amp;rdquo;, &amp;ldquo;duckduckgo&amp;rdquo;).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/duckduckgo.ts#L17"&gt;src/providers/duckduckgo.ts:17&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="search"&gt;search()&lt;a class="anchor" href="#search"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;search&lt;/strong&gt;(&lt;code&gt;query&lt;/code&gt;, &lt;code&gt;opts&lt;/code&gt;): &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/p&gt;</description></item><item><title>API: providers/serpapi</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/serpapi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/serpapi/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / providers/serpapi&lt;/p&gt;&#10;&lt;h1 id="providersserpapi"&gt;providers/serpapi&lt;a class="anchor" href="#providersserpapi"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="serpapiprovider"&gt;SerpApiProvider&lt;a class="anchor" href="#serpapiprovider"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/serpapi.ts#L10"&gt;src/providers/serpapi.ts:10&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;SerpApi provider stub (deferred).&lt;/p&gt;&#10;&lt;p&gt;SerpApi integration is not implemented yet. This stub satisfies the&#10;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchprovider"&gt;SearchProvider&lt;/a&gt; contract so the aggregation layer can include it&#10;without special-casing, but always returns no results.&lt;/p&gt;&#10;&lt;h4 id="implements"&gt;Implements&lt;a class="anchor" href="#implements"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchprovider"&gt;&lt;code&gt;SearchProvider&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new SerpApiProvider&lt;/strong&gt;(): &lt;a href="#serpapiprovider"&gt;&lt;code&gt;SerpApiProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#serpapiprovider"&gt;&lt;code&gt;SerpApiProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Modifier&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default value&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;readonly&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;serpapi&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;serpapi&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Stable provider identifier (e.g. &amp;ldquo;brave&amp;rdquo;, &amp;ldquo;tavily&amp;rdquo;, &amp;ldquo;duckduckgo&amp;rdquo;).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/serpapi.ts#L11"&gt;src/providers/serpapi.ts:11&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="search"&gt;search()&lt;a class="anchor" href="#search"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;search&lt;/strong&gt;(&lt;code&gt;_query&lt;/code&gt;, &lt;code&gt;_opts&lt;/code&gt;): &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/p&gt;</description></item><item><title>API: providers/tavily</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/tavily/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/tavily/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / providers/tavily&lt;/p&gt;&#10;&lt;h1 id="providerstavily"&gt;providers/tavily&lt;a class="anchor" href="#providerstavily"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="tavilyprovider"&gt;TavilyProvider&lt;a class="anchor" href="#tavilyprovider"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/tavily.ts#L26"&gt;src/providers/tavily.ts:26&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Tavily Search provider (optional).&lt;/p&gt;&#10;&lt;p&gt;Requires &lt;code&gt;TAVILY_API_KEY&lt;/code&gt; in the environment. When the key is missing or&#10;the request fails, it returns an empty array and logs a warning rather&#10;than throwing.&lt;/p&gt;&#10;&lt;h4 id="implements"&gt;Implements&lt;a class="anchor" href="#implements"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchprovider"&gt;&lt;code&gt;SearchProvider&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new TavilyProvider&lt;/strong&gt;(): &lt;a href="#tavilyprovider"&gt;&lt;code&gt;TavilyProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#tavilyprovider"&gt;&lt;code&gt;TavilyProvider&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Modifier&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default value&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;readonly&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;tavily&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;tavily&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Stable provider identifier (e.g. &amp;ldquo;brave&amp;rdquo;, &amp;ldquo;tavily&amp;rdquo;, &amp;ldquo;duckduckgo&amp;rdquo;).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/tavily.ts#L27"&gt;src/providers/tavily.ts:27&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="search"&gt;search()&lt;a class="anchor" href="#search"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;search&lt;/strong&gt;(&lt;code&gt;query&lt;/code&gt;, &lt;code&gt;opts&lt;/code&gt;): &lt;code&gt;Promise&lt;/code&gt;&amp;lt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/p&gt;</description></item><item><title>API: providers/types</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / providers/types&lt;/p&gt;&#10;&lt;h1 id="providerstypes"&gt;providers/types&lt;a class="anchor" href="#providerstypes"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="searchoptions"&gt;SearchOptions&lt;a class="anchor" href="#searchoptions"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L27"&gt;src/providers/types.ts:27&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Options controlling a single provider search.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="count"&gt;&lt;/a&gt; &lt;code&gt;count?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Maximum number of results to request.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L29"&gt;src/providers/types.ts:29&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="extrasnippets"&gt;&lt;/a&gt; &lt;code&gt;extraSnippets?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Request extra snippets from providers that support it (Brave).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L35"&gt;src/providers/types.ts:35&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="freshness"&gt;&lt;/a&gt; &lt;code&gt;freshness?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Provider-specific freshness filter (e.g. Brave &amp;ldquo;pd&amp;rdquo;/&amp;ldquo;pw&amp;rdquo;/&amp;ldquo;pm&amp;rdquo;/&amp;ldquo;py&amp;rdquo;).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L31"&gt;src/providers/types.ts:31&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="recency_days"&gt;&lt;/a&gt; &lt;code&gt;recency_days?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Number of days back to restrict results to.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L33"&gt;src/providers/types.ts:33&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="searchprovider"&gt;SearchProvider&lt;a class="anchor" href="#searchprovider"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L39"&gt;src/providers/types.ts:39&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A search provider that can be queried and returns normalized results.&lt;/p&gt;</description></item><item><title>API: ranking/deduplicate</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/deduplicate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/deduplicate/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / ranking/deduplicate&lt;/p&gt;&#10;&lt;h1 id="rankingdeduplicate"&gt;ranking/deduplicate&lt;a class="anchor" href="#rankingdeduplicate"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="deduplicate"&gt;deduplicate()&lt;a class="anchor" href="#deduplicate"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;deduplicate&lt;/strong&gt;(&lt;code&gt;results&lt;/code&gt;): &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/deduplicate.ts#L53"&gt;src/ranking/deduplicate.ts:53&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Deduplicate search results by normalized URL, keeping the highest score&#10;for each canonical URL. Malformed URLs are skipped, not thrown.&lt;/p&gt;&#10;&lt;p&gt;Does not mutate the input array.&lt;/p&gt;&#10;&lt;h4 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;results&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;readonly &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;[]&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="normalizeurl"&gt;normalizeUrl()&lt;a class="anchor" href="#normalizeurl"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;normalizeUrl&lt;/strong&gt;(&lt;code&gt;rawUrl&lt;/code&gt;): &lt;code&gt;string&lt;/code&gt; | &lt;code&gt;undefined&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/deduplicate.ts#L18"&gt;src/ranking/deduplicate.ts:18&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Normalize a URL to a canonical form suitable for deduplication.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Lowercases the hostname.&lt;/li&gt;&#10;&lt;li&gt;Strips &lt;code&gt;utm_*&lt;/code&gt;, &lt;code&gt;gclid&lt;/code&gt;, and &lt;code&gt;fbclid&lt;/code&gt; query parameters.&lt;/li&gt;&#10;&lt;li&gt;Sorts the remaining query parameters for stable ordering.&lt;/li&gt;&#10;&lt;li&gt;Removes a trailing slash except for the root path.&lt;/li&gt;&#10;&lt;li&gt;Drops the hash/fragment.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Returns &lt;code&gt;undefined&lt;/code&gt; for malformed URLs so callers can skip them rather&#10;than throw.&lt;/p&gt;</description></item><item><title>API: ranking/domainScore</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/domainscore/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/domainscore/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / ranking/domainScore&lt;/p&gt;&#10;&lt;h1 id="rankingdomainscore"&gt;ranking/domainScore&lt;a class="anchor" href="#rankingdomainscore"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="domainscore"&gt;domainScore()&lt;a class="anchor" href="#domainscore"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;domainScore&lt;/strong&gt;(&lt;code&gt;urlOrHost&lt;/code&gt;): &lt;code&gt;number&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/domainScore.ts#L76"&gt;src/ranking/domainScore.ts:76&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Score a hostname against the curated tiers using suffix matching.&lt;/p&gt;&#10;&lt;p&gt;Accepts either a full URL or a bare hostname. Returns a value in [0, 1].&lt;/p&gt;&#10;&lt;h4 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;urlOrHost&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;code&gt;number&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: ranking/independence</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/independence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/independence/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / ranking/independence&lt;/p&gt;&#10;&lt;h1 id="rankingindependence"&gt;ranking/independence&lt;a class="anchor" href="#rankingindependence"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="independenceinput"&gt;IndependenceInput&lt;a class="anchor" href="#independenceinput"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L30"&gt;src/ranking/independence.ts:30&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A document participating in independence analysis.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="content"&gt;&lt;/a&gt; &lt;code&gt;content&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The extracted page content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L34"&gt;src/ranking/independence.ts:34&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The source URL, used to derive the registrable-ish host.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L32"&gt;src/ranking/independence.ts:32&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="independenceresult"&gt;IndependenceResult&lt;a class="anchor" href="#independenceresult"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L38"&gt;src/ranking/independence.ts:38&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Where a document sits among its near-duplicates.&lt;/p&gt;&#10;&lt;h4 id="properties-1"&gt;Properties&lt;a class="anchor" href="#properties-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="cluster"&gt;&lt;/a&gt; &lt;code&gt;cluster&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Index of the cluster this document belongs to.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L40"&gt;src/ranking/independence.ts:40&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="duplicates"&gt;&lt;/a&gt; &lt;code&gt;duplicates&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;How many other documents share this cluster.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L47"&gt;src/ranking/independence.ts:47&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="primary"&gt;&lt;/a&gt; &lt;code&gt;primary&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether this is the representative of its cluster. Exactly one document per cluster is primary; the rest are derivative copies of the same text.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/independence.ts#L45"&gt;src/ranking/independence.ts:45&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="duplicate_threshold"&gt;DUPLICATE_THRESHOLD&lt;a class="anchor" href="#duplicate_threshold"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;DUPLICATE_THRESHOLD&lt;/strong&gt;: &lt;code&gt;0.4&lt;/code&gt; = &lt;code&gt;0.4&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: ranking/passages</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/passages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/passages/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / ranking/passages&lt;/p&gt;&#10;&lt;h1 id="rankingpassages"&gt;ranking/passages&lt;a class="anchor" href="#rankingpassages"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="passage"&gt;Passage&lt;a class="anchor" href="#passage"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/passages.ts#L20"&gt;src/ranking/passages.ts:20&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A scored span of text taken from a page.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="end"&gt;&lt;/a&gt; &lt;code&gt;end&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Character offset of the passage end within the source content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/passages.ts#L26"&gt;src/ranking/passages.ts:26&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="score"&gt;&lt;/a&gt; &lt;code&gt;score&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;BM25 score against the query. Higher is more relevant.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/passages.ts#L28"&gt;src/ranking/passages.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="start"&gt;&lt;/a&gt; &lt;code&gt;start&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Character offset of the passage start within the source content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/passages.ts#L24"&gt;src/ranking/passages.ts:24&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="text"&gt;&lt;/a&gt; &lt;code&gt;text&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The passage text, trimmed.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/passages.ts#L22"&gt;src/ranking/passages.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="max_passage_chars"&gt;MAX_PASSAGE_CHARS&lt;a class="anchor" href="#max_passage_chars"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;MAX_PASSAGE_CHARS&lt;/strong&gt;: &lt;code&gt;1200&lt;/code&gt; = &lt;code&gt;1_200&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: ranking/rerank</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/rerank/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/ranking/rerank/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / ranking/rerank&lt;/p&gt;&#10;&lt;h1 id="rankingrerank"&gt;ranking/rerank&lt;a class="anchor" href="#rankingrerank"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="rankedresult"&gt;RankedResult&lt;a class="anchor" href="#rankedresult"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/rerank.ts#L10"&gt;src/ranking/rerank.ts:10&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A ranked result: the original result plus its computed relevance score.&lt;/p&gt;&#10;&lt;h4 id="extends"&gt;Extends&lt;a class="anchor" href="#extends"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Inherited from&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="published"&gt;&lt;/a&gt; &lt;code&gt;published?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ISO date string of publication, when the provider exposes it.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;.&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#published"&gt;&lt;code&gt;published&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L19"&gt;src/providers/types.ts:19&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="relevance"&gt;&lt;/a&gt; &lt;code&gt;relevance&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Combined relevance score in [0, 1].&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/ranking/rerank.ts#L12"&gt;src/ranking/rerank.ts:12&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="score"&gt;&lt;/a&gt; &lt;code&gt;score?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A 0-1 relevance/quality score assigned by the provider, when available.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;.&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#score"&gt;&lt;code&gt;score&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L21"&gt;src/providers/types.ts:21&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="snippet"&gt;&lt;/a&gt; &lt;code&gt;snippet&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A short text snippet / description of the result.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;.&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#snippet"&gt;&lt;code&gt;snippet&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L17"&gt;src/providers/types.ts:17&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="source"&gt;&lt;/a&gt; &lt;code&gt;source&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The name of the provider that produced this result.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;.&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#source"&gt;&lt;code&gt;source&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L23"&gt;src/providers/types.ts:23&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="title"&gt;&lt;/a&gt; &lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The result title.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;.&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#title"&gt;&lt;code&gt;title&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L13"&gt;src/providers/types.ts:13&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The canonical URL of the result.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#searchresult"&gt;&lt;code&gt;SearchResult&lt;/code&gt;&lt;/a&gt;.&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/providers/types/#url"&gt;&lt;code&gt;url&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/providers/types.ts#L15"&gt;src/providers/types.ts:15&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="rerank"&gt;rerank()&lt;a class="anchor" href="#rerank"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;rerank&lt;/strong&gt;(&lt;code&gt;results&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;recencyDays?&lt;/code&gt;): &lt;a href="#rankedresult"&gt;&lt;code&gt;RankedResult&lt;/code&gt;&lt;/a&gt;[]&lt;/p&gt;</description></item><item><title>API: tools</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / tools&lt;/p&gt;&#10;&lt;h1 id="tools"&gt;tools&lt;a class="anchor" href="#tools"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="cachefromconfig"&gt;cacheFromConfig()&lt;a class="anchor" href="#cachefromconfig"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;cacheFromConfig&lt;/strong&gt;(&lt;code&gt;cfg?&lt;/code&gt;): &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/index.ts#L27"&gt;src/tools/index.ts:27&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Build the shared cache from configuration.&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;BETTER_WEB_SEARCH_DISABLE_CACHE&lt;/code&gt; and &lt;code&gt;BETTER_WEB_SEARCH_CACHE_PATH&lt;/code&gt; were&#10;parsed by the config loader and printed in the startup banner, but nothing&#10;ever passed them to the Cache: the server opened &lt;code&gt;data/cache.db&lt;/code&gt; no matter&#10;what either said. Both are honored here.&lt;/p&gt;&#10;&lt;h4 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cfg&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/config/#appconfig"&gt;&lt;code&gt;AppConfig&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="registertools"&gt;registerTools()&lt;a class="anchor" href="#registertools"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;registerTools&lt;/strong&gt;(&lt;code&gt;server&lt;/code&gt;, &lt;code&gt;cache?&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/index.ts#L34"&gt;src/tools/index.ts:34&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="parameters-1"&gt;Parameters&lt;a class="anchor" href="#parameters-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;server&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;McpServer&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cache?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns-1"&gt;Returns&lt;a class="anchor" href="#returns-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;code&gt;void&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: tools/extract</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/extract/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/extract/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / tools/extract&lt;/p&gt;&#10;&lt;h1 id="toolsextract"&gt;tools/extract&lt;a class="anchor" href="#toolsextract"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="extractresponse"&gt;ExtractResponse&lt;a class="anchor" href="#extractresponse"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L39"&gt;src/tools/extract.ts:39&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The spec-shaped per-URL extraction response.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="api_endpoints"&gt;&lt;/a&gt; &lt;code&gt;api_endpoints&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L49"&gt;src/tools/extract.ts:49&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="content"&gt;&lt;/a&gt; &lt;code&gt;content&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L42"&gt;src/tools/extract.ts:42&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="extraction"&gt;&lt;/a&gt; &lt;code&gt;extraction&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;{ &lt;code&gt;confidence&lt;/code&gt;: &lt;code&gt;number&lt;/code&gt;; &lt;code&gt;method&lt;/code&gt;: &lt;code&gt;string&lt;/code&gt;; &lt;code&gt;rendered&lt;/code&gt;: &lt;code&gt;boolean&lt;/code&gt;; }&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L43"&gt;src/tools/extract.ts:43&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;extraction.confidence&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L45"&gt;src/tools/extract.ts:45&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;extraction.method&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L44"&gt;src/tools/extract.ts:44&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;extraction.rendered&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L46"&gt;src/tools/extract.ts:46&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="metadata"&gt;&lt;/a&gt; &lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/metadata/#pagemetadata"&gt;&lt;code&gt;PageMetadata&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L50"&gt;src/tools/extract.ts:50&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="security"&gt;&lt;/a&gt; &lt;code&gt;security&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/extraction/untrusted/#securityreport"&gt;&lt;code&gt;SecurityReport&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Provenance for the content above. Page text is attacker-controlled, so it is always marked untrusted and screened for text addressing the agent.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L55"&gt;src/tools/extract.ts:55&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="structured_data"&gt;&lt;/a&gt; &lt;code&gt;structured_data&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L48"&gt;src/tools/extract.ts:48&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="title"&gt;&lt;/a&gt; &lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L41"&gt;src/tools/extract.ts:41&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/extract.ts#L40"&gt;src/tools/extract.ts:40&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="browser_url_timeout_ms"&gt;BROWSER_URL_TIMEOUT_MS&lt;a class="anchor" href="#browser_url_timeout_ms"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;BROWSER_URL_TIMEOUT_MS&lt;/strong&gt;: &lt;code&gt;35000&lt;/code&gt; = &lt;code&gt;35_000&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: tools/find</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/find/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/find/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / tools/find&lt;/p&gt;&#10;&lt;h1 id="toolsfind"&gt;tools/find&lt;a class="anchor" href="#toolsfind"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="findresponse"&gt;FindResponse&lt;a class="anchor" href="#findresponse"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L26"&gt;src/tools/find.ts:26&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The spec-shaped &lt;code&gt;web_find&lt;/code&gt; response.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="answer"&gt;&lt;/a&gt; &lt;code&gt;answer&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L27"&gt;src/tools/find.ts:27&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="queries_used"&gt;&lt;/a&gt; &lt;code&gt;queries_used&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L29"&gt;src/tools/find.ts:29&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="sources"&gt;&lt;/a&gt; &lt;code&gt;sources&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/search/#searchsource"&gt;&lt;code&gt;SearchSource&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L28"&gt;src/tools/find.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="findinputschema"&gt;findInputSchema&lt;a class="anchor" href="#findinputschema"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;findInputSchema&lt;/strong&gt;: { &lt;code&gt;max_results&lt;/code&gt;: &lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;; &lt;code&gt;query&lt;/code&gt;: &lt;code&gt;ZodString&lt;/code&gt;; &lt;code&gt;site&lt;/code&gt;: &lt;code&gt;ZodString&lt;/code&gt;; }&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L19"&gt;src/tools/find.ts:19&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Input schema for &lt;code&gt;web_find&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h4 id="type-declaration"&gt;Type Declaration&lt;a class="anchor" href="#type-declaration"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Name&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="property-max_results"&gt;&lt;/a&gt; &lt;code&gt;max_results&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L22"&gt;src/tools/find.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="property-query"&gt;&lt;/a&gt; &lt;code&gt;query&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ZodString&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L20"&gt;src/tools/find.ts:20&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="property-site"&gt;&lt;/a&gt; &lt;code&gt;site&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ZodString&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/find.ts#L21"&gt;src/tools/find.ts:21&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="registerfind"&gt;registerFind()&lt;a class="anchor" href="#registerfind"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;registerFind&lt;/strong&gt;(&lt;code&gt;server&lt;/code&gt;, &lt;code&gt;cache?&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: tools/news</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/news/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/news/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / tools/news&lt;/p&gt;&#10;&lt;h1 id="toolsnews"&gt;tools/news&lt;a class="anchor" href="#toolsnews"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="newsresponse"&gt;NewsResponse&lt;a class="anchor" href="#newsresponse"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L27"&gt;src/tools/news.ts:27&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The spec-shaped &lt;code&gt;web_news&lt;/code&gt; response.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="answer"&gt;&lt;/a&gt; &lt;code&gt;answer&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L28"&gt;src/tools/news.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="queries_used"&gt;&lt;/a&gt; &lt;code&gt;queries_used&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L31"&gt;src/tools/news.ts:31&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="sources"&gt;&lt;/a&gt; &lt;code&gt;sources&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/search/#searchsource"&gt;&lt;code&gt;SearchSource&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L29"&gt;src/tools/news.ts:29&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="timeline"&gt;&lt;/a&gt; &lt;code&gt;timeline&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Record&lt;/code&gt;&amp;lt;&lt;code&gt;string&lt;/code&gt;, &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/search/#searchsource"&gt;&lt;code&gt;SearchSource&lt;/code&gt;&lt;/a&gt;[]&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L30"&gt;src/tools/news.ts:30&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="newsinputschema"&gt;newsInputSchema&lt;a class="anchor" href="#newsinputschema"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;newsInputSchema&lt;/strong&gt;: { &lt;code&gt;max_results&lt;/code&gt;: &lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;; &lt;code&gt;recency_days&lt;/code&gt;: &lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;; &lt;code&gt;topic&lt;/code&gt;: &lt;code&gt;ZodString&lt;/code&gt;; }&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L20"&gt;src/tools/news.ts:20&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Input schema for &lt;code&gt;web_news&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h4 id="type-declaration"&gt;Type Declaration&lt;a class="anchor" href="#type-declaration"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Name&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="property-max_results"&gt;&lt;/a&gt; &lt;code&gt;max_results&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L23"&gt;src/tools/news.ts:23&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="property-recency_days"&gt;&lt;/a&gt; &lt;code&gt;recency_days&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L22"&gt;src/tools/news.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="property-topic"&gt;&lt;/a&gt; &lt;code&gt;topic&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ZodString&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/news.ts#L21"&gt;src/tools/news.ts:21&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="registernews"&gt;registerNews()&lt;a class="anchor" href="#registernews"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;registerNews&lt;/strong&gt;(&lt;code&gt;server&lt;/code&gt;, &lt;code&gt;cache?&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: tools/research</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/research/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/research/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / tools/research&lt;/p&gt;&#10;&lt;h1 id="toolsresearch"&gt;tools/research&lt;a class="anchor" href="#toolsresearch"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="citation"&gt;Citation&lt;a class="anchor" href="#citation"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L50"&gt;src/tools/research.ts:50&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A span of a source page that supports the answer.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="citation-1"&gt;&lt;/a&gt; &lt;code&gt;citation&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1-based index into &lt;code&gt;sources&lt;/code&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L52"&gt;src/tools/research.ts:52&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="end"&gt;&lt;/a&gt; &lt;code&gt;end&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Character offset of the quote end.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L62"&gt;src/tools/research.ts:62&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="quote"&gt;&lt;/a&gt; &lt;code&gt;quote&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The supporting text, verbatim from the extracted content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L58"&gt;src/tools/research.ts:58&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="relevance"&gt;&lt;/a&gt; &lt;code&gt;relevance&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Relevance of the span to the question. Higher is stronger.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L64"&gt;src/tools/research.ts:64&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="start"&gt;&lt;/a&gt; &lt;code&gt;start&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Character offset of the quote within that page&amp;rsquo;s extracted content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L60"&gt;src/tools/research.ts:60&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="title"&gt;&lt;/a&gt; &lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The source title.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L56"&gt;src/tools/research.ts:56&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The source URL the span was taken from.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L54"&gt;src/tools/research.ts:54&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="researchresponse"&gt;ResearchResponse&lt;a class="anchor" href="#researchresponse"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/research.ts#L67"&gt;src/tools/research.ts:67&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: tools/search</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/tools/search/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / tools/search&lt;/p&gt;&#10;&lt;h1 id="toolssearch"&gt;tools/search&lt;a class="anchor" href="#toolssearch"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="searchresponse"&gt;SearchResponse&lt;a class="anchor" href="#searchresponse"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L35"&gt;src/tools/search.ts:35&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The spec-shaped &lt;code&gt;web_search&lt;/code&gt; response.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="answer"&gt;&lt;/a&gt; &lt;code&gt;answer&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L36"&gt;src/tools/search.ts:36&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="queries_used"&gt;&lt;/a&gt; &lt;code&gt;queries_used&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L38"&gt;src/tools/search.ts:38&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="sources"&gt;&lt;/a&gt; &lt;code&gt;sources&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="#searchsource"&gt;&lt;code&gt;SearchSource&lt;/code&gt;&lt;/a&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L37"&gt;src/tools/search.ts:37&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="searchsource"&gt;SearchSource&lt;a class="anchor" href="#searchsource"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L26"&gt;src/tools/search.ts:26&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The spec-shaped source entry returned for each result.&lt;/p&gt;&#10;&lt;h4 id="properties-1"&gt;Properties&lt;a class="anchor" href="#properties-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="published"&gt;&lt;/a&gt; &lt;code&gt;published?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L30"&gt;src/tools/search.ts:30&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="relevance"&gt;&lt;/a&gt; &lt;code&gt;relevance&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L31"&gt;src/tools/search.ts:31&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="snippet"&gt;&lt;/a&gt; &lt;code&gt;snippet&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L29"&gt;src/tools/search.ts:29&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="title"&gt;&lt;/a&gt; &lt;code&gt;title&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L27"&gt;src/tools/search.ts:27&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/tools/search.ts#L28"&gt;src/tools/search.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="searchinputschema"&gt;searchInputSchema&lt;a class="anchor" href="#searchinputschema"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;const&lt;/code&gt; &lt;strong&gt;searchInputSchema&lt;/strong&gt;: { &lt;code&gt;max_results&lt;/code&gt;: &lt;code&gt;ZodDefault&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;; &lt;code&gt;query&lt;/code&gt;: &lt;code&gt;ZodString&lt;/code&gt;; &lt;code&gt;recency_days&lt;/code&gt;: &lt;code&gt;ZodOptional&lt;/code&gt;&amp;lt;&lt;code&gt;ZodNumber&lt;/code&gt;&amp;gt;; }&lt;/p&gt;</description></item><item><title>API: utils/cache</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cache/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/cache&lt;/p&gt;&#10;&lt;h1 id="utilscache"&gt;utils/cache&lt;a class="anchor" href="#utilscache"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="cache"&gt;Cache&lt;a class="anchor" href="#cache"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cache.ts#L164"&gt;src/utils/cache.ts:164&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A cache for search results, pages, API patterns, and domain profiles.&lt;/p&gt;&#10;&lt;p&gt;Prefers a SQLite database at &lt;code&gt;data/cache.db&lt;/code&gt; (WAL mode, auto-created&#10;directory). When better-sqlite3 cannot be loaded, when opening the&#10;database fails, or when &lt;code&gt;memory: true&lt;/code&gt; is passed, every method&#10;transparently operates on an in-memory Map with the same TTL semantics.&lt;/p&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new Cache&lt;/strong&gt;(&lt;code&gt;opts?&lt;/code&gt;): &lt;a href="#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cache.ts#L169"&gt;src/utils/cache.ts:169&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;opts&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cachetypes/#cacheoptions"&gt;&lt;code&gt;CacheOptions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#cache"&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: utils/cacheTypes</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cachetypes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cachetypes/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/cacheTypes&lt;/p&gt;&#10;&lt;h1 id="utilscachetypes"&gt;utils/cacheTypes&lt;a class="anchor" href="#utilscachetypes"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="apipattern"&gt;ApiPattern&lt;a class="anchor" href="#apipattern"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L25"&gt;src/utils/cacheTypes.ts:25&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A discovered API endpoint pattern.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="content_type"&gt;&lt;/a&gt; &lt;code&gt;content_type&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L30"&gt;src/utils/cacheTypes.ts:30&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="discovered_at"&gt;&lt;/a&gt; &lt;code&gt;discovered_at&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L31"&gt;src/utils/cacheTypes.ts:31&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="domain"&gt;&lt;/a&gt; &lt;code&gt;domain&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L27"&gt;src/utils/cacheTypes.ts:27&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="endpoint_pattern"&gt;&lt;/a&gt; &lt;code&gt;endpoint_pattern&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L28"&gt;src/utils/cacheTypes.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="id"&gt;&lt;/a&gt; &lt;code&gt;id&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L26"&gt;src/utils/cacheTypes.ts:26&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="method"&gt;&lt;/a&gt; &lt;code&gt;method&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L29"&gt;src/utils/cacheTypes.ts:29&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="cacheoptions"&gt;CacheOptions&lt;a class="anchor" href="#cacheoptions"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L35"&gt;src/utils/cacheTypes.ts:35&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Options controlling the Cache backend.&lt;/p&gt;&#10;&lt;h4 id="properties-1"&gt;Properties&lt;a class="anchor" href="#properties-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="dbpath"&gt;&lt;/a&gt; &lt;code&gt;dbPath?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Path to the SQLite database file. Defaults to &lt;code&gt;data/cache.db&lt;/code&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L37"&gt;src/utils/cacheTypes.ts:37&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="memory"&gt;&lt;/a&gt; &lt;code&gt;memory?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Force the in-memory Map backend (used in CI / tests).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L39"&gt;src/utils/cacheTypes.ts:39&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="pagecacheentry"&gt;PageCacheEntry&lt;a class="anchor" href="#pagecacheentry"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/cacheTypes.ts#L16"&gt;src/utils/cacheTypes.ts:16&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: utils/config</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/config/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/config&lt;/p&gt;&#10;&lt;h1 id="utilsconfig"&gt;utils/config&lt;a class="anchor" href="#utilsconfig"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="appconfig"&gt;AppConfig&lt;a class="anchor" href="#appconfig"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L31"&gt;src/utils/config.ts:31&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="braveapikey"&gt;&lt;/a&gt; &lt;code&gt;braveApiKey&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt; | &lt;code&gt;undefined&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L32"&gt;src/utils/config.ts:32&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="browserenabled"&gt;&lt;/a&gt; &lt;code&gt;browserEnabled&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L37"&gt;src/utils/config.ts:37&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="cacheenabled"&gt;&lt;/a&gt; &lt;code&gt;cacheEnabled&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L35"&gt;src/utils/config.ts:35&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="cachepath"&gt;&lt;/a&gt; &lt;code&gt;cachePath&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L36"&gt;src/utils/config.ts:36&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="serpapikey"&gt;&lt;/a&gt; &lt;code&gt;serpApiKey&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt; | &lt;code&gt;undefined&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L34"&gt;src/utils/config.ts:34&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="tavilyapikey"&gt;&lt;/a&gt; &lt;code&gt;tavilyApiKey&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt; | &lt;code&gt;undefined&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L33"&gt;src/utils/config.ts:33&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="providerstatus"&gt;ProviderStatus&lt;a class="anchor" href="#providerstatus"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L69"&gt;src/utils/config.ts:69&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Shape for the provider banner (pure, testable).&lt;/p&gt;&#10;&lt;h4 id="properties-1"&gt;Properties&lt;a class="anchor" href="#properties-1"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="enabled"&gt;&lt;/a&gt; &lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L71"&gt;src/utils/config.ts:71&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="hint"&gt;&lt;/a&gt; &lt;code&gt;hint?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L73"&gt;src/utils/config.ts:73&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="keyless"&gt;&lt;/a&gt; &lt;code&gt;keyless&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L72"&gt;src/utils/config.ts:72&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/config.ts#L70"&gt;src/utils/config.ts:70&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="formatbanner"&gt;formatBanner()&lt;a class="anchor" href="#formatbanner"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;formatBanner&lt;/strong&gt;(&lt;code&gt;pkg&lt;/code&gt;, &lt;code&gt;cfg&lt;/code&gt;): &lt;code&gt;string&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: utils/domainProfile</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/domainprofile/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/domainprofile/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/domainProfile&lt;/p&gt;&#10;&lt;h1 id="utilsdomainprofile"&gt;utils/domainProfile&lt;a class="anchor" href="#utilsdomainprofile"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="domainprofile"&gt;DomainProfile&lt;a class="anchor" href="#domainprofile"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L20"&gt;src/utils/domainProfile.ts:20&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A per-domain capability profile.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="api_patterns"&gt;&lt;/a&gt; &lt;code&gt;api_patterns&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;API endpoint patterns discovered for this domain.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L28"&gt;src/utils/domainProfile.ts:28&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="best_method"&gt;&lt;/a&gt; &lt;code&gt;best_method&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="#bestmethod-1"&gt;&lt;code&gt;BestMethod&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The extraction method that worked best on the last visit.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L30"&gt;src/utils/domainProfile.ts:30&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="framework"&gt;&lt;/a&gt; &lt;code&gt;framework&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="#framework-1"&gt;&lt;code&gt;Framework&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The framework detected from HTML markers.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L24"&gt;src/utils/domainProfile.ts:24&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="has_json_ld"&gt;&lt;/a&gt; &lt;code&gt;has_json_ld&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether the page embeds JSON-LD structured data.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L26"&gt;src/utils/domainProfile.ts:26&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="requires_js"&gt;&lt;/a&gt; &lt;code&gt;requires_js&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Whether the page needs JavaScript to produce content.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L22"&gt;src/utils/domainProfile.ts:22&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="extractionresult"&gt;ExtractionResult&lt;a class="anchor" href="#extractionresult"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/domainProfile.ts#L34"&gt;src/utils/domainProfile.ts:34&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API: utils/memoryCache</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/memorycache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/memorycache/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/memoryCache&lt;/p&gt;&#10;&lt;h1 id="utilsmemorycache"&gt;utils/memoryCache&lt;a class="anchor" href="#utilsmemorycache"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="memorycache"&gt;MemoryCache&lt;a class="anchor" href="#memorycache"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/memoryCache.ts#L24"&gt;src/utils/memoryCache.ts:24&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A cache backend backed by a plain &lt;code&gt;Map&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Search entries expire after &lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cachetypes/#search_ttl_ms"&gt;SEARCH_TTL_MS&lt;/a&gt;, page entries after&#10;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/cachetypes/#page_ttl_ms"&gt;PAGE_TTL_MS&lt;/a&gt;; domain profiles and API patterns never expire.&lt;/p&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new MemoryCache&lt;/strong&gt;(): &lt;a href="#memorycache"&gt;&lt;code&gt;MemoryCache&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#memorycache"&gt;&lt;code&gt;MemoryCache&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="addapipattern"&gt;addApiPattern()&lt;a class="anchor" href="#addapipattern"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;addApiPattern&lt;/strong&gt;(&lt;code&gt;domain&lt;/code&gt;, &lt;code&gt;endpointPattern&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;contentType&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/memoryCache.ts#L76"&gt;src/utils/memoryCache.ts:76&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Record a discovered API endpoint pattern for a domain.&lt;/p&gt;&#10;&lt;h6 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;domain&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;endpointPattern&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;method&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;contentType&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h6 id="returns-1"&gt;Returns&lt;a class="anchor" href="#returns-1"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;code&gt;void&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: utils/queries</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/queries/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/queries&lt;/p&gt;&#10;&lt;h1 id="utilsqueries"&gt;utils/queries&lt;a class="anchor" href="#utilsqueries"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="expandqueries"&gt;expandQueries()&lt;a class="anchor" href="#expandqueries"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;expandQueries&lt;/strong&gt;(&lt;code&gt;question&lt;/code&gt;): &lt;code&gt;string&lt;/code&gt;[]&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/queries.ts#L52"&gt;src/utils/queries.ts:52&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Expand a question into 4-6 unique search variants.&lt;/p&gt;&#10;&lt;p&gt;The original question is always first. Each matching synonym group adds a&#10;variant with the term replaced. Variants are deduplicated (case-insensitive)&#10;and the list is capped to 6.&lt;/p&gt;&#10;&lt;p&gt;Returns &lt;code&gt;[&amp;quot;&amp;quot;]&lt;/code&gt; for an empty question.&lt;/p&gt;&#10;&lt;h4 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;question&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;code&gt;string&lt;/code&gt;[]&lt;/p&gt;</description></item><item><title>API: utils/retry</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/retry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/retry/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/retry&lt;/p&gt;&#10;&lt;h1 id="utilsretry"&gt;utils/retry&lt;a class="anchor" href="#utilsretry"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="interfaces"&gt;Interfaces&lt;a class="anchor" href="#interfaces"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="retryoptions"&gt;RetryOptions&lt;a class="anchor" href="#retryoptions"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/retry.ts#L12"&gt;src/utils/retry.ts:12&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Options controlling &lt;a href="#withretry"&gt;withRetry&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="basems"&gt;&lt;/a&gt; &lt;code&gt;baseMs?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Base delay in ms for the first retry (default 200).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/retry.ts#L16"&gt;src/utils/retry.ts:16&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="maxretries"&gt;&lt;/a&gt; &lt;code&gt;maxRetries?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Maximum number of retries after the initial attempt (default 2).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/retry.ts#L14"&gt;src/utils/retry.ts:14&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="retrynetworkerrors"&gt;&lt;/a&gt; &lt;code&gt;retryNetworkErrors?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Also retry thrown errors that carry no HTTP status (network errors). Abort errors are never retried — the caller&amp;rsquo;s &lt;code&gt;AbortSignal&lt;/code&gt; is already spent, so a retry would fail instantly without waiting.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/retry.ts#L24"&gt;src/utils/retry.ts:24&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="retryon"&gt;&lt;/a&gt; &lt;code&gt;retryOn?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;[]&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;HTTP status codes that trigger a retry (default [429, 503]).&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/retry.ts#L18"&gt;src/utils/retry.ts:18&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="parseretryafter"&gt;parseRetryAfter()&lt;a class="anchor" href="#parseretryafter"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;parseRetryAfter&lt;/strong&gt;(&lt;code&gt;value&lt;/code&gt;): &lt;code&gt;number&lt;/code&gt; | &lt;code&gt;undefined&lt;/code&gt;&lt;/p&gt;</description></item><item><title>API: utils/ssrf</title><link>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/ssrf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/utils/ssrf/</guid><description>&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;&lt;strong&gt;better-web-search-mcp&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;a href="https://phantompixeldev.github.io/BetterWebSearch-MCP/docs/api/"&gt;better-web-search-mcp&lt;/a&gt; / utils/ssrf&lt;/p&gt;&#10;&lt;h1 id="utilsssrf"&gt;utils/ssrf&lt;a class="anchor" href="#utilsssrf"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="classes"&gt;Classes&lt;a class="anchor" href="#classes"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;h3 id="blockedurlerror"&gt;BlockedUrlError&lt;a class="anchor" href="#blockedurlerror"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/ssrf.ts#L21"&gt;src/utils/ssrf.ts:21&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A URL rejected because it does not point at a public internet host.&lt;/p&gt;&#10;&lt;h4 id="extends"&gt;Extends&lt;a class="anchor" href="#extends"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Error&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="constructors"&gt;Constructors&lt;a class="anchor" href="#constructors"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="constructor"&gt;Constructor&lt;a class="anchor" href="#constructor"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;strong&gt;new BlockedUrlError&lt;/strong&gt;(&lt;code&gt;url&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;): &lt;a href="#blockedurlerror"&gt;&lt;code&gt;BlockedUrlError&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Defined in: &lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/ssrf.ts#L25"&gt;src/utils/ssrf.ts:25&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;reason&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h6 id="returns"&gt;Returns&lt;a class="anchor" href="#returns"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;a href="#blockedurlerror"&gt;&lt;code&gt;BlockedUrlError&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h6 id="overrides"&gt;Overrides&lt;a class="anchor" href="#overrides"&gt;#&lt;/a&gt;&lt;/h6&gt;&#10;&lt;p&gt;&lt;code&gt;Error.constructor&lt;/code&gt;&lt;/p&gt;&#10;&lt;h4 id="properties"&gt;Properties&lt;a class="anchor" href="#properties"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Modifier&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Inherited from&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Defined in&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="cause"&gt;&lt;/a&gt; &lt;code&gt;cause?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;unknown&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.cause&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es2022.error.d.ts:26&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="message"&gt;&lt;/a&gt; &lt;code&gt;message&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.message&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es5.d.ts:1077&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="name"&gt;&lt;/a&gt; &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es5.d.ts:1076&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="stack"&gt;&lt;/a&gt; &lt;code&gt;stack?&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.stack&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/typescript/lib/lib.es5.d.ts:1078&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="url"&gt;&lt;/a&gt; &lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;readonly&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The URL that was rejected.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/PhantomPixelDev/BetterWebSearch-MCP/blob/04c0645dd271fb33794ac13e07d72e57c3133134/src/utils/ssrf.ts#L23"&gt;src/utils/ssrf.ts:23&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a id="stacktracelimit"&gt;&lt;/a&gt; &lt;code&gt;stackTraceLimit&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;static&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The &lt;code&gt;Error.stackTraceLimit&lt;/code&gt; property specifies the number of stack frames collected by a stack trace (whether generated by &lt;code&gt;new Error().stack&lt;/code&gt; or &lt;code&gt;Error.captureStackTrace(obj)&lt;/code&gt;). The default value is &lt;code&gt;10&lt;/code&gt; but may be set to any valid JavaScript number. Changes will affect any stack trace captured &lt;em&gt;after&lt;/em&gt; the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames.&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Error.stackTraceLimit&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;node_modules/@types/node/globals.d.ts:68&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="methods"&gt;Methods&lt;a class="anchor" href="#methods"&gt;#&lt;/a&gt;&lt;/h4&gt;&#10;&lt;h5 id="capturestacktrace"&gt;captureStackTrace()&lt;a class="anchor" href="#capturestacktrace"&gt;#&lt;/a&gt;&lt;/h5&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&lt;code&gt;static&lt;/code&gt; &lt;strong&gt;captureStackTrace&lt;/strong&gt;(&lt;code&gt;targetObject&lt;/code&gt;, &lt;code&gt;constructorOpt?&lt;/code&gt;): &lt;code&gt;void&lt;/code&gt;&lt;/p&gt;</description></item></channel></rss>