searxng-mcp
searxng-mcp is an MCP server providing web search, content extraction, and research workflows powered by a SearXNG backend, with compact model-visible output and full payloads in hidden metadata.
search– Single web search query with options for engines, language, categories, safe search, time range, and pagination.search_many– Run multiple queries in parallel, deduplicate, and return a merged, ranked list — ideal for broader topic coverage.search_and_fetch– Combine search with automatic content extraction of top results; supports browser rendering for JS-heavy pages.research– Multi-query parallel search + batch fetch of top sources with citations — the most comprehensive single-call research tool.fetch_url– Fetch a single URL and extract readable content; auto-falls back to browser rendering for complex pages.fetch_many– Parallel fetch and content extraction from multiple URLs with caching and optional browser rendering.health– Check the status of the SearXNG backend, local cache, and browser render support.
Provides web search capabilities through SearXNG, offering tools for concise search results with full metadata preservation, parallel search operations, URL content extraction, and research workflows with batch fetching.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@searxng-mcpsearch for latest AI developments in quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
searxng-mcp
Token-efficient MCP server for SearXNG metasearch, for Claude Code and any MCP client that wants private web search and page extraction.
Connect your SearXNG instance to an LLM and get search, multi-query research, and readable page extraction as MCP tools. The server keeps model-visible output short and preserves full result payloads in hidden metadata, so you spend tokens on answers instead of raw HTML.
Install
As a Claude Code plugin:
/plugin marketplace add 88plug/claude-code-plugins
/plugin install searxng@88plugStandalone, from any MCP client (no install step):
uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcpYou need a reachable SearXNG instance. The server defaults tohttp://127.0.0.1:8890. Point it elsewhere with SEARXNG_MCP_BASE_URL.
Related MCP server: SearXNG MCP Server
Quickstart
Run the server against a local SearXNG backend and confirm it is healthy:
export SEARXNG_MCP_BASE_URL=http://127.0.0.1:8890
uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcpIn your MCP client, call the health tool. A healthy backend returns status ok: true with backend, cache, and render details. Then call search with a query and you get a compact ranked result list, with the full payload kept in _meta.
Rendered fetch is included in the default install. If the host has Chromium or Chrome, the server uses it; otherwise the first rendered fetch bootstraps Playwright Chromium into the user cache automatically.
What you get
Compact model-visible output, with full details preserved in hidden
_meta.Faster research through parallel search and fetch fan-out.
Rendered extraction for JS-heavy pages, with no extra install flags.
Self-hostable deployment for your own SearXNG-backed MCP server.
The server is thin by design. SearXNG does the search work; searxng-mcp handles tool shaping, caching, extraction, and transport.
MCP tools
Tool | What it does |
| Concise web search; full raw payload in |
| Parallel fan-out across queries, with dedupe and merged ranking. |
| Search plus source extraction in one call. |
| Multi-query search with batch fetches and merged, cited sources. |
| Readable page extraction with citations. |
| Parallel URL extraction with caching. |
| Backend, cache, and render status. |
Tools surface as mcp__searxng__search, mcp__searxng__fetch_url, and so on.
The server also exposes MCP resources and optional prompts:
searxng://config— current settings, transport mode, and render support.searxng://guide— the available tools and when to use each.quick_lookup,deep_research,research_workflow— optional compatibility prompts for clients that support prompt surfaces.
Transports and deployment
The server supports stdio, streamable-http, and sse transports.
Local stdio for desktop clients and private workflows:
SEARXNG_MCP_TRANSPORT=stdio uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcpStreamable HTTP for a private service or team deployment:
uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcp \
--transport streamable-http --host 0.0.0.0 --port 8811From a checkout (contributor path):
uv sync
uv run searxng-mcpDocker
docker build -t searxng-mcp .
docker run --rm -p 8811:8811 --add-host=host.docker.internal:host-gateway \
-e SEARXNG_MCP_BASE_URL=http://host.docker.internal:8890 \
searxng-mcpFor a longer-running self-hosted service, use the hardened image and Compose stack:
docker build -f Dockerfile.prod -t searxng-mcp:prod .
cp docker-compose.env.example .env
docker compose up --build -dIf you expose the HTTP transport, treat it like an internal service.fetch_url and fetch_many can request arbitrary client-supplied URLs, so put streamable-http behind auth or a reverse proxy and add the controls you would expect for any SSRF-capable tool. SEARXNG_MCP_FETCH_VERIFY_TLS=0 is only for private or self-signed backends.
Configuration
Set behavior through environment variables. The most common ones:
SEARXNG_MCP_BASE_URL— SearXNG base URL. Defaulthttp://127.0.0.1:8890.SEARXNG_MCP_FALLBACK_BASE_URLS— comma-separated fallback SearXNG instances.SEARXNG_MCP_TRANSPORT—stdio,streamable-http, orsse.SEARXNG_MCP_SEARCH_TIMEOUT— backend search timeout, seconds.SEARXNG_MCP_FETCH_TIMEOUT— fetch timeout, seconds.SEARXNG_MCP_SEARCH_CACHE_TTL— search cache TTL, seconds.SEARXNG_MCP_FETCH_CACHE_TTL— fetch cache TTL, seconds.SEARXNG_MCP_FETCH_VERIFY_TLS— set to0to skip TLS verification on fetches.SEARXNG_MCP_CACHE_DIR— cache directory path.
SEARXNG_MCP_RENDER_TIMEOUT— browser navigation timeout for rendered fetches.SEARXNG_MCP_RENDER_WAIT_MS— extra wait after DOM content load for rendered fetches.SEARXNG_MCP_RENDER_CONCURRENCY— concurrent rendered fetch limit.SEARXNG_MCP_RENDER_HEADLESS— set to0to show the browser.SEARXNG_MCP_RENDER_BROWSER_PATH— explicit Chromium or Chrome binary path.SEARXNG_MCP_RENDER_SANDBOX— set to1to keep Chromium sandboxing enabled.SEARXNG_MCP_RENDER_BLOCK_RESOURCES— set to0to allow images, fonts, stylesheets, and media during render.SEARXNG_MCP_RENDER_AUTO_FALLBACK— set to0to disable automatic rendered fallback.SEARXNG_MCP_RENDER_AUTO_MIN_WORDS— lower this to make auto-render more aggressive.SEARXNG_MCP_RENDER_AUTO_MIN_CHARS— lower this to make auto-render more aggressive.
Client configs
Use one of these command shapes with any MCP client:
searxng-mcp— when the entry point is onPATH(afteruv syncfrom a checkout, orpipx install).uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcp— runs straight from this repo, no install step.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["--from", "git+https://github.com/88plug/searxng-mcp", "searxng-mcp"],
"env": {
"SEARXNG_MCP_BASE_URL": "http://127.0.0.1:8890",
"SEARXNG_MCP_TRANSPORT": "stdio"
}
}
}
}See client configs for Codex CLI, gemini-cli, and more.
Benchmarks
uv run searxng-mcp-bench --rounds 3The benchmark reports raw backend latency, token-visible output size, merged multi-query search latency, research latency, fetch extraction latency, rendered fetch latency, and batch variants.
Documentation
Contributing
Contributions are welcome. See CONTRIBUTING.md and the code of conduct. To build and test from a checkout:
uv sync --all-groups
uv run pytest -q
uv run python -m compileall src
uv run mkdocs build --strictLicense
Released under the Functional Source License, Version 1.1, ALv2 Future License (FSL-1.1-ALv2).
Free to use, copy, modify, and redistribute for any purpose except a Competing Use — offering this software (or a substantially similar substitute) as a commercial product or service. Each released version converts to the Apache License 2.0 on the second anniversary of its release date.
For commercial-use inquiries outside the Permitted Purpose: claude@cryptoandcoffee.com.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/88plug/searxng-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server