MCP-сервер

Запустите SDK как MCP-сервер, и агент получит настоящий браузер с подменённым отпечатком и 16 инструментами. Добавьте это в конфигурацию своего MCP-клиента - больше ничего устанавливать не нужно.

{
  "mcpServers": {
    "anti-detect-browser": {
      "command": "npx",
      "args": ["anti-detect-browser", "--mcp"],
      "env": {
        "ANTI_DETECT_BROWSER_KEY": "your-api-key"
      }
    }
  }
}

Работает с любым MCP-клиентом. Браузер работает на вашей машине, поэтому не нужно покупать browser-hours.

16 инструментов ниже - это те, что предоставляет этот сервер. Если ваш агент на Python и вы хотите сами владеть сервером, выполните pip install "antibrow[mcp]" - пакет содержит готовый пример stdio-сервера, покрывающий тот же цикл launch, navigate, click, fill, read, screenshot, evaluate и close - профили в обоих случаях одинаковые. См. Python SDK.

Модель сессии

Это стоит понять перед чтением списка инструментов. Вызовы инструментов MCP дискретны: модель вызывает инструмент, получает результат, размышляет, вызывает следующий. Многие инструменты для браузера запускают новый контекст на каждый вызов, поэтому вход в аккаунт, выполненный в одном вызове, исчезает к следующему.

Здесь процесс браузера остаётся запущенным. launch_browser возвращает sessionId, и каждый инструмент страницы принимает этот id и переподключается к тому же работающему браузеру. Вкладка, которую вы оставили открытой, - та же вкладка, которую найдёт следующий вызов. Cookies, хранилище и passkeys записываются в каталог профиля, поэтому даже перезапуск восстанавливает ту же авторизованную личность с тем же отпечатком.

// 1. launch. `profile` is required; the profile is created if new.
launch_browser({ profile: "agent-01" })
//    -> { sessionId, profileDir, viewUrl }

// 2. every page tool takes that sessionId
navigate({ sessionId, url: "https://example.com" })
fill({ sessionId, selector: "#email", value: "me@example.com" })
click({ sessionId, selector: "button[type=submit]" })
get_content({ sessionId })

// 3. the browser stays up between tool calls, so a later turn
//    is still signed in. Close it when the task is done.
close_browser({ sessionId })

profile обязателен в launch_browser. Значения по умолчанию нет. Выберите стабильное имя для каждой личности и переиспользуйте его, потому что профиль и есть личность: повторное использование имени делает 40-й запуск похожим для сайта на 1-й.

Инструменты браузера

Запуск и остановка браузера, а также поиск уже запущенных.

launch_browser (profile , label?, color?, tags?, proxy?, proxyId?, headless?)

Запускает браузер с подменённым отпечатком. Создаёт профиль, если его ещё нет.

profile string required Имя профиля. Также имя каталога на диске.
label string optional Текст метки, отображаемой в окне браузера.
color string optional Цвет темы в hex, например #e74c3c.
tags array optional Теги, сохраняемые вместе с профилем.
proxy string optional URL собственного прокси: protocol://user:pass@host:port
proxyId string optional ID управляемого прокси. Активирует его и учитывает месячную квоту. Получите его через list_proxies или claim_proxy.
headless boolean optional Запуск без видимого окна.
close_browser (sessionId )

Закрывает одну сессию браузера.

sessionId string required ID, возвращённый launch_browser.
list_sessions ( )

Список всех сессий браузера, работающих сейчас.

Инструменты страницы

Все они действуют на открытой сессии, поэтому каждый из них принимает sessionId.

navigate (sessionId, url )

Переход по URL.

sessionId string required
url string required URL для перехода.
click (sessionId, selector )

Клик по элементу.

sessionId string required
selector string required CSS-селектор элемента для клика.
fill (sessionId, selector, value )

Заполняет поле формы текстом.

sessionId string required
selector string required CSS-селектор поля ввода.
value string required Текст для заполнения.
get_content (sessionId , selector?)

Читает текстовое содержимое страницы или одного элемента.

sessionId string required
selector string optional Ограничить одним элементом. Опустите для всей страницы.
screenshot (sessionId )

Скриншот текущей страницы.

sessionId string required
evaluate (sessionId, script )

Выполняет JavaScript в контексте страницы и возвращает результат.

sessionId string required
script string required JavaScript-код для выполнения.

Инструменты профиля

Профили - это каталоги на вашем собственном диске, неограничены на любом тарифе, включая Бесплатный.

list_profiles ( )

Список локальных профилей.

create_profile (name )

Создаёт профиль и фиксирует его отпечаток сейчас, а не при первом запуске. Движок автоматически генерирует согласованный отпечаток.

name string required Имя профиля.
delete_profile (name )

Удаляет профиль и его данные с диска.

name string required Имя профиля.

Инструменты прокси

Управляемые резидентные прокси доступны на платных тарифах. Получение бесплатно; квота расходуется только при запуске профиля с прокси.

list_proxies ( )

Список назначенных вам управляемых прокси, а также месячная квота: limit, usedThisMonth, remaining, holdCount и holdCap.

claim_proxy ( )

Получает доступный управляемый прокси и возвращает его, включая id. Получение не расходует месячную квоту.

Инструменты Live View

Транслируйте работающую сессию в свой кабинет. Live View - функция платных тарифов.

start_live_view (sessionId , quality?)

Начинает трансляцию экрана сессии.

sessionId string required
quality number optional Качество JPEG, от 1 до 100. По умолчанию 60.
stop_live_view (sessionId )

Останавливает трансляцию.

sessionId string required

Частые ошибки

Missing required parameter "profile"
У launch_browser нет профиля по умолчанию. Передайте его и используйте одно и то же имя каждый раз для этой личности.
Session not found
sessionId ссылается на браузер, который уже закрыт. Вызовите list_sessions, чтобы увидеть, что запущено, или запустите заново.
Concurrency limit reached
Ваш тариф ограничивает число одновременно работающих браузеров: 1 на Бесплатном, затем 5, 20 или 100. Закройте сессию или повысьте лимит. Число профилей никогда не является ограничением.

Предпочитаете писать код, а не использовать инструменты MCP? Те же профили можно запускать через SDK со стандартным Playwright.