This server allows you to perform web searches using public SearXNG instances and returns results in JSON format.
Web Search: Execute searches by providing a
querystringTime-Range Filtering: Optionally filter results by time range (day, month, year)
JSON Output: Receive results as an array of objects containing
urlandsummaryfor each resultFallback Support: Uses up to three public SearXNG servers with primary and fallback options
Easy Integration: Can be installed and run via npm with simple configuration
Queries public SearXNG instances by parsing HTML search results into JSON format, allowing searches with time range filtering (day, month, year), and providing URL and summary data for each result.
mcp-searxng-public
An MCP server that queries public SearXNG instances, parsing HTML contents into a JSON result
Rationale
All the MCP servers for SearXNG that I've seen use "json" as the output format. While that is certainly a faster way to code a SearXNG MCP server, it will make it fail on virtually all public servers since they don't expose the JSON format.
This server will read from up to three public SearXNG servers (using one as main and the others as fallback) and will parse the results into JSON.
Related MCP server: SearXNG Server
Installation
Install via npm install mcp-searxng-public.
If the server is installed, the run configuration is (for Cursor or Cursor-compatible clients) as follows:
Note: You may need to adjust the env variables, particularly SEARXNG_BASE_URL, to point to your preferred SearXNG instances. The DEFAULT_LANGUAGE can also be set as needed. You can run the report task to get a report on good (accessible) SearXNG instances which you can put in the URLs line.
Usage
The server exposes one endpoint: search. The endpoint takes four arguments:
query- the search querytime_range(optional) - which takes a time range parameter according to the https://docs.searxng.org/dev/search_api.html spec (day,monthoryear).language(optional) - the language code for the search (e.g.,en,es,fr). If not provided, it defaults to the value of theDEFAULT_LANGUAGEenvironment variable. If neither is set, no language parameter is sent to SearXNG.detailed(optional) - if set to "true", performs a more thorough search by querying up to 3 servers and fetching multiple pages of results (pages 1, 2, and 3) from each server, then merging and deduplicating the results.
Returned is an array of objects: