pimenov.ai

База знаний

Keenable — независимый веб-поиск для ИИ-агентов

Как подключить Keenable к Codex, Claude и своему агенту через MCP или REST API, выполнить первый поиск и проверить лимиты и ошибки.

Опубликовано

Keenable даёт ИИ-агентам два базовых инструмента: поиск по вебу и извлечение содержимого найденных страниц. Подключить сервис можно через MCP, командную строку или обычный REST API.

По данным компании, индекс содержит более 100 млрд документов, а задержка поиска в US East составляет менее 250 мс на 95-м перцентиле. Эти показатели заявлены самим Keenable и не проверялись в независимом тесте для этого материала. Официальная страница Keenable

📌
Актуальность: документация, тарифы и лимиты проверены 25 августа 2026 года. Публичный REST endpoint протестирован без API-ключа: запрос вернул HTTP 200 и три поисковых результата. Подключение к личному аккаунту и расходование платных кредитов не выполнялись.

Что это такое

Keenable — поисковая инфраструктура для приложений, которые работают с языковыми моделями. Сервис ищет страницы, возвращает ранжированные результаты, а затем может извлечь содержимое выбранного URL в чистом Markdown.

Основной рабочий цикл выглядит так:

  1. Агент формулирует поисковый запрос.
  2. search_web_pages возвращает URL, заголовки, описания и фрагменты страниц.
  3. Агент выбирает подходящие источники.
  4. fetch_page_content получает полный текст выбранных страниц.
  5. Модель собирает ответ со ссылками на источники.

Keenable рекомендует MCP как основной способ подключения к агентам. REST API пригодится, если вы строите собственный backend, а CLI удобен для установки и проверки из терминала. Быстрый старт


Основные возможности

ВозможностьЧто даёт
Веб-поискРанжированные результаты с URL, заголовком, описанием и фрагментом текста
Извлечение страницыСодержимое URL в Markdown без самостоятельного парсинга HTML
Фильтр по сайтуОграничение выдачи конкретным доменом
Фильтры по датамОтбор по времени публикации или попадания страницы в индекс
Поиск в прошломquery_time воспроизводит состояние индекса на выбранный момент
Живое извлечениеlive=true запрашивает страницу у источника, даже если её нет в индексе
Целевая экстракцияПараметр prompt возвращает только нужные данные со страницы
MCPГотовые поисковые инструменты для Codex, Claude, Cursor и других клиентов
REST APIПрямые HTTP-запросы из Python, TypeScript или любого backend

Поиск возвращает до 50 результатов. Длину фрагмента можно задавать через snippet_max_length в диапазоне от 180 до 10 000 символов. Документация Search API


Подключение через MCP

MCP подходит, если Keenable должен стать штатным поисковым инструментом агента. Самый короткий путь начинается с официального CLI.

Установка CLI

На macOS через Homebrew:

brew install keenableai/tap/keenable-cli

Затем авторизуйтесь:

keenable login

CLI откроет браузерный вход по device-code flow. После авторизации он сможет настроить MCP для обнаруженных клиентов:

keenable configure-mcp --all

Среди поддерживаемых клиентов указаны Codex, Claude Code, Claude Desktop, Cursor, Windsurf и OpenCode. Документация CLI

Ручное подключение к Codex

В конфигурацию Codex добавляется удалённый MCP-сервер:

[mcp_servers.keenable]
url = "https://api.keenable.ai/mcp"
http_headers = { "X-API-Key" = "keen_<your_key>" }

Получить ключ можно в консоли Keenable.

⚠️
Безопасность: не вставляйте реальный ключ в репозиторий, скриншот или публичную инструкцию. Для локальной настройки предпочтительнее пройти keenable login и позволить CLI настроить подключение.

После подключения агент получает два инструмента:

  • search_web_pages — поиск и ранжирование;
  • fetch_page_content — получение текста страницы.

Официальная документация рекомендует отключить другие поисковые инструменты, выполняющие ту же функцию. Иначе агент может непредсказуемо выбирать между несколькими провайдерами. Настройка MCP


Подключение через REST API

REST API удобен для собственного агента, RAG-пайплайна или backend-сервиса.

Поиск с API-ключом

curl -X POST "https://api.keenable.ai/v1/search" \
  -H "X-API-Key: keen_<your_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "актуальные способы подключения MCP к Codex",
    "max_results": 5
  }'

Ответ содержит исходный запрос и массив results:

{
  "query": "актуальные способы подключения MCP к Codex",
  "results": [
    {
      "title": "Название страницы",
      "url": "https://example.com/page",
      "description": "Краткое описание",
      "snippet": "Фрагмент содержимого страницы",
      "published_at": "2026-08-20T10:00:00Z",
      "acquired_at": "2026-08-21T08:12:34Z"
    }
  ]
}

Получение содержимого страницы

curl --get "https://api.keenable.ai/v1/fetch" \
  -H "X-API-Key: keen_<your_key>" \
  --data-urlencode "url=https://example.com/page"

По умолчанию Keenable возвращает сохранённую в индексе копию. Для страницы, которой нет в индексе, используйте живой запрос:

curl --get "https://api.keenable.ai/v1/fetch" \
  -H "X-API-Key: keen_<your_key>" \
  --data-urlencode "url=https://example.com/page" \
  --data-urlencode "live=true"

max_chars ограничивает размер результата и по умолчанию равен 50 000 символов. Параметр prompt принимает инструкцию длиной до 2 000 символов и позволяет извлечь конкретные сведения, например тарифы или перечень поддерживаемых интеграций. Документация Fetch API


Проверка без регистрации

У Keenable есть публичные endpoints, которые работают без ключа. Для них требуется заголовок X-Keenable-Title с названием вашего приложения.

curl -X POST "https://api.keenable.ai/v1/search/public" \
  -H "X-Keenable-Title: My Test Agent" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Keenable web search API",
    "max_results": 3
  }'

Проверочный запрос 25 августа 2026 года вернул:

  • HTTP 200;
  • исходное поле query;
  • режим поиска pro;
  • три объекта в массиве results;
  • заголовки X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset.

Это минимальный наблюдаемый признак того, что поисковый endpoint доступен и возвращает ожидаемую структуру.

Публичный режим ограничен 1 000 запросами в час и максимум 10 запросами в секунду на один IP. Его стоит использовать для знакомства и smoke-тестов, поскольку доступная квота делится с другими пользователями того же внешнего IP. Аутентификация


Полезные сценарии

Добавить живой веб-поиск в Codex или Claude

Задача: агенту нужны сведения, появившиеся после обучения модели.

Подключите MCP и попросите агента найти текущую документацию или событие. Он выполнит поиск, выберет несколько результатов и извлечёт страницы.

Наблюдаемый результат: в ответе есть актуальные ссылки, а утверждения можно проверить по открытым источникам.

Ограничение: наличие страницы в выдаче не гарантирует её достоверность. Агенту всё равно нужны правила выбора первичных источников и проверки противоречий.

Искать только внутри нужного сайта

Задача: найти ответ в официальной документации без случайных обзоров.

Передайте домен через параметр site:

{
  "query": "MCP authentication",
  "site": "docs.keenable.ai"
}

Наблюдаемый результат: выдача ограничена выбранным доменом.

Ограничение: фильтр не поможет, если нужная страница ещё не попала в индекс. В таком случае используйте известный URL и fetch с live=true.

Воспроизвести состояние веба на прошлую дату

Задача: выяснить, какие данные мог найти агент во время старого запуска.

{
  "query": "финал футбольного турнира",
  "query_time": "2026-06-13T00:00:00Z"
}

query_time исключает документы, попавшие в индекс после выбранного момента. Это подходит для воспроизводимых исследований, тестовых наборов и разбора решений агента.

Наблюдаемый результат: результаты соответствуют прошлому состоянию индекса, а относительные фильтры дат отсчитываются от query_time.

Ограничение: это история индекса Keenable. Она может отличаться от полного состояния всего веба на ту же дату.


Тарифы и лимиты

Каждая организация получает 100 000 бесплатных запросов в месяц. Лимит возобновляется ежемесячно. После его исчерпания можно купить кредиты в консоли. Документация по кредитам

РежимЦена или квотаСкорость
Публичный без ключаБесплатно, до 1 000 запросов в час на IPДо 10 запросов/с
Авторизованный100 000 бесплатных запросов в месяц10 запросов/с на организацию
Agent Builder$4 за 1 000 запросов после бесплатного объёмаОблачный доступ
FrontierОт $1 за 1 000 запросовОт 100 запросов/с, выделенная ёмкость

Цены Agent Builder и Frontier опубликованы на странице тарифов Keenable. Повышенные лимиты, on-premises и выделенная инфраструктура относятся к индивидуальному Frontier-контракту.

В MCP каждый авторизованный вызов может возвращать фактическое списание в _meta["keenable/usage"]. Для учёта расходов надёжнее читать это поле, поскольку стоимость зависит от операции и условий организации.


Ошибки и диагностика

КодЧто означаетЧто проверить
400Неверный формат ключа или отсутствует обязательный идентификатор приложенияФормат заголовков и JSON
401Ключ отсутствует или недействителенX-API-Key или Bearer token
402Бесплатная квота и купленные кредиты закончилисьБаланс в консоли
403Ключ отключён или отозванСостояние ключа и workspace
429Превышена скорость запросовОчередь, задержка и повтор с backoff

Для production-интеграции добавьте таймаут, ограничение числа повторов и экспоненциальную задержку после 429. Не передавайте в поисковом запросе пароли, API-ключи, персональные данные и закрытые документы.


Ограничения и когда не подходит

  • fetch по умолчанию читает индексированную копию и не является универсальным браузером или полноценным краулером.
  • Авторизованные страницы и внутренние корпоративные системы потребуют отдельного способа доступа.
  • Стандартный лимит 10 запросов в секунду мал для крупного публичного продукта. Для такой нагрузки нужен Frontier-контракт.
  • Сервис возвращает источники, но не проверяет их истинность за пользователя.
  • Если нужна именно выдача Google или другого конкретного поисковика, независимый индекс Keenable не воспроизводит её.
  • Перед отправкой чувствительных корпоративных данных следует отдельно проверить договор, условия хранения и доступные enterprise-гарантии.

Ссылки


Следующий шаг

Parallel — высокоточный поисковый API для AI-агентов

Связанные материалы

Keenable имеет смысл обсуждать, если вашему агенту нужен управляемый веб-поиск, фильтрация по времени или воспроизводимое состояние выдачи.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov