Quick answer
How do I add a web search API with page content to OpenClaw?
Save the LLMWebSearch MCP server from our MCP page, register it with openclaw mcp add llmwebsearch --command … --arg … --env LLMWEBSEARCH_API_KEY=…, then check it with openclaw mcp doctor --probe. The agent gains search_web, whose results include the top 3 pages as Markdown, next to OpenClaw's built-in web_search. A search costs 1 credit, from $1.20/1K searches as of October 2026. No KYC.
OpenClaw search, as documented on 22 October 2026
| Built-in web_search providers | 16, including Brave Search, DeepSeek, DuckDuckGo, Exa, Firecrawl, Gemini, Parallel, Perplexity, SearXNG and Tavily |
|---|---|
| Automatic choice | The first ready API-backed provider, in a fixed order that starts with Brave |
| Key-free providers | Never picked automatically; you select them yourself |
| Our tools (MCP) | search_web and read_urls, from a local Python server |
| Our cost | One credit pays for one search: up to 20 ranked results, with the pages of the first 3 read and returned as Markdown. Reading 4 to 10 pages makes it 2 credits. A call that ends in an error costs nothing |
| Our page reader | LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/), robots.txt respected |
Why add our search when OpenClaw has web_search?
To get page text with the results in one call. OpenClaw's web tools page lists 16 built-in providers for web_search, chosen in a fixed auto-detect order when none is set. Our tool does not replace that choice; it adds a second option the model can call on purpose.
search_web returns numbered sources with the first pages already read as Markdown, so the agent can answer and cite without a separate fetch for each link. read_urls reads up to 20 links the agent found elsewhere, through the same reader.
How do I register the MCP server?
First set up the Python server from the MCP page: one file, plus the mcp and httpx packages in a virtual environment. Then save it in OpenClaw with openclaw mcp add. OpenClaw's registry documentation describes the stdio flags --command, --arg, --env and --cwd, and asks for the local Gateway to be stopped while saved servers change.
Run openclaw mcp doctor --probe next. Without --probe the doctor only checks the saved settings; with it, it also proves that the server connects.
openclaw mcp add llmwebsearch \
--command /home/you/llmwebsearch/.venv/bin/python \
--arg /home/you/llmwebsearch/llmwebsearch_mcp.py \
--env LLMWEBSEARCH_API_KEY=your-key
openclaw mcp doctor llmwebsearch --probeWill the agent see search_web?
In the usual profiles, yes. OpenClaw's registry documentation says configured MCP tools appear in the coding and messaging tool profiles. The minimal profile hides them, and tools.deny: ["bundle-mcp"] turns them off, so check those two settings if the tool is missing.
The tool's docstring tells the model what it returns. Add one line to your agent's instructions if you want it preferred, for example "use search_web when you need to quote a page".
Can LLMWebSearch be selected as a web_search provider?
Not today. OpenClaw's documentation says the provider setting accepts providers declared by bundled and installed plugin manifests. We publish no OpenClaw plugin, so our search arrives as MCP tools with their own names instead.
In practice that changes little for the agent: it calls search_web the way it would call web_search. It also keeps the two easy to tell apart in OpenClaw's logs and in your usage history.
How does our reader treat the sites in the results?
As it does for every call. Our reader respects robots.txt: it introduces itself as LLMWebSearch, follows the rules a site writes for it or for all robots, and leaves out the content of any page it is not allowed to read. A site that sets Content-Signal: ai-input=no in its robots.txt keeps its pages out of your results' content. When a site turns our reader away, the result comes back without content and with the site's status: we never solve CAPTCHAs, sign in to accounts or work around a block or a paywall.
A page behind a login therefore comes back without content. For a site where you are signed in, OpenClaw's own browser tool, running with your session, is the right choice.
What will searching through OpenClaw cost?
One credit per search_web call that reads up to 3 pages, nothing for calls that fail. Reading pages whose URLs you already have costs 1 credit for each started group of 3 pages returned with content, up to 20 URLs per call; refused or failed URLs are not counted. An assistant that searches 25 times a day across its chat channels uses about 750 credits a month, so 5,000 searches ($9.25) lasts more than six months. Search credits have no expiry date: what you do not use this month is still there next year.
Give OpenClaw its own API key, so its usage shows apart from your other projects.
OpenClaw: common questions
Should I switch off OpenClaw's own web_search?
No need. Both can stay on. Turn the built-in one off only if you want every search to go through one provider, for a single bill and one log.
Does it work with a sandboxed OpenClaw?
The MCP server is a local process that calls https://llmwebsearch.com/api/v1 over HTTPS. Your sandbox must let it start and reach that address.
Can I manage the server from the Control UI?
OpenClaw keeps saved MCP servers under mcp.servers in its configuration. Its documentation points to the Control UI for supported live MCP settings, and notes that changing saved servers from the command line requires the local Gateway to be stopped.
Sources (2)
- Web tools — OpenClaw docs (read 2026-10-22)
- Manage saved MCP servers — OpenClaw docs (read 2026-10-22)