MCP SearXNG vs Novada MCP
A side-by-side look at the MCP SearXNG and Novada MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP SearXNG for search & data extraction work as a local process; choose Novada MCP for search & data extraction as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP SearXNG when
- You need dedicated capabilities in the Search & Data Extraction domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You have the keys it needs:
SEARXNG_URL. - You want tools like
searxng_web_search, searxng_search_suggestions, searxng_instance_info.
Choose Novada MCP when
- You need dedicated capabilities in the Search & Data Extraction domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
NOVADA_API_KEY. - You want tools like
novada_search, novada_extract, novada_crawl.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Search & Data Extraction | Search & Data Extraction |
| Quality signal | 67/100 · Great | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | API key required |
| Pricing | Free | Not declared |
| Required env vars | SEARXNG_URL | NOVADA_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1,352 | 3 |
| Directory activity | 9 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 4 | 37 |
| Full listing | View MCP SearXNG | View Novada MCP |
Tools & capabilities
MCP SearXNG tools 4
searxng_web_searchSearches the web using SearXNG and returns a list of results, each with a title, URL, and content snippet. CRITICAL: The required parameter name is exactly `query` (not `prompt`, `q`, or any other name). Calls an external SearXNG instance; availability depends on the `SEARXNG_URL` configuration. Use `pageno` to paginate results; combine `time_range` and `language` to narrow scope. When `engines` and `time_range` are both provided, every selected engine must explicitly advertise time-range support via SearXNG /config; otherwise the request is rejected before search. To read the full text of a result URL, follow up with `web_url_read`.searxng_search_suggestionsReturns autocomplete suggestions from the configured SearXNG instance. Use this to refine vague or partial queries before searching.searxng_instance_infoDiscovers capabilities from all reachable configured SearXNG instances via /config, including categories.common/available, engines.common/available, defaults, locales, and plugins.web_url_readFetches a URL and returns readable content as markdown. Content-type aware: HTML is converted to markdown; JSON is pretty-printed; plain text, YAML, TOML, and XML are returned as fenced readable text. PDF text extraction is supported with bounded input, output, page count, time, concurrency, and memory; OCR is not supported. Binary, media, archive, and octet-stream downloads other than PDFs are intentionally rejected instead of being returned as raw bytes. When the operator configures browser solvers, mcp-searxng attempts FlareSolverr first and then Byparr only after a busy or transient-unavailable acquisition; cache hits bypass acquisition and a final busy or unavailable provider uses one uncached direct-fetch fallback. Three modes: (1) Full content — omit filtering params; use `startChar`/`maxLength` to paginate large pages. (2) Section extraction — set `section` to return content under a specific heading. (3) Headings only — set `readHeadings: true` to list all headings (mutually exclusive with other filtering params). Returns an error string if the URL is unreachable or content cannot be extracted. Use after `searxng_web_search` to read the full content of individual result URLs.
Novada MCP tools 37
novada_searchSearch the web for clean, ready-to-use content — titles, URLs, snippets, reranked by relevance. For multi-source questions, use novada_research instead (faster, more thorough). **Use for:** current events, URL lookup, fact-checking, competitive research. enrich_top=true auto-extracts the #1 result. **Not for:** a known URL (novada_extract) or a multi-source report (novada_research). **Tip:** engine='google' (default) is fastest/most reliable; duckduckgo/yandex are slower fallbacks. **Domain filtering:** includeDomains/excludeDomains inject `site:domain` into the query (not API-side). **Project grouping:** `project="my-project"` groups outputs under a subfolder (~/Downloads/novada-mcp/<date>/<project>/).novada_extractExtract content from any URL. Auto-handles Cloudflare/DataDome/Kasada via escalation (static → JS render → Browser CDP). Batch mode: pass url as an array for up to 10 pages in parallel. **Format selection:** - `format="markdown"` (default): full-page content for reading/analysis. - `format="json"`: structured object (url, title, content, quality, links, structured_data, fields, hints, mode, fetched_at). Use with `fields=["price","title"]` to populate `fields`. Common mistake: using markdown when you need specific fields — use format="json"+fields instead. - `format="html"`: raw HTML (truncated at 100K chars by default; adjust via max_chars). - `clean=true`: strip nav/sidebar, main content only (~15K chars vs ~100K full page). **Use for:** reading pages, batch-extracting search results, structured fields (price, author, date) — works on anti-bot pages automatically. **Not for:** URL discovery (novada_map), multi-page crawl (novada_crawl), rich platform data like Amazon/LinkedIn (novada_scrape). **Key rule:** leave render="auto" (default) — 15-100x faster on static sites; only set render="render" for known JS-heavy SPAs. **Geo-routing:** `country="de"` (ISO 2-letter) routes render fetches through that country's exit IP — for localized pricing or geo-restricted content. **Auto-saved:** every extraction is written to `~/Downloads/novada-mcp/YYYY-MM-DD/` (path shown in the response). **Project grouping:** `project="my-project"` groups outputs under a subfolder.novada_crawlUse when you need content from a bounded set of pages (up to 20) and don't have the URLs yet. Crawls BFS/DFS, extracts each page inline. Use select_paths globs to target sections (e.g. "/docs/api/**"). **Wrong tool for whole-site jobs:** for >20 pages or a full docs site on disk, use `novada_site_copy` instead (up to 1000 pages, streams to disk, returns a manifest). novada_crawl hard-caps at 20 pages and returns bodies inline. **Best for:** competitive content analysis, a handful of related pages inline (returns bodies directly). **Not for:** a single page (novada_extract), URL discovery only (novada_map — much faster), a whole site to disk (novada_site_copy). **Performance:** avoid max_pages > 10 on large sites — crawl time scales ~1.4s/page (max_pages=20 ≈ 28s minimum). Use select_paths to narrow scope before raising max_pages. **Rendering:** `render` defaults to "auto" (static first, escalates to JS on detection) — not static-only.novada_researchOne call → 3-10 parallel searches across Google/Bing/DuckDuckGo → dedup → extracts full content from top sources → returns CITED SOURCE MATERIAL (numbered passages), not a written answer. Extractive, not generative — you compose the final answer from the gathered passages. **Use for:** complex questions needing passages from ≥3 independent sources in one call — comparative analysis, market research, technical deep dives, competitive intelligence. Replaces 5-10 manual search+extract calls. **Not for:** a single fact or one URL (novada_search — faster/cheaper), a known URL (novada_extract), or a finished prose report (this returns source material, not an answer). **Depth:** "quick" (3 queries), "deep" (6), "comprehensive" (8-9), "auto" (default — quick or deep by question length, never comprehensive). **Project grouping:** `project="my-project"` groups outputs under a subfolder. **Recency:** `time_range` ("day"|"week"|"month"|"year"), `start_date`/`end_date` (ISO YYYY-MM-DD) propagate to every internal search call. **Response size:** extracts full content from the top 5 sources only (even at depth="comprehensive"); each source is capped at novada_extract's own default 25,000-char limit — bounded total, not unbounded "every source in full."novada_mapDiscover URLs on a site before deciding what to read. Tries sitemap.xml first (fast), falls back to BFS crawl. Returns URLs only — no content. Hard cap: 100 URLs. **Best for:** site structure discovery, finding the right subpage, pre-flight before novada_crawl/novada_extract. **Not for:** reading content (use novada_crawl/novada_extract) or copying a whole site to disk (novada_site_copy). **Note:** limited results on JS SPAs — flagged in the output.novada_site_copyCopy an entire docs site/section to disk as clean markdown — one.md file per page — returning a COMPACT manifest, not page bodies. Use for a whole knowledge base on disk (offline docs ingest, RAG corpus, full-site mirror). **Discovery order:** (1) llms.txt/llms-full.txt if present, (2) sitemap.xml, (3) scoped same-host BFS to completion. select_paths/exclude_paths and same-host are always enforced. **Best for:** "copy all of docs.x.com", a local docs corpus, ingesting an llms.txt index. **Not for:** a single page (novada_extract), a few pages inline (novada_crawl), URL discovery only (novada_map). **Output:** each page streams to `~/Downloads/novada-mcp/<date>/<project|domain>/site-copy/<slug>.md`; `manifest.json` records {url,file,title,word_count,depth,bytes,status} per page. The tool returns a compact summary + manifest path, not inline content — read the.md files or manifest.json after it completes. **Scale:** max_pages default 200, hard max 1000, drained until the queue is empty or the ceiling is hit.novada_scrapeUse for structured data from a specific platform — clean tabular records, not raw HTML. Proxies the Novada Scraper API (scraper.novada.com; public docs: https://developer.novada.com/novada/advanced-proxy-solutions/scraper-api/target-sites-supported-by-scraper-api). Supports 14 platforms (~76 operations): Google, LinkedIn, Amazon, YouTube, Walmart, DuckDuckGo, TikTok, Bing, Instagram, X (Twitter), Facebook, Perplexity AI, Yandex, GitHub. **Best for:** e-commerce product data, social posts/comments, job listings, reviews, real estate, market data. **Not for:** general web pages outside this platform list — use novada_extract instead. **Prefer the dedicated tool when one exists:** for amazon/google/bing/duckduckgo/yandex/youtube/instagram/facebook/tiktok/x/walmart/linkedin/github/perplexity, call novada_scrape_<platform> instead — same engine, but its `operation` enum uses typed friendly names and is rejected client-side before any network call if wrong. Use THIS generic tool for platforms with no dedicated sibling or when resuming by task_id. **Output formats:** markdown (default table), json (records array inside a fenced "## Scrape Results" block), toon (pipe-separated, 40-65% smaller — best for large result sets), csv, excel (base64), html. **Example:** platform="amazon.com", operation="amazon_product_keywords", params={keyword:"iphone 16", num:5}. **Amazon price fields:** trust `final_price`/`price` (check `_price_source`) — `initial_price` and `buybox_prices.final_price` are often 0 by design, not a bug; `buybox_prices.unit_price` is raw per-unit data, never the listing price. **Discover platforms:** read the `novada://scraper-platforms` resource for the full, always-current operation list (slugs + required params), or see the public reference at https://developer.novada.com/novada/advanced-proxy-solutions/scraper-api/target-sites-supported-by-scraper-api. **Resume:** pass `task_id` from a prior status:processing call to fetch the result without a new billable task (platform/operation still required, display-only). **Project grouping:** `project="my-project"` groups outputs under a subfolder.novada_scrape_amazonExtract structured Amazon data — product details, reviews, seller info, bestseller lists, category/brand listings — via a closed, typed `operation` enum (same engine as novada_scrape, pinned to platform="amazon.com"). **Use when:** "get the price/rating/title for Amazon ASIN B0...", "pull the reviews for this Amazon product URL", "search Amazon for <keyword> with price and rating", "who is this Amazon seller", "what's in this Amazon Best Sellers list". **Not for:** Any other platform — use its own novada_scrape_<platform> tool, or novada_scrape(platform="<domain>"). A general Google/web search — use novada_search. Reading one arbitrary URL's raw content — use novada_extract. **Returns:** Structured product/review/seller records (title, price, rating, asin, availability, etc.) in the chosen output format — same rendering as novada_scrape. **Ops:** 10 verified-working Amazon operations. 3 known backend-broken ones are excluded from this enum (rejected client-side before any backend call) — unlike novada_scrape(platform="amazon.com",...), which still forwards them with a warning.novada_scrape_googleExtract structured Google SERP data — organic web search, AI Mode answers, Maps place/review details, Shopping, Jobs, Hotels, Videos — via a closed, typed `operation` enum (same engine as novada_scrape, pinned to platform="google.com"). Returns raw structured SERP records, not a generated answer. **Use when:** "get the raw Google search results (titles, links, ranks) for <query>", "what's in Google's AI Mode answer for <query>", "pull Google Maps reviews or place details for this URL / place_id / CID", "search Google Shopping for <keyword>", "find Google Jobs, Hotels, or Videos results for <query>". **Not for:** A general question needing just an answer or a few good links — use novada_search (multi-engine: google/duckduckgo/yandex, ranked/reranked, cheaper than a raw-SERP scrape). A complex question needing cited multi-source synthesis — use novada_research. Reading one already-known URL's page content — use novada_extract. A different platform's data — use its own novada_scrape_<platform> tool, or novada_scrape(platform="<domain>"). **Returns:** Structured SERP records per operation — organic results (title/url/snippet/rank), AI Mode answer content, Maps place details/reviews, Shopping listings (price/rating), Jobs/Hotels/Videos listings — in the chosen output format, same rendering as novada_scrape. **Ops:** 13 verified-working Google operations spanning web search, AI Mode, Maps (location/place_id/CID/URL lookups + reviews), Shopping, Jobs, Hotels, and Videos. Every google.com catalog operation is currently status:"ok" — none are excluded for being backend_broken.novada_scrape_bingExtract structured Bing SERP data — organic web search, video results, news results, shopping listings — via a closed, typed `operation` enum (same engine as novada_scrape, pinned to platform="bing.com"). Bing is NOT a selectable engine on novada_search — this is the only intentional way to query Bing specifically. **Use when:** "get the raw Bing search results (titles, links, ranks) for <query>", "find Bing video results for <query>", "find Bing news results for <query>, sorted by date", "search Bing Shopping for <keyword>". **Not for:** A general question needing just an answer or a few good links — use novada_search — google/duckduckgo/yandex only (Bing is not selectable there); ranked, cheaper than a raw-SERP scrape. A complex question needing cited multi-source synthesis — use novada_research. Reading one already-known URL's page content — use novada_extract. A different platform's data — use its own novada_scrape_<platform> tool, or novada_scrape(platform="<domain>"). **Returns:** Structured SERP records per operation — organic results (title/url/snippet/rank), video results, news results (with date), shopping listings (price/rating) — in the chosen output format, same rendering as novada_scrape. **Ops:** 4 verified-working Bing operations: web search, videos, news, and shopping. Every bing.com catalog operation is currently status:"ok" — none are excluded for being backend_broken.novada_scrape_duckduckgoExtract structured DuckDuckGo web search SERP data via a closed, typed `operation` enum (same engine as novada_scrape, pinned to platform="duckduckgo.com"). Returns the raw organic-results SERP, with region/time/adult-content filters novada_search does not expose, not a generated answer. **Use when:** "get the raw DuckDuckGo search results (titles, links, ranks) for <query>", "search DuckDuckGo restricted to a specific region (params.kl) or time range (params.df)", "compare DuckDuckGo's ranking for <query> against another engine's raw SERP". **Not for:** A general question needing just an answer or a few good links — use novada_search with engine="duckduckgo" (ranked/reranked instead of a raw SERP dump). A complex question needing cited multi-source synthesis — use novada_research. Reading one already-known URL's page content — use novada_extract. A different platform's data — use its own novada_scrape_<platform> tool, or novada_scrape(platform="<domain>"). **Returns:** Structured organic-result SERP records (title/url/snippet/rank) in the chosen output format, same rendering as novada_scrape. **Ops:** 1 verified-working DuckDuckGo operation (web search). The single duckduckgo.com catalog operation is currently status:"ok".novada_scrape_yandexExtract structured Yandex web search SERP data via a closed, typed `operation` enum (same engine as novada_scrape, pinned to platform="yandex.com"). Returns the raw organic-results SERP, with TLD/language/time-range controls novada_search does not expose, not a generated answer. **Use when:** "get the raw Yandex search results (titles, links, ranks) for <query>", "search a specific Yandex TLD (params.yandex_domain, e.g. "yandex.ru") for Russian/Eastern European content", "search Yandex restricted to a time range (params.within)". **Not for:** A general question needing just an answer or a few good links — use novada_search with engine="yandex" (ranked/reranked instead of a raw SERP dump). A complex question needing cited multi-source synthesis — use novada_research. Reading one already-known URL's page content — use novada_extract. A different platform's data — use its own novada_scrape_<platform> tool, or novada_scrape(platform="<domain>"). **Returns:** Structured organic-result SERP records (title/url/snippet/rank) in the chosen output format, same rendering as novada_scrape. **Ops:** 1 verified-working Yandex operation (web search, requires params.yandex_domain TLD selector). The single yandex.com catalog operation is currently status:"ok".- +25 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
MCP SearXNG
{
"mcpServers": {
"ihor-sokoliuk-mcp-searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_URL_HERE"
}
}
}
}
Novada MCP
{
"mcpServers": {
"novada-mcp": {
"command": "npx",
"args": [
"-y",
"novada-mcp"
],
"env": {
"NOVADA_API_KEY": "YOUR_NOVADA_API_KEY_HERE"
}
}
}
}
Frequently asked questions
MCP SearXNG is categorized under Search & Data Extraction and uses a local stdio subprocess. Novada MCP belongs to Search & Data Extraction and uses a local stdio subprocess. Pick MCP SearXNG for search & data extraction work and Novada MCP for search & data extraction.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP SearXNG is listed as free. Auth: no auth required. Novada MCP has no declared pricing — check the project's own site. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add ihor-sokoliuk-mcp-searxng and novada-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP SearXNG has a quality signal of 67/100 (Great) with 9 views, 0 installs and 1,352 GitHub stars. Novada MCP has 64/100 (Good) with 0 views, 0 installs and 3 GitHub stars.