# SearXNG Search (npm · mcp-searxng)

MCP server for SearXNG — privacy-respecting web search with pagination, URL reading

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

## Components

- npm · `mcp-searxng`: 78/100 (this document), [markdown](https://verifymcp.io/servers/ihor-sokoliuk-mcp-searxng/mcp-searxng.md), [page](https://verifymcp.io/servers/ihor-sokoliuk-mcp-searxng/mcp-searxng)

## Channel facts

- Registry: `npm`
- Package: `mcp-searxng`
- Version: `1.14.0`
- 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 (120 of 121), 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 (120 of 121), 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 ihor-sokoliuk/mcp-searxng).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 78/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1191 tokens (~198/item across 6 items; 4 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 14/100
  - Stability check failed: the tool surface changed between 1.12.0 and 1.14.0: 0 tool removals, 1 breaking changes, 0 additions.
- **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 ihor-sokoliuk-mcp-searxng -- npx -y mcp-searxng
```

### Codex

```bash
codex mcp add ihor-sokoliuk-mcp-searxng -- npx -y mcp-searxng
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add ihor-sokoliuk-mcp-searxng --command npx --arg -y --arg mcp-searxng
```

### Hermes

```yaml
mcp_servers:
  ihor-sokoliuk-mcp-searxng:
    command: "npx"
    args: ["-y", "mcp-searxng"]
```

### Other

```json
{
  "mcpServers": {
    "ihor-sokoliuk-mcp-searxng": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ]
    }
  }
}
```

## 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 78, +53)

- [security regression] Stability: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Provenance: unverified → pass
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: ihor-sokoliuk/mcp-searxng
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-08-01 (score 25, −8)

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

### 2026-07-31 (score 33, +27)

- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: unverified
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] Package version: 1.12.1 → 1.13.0

### 2026-07-30 (score 6, −2)

- [functional regression] Dependency health: partial → unverified
- [functional] Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess.
- [functional] Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess.

### 2026-07-29 (score 8, 0)

- [functional] Package version: 1.12.0 → 1.12.1

### 2026-07-28 (score 8, +1)

No change was recorded against any check on this day. Supply Chain Security went from 1 to 4.

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

First indexed and scored.

## MCP tools (4)

### `searxng_web_search` (~594 tokens)

Searches 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. To read the full text of a result URL, follow up with `web_url_read`.

Input parameters:

- `categories` (string): Comma-separated SearXNG categories. Live /config capabilities are aggregated across reachable instances; prefer searxng_instance_info categories.common for consistent multi-instance results. Values i…
- `engines` (string): Comma-separated SearXNG engine names to query (e.g. 'google,bing,ddg'). Live /config capabilities are aggregated across reachable instances; prefer searxng_instance_info engines.common.enabled for co…
- `language` (string): Language code for search results (e.g., 'en', 'fr', 'de'). Default is instance-dependent.
- `min_score` (number): Minimum relevance score threshold from 0.0 to 1.0. Results below this score are filtered out.
- `num_results` (number): Maximum number of results to return (1-20). Operator cap SEARXNG_MAX_RESULTS applies as a ceiling.
- `pageno` (integer): Search page number (starts at 1)
- `query` (string, required): The search query string. This is the required parameter name — use exactly `query`, not `prompt` or `q`.
- `response_format` (string): Response format: formatted text for agents or raw JSON for programmatic clients. If omitted, SEARXNG_DEFAULT_RESPONSE_FORMAT applies; if unset or invalid, text is used. An explicit response_format al…
- `safesearch` (string): Safe search filter level (0: None, 1: Moderate, 2: Strict)
- `time_range` (string): Time range of search (day, week, month, year)

### `searxng_search_suggestions` (~80 tokens)

Returns autocomplete suggestions from the configured SearXNG instance. Use this to refine vague or partial queries before searching.

Input parameters:

- `language` (string): Language code for suggestions (e.g., 'en', 'fr', 'de') or 'all'. Default: all.
- `query` (string, required): Partial or complete query to autocomplete.

### `searxng_instance_info` (~114 tokens)

Discovers capabilities from all reachable configured SearXNG instances via /config, including categories.common/available, engines.common/available, defaults, locales, and plugins.

Input parameters:

- `category` (string): Filter categories and engines to a single category name.
- `includeDisabled` (boolean): Include disabled engine names when includeEngines is true.
- `includeEngines` (boolean): Include enabled engine names in the response.
- `refresh` (boolean): Bypass the process cache and fetch fresh /config data.

### `web_url_read` (~374 tokens)

Fetches 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.

Input parameters:

- `maxLength` (number): Maximum number of characters to return
- `paragraphRange` (string): Return specific paragraph ranges (e.g., '1-5', '3', '10-')
- `readHeadings` (boolean): Return only a list of headings instead of full content
- `section` (string): Extract content under a specific heading (searches for heading text)
- `startChar` (number): Starting character position for content extraction (default: 0)
- `url` (string, required): URL

## Diagnostics

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

## Score history

- 2026-08-03: 78
- 2026-08-02: 78
- 2026-08-01: 25
- 2026-07-31: 33
- 2026-07-30: 6
- 2026-07-29: 8
- 2026-07-28: 8
- 2026-07-27: 7

## Links

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