Research reports built by Keenable SELECT, an agent that searches the web in SQL.
Every card links the finished report and the full trajectory behind it: each query, tool result, and result set.
“Which AI researchers moved between frontier labs since 2025 ? For each move list the researcher , the lab they left , where they went and the month .”
The system behind the reports
Keenable SELECT is an MCP server with one main tool: select . The tool runs one read-only DuckDB SELECT statement on live web data. The server runs the web and semantic operators outside DuckDB, puts their output back into the row set, and then runs the final SQL in DuckDB.
A traditional web search gives an agent ten links. The agent must then read each page and build the answer from expensive tokens. SELECT moves this work into the query. One call can search more than 1,000 pages, filter them with an exact WHERE clause at no LLM cost, extract fields with one small LLM call per row, and group the rows.
MCP tools
select takes DuckDB SELECT queries and returns the rows. The server saves every query result as a result set with an id, and a later query can read from that id.
takes DuckDB queries and returns the rows. The server saves every query result as a result set with an id, and a later query can read from that id. generate_html_report takes a brief and result set ids. A report model on the server writes an HTML report from the rows and returns a shareable link.
Semantic operators
... continue reading