Labsco
MCP SERVER

Web Search

by mrkrsl

Web search for a local model with no API key — Bing, then Brave, then DuckDuckGo, with full page content extracted from the results.

Web Search Engines
Summary
Search that costs nothing per query and returns the page, not just the link.

Three engines in a fallback chain and content extraction with its own retry path — the design is about getting an answer back when one engine blocks you, which is the failure mode that makes keyless search unreliable.

What it is

A search server that queries engines directly through browser automation rather than a paid search API, then follows the results and extracts their page content. Built and tested against LM Studio and LibreChat.

What you get
  • `full-web-search` — the main tool: search, then fetch full page content from each result URL concurrently, returning structured data. Takes a query and a result count between 1 and 10, default 5
  • `get-web-search-summaries` — the same multi-engine search returning only the result snippets, with no content extraction, for when speed matters more than depth
  • `get-single-web-page-content` — extract the main content of one URL you already have, with navigation, ads and other non-content elements stripped
  • An ordered engine strategy: browser-based Bing on a dedicated Chromium instance first, browser-based Brave on Firefox second, and Axios DuckDuckGo as the final fallback, each engine getting its own browser instance with automatic cleanup
  • Content extraction that tries plain HTTP first and only falls back to a browser, with automatic HTTP/1.1 retry when an HTTP/2 protocol error occurs
Requirements

Node.js 18.0.0 or higher and npm 8.0.0 or higher. Download a release, then run `npm install`, `npx playwright install` and `npm run build` in the extracted folder — the install must happen at the root, not inside `dist/`. Point your client's `mcp.json` at the built `dist/index.js`. Behaviour is tuned with environment variables: `MAX_CONTENT_LENGTH` defaults to 500000 characters, `DEFAULT_TIMEOUT` to 6000 milliseconds, `MAX_BROWSERS` to 3, and `BROWSER_TYPES` to chromium and firefox. Model choice matters more here than usual — recent tool-use models such as Qwen3 and Gemma 3 work well, while some older Llama and Deepseek builds behave erratically or not at all. Only LM Studio and LibreChat have been tested as clients.