Skip to main content
Voice-agent service 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 in pro mode. Pass an API key to raise the limits and unlock realtime, the lower-latency mode built for voice:
The mode is pinned per call and hidden from the model. With a key and no 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.
Full example in the Pipecat repo