This is the shortest path from an agent to web results that do not travel through a commercial search API: your SearXNG instance decides which engines are queried, and no query text is exchanged for a metered key. The trade is that you own the instance — if SearXNG is not already running somewhere you can reach, standing that up is the real work, and this server is the small part on top.
A small MCP server that connects agentic systems to SearXNG, the self-hosted metasearch engine. Its whole job is to let a model run a web search against an instance you control, and it ships a `search(query: str)` prompt to go with it. Written in Python and published so it can be run with `uvx` without cloning anything.
- Web search through SearXNG, so results come from the engines your own instance aggregates rather than from one vendor's index
- A `search(query: str)` prompt included with the server, for clients that surface prompts as well as tools
- No key to rotate and no per-query billing to watch — the search backend is yours
A reachable SearXNG instance. `SEARXNG_URL` points at it and defaults to `http://localhost:8080`, so anything running elsewhere needs that variable set. Run it as `uvx mcp-searxng` (package `mcp-searxng`, 0.1.0) or from a clone with `uv --project`. If you are on Claude Desktop, kill the previous server process before starting it again — the README calls that out specifically.
One command — uvx mcp-searxng
