web_search returns titles, URLs and snippets, and web_fetch returns a page as readable text.
→ View the change on GitHub
Install
No separate install
Keenable ships with Rakazo itself (merged upstream on October 20, 2026). There is no Keenable package to install.The provider is on
main and is not in v0.3.1, the latest release. The published-images install in Rakazo’s self-hosting guide pulls the edge tag, which is rebuilt on every push to main, so it already includes Keenable. A deployment pinned to a release tag (latest, v0.3.1) or kept current by the updater sidecar gets it with the next release. To use it now, set these in .env and pull the images again, or run from a source checkout of main:Select Keenable
The default stays keyless HTTP search (DuckDuckGo HTML) with local Readability extraction. Switch it in the deployment’s.env:
KEENABLE_API_KEY set on the API and worker, Rakazo sends it to Keenable and those limits no longer apply. Set WEB_PROVIDER=keyless-http, or remove the line, to go back to the default.
Try it
Ask a bot something that needs the web. The thread showsSearching the web: ... while web_search runs and Reading page: ... while web_fetch reads a page.
How it works
web_searchcalls Keenable’ssearch_web_pagestool on the hosted MCP server athttps://api.keenable.ai/mcp. It returns 5 results by default and up to 10.web_fetchcallsfetch_page_contenton the same server. It returns 8,000 characters by default, up to 50,000 when the bot asks for more, and marks longer pages as truncated. Rakazo checks that the URL points to a public address before it leaves your deployment.- Keenable receives search queries and the page URLs a bot asks to read, plus an
X-Keenable-Title: rakazoheader that names the app. No user, bot or conversation identifiers are sent. - Rate-limit and other provider errors go back to the bot as tool errors. Rakazo does not fall back to another provider.
- A bot’s Disabled tools setting still turns either tool off.
Set
KEENABLE_API_KEY to authenticate — this removes the hourly request cap. Without a key, calls run on the shared public tier at lower rate limits.