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
SearXNG search MCP for Claude Code and Grok — privacy-respecting web search and page extraction for AI agents and any MCP client.
searxng-mcp is a token-efficient Model Context Protocol (MCP) server that connects your self-hosted SearXNG metasearch instance to Claude Code, Anthropic-compatible clients, and other LLM / AI-agent tooling. You get privacy-respecting web search across 70+ engines plus readable page extraction — without shipping raw HTML into the model context.
Search, multi-query research, and fetch tools keep model-visible output short. Full result payloads stay in hidden _meta, so tokens go to answers. Deploy via stdio for local Claude workflows, or streamable-http / Docker for a self-hosted MCP service with optional Playwright rendered fetch for JS-heavy pages.
Install
Claude Code plugin (hub-first):
/plugin marketplace add 88plug/claude-code-plugins
/plugin install searxng@88plugGrok Build
grok plugin marketplace add 88plug/claude-code-plugins
grok plugin install searxng@88plug --trustStandalone MCP server — any client, no install step:
uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcpYou need a reachable SearXNG instance. Default base URL ishttp://127.0.0.1:8890. Override with SEARXNG_MCP_BASE_URL.
Related MCP server: SearXNG MCP Bridge
Quickstart
Point the server at 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 health. A healthy backend returns ok: true with backend, cache, and render details. Then call search — you get a compact ranked list; the full payload stays in _meta.
Rendered fetch ships 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.
Features
Feature | Detail |
Token-efficient MCP tools | Compact model-visible output; full payloads in hidden |
Parallel research | Multi-query search and fetch fan-out with dedupe and merged ranking |
Rendered extraction | Playwright/Chromium path for JS-heavy pages; no extra install flags |
Self-hosted deployment | stdio, streamable-http, SSE, Docker, and Compose for private MCP services |
Thin by design | SearXNG does the search; this server shapes tools, cache, extract, 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.
Resources and optional prompts:
searxng://config— current settings, transport mode, and render supportsearxng://guide— available tools and when to use eachquick_lookup,deep_research,research_workflow— optional prompts for clients that support prompt surfaces
Transports and deployment
Supports stdio, streamable-http, and sse.
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 8811Docker
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-mcpHardened image and Compose for a longer-running self-hosted service:
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 client-supplied URLs, so put streamable-http behind auth or a reverse proxy. Apply the same controls you would for any SSRF-capable tool. SEARXNG_MCP_FETCH_VERIFY_TLS=0 is only for private or self-signed backends.
Configuration
Common environment variables:
SEARXNG_MCP_BASE_URL— SearXNG base URL. Defaulthttp://127.0.0.1:8890SEARXNG_MCP_FALLBACK_BASE_URLS— comma-separated fallback SearXNG instancesSEARXNG_MCP_TRANSPORT—stdio,streamable-http, orsseSEARXNG_MCP_SEARCH_TIMEOUT— backend search timeout, secondsSEARXNG_MCP_FETCH_TIMEOUT— fetch timeout, secondsSEARXNG_MCP_SEARCH_CACHE_TTL— search cache TTL, secondsSEARXNG_MCP_FETCH_CACHE_TTL— fetch cache TTL, secondsSEARXNG_MCP_FETCH_VERIFY_TLS— set to0to skip TLS verification on fetchesSEARXNG_MCP_CACHE_DIR— cache directory path
SEARXNG_MCP_RENDER_TIMEOUT— browser navigation timeout for rendered fetchesSEARXNG_MCP_RENDER_WAIT_MS— extra wait after DOM content loadSEARXNG_MCP_RENDER_CONCURRENCY— concurrent rendered fetch limitSEARXNG_MCP_RENDER_HEADLESS— set to0to show the browserSEARXNG_MCP_RENDER_BROWSER_PATH— explicit Chromium or Chrome binary pathSEARXNG_MCP_RENDER_SANDBOX— set to1to keep Chromium sandboxing enabledSEARXNG_MCP_RENDER_BLOCK_RESOURCES— set to0to allow images, fonts, stylesheets, and mediaSEARXNG_MCP_RENDER_AUTO_FALLBACK— set to0to disable automatic rendered fallbackSEARXNG_MCP_RENDER_AUTO_MIN_WORDS— lower to make auto-render more aggressiveSEARXNG_MCP_RENDER_AUTO_MIN_CHARS— lower to make auto-render more aggressive
Client configs
Use either command shape 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 from this repo with 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 3Reports raw backend latency, token-visible output size, merged multi-query search latency, research latency, fetch extraction latency, rendered fetch latency, and batch variants.
Documentation
Full site: 88plug.github.io/searxng-mcp
Development
From a checkout:
uv sync
uv run searxng-mcpBuild and test:
uv sync --all-groups
uv run pytest -q
uv run python -m compileall src
uv run mkdocs build --strictContributions welcome. See CONTRIBUTING.md and the code of conduct.
License
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: andrew@88plug.com.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server for connecting agentic systems to search systems via searXNG.Last updated421125MIT
- Alicense-qualityAmaintenanceAn MCP server that acts as a bridge to SearXNG instances, allowing AI models to perform web searches with privacy-focused search tools. It supports both STDIO and HTTP transports, featuring built-in rate limiting and session management.Last updated7027MIT
- Alicense-qualityDmaintenanceAn MCP server that integrates the SearXNG API to provide web search with pagination, filtering, and URL content extraction.Last updated35MIT
- Alicense-qualityAmaintenanceA minimal MCP server that exposes a private SearXNG instance as a search tool over streamable-HTTP, enabling web search from the llama.cpp WebUI or any compatible MCP client.Last updated1MIT
Related MCP Connectors
Serper MCP — wraps the Serper Google Search API (serper.dev)
MCP server for Google search results via SERP API
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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