Keenable SELECT: выполнение SQL-запросов к результатам веб-поиска
Keenable SELECT — это MCP-сервер, который выполняет read-only DuckDB SELECT-запросы к живым веб-данным. Вместо традиционного агентного процесса — поиск, получение каждого результата, чтение страниц, затем синтез — SELECT переносит работу в SQL. Один вызов может искать по более чем 1000 страниц, отфильтровать их с помощью точного WHERE-условия без затрат LLM и извлечь структурированные поля с помощью небольшого LLM-вызова на каждую строку.
Как это работает
Вы задаете вопрос вроде: "Какие исследователи ИИ перешли между ведущими лабораториями с 2025 года? Для каждого перехода укажите исследователя, лабораторию, которую он покинул, куда перешел и месяц." Keenable SELECT переводит это в SQL:
SELECT SEM_EXTRACT(content, 'researcher'), SEM_EXTRACT(content, 'left lab'), SEM_EXTRACT(content, 'joined lab'), SEM_EXTRACT(content, 'move month')FROM WEB_SEARCH(8 разнообразных запросов)WHERE SEM_MATCH(content, 'named researcher moving between frontier labs, 2025+')Сервер выполняет поиск, запускает семантические операторы и возвращает отчет. Каждый результат включает полную траекторию: каждый запрос, результат инструмента и набор результатов, лежащих в основе конечного вывода.
Инструменты MCP
select— выполняет DuckDB SELECT и возвращает строки. Наборы результатов сохраняются с ID для повторного использования в последующих запросах.generate_html_report— принимает краткое описание и ID наборов результатов, затем создает общедоступный HTML-отчет.
Семантические операторы
Операторы находятся внутри SQL. Сервер находит их в разобранном операторе, выполняет и заменяет их обычными столбцами. Точные SQL-фильтры выполняются первыми, поэтому только выжившие строки попадают в LLM-операторы — это экономит токены.
WEB_SEARCH('q1', 'q2', ...)— выполняет все запросы одновременно, объединяет ранжированные результаты, удаляет дубликаты URL.WEB_FETCH('https://a.com', ...)— загружает страницы в формате Markdown, по одной строке на страницу.SEM_EXTRACT(column, 'field description')— один LLM-вызов на строку; возвращает поле или null.SEM_EXTRACT_ALL(column, 'what one value is')— возвращает все совпадающие значения в виде списка.SEM_MATCH(column, 'predicate')— LLM-тест на каждую строку (например, фильтрация).
Почему это важно
Традиционный веб-поиск дает агенту десять ссылок. Агент должен прочитать каждую страницу и потратить дорогие токены на построение ответа. SELECT переносит эту работу на уровень запросов — поиск по тысячам страниц, точная фильтрация и извлечение полей с минимальными LLM-вызовами. Галерея показывает отчеты вроде "Twenty Years of YC Startup-Name Morphology" (36 сообщений, 18 запросов) и "Orbital Launch Atlas, 1957–2026" (16 сообщений, 9 запросов), каждый с полными траекториями.
Если вы создаете агентный поиск или исследовательские инструменты, работающие с большими данными, это интересный паттерн, который стоит изучить: SQL как управляющий уровень, LLM только для семантического извлечения и сопоставления.
📖 Читать полный источник: HN AI Agents
👀 Смотрите также

Storybloq: трекер проектов для Claude Code с Mac-приложением, CLI и MCP
Storybloq — это бесплатный трекер проектов с открытым исходным кодом, который живёт в .story/ внутри вашего репозитория. Он включает приложение для Mac (App Store), CLI и MCP-сервер, предоставляющий задачи, тикеты и передачу сессий Claude Code.

ETL-D MCP-сервер: Детерминированный парсинг CSV для Claude, предотвращающий финансовые галлюцинации
Разработчик создал ETL-D — сервер MCP с открытым исходным кодом для Claude Desktop, который обрабатывает CSV-файлы в трёх детерминированных слоях, чтобы предотвратить галлюцинации с десятичными точками в финансовых данных. Он использует парсеры Python для известных форматов, достигает времени отклика ~70 мс при 0 вызовах LLM для 200 параллельных запросов и задействует LLM только в качестве запасного варианта для текста с высокой энтропией.

Torrix: Наблюдаемость LLM с самостоятельным хостингом без Postgres или Redis
Torrix — это инструмент observability для LLM, работающий как один Docker-контейнер с SQLite. Установка через docker compose up; логирование вызовов LLM через HTTP-прокси или SDK: токены, стоимость, задержка, полные трассировки, маскировка PII, прогнозирование затрат.

PocketBot: ИИ компилирует автоматизации в JavaScript для экономичного, детерминированного планирования.
PocketBot решает проблемы стоимости API и оборудования, компилируя запросы на естественном языке в автономные JavaScript-скрипты, которые запускаются по расписанию без вызовов LLM во время выполнения. Инструмент использует ИИ только один раз для написания кода, а затем выполняет его детерминированно с более чем 20 интеграциями, включая Google Suite, Slack и Notion.