search_and_fetch
Search the web, rerank results, and fetch full content of top results as clean markdown, with caching and domain filtering.
Instructions
Search the web, rerank results, then fetch the full content of the top result(s). GitHub URLs are fetched via the GitHub API; all others go through a fetch cascade: Firecrawl → Crawl4AI → raw HTTP. Results and fetched pages are cached. Blocked domains are filtered. Returns the result list plus clean markdown of the fetched pages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Restrict results to one domain or a list of domains (e.g. 'github.com'). Best-effort — applied as a site: query operator; most engines honor it but some ignore it. | |
| query | Yes | Search query | |
| expand | No | Use local LLM to generate 2-3 query variants and merge results for a wider search surface (default: off). Adds ~3s latency. | |
| engines | No | Comma-separated SearXNG engine names to restrict the search to (e.g. 'google,duckduckgo'). Forwarded verbatim; unknown/disabled engines degrade to fewer results rather than erroring. | |
| category | No | Search category: general, news, it, or science (default general) | general |
| language | No | BCP-47 language code (e.g. 'en', 'de') or 'all' for all languages. Omit to use the SearXNG instance default. | |
| min_score | No | Drop results whose reranker relevance score is below this threshold (0-1, omit for no filtering). Filters on the RAW cross-encoder relevance score, not the recency-adjusted score used for ordering. Scores are strongly bimodal — relevant results cluster near 1.0 and irrelevant ones near 0, with little in between — so any value in roughly 0.01-0.9 behaves about the same; 0.01-0.1 is the useful range and 0.5 is not a midpoint. A high score means topically related, NOT correct: an Apache mod_proxy page scores 0.967 on an nginx query. Thresholds are model-dependent and not comparable across rerankers. No-op (with a logged warning) when the reranker is unavailable, since no scores exist to filter on. | |
| time_range | No | Limit results to: day, week, month, or year (omit for all time) | |
| fetch_count | No | Number of top results to fetch full content for (default 1, max 3) | |
| domain_profile | No | Named domain profile to apply: 'homelab', 'dev', or omit for default filters |