The category argument is what separates this from a plain search wrapper: images, videos, files, maps and social results each come back shaped for their type rather than as an undifferentiated list of links. Caching and per-domain rate limiting are on by default, which is the difference between an agent researching and an agent hammering one site.
A server that fronts a SearXNG instance with category-aware search, page scraping with citation metadata, and a timezone-aware clock — with caching and per-domain rate limiting built in.
- search_web across general, images, videos, files, map and social-media categories, each returning output shaped for that category
- get_website to scrape a page's content with citation metadata, including PDF pages converted to Markdown
- get_current_datetime for the current date and time in the timezone you configure
- Aliases on each tool, with lookup resolving to the scraper when given a URL and to search otherwise
- Reddit URLs rewritten to the old-reddit domain, which extracts far more reliably
- In-memory caching with automatic freshness checks, so repeated questions do not refetch
- Per-domain rate limiting, which matters when an agent loops on one site
- Typed errors that distinguish a configuration problem, a SearXNG connection failure, a scraping failure and a rate-limit hit
A running SearXNG instance you can reach, with its search endpoint given to the server — that is the one setting the server cannot work without. No account or key of its own. Runs as a Docker container or directly under Python, over stdio for local clients or as an HTTP endpoint for remote ones.
One command — docker build -t overtlids/mcp-searxng-enhanced:latest .
