KeenableWebSearch gives Pipecat voice agents web search and page fetch as function-call tools, tuned for the latency budget of a spoken conversation. It ships in Pipecat itself — a thin wrapper over MCPClient pointed at the hosted Keenable MCP server, so the tools register themselves on the LLM context.
→ View the change on GitHub
Install
Install the extra
KeenableWebSearch is merged upstream and ships in Pipecat 1.8.0, which is not released yet. Until it is, install from main:Add it to the context
tools() is a coroutine, so it belongs inside the async entry point your bot already runs in. It connects on first use and returns the tool schemas with their handlers attached, so the LLM auto-registers search_web_pages and fetch_page_content. The connection closes at pipeline teardown — call close() only to release it earlier.
Pick a search mode
Keyless calls run inpro mode. Pass an API key to raise the limits and unlock realtime, the lower-latency mode built for voice:
mode, realtime is the default — so if your account is not entitled to it, pass mode="pro" explicitly, or every search fails.
Set an
api_key to authenticate — this removes the hourly request cap. Without a key, calls run on the shared public tier at lower rate limits.