Labsco
MCP SERVER

WebSearch

by m4s1t4

Search the web, crawl a site to a chosen depth, scrape a page, and pull specific facts out of a set of URLs by describing what you want — all through Firecrawl.

Site Crawling & Scraping Infrastructure
Summary
Extraction is the one that saves context.

Scraping four pages puts four pages in front of the model; asking for the specific fact across those four URLs puts back an answer with optional source references. The depth and page limits on crawling exist for the same reason — an unbounded crawl of a documentation site will exhaust a context window long before it exhausts the site.

What it is

A Firecrawl-backed research server. Beyond search and scraping, its useful piece is extraction: you give it a list of URLs and a plain-language instruction, and it returns the information you asked for rather than the page you would have had to read.

What you get
  • A web search from a `query`, returning results as JSON
  • Information extracted from a list of `urls` according to a `prompt`, with `enableWebSearch` to supplement from the wider web and `showSources` to include references
  • A site crawled from a starting `url` with `maxDepth` and a page `limit`, returning content as markdown or HTML
  • A single page scraped from its `url`, with screenshots available
Requirements

A Firecrawl API key in `FIRECRAWL_API_KEY`, which is the one that must be set. `OPENAI_API_KEY` is optional and powers the AI-assisted features, and a Tavily key is listed as an optional extra search path. Python 3.8 or higher with the `uv` package manager: clone the repository, create the environment with `uv venv`, install with `uv sync`, and have your client launch it as `uv --directory <absolute path> run main.py`. The package is `webtools` (0.1.0).