58
/ 100
1 month ago
glama

searxng-mcp

MCP server for private web search via self-hosted SearXNG with local reranking, full-page content fetching via Firecrawl, and optional Ollama-powered query expansion and summaries.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
⚠️
Known vulnerabilities in dependencies: 3 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 5 credentials: CRAWL4AI_API_TOKEN, FIRECRAWL_API_KEY, GITHUB_TOKEN, HISTER_TOKEN, OLLAMA_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// known CVEs in dependencies3 high5 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highundici@7.0.0GHSA-f269-vfmq-vjvj

Undici: Malicious WebSocket 64-bit length overflows parser and crashes the client

highundici@7.0.0GHSA-v9p9-hfj2-hcw8

Undici has Unhandled Exception in WebSocket Client Due to Invalid server_max_window_bits Validation

highundici@7.0.0GHSA-vrm6-8vpv-qv8q

Undici has Unbounded Memory Consumption in WebSocket permessage-deflate Decompression

lowundici@7.0.0GHSA-2mjp-6q6p-2qxm

Undici has an HTTP Request/Response Smuggling issue

lowundici@7.0.0GHSA-4992-7rv2-5pvq

Undici has CRLF Injection in undici via `upgrade` option

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configADBLOCK_DISABLE_unset_ Set to true to skip filter loading entirely.
configADBLOCK_FILTERS_URLEasyList + EasyPrivacy Comma-separated list of filter list URLs.
configADBLOCK_PROXY_URL│ ├→ Crawl4AI ($CRAWL4AI_URL) → page markdown (tier 2, optional; via $ if set)
configADBLOCK_REFRESH_HOURS168 Cadence at which the blocker rebuilds from the configured URLs.
configCACHE_TTL_SECONDS3600 Search result cache TTL in seconds
configCACHE_URLSEARXNG_URL=http://localhost:8081 =redis://localhost:6381 npx @tadmstr/searxng-mcp
🔐 secretCRAWL4AI_API_TOKENIf your instance requires API token authentication, set .
configCRAWL4AI_URL│ ├→ Crawl4AI ($) → page markdown (tier 2, optional; via $ADBLOCK_PROXY_URL if set)
configCRAWL_BFS_ENABLED│ └→ BFS crawl (opt-in) → page manifest (phase 3, $)
configCRAWL_BFS_MAX_DEPTH3 Maximum link-hop depth for BFS crawl
configCRAWL_MANIFEST_TTL_SECONDS21600 Crawl manifest and page content cache TTL in seconds (6 hours)
configCRAWL_MAX_PAGES_DEFAULT20 Default max pages returned by crawl_site when no max_pages is passed
configEXPAND_QUERIESexpand — when true, rewrites the query via Ollama (OLLAMA_EXPAND_MODEL) before searching to improve recall. Requires OLLAMA_URL. Defaults to the env var value.
configFETCH_CACHE_TTL_SECONDS86400 Fetched page cache TTL in seconds
🔐 secretFIRECRAWL_API_KEYplaceholder-local Firecrawl API key (if required)
configFIRECRAWL_CRAWL_MAX_WAIT_MS1. Firecrawl crawl — sends a crawl job to Firecrawl (/crawl endpoint), polls until complete, and returns the full page list. Controlled by FIRECRAWL_CRAWL_POLL_INTERVAL_MS and .
configFIRECRAWL_CRAWL_POLL_INTERVAL_MS1. Firecrawl crawl — sends a crawl job to Firecrawl (/crawl endpoint), polls until complete, and returns the full page list. Controlled by and FIRECRAWL_CRAWL_MAX_WAIT_MS.
configFIRECRAWL_URL│ ├→ Firecrawl ($) → page markdown (tier 1)
🔐 secretGITHUB_TOKEN(unset) GitHub personal access token — increases rate limit from 60 to 5,000 req/hour
🔐 secretHISTER_TOKENSet HISTER_URL to your Hister instance base URL and if bearer token auth is required.
configHISTER_URL│ ├→ Hister ($) → browsing-history index (login-walled/JS-heavy fast path)
configKIWIX_URL│ ├→ Kiwix ($) → ZIM content (Wikipedia/SO/Arch Wiki, fast path)
configLOG_BLOCKED
configNATS_CREDS
configNATS_SUBJECT_PREFIX
configNATS_URLNATS events — set (e.g. nats://localhost:4222) and the server publishes a structured event on every search, fetch, cache hit/miss, robots skip, and error. Subjects:
🔐 secretOLLAMA_API_KEY(unset) Bearer token for authenticated Ollama proxies — adds Authorization: Bearer <key> header when set
configOLLAMA_EXPAND_MODELexpand — when true, rewrites the query via Ollama () before searching to improve recall. Requires OLLAMA_URL. Defaults to the EXPAND_QUERIES env var value.
configOLLAMA_SUMMARIZE_MODEL└── summarize (opt.) → Ollama ($OLLAMA_URL) → synthesized summary ($)
configOLLAMA_URLexpand — when true, rewrites the query via Ollama (OLLAMA_EXPAND_MODEL) before searching to improve recall. Requires . Defaults to the EXPAND_QUERIES env var value.
configOTEL_EXPORTER_OTLP_ENDPOINTOpenTelemetry (traces + metrics) — set to your collector's HTTP endpoint and the server emits:
configOTEL_SERVICE_NAMEStandard OTEL env vars apply ( defaults to searxng-mcp).
configPORT
configREDIS_URL
configRERANKER_URL├── rerank ───────────→ Reranker ($) → ranked results
configRERANK_RECENCY_WEIGHTEnvironment variables are validated at startup — warns on NaN, negative, or >1.0 values. Numeric tool parameters use z.coerce.number() with range constraints.
configSEARXNG_MCP_HOSTHTTP — set SEARXNG_MCP_TRANSPORT=http to run as a shared HTTP/SSE server suitable for multi-client deployments or Docker-based setups. Binds to :SEARXNG_MCP_PORT (default 127.0.0.1:3001):
configSEARXNG_MCP_PORTHTTP — set SEARXNG_MCP_TRANSPORT=http to run as a shared HTTP/SSE server suitable for multi-client deployments or Docker-based setups. Binds to SEARXNG_MCP_HOST: (default 127.0.0.1:3001):
configSEARXNG_MCP_TRANSPORTHTTP — set =http to run as a shared HTTP/SSE server suitable for multi-client deployments or Docker-based setups. Binds to SEARXNG_MCP_HOST:SEARXNG_MCP_PORT (default 127.0.0.1:3001):
configSEARXNG_URL├── search ───────────→ SearXNG ($) → raw results
configVALKEY_URL
configWAYBACK_ENABLED│ └→ Wayback Machine (opt-in) → archived page markdown (tier 4, $)
config_ADBLOCK_LOADED
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/tadmstr-searxng-mcp-1wt2y0)](https://m8ven.ai/mcp/tadmstr-searxng-mcp-1wt2y0)
commit: b820ee2d2d4db4d518e3a4d96bf8716dfd8ec53b
code hash: 2a3dec841d0153f31f1816dc0f45708e6a2b0d5d227b4f973958e6af4b394c35
verified: 6/15/2026, 1:56:21 PM
view raw JSON →