io.github.burakaydinofficial/searxng-deepdive
NPM · SEARXNG-DEEPDIVE · SCANNED AUG 3
MCP server for SearXNG with engine targeting, multi-page fanout, and HTML→Markdown URL reading.
Available components
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. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (107 of 111), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (107 of 111), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to burakaydinofficial/searxng-deepdive). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 27 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability54
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · searxng-deepdive
claude mcp add burakaydinofficial-searxng-deepdive -- npx -y searxng-deepdive
codex mcp add burakaydinofficial-searxng-deepdive -- npx -y searxng-deepdive
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"burakaydinofficial-searxng-deepdive": {
"type": "local",
"command": [
"npx",
"-y",
"searxng-deepdive"
],
"enabled": true
}
}
} openclaw mcp add burakaydinofficial-searxng-deepdive --command npx --arg -y --arg searxng-deepdive
mcp_servers:
burakaydinofficial-searxng-deepdive:
command: "npx"
args: ["-y", "searxng-deepdive"] {
"mcpServers": {
"burakaydinofficial-searxng-deepdive": {
"command": "npx",
"args": [
"-y",
"searxng-deepdive"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +59
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- 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 security
- Dependency health: unverified → partial ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 −28
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 +18
- Malware scan: pass → unverified ▼ security
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- The attested source repository moved: burakaydinofficial/searxng-deepdive security
- Security disclosure: unverified → fail ▼ functional
- Dependency health: partial → unverified ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Licence: MIT functional
- 29 Jul 26 −15
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 41
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- burakaydinofficial/searxng-deepdive
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/burakaydinofficial/searxng-deepdive/.github/workflows/publish.yml@refs/tags/v0.4.1
- Rekor log index:
- 2087424086
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:f7d1423d101963bb8504d6e8e9d2f262048596c894f95dbd85294f398d6c33ef5042256a90fa44d720829fe18b887c7542663ce0295c7eb9909638028
- Discovery method:
- attestation_endpoint
Dependencies 107 packages
107 packages in the resolved dependency tree · 107 deprecated · 30 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
search ~635
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)
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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… |
No output schema declared.
No examples provided.
search_by_category ~611
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.
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | yes | 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 | yes | 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… |
No output schema declared.
No examples provided.
search_on_engines ~619
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.
| Name | Type | Req | Description |
|---|---|---|---|
| engines | array | yes | 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 | yes | 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… |
No output schema declared.
No examples provided.
web_url_read ~690
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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. |
No output schema declared.
No examples provided.