A side-by-side look at the Fetch and MCP SearXNG MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Fetch for search & data extraction work as a local process; choose MCP SearXNG for search & data extraction as a local process. You can also run both side by side in one mcpServers block.
create_entities, create_relations, add_observations.SEARXNG_URL.searxng_web_search, searxng_search_suggestions, searxng_instance_info.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Search & Data Extraction | Search & Data Extraction |
| Quality signal | 90/100 · Excellent | 65/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | No auth required |
| Pricing | Free | Free |
| Required env vars | None listed | SEARXNG_URL |
| Verified owner | Verified | Community listing |
| GitHub stars | 91,375 | 1,316 |
| Directory activity | 5 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 9 | 4 |
| Full listing | View Fetch | View MCP SearXNG |
create_entitiesCreate multiple new entities in the knowledge graphcreate_relationsCreate multiple new relations between entities in the knowledge graph. Relations should be in active voiceadd_observationsAdd new observations to existing entities in the knowledge graphdelete_entitiesDelete multiple entities and their associated relations from the knowledge graphdelete_observationsDelete specific observations from entities in the knowledge graphdelete_relationsDelete multiple relations from the knowledge graphread_graphRead the entire knowledge graphsearch_nodesSearch for nodes in the knowledge graph based on a queryopen_nodesOpen specific nodes in the knowledge graph by their namessearxng_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.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.
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
{
"mcpServers": {
"ihor-sokoliuk-mcp-searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_URL_HERE"
}
}
}
}