What it does
This server bridges SearXNG, a self-hosted privacy-focused search engine, with Claude and other AI assistants via the Model Context Protocol. It exposes two core capabilities: web search with filters (time range, language, safe search, pagination) and URL content extraction that converts web pages to markdown with intelligent caching and section/heading filtering. The server runs as a standalone Node.js process and communicates with any SearXNG instance over HTTP JSON API.
Who it's for
Teams and individuals operating private SearXNG deployments who want Claude and Cursor to perform web search without routing queries through public APIs. Relevant for privacy-first organizations, development teams with internal search infrastructure, and researchers or analysts who require both AI assistance and query confidentiality.
Common use cases
- Give Claude real-time search context from a private SearXNG instance during research or writing tasks.
- Extract and parse website content (markdown conversion with paragraph range selection or heading-based filtering) for knowledge synthesis.
- Build AI agents that need web search without public API dependencies or query logging.
- Combine search and content extraction in workflows where both discovering and ingesting information must remain private.
Setup pitfalls
SEARXNG_URLenvironment variable is required and must point to a running, reachable SearXNG instance. Misconfiguration silently breaks searches.- The MCP server process requires outbound network access to the SearXNG instance. Firewall or DNS issues manifest as timeouts on search or URL-read operations.
- Filesystem write access is needed for URL content caching (TTL-based). Run with appropriate permissions if sandboxing the container.
- When using Docker or Docker Compose, ensure environment variables are properly passed to the running process; inherited defaults from the config do not apply.