Skip to content

CrawlForge TeamEngineering Team

4 min read

Web Search MCP Server: Self-Hosted With SearXNG

Search for a self-hosted web search MCP server and the results split into two piles: GitHub projects you run entirely yourself, and vendor pages that call a hosted API "local" because the client runs on your laptop. Those are different things, and which one you need depends on what you are actually trying to keep in-house.

This post is specific about where CrawlForge sits on that line — including the part that is not self-hosted.

What "Self-Hosted" Means for an MCP Server

A web search MCP setup has three layers, and they can each be hosted independently:

  1. The server process — the thing your MCP client spawns and talks to over stdio.
  2. The search backend — whatever actually answers the query.
  3. The control plane — auth, metering, billing.

Most "self-hosted" claims only cover layer 1. Running a server process locally is table stakes; nearly every MCP server does it. The question that decides whether it counts as self-hosted for privacy purposes is layer 2: does your query leave your network, and who sees it?

How Much of CrawlForge Runs on Your Machine

Layer 1 is entirely yours. crawlforge-mcp-server is an MIT-licensed npm package that runs as a local process over stdio — no vendor daemon, no cloud runtime, and the source is on GitHub if you want to read it before you run it.

Bash
npm install -g crawlforge-mcp-server

Layer 2 is the interesting one. search_web takes a provider parameter with two accepted values, and one of them is your own SearXNG instance:

Bash
export CRAWLFORGE_SEARXNG_URL=http://localhost:8888
Json
{
  "query": "mcp server directory",
  "provider": "searxng",
  "limit": 10
}

With that set, the query goes to your SearXNG box and nowhere else — no third-party search vendor sees the string. Results come back normalised into the same shape as the hosted provider, so ranking, deduplication and caching still apply and nothing downstream in your workflow changes.

The LLM-backed tools follow the same pattern. extract_with_llm, summarize_content and analyze_content default to a local Ollama model, so the extraction step can stay on your hardware too.

What Is Not Self-Hosted

Layer 3. Metering runs through CrawlForge no matter which provider you pick.

search_web is wrapped in the same auth-and-credit check as every other tool, and that check neither knows nor cares that you chose SearXNG. A SearXNG-backed search still needs a valid API key and still costs 5 credits, exactly like a hosted one.

It is worth being plain about what that does and does not buy you. Self-hosting the search backend changes who sees your queries — a real privacy win, and the usual reason people want this. It does not make the tool free, and it does not remove the vendor dependency. If your requirement is "no outbound connection to a vendor at all", CrawlForge does not meet it today.

When a Fully Self-Hosted Server Is the Right Call

If layer 3 is the part you need to own — air-gapped network, no vendor accounts, no per-call cost — use a fully self-hosted project instead. SearXNG has MCP wrappers that talk to it directly, and for that requirement they will serve you better than working around a metered tool.

CrawlForge earns its place when you want the search backend local but still want one server covering the rest of the job: scrape, extract_content, crawl_deep, serp_rank and 27 more tools on the same connection and the same key. Searching against your own instance and extracting with your own Ollama, while a hosted path handles the pages SearXNG only pointed you at, is a reasonable middle — and in practice it is the configuration most people who search for this end up wanting.

Get an API key — 1,000 one-time credits, no card required. Set CRAWLFORGE_SEARXNG_URL, pass provider: "searxng", and your queries stay on your network.

Try this yourself — no signup needed

Explore all 31 CrawlForge scraping and extraction tools in the playground, then start free with 1,000 credits.

1,000 free credits • One-time • No credit card required

Tags

  • mcp
  • web search
  • self-hosted
  • searxng
  • search_web
  • privacy

About the Author

CrawlForge Team

Engineering Team

Building the most comprehensive web scraping MCP server. We create tools that help developers extract, analyze, and transform web data for AI applications.

Newsletter

Stay updated with the latest insights

Get tutorials, product updates, and web scraping tips delivered to your inbox.

No spam. Unsubscribe anytime.

FAQ

Frequently asked questions

01Can you self-host a web search MCP server with CrawlForge?

Partly, and the distinction matters. The server process is fully self-hosted: crawlforge-mcp-server is an MIT-licensed npm package that runs locally over stdio with no vendor daemon. The search backend can also be self-hosted — set CRAWLFORGE_SEARXNG_URL to your own SearXNG instance and pass provider: "searxng" to search_web, and the query never leaves your network. Metering is not self-hosted: every call still authenticates against CrawlForge and spends credits.

02Does searching through my own SearXNG instance still use credits?

Yes. search_web costs 5 credits per call whichever provider answers it. The credit check wraps the tool and runs before the provider is chosen, so it does not know that SearXNG served the results. Self-hosting the search backend is a privacy change — your queries stay on your network — not a cost change.

03What is the difference between a local MCP server and a self-hosted search backend?

A local MCP server just means the process runs on your machine, which is true of nearly every MCP server and says nothing about where the query goes. A self-hosted search backend means the search itself is answered by infrastructure you run — for example your own SearXNG instance — so the query string is never sent to a third-party search vendor. Only the second one protects query privacy.

04Can the LLM-backed tools run locally too?

Yes. extract_with_llm, summarize_content and analyze_content default to a local Ollama model, so content extraction and summarisation can run on your own hardware. Combined with a self-hosted SearXNG backend, that keeps both the search query and the extracted page content on your infrastructure.

Keep reading

Related Articles