# io.github.burakaydinofficial/searxng-deepdive (npm · searxng-deepdive)

MCP server for SearXNG with engine targeting, multi-page fanout, and HTML→Markdown URL reading.

- Trust score: 75/100 (medium)
- Change this week: +34
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `searxng-deepdive`: 75/100 (this document), [markdown](https://verifymcp.io/servers/burakaydinofficial-searxng-deepdive/searxng-deepdive.md), [page](https://verifymcp.io/servers/burakaydinofficial-searxng-deepdive/searxng-deepdive)

## Channel facts

- Registry: `npm`
- Package: `searxng-deepdive`
- Version: `0.4.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (107 of 111), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (107 of 111), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to burakaydinofficial/searxng-deepdive).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 27 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 54/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2555 tokens (~638/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add burakaydinofficial-searxng-deepdive -- npx -y searxng-deepdive
```

### Codex

```bash
codex mcp add burakaydinofficial-searxng-deepdive -- npx -y searxng-deepdive
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "burakaydinofficial-searxng-deepdive": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "searxng-deepdive"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add burakaydinofficial-searxng-deepdive --command npx --arg -y --arg searxng-deepdive
```

### Hermes

```yaml
mcp_servers:
  burakaydinofficial-searxng-deepdive:
    command: "npx"
    args: ["-y", "searxng-deepdive"]
```

### Other

```json
{
  "mcpServers": {
    "burakaydinofficial-searxng-deepdive": {
      "command": "npx",
      "args": [
        "-y",
        "searxng-deepdive"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 75, +59)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [security] The attested source repository moved: burakaydinofficial/searxng-deepdive
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 16, −28)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 44, +18)

- [security regression] Malware scan: pass → unverified
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security] The attested source repository moved: burakaydinofficial/searxng-deepdive
- [functional regression] Security disclosure: unverified → fail
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-07-29 (score 26, −15)

- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 41)

First indexed and scored.

## MCP tools (4)

### `search` (~635 tokens)

Broad web search across the SearXNG instance's full enabled engine pool.

Use this for general-purpose queries when you don't have a specific source preference. Returns a merged, deduplicated result list from across this instance's enabled engines — actual yield depends on which engines respond at query time.

Knobs:
  • pages=N (max 5) — fetch multiple pages and merge for more results in one call.
  • format='full' — full result objects with metadata; default 'compact' is token-efficient.
  • time_range — narrow to recent results (note: not all engines support this — see field doc).

When to reach for a different tool:
  • search_on_engines    — you want specific sources (e.g. just ArXiv + PubMed)
  • search_by_category   — you want all engines in a category (e.g. all science)

Input parameters:

- `format` (string): 'compact' (default) returns only url/title/content/engine for each result — typically much smaller, recommended for ranking and triage. 'full' adds: relevance score, publishedDate, the list of all en…
- `language` (string): Language filter, e.g. 'en', 'fr', 'de', 'pt-BR', or 'all' to disable filtering. If omitted, the SearXNG instance's configured default applies (NOT autodetected from the query, despite what the name s…
- `pageno` (integer): 1-indexed starting page number. Default 1. Higher pages fetch additional results from each engine, deduplicated against earlier pages by URL. Per-page yield drops sharply after the first 1-2 pages as…
- `pages` (integer): Multi-page fanout: fetch this many consecutive pages in parallel and merge with URL-based dedup. Default 1. Combines with pageno: pageno=3 + pages=2 fetches pages 3 and 4. Diminishing returns past pa…
- `query` (string, required): Plain-language search query. Forwarded to each engine's native parser; engine-specific operators (e.g. site:, filetype:) are passed through unchanged.
- `safe_search`: Safe-search level. 0 = off, 1 = moderate, 2 = strict. If omitted, the SearXNG instance's configured default applies (often 0 for self-hosted, but not guaranteed).
- `time_range` (string): Filter to results published within this time window. WARNING: not all engines implement time-range filtering — some (notably academic engines) return ZERO results when this is set instead of ignoring…

### `search_on_engines` (~619 tokens)

Search using ONLY the specified engines (e.g. engines: ["arxiv", "duckduckgo"]).

Use when you have a specific source preference instead of the broad `search` tool.

NOTE: this instance's live engine/category list is currently unavailable — SearXNG was unreachable when the server started. Names you pass are forwarded and validated once SearXNG is reachable; restart the server after SearXNG is up to see the enabled list here.

Multi-page fanout (pages=N) and other knobs work the same as the broad `search` tool.

Input parameters:

- `engines` (array, required): Engine names to use, lowercase. Multiple engines run in parallel and results are merged. Must match this instance's enabled engines (the available list is enumerated in this tool's description above).
- `format` (string): 'compact' (default) returns only url/title/content/engine for each result — typically much smaller, recommended for ranking and triage. 'full' adds: relevance score, publishedDate, the list of all en…
- `language` (string): Language filter, e.g. 'en', 'fr', 'de', 'pt-BR', or 'all' to disable filtering. If omitted, the SearXNG instance's configured default applies (NOT autodetected from the query, despite what the name s…
- `pageno` (integer): 1-indexed starting page number. Default 1. Higher pages fetch additional results from each engine, deduplicated against earlier pages by URL. Per-page yield drops sharply after the first 1-2 pages as…
- `pages` (integer): Multi-page fanout: fetch this many consecutive pages in parallel and merge with URL-based dedup. Default 1. Combines with pageno: pageno=3 + pages=2 fetches pages 3 and 4. Diminishing returns past pa…
- `query` (string, required): Plain-language search query. Forwarded to each engine's native parser; engine-specific operators (e.g. site:, filetype:) are passed through unchanged.
- `safe_search`: Safe-search level. 0 = off, 1 = moderate, 2 = strict. If omitted, the SearXNG instance's configured default applies (often 0 for self-hosted, but not guaranteed).
- `time_range` (string): Filter to results published within this time window. WARNING: not all engines implement time-range filtering — some (notably academic engines) return ZERO results when this is set instead of ignoring…

### `search_by_category` (~611 tokens)

Search within one or more categories — runs every engine tagged with each (e.g. categories: ["science"]).

Use when you want broad coverage of a content type without enumerating engines.

NOTE: this instance's live engine/category list is currently unavailable — SearXNG was unreachable when the server started. Names you pass are forwarded and validated once SearXNG is reachable; restart the server after SearXNG is up to see the enabled list here.

Multi-page fanout (pages=N) and other knobs work the same as the broad `search` tool.

Input parameters:

- `categories` (array, required): Category names to constrain the search. SearXNG runs every engine tagged with these categories. The available categories are enumerated in this tool's description above.
- `format` (string): 'compact' (default) returns only url/title/content/engine for each result — typically much smaller, recommended for ranking and triage. 'full' adds: relevance score, publishedDate, the list of all en…
- `language` (string): Language filter, e.g. 'en', 'fr', 'de', 'pt-BR', or 'all' to disable filtering. If omitted, the SearXNG instance's configured default applies (NOT autodetected from the query, despite what the name s…
- `pageno` (integer): 1-indexed starting page number. Default 1. Higher pages fetch additional results from each engine, deduplicated against earlier pages by URL. Per-page yield drops sharply after the first 1-2 pages as…
- `pages` (integer): Multi-page fanout: fetch this many consecutive pages in parallel and merge with URL-based dedup. Default 1. Combines with pageno: pageno=3 + pages=2 fetches pages 3 and 4. Diminishing returns past pa…
- `query` (string, required): Plain-language search query. Forwarded to each engine's native parser; engine-specific operators (e.g. site:, filetype:) are passed through unchanged.
- `safe_search`: Safe-search level. 0 = off, 1 = moderate, 2 = strict. If omitted, the SearXNG instance's configured default applies (often 0 for self-hosted, but not guaranteed).
- `time_range` (string): Filter to results published within this time window. WARNING: not all engines implement time-range filtering — some (notably academic engines) return ZERO results when this is set instead of ignoring…

### `web_url_read` (~690 tokens)

Fetch a URL and convert its HTML content to clean Markdown.

Use after `search` (or its variants) when you have a URL and want the
actual page text, not just the search snippet. Lightweight HTTP +
HTML→Markdown — handles ~80% of the static-HTML web (Wikipedia, docs
sites, blogs, news, GitHub READMEs).

What this DOES NOT handle:
  • JavaScript-rendered pages (React/Vue/Angular SPAs) — content loads
    after the initial HTML, which we don't execute. Returns minimal or
    empty markdown for these.
  • Bot-protected pages (Cloudflare challenge, captcha) — typically
    fail with HTTP 403/503.
  • Binary resources (PDF, images, archives) — returns an explanatory
    hint instead of garbled bytes.

For those cases, fall back to a Chromium-backed reader (e.g. Crawl4AI
exposed via the SearXNG-Compose `reader` profile).

Token-efficient extraction modes (priority order — first one set wins):
  • readHeadings:true        — returns ONLY the heading list (hierarchical
                                 TOC). Cheapest survey of a long page.
  • section:'<text>'         — returns content under first matching
                                 heading, up to the next same-or-higher
                                 heading. Use after readHeadings to jump.
  • paragraphRange:'3-7'     — 1-indexed paragraph slice; supports 'N'
                                 (single) or 'N-M' (range).
  • startChar + maxLength    — character window pagination. Response
                                 includes total_length and truncated so
                                 you can plan follow-up calls.

If no extraction mode is set, returns the full Markdown.

Recommended workflow for long pages:
  1\. web_url_read(url, readHeadings: true)            ← TOC scan
  2\. web_url_read(url, section: '<chosen heading>')   ← targeted read
Far more token-efficient than fetching the full page up front.

Input parameters:

- `maxLength` (integer): Maximum characters to return. Use with startChar for paginated reading; the response includes `total_length` and `truncated` so you can plan follow-up calls.
- `paragraphRange` (string): 1-indexed paragraph range, syntax 'N' or 'N-M' (e.g. '3-7' for paragraphs 3–7, '5' for paragraph 5 alone). Useful for sequential reading of long pages without re-fetching.
- `readHeadings` (boolean): When true, returns ONLY the page's heading list as a hierarchical TOC (token-cheap survey). Pair with a follow-up call using `section` to read the chunk you actually want.
- `section` (string): Substring match against headings (case-insensitive). Returns content under the FIRST heading containing this text, up to the next heading at the same or higher level. Use after readHeadings to read a…
- `startChar` (integer): Character offset where extraction begins. Default 0.
- `url` (string, required): HTTP(S) URL to fetch and convert to Markdown. Static pages only — for JavaScript-rendered SPAs and bot-protected sites, use a Chromium-backed reader instead.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/burakaydinofficial-searxng-deepdive/searxng-deepdive#diagnostics

## Score history

- 2026-08-03: 75
- 2026-08-02: 75
- 2026-08-01: 16
- 2026-07-31: 44
- 2026-07-29: 26
- 2026-07-28: 41
- 2026-07-27: 41

## Links

- npm package: https://www.npmjs.com/package/searxng-deepdive
- Socket report: https://socket.dev/npm/package/searxng-deepdive
- Repository: https://github.com/burakaydinofficial/searxng-deepdive
- Changelog RSS feed: https://verifymcp.io/servers/burakaydinofficial-searxng-deepdive/searxng-deepdive/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/burakaydinofficial-searxng-deepdive/searxng-deepdive/changelog.json
- HTML version of this page: https://verifymcp.io/servers/burakaydinofficial-searxng-deepdive/searxng-deepdive
