
SearXNG
Private metasearch via your own SearXNG instance — popular community MCP server for self-hosted search.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y mcp-searxngPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "https://your-searxng-instance.example.com"
}
}
}
}Before you start
- Node.js (18+) for npx/npm, or Docker to run the published image
- Access to a SearXNG instance (self-hosted or remote), set via the SEARXNG_URL environment variable
- Optional: AUTH_USERNAME and AUTH_PASSWORD if your SearXNG instance is behind HTTP Basic Auth
About SearXNG
SearXNG MCP connects an MCP client to a SearXNG instance — the open-source, self-hostable metasearch engine that aggregates results from many engines without tracking. It gives the model private web search plus URL-to-Markdown reading, with no third-party search API key required.
Because you point it at your own (or a trusted public) SearXNG instance via SEARXNG_URL, search traffic stays under your control. Beyond search, it can read a URL and convert it to clean Markdown, fetch autocomplete suggestions, and introspect the instance's configured engines, categories, and locales.
The server is distributed on npm and Docker Hub. It runs over stdio by default and can expose an HTTP transport via MCP_HTTP_PORT. It supports HTTP Basic Auth (AUTH_USERNAME/AUTH_PASSWORD) for protected instances and granular proxy settings, making it a flexible choice for self-hosted, privacy-focused search.
Tools & capabilities (4)
searxng_web_searchRun a web search against the SearXNG instance with pagination, time-range, language, and safesearch options.
searxng_search_suggestionsGet autocomplete/query suggestions to refine a search.
searxng_instance_infoDiscover the instance's categories, engines, defaults, locales, and plugins.
web_url_readFetch a URL and convert its content to Markdown with filtering and length controls.
When to use it
- Use it when you want private, self-hosted web search instead of a commercial search API.
- Use it when you already run SearXNG and want to expose it to Claude or another MCP client.
- Use it when you need the model to read a page as clean Markdown after searching.
- Use it when search traffic must route through specific proxies for privacy or geo reasons.
- Use it when you want to inspect which engines/categories a SearXNG instance supports before querying.
Quick setup
- 1Stand up or pick a SearXNG instance and note its base URL.
- 2Add the server to your MCP client config with command `npx -y mcp-searxng` (or the Docker image) and set SEARXNG_URL in the env block.
- 3If the instance requires it, add AUTH_USERNAME/AUTH_PASSWORD and any proxy variables.
- 4Restart the MCP client.
- 5Verify by asking the model to run a web search and then read one result URL.
Security notes
You must supply your own SEARXNG_URL; point it only at an instance you trust, since results flow through it. If that instance requires auth, configure credentials via the documented env vars (e.g. AUTH_USERNAME/AUTH_PASSWORD) and keep them secret.
SearXNG FAQ
Do I need my own SearXNG instance?
You need a reachable SearXNG instance set via SEARXNG_URL — either self-hosted (recommended for privacy) or a trusted public one. The MCP server itself is just the bridge.
Does it require an API key?
No search API key is required. If your SearXNG instance is password-protected, supply AUTH_USERNAME and AUTH_PASSWORD for HTTP Basic Auth.
Can I run it in Docker?
Yes. A prebuilt image is published as isokoliuk/mcp-searxng:latest, with docker-compose support and Cosign-verifiable signatures.
How do I run it over HTTP instead of stdio?
Set MCP_HTTP_PORT (and optionally MCP_HTTP_HOST) to enable the HTTP transport; otherwise it defaults to stdio.
My instance returns no results — why?
SearXNG must have JSON output format enabled and working upstream engines. Use searxng_instance_info to confirm engines/categories, and check that SEARXNG_URL is correct and reachable.
Alternatives to SearXNG
Official MCP reference server that fetches a URL and returns its content as clean Markdown, with chunking.
Official Firecrawl MCP server — scrape, crawl, map, search, and structured extraction for any LLM client.
Exa's neural web search and crawling MCP server — runs locally via npx or as a hosted remote endpoint.
Compare SearXNG with: