An MCP server that gives AI assistants (Claude, Cursor, etc.) the ability to search the web and read pages, powered by a SearXNG instance you control.
- Docker or Podman (with Docker Compose compatibility)
- A running SearXNG instance with JSON format enabled (see SearXNG docs)
git clone https://github.com/arisjulio/searxng-mcp
cd searxng-mcpcp .env.example .envEdit .env.
# With Docker
docker compose up -d
# With Podman
podman compose up -dcurl http://localhost:${PORT}/health
# {"status":"ok"}Search the web via SearXNG. Returns titles, URLs, engine source, and summaries.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | yes | — | Search query. Supports engine-specific syntax (e.g. site:github.com SearXNG). |
language |
string | no | es |
Language code for results (e.g. en, es). |
engines |
string[] | no | ["brave", "duckduckgo", "startpage"] |
Engines to query. Options: brave, duckduckgo, google, startpage, wikidata, wikipedia, yahoo. Note: All selected engines must be enabled in your SearXNG instance. |
time_range |
string | no | month |
Filter by recency. Options: day, month, year. |
max_results |
number | no | 20 |
Maximum number of results to return. |
The engines available in the engines parameter depend on what is configured in your SearXNG instance. If an engine is selected but not enabled on the server, searches using that engine will fail silently or return no results. Refer to your SearXNG instance's settings to confirm which engines are available.
This MCP server is designed for trusted/private networks. It should not be directly exposed to the public internet. The server has no built-in authentication or access control—any client that can reach the server can execute searches through your SearXNG instance.
If you need to access this server remotely, use a VPN, SSH tunnel, or a reverse proxy with authentication in front of it.
The server uses the Streamable HTTP transport on POST /mcp.