06/21/2026
๐ช๐ต๐ ๐ ๐๐ฟ๐ผ๐๐ฒ ๐ฎ ๐ณ๐ฎ-๐น๐ถ๐ป๐ฒ ๐ ๐๐ฃ ๐๐ฒ๐ฟ๐๐ฒ๐ฟ ๐ถ๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ผ๐ณ ๐๐ฟ๐๐๐๐ถ๐ป๐ด ๐ญ๐ฒ๐ณ ๐ฑ๐ฒ๐ฝ๐ฒ๐ป๐ฑ๐ฒ๐ป๐ฐ๐ถ๐ฒ๐
I recently commissioned a workstation with an RTX 6000 Pro Blackwell for a client running local LLMsโspecifically Qwen3.6-27B-MTP, Qwen3.6-35B-MoE, and nomic-embed-textโall served simultaneously via llama.cpp's router mode with multi-slot inference.
While I considered OpenWebUI or Page Assist for the client layer, llama.cpp now has its own WebUI with built-in MCP server support and a CORS proxy. It was the logical choice.
To keep the setup private, I'm running SearXNG on the same box. Local models are great for privacy, but routing searches through Google or Bing usually undoes that advantage; SearXNG keeps the search pipeline local. The missing piece was a bridge: an MCP server that exposes SearXNG's JSON API as a search tool over streamable-HTTP.
Here is the problem: the existing SearXNG MCP server on PyPI pulls in 167 transitive dependenciesโincluding litellm, llama-index-core, and confluent-kafka. For what is ultimately a thin wrapper around a single HTTP endpoint, that is an unacceptable amount of supply chain surface area. Furthermore, most published options are stdio-first (aimed at Claude Desktop or IDEs), but the llama.cpp WebUI is browser-based and requires network transports.
So I wrote my own. One file. Fully auditable in a single sittingโ72 lines of Python, powered by fastmcp and httpx. It works with llama.cpp WebUI, Page Assist, and any MCP client that speaks streamable-HTTP.
Note: This is built for local networks or VPNs, not public internet exposure. Bind to 127.0.0.1 or firewall it down if you're unsure.
Repo here: https://github.com/designcomputer/searxng-mcp-bridge
If you're running local models and care about the footprint of your toolchain (and where your search queries go), give it a look.
Minimal SearXNG->MCP streamable-HTTP bridge for the llama.cpp WebUI - designcomputer/searxng-mcp-bridge