searxng-mcp¶
SearXNG search MCP for Claude Code and Grok — privacy-respecting web search and page extraction for AI agents and any MCP client.
Connect your SearXNG instance to an LLM. You get search, multi-query research, and readable page extraction as MCP tools. Model-visible output stays short; full payloads live in hidden _meta.
Install¶
Claude Code plugin (recommended):
/plugin marketplace add 88plug/claude-code-plugins
/plugin install searxng@88plug
Grok Build¶
grok plugin marketplace add 88plug/claude-code-plugins
grok plugin install searxng@88plug --trust
Standalone, any MCP client (no install step):
uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcp
Note
You need a reachable SearXNG instance. Default backend is http://127.0.0.1:8890. Point elsewhere with SEARXNG_MCP_BASE_URL.
Quickstart¶
export SEARXNG_MCP_BASE_URL=http://127.0.0.1:8890
uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcp
In your MCP client, call health. A healthy backend returns ok: true with backend, cache, and render details. Then call search with a query for a compact ranked list (full payload in _meta).
Rendered fetch ships in the default install. Local Chromium/Chrome is used when present; otherwise the first rendered fetch bootstraps Playwright Chromium into the user cache.
MCP tools¶
| Tool | Use when |
|---|---|
search |
One query, compact ranked hits |
search_many |
Parallel query variants, merged ranking |
search_and_fetch |
One query plus source extraction |
research |
Multi-query investigation with citations |
fetch_url |
Read one known URL |
fetch_many |
Read several URLs in parallel |
health |
Backend / cache / render readiness |
Tools surface as mcp__searxng__search, mcp__searxng__fetch_url, and so on.
Also exposed:
- Resources:
searxng://config,searxng://guide - Prompts (compatibility):
quick_lookup,deep_research,research_workflow
Full parameter tables live in the Tool Reference.
Why this shape¶
| Capability | Detail |
|---|---|
| Token-efficient output | Compact model-facing text; full raw data in _meta |
| Research workflows | Fan-out search, merge/dedupe, fetch with citations |
| Rendered pages | Playwright auto-fallback for JS-heavy HTML |
| Dual transport | stdio for local clients; streamable-http for shared deploy |
| Self-hosted | Docker + hardened Compose; your SearXNG, your network |
Where next¶
- Getting Started — shortest path from SearXNG to a working MCP server
- Installation — plugin, uvx, source, Docker
- Configuration — env vars and CLI flags
- Client Configs — Claude Desktop, Codex, gemini-cli, opencode
- Deployment / Security — HTTP exposure and hardening
Features¶
| Feature | Detail |
|---|---|
| Token-efficient MCP tools | Compact model-visible output; full payloads in hidden _meta |
| 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 |
Development¶
From a checkout:
uv sync
uv run searxng-mcp
Build and test:
uv sync --all-groups
uv run pytest -q
uv run python -m compileall src
uv run mkdocs build --strict
Contributions welcome. See CONTRIBUTING.md and the code of conduct.