LABSCO SUMMARY
One job, and the search engine stays yours.
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.
What it is
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.
What you get
- 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
Requirements
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.
Setup effort
One command — uvx mcp-searxng
USE CASES
01
Giving an agent web search without signing up for a search API
Set the URL of a SearXNG instance you already run, and queries go out through it instead of a metered vendor endpoint.
02
Keeping search queries inside your own network
With the instance on your own host, the agent's queries reach engines through infrastructure you control rather than a third-party account tied to you.
03
Trying it before wiring anything up
Leave SEARXNG_URL unset and it looks for SearXNG on localhost port 8080 — a local instance works with no configuration at all.
BEFORE YOU INSTALL
What to know first
Requires
- uvx on PATH
- A reachable SearXNG instance, with its address in SEARXNG_URL (default http://localhost:8080)
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
TERMINAL
uvx mcp-searxngMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": [
"mcp-searxng"
]
}
}
}