unbrowser
unbrowser
Дешёвый браузерный пропуск для агентов. Один нативный бинарник. Никакого Chrome.
Официальный идентификатор MCP Registry: mcp-name: io.github.protostatis/unbrowser
unbrowser — это веб-рантайм с сохранением состояния и без визуального интерфейса, предназначенный для агентов. Он находится между curl/WebFetch и настоящим браузером: сохраняет cookies и состояние DOM, возвращает запрашиваемые ссылки на элементы, обрабатывает ссылки и HTML-формы, определяет признаки challenge и SPA, а когда статического HTML недостаточно, может выполнять ограниченные QuickJS-скрипты страницы.
По умолчанию
navigate— быстрый статический/SSR-проход. Устанавливайтеexec_scripts: trueтолько когда нужно ограниченное выполнение QuickJS. Тяжёлые SPA, трекинговые пиксели, высокая точность V8, расширения и интерактивные антибот-проверки относятся к уровню настоящего Chrome.
Попробуйте живое публичное веб-демо перед установкой. Оно принимает только фиксированные публичные наборы источников, показанные на странице; не отправляйте через него личные данные, cookies или задачи, требующие авторизации. Общий Streamable HTTP MCP endpoint доступен по адресу https://unchainedsky.com/unbrowser-mcp для публичных smoke-тестов; для боевых сессий используйте локальную установку.
Используйте unbrowser только на сайтах, аккаунтах и данных, к которым вам разрешён доступ. Обнаружение challenge-проверок и импорт cookies не дают права обходить средства контроля доступа или условия сайта. Относитесь к сессионным cookies как к учётным данным: храните их локально, ограничивайте авторизованной задачей и никогда не отправляйте их в публичное демо.
Выберите подходящий уровень
Нужно | curl / WebFetch | unbrowser | Настоящий Chrome |
Статический/SSR HTML | raw-ответ | структурированная MapBlock + DOM-запросы | полный браузер |
Cookies, ссылки, HTML-формы | DIY | встроено | встроено |
Клиентские скрипты страницы | ❌ | ограниченный QuickJS, opt-in | V8 |
Пиксели, Canvas, WebGL, Workers и расширения | ❌ | ❌ | ✅ |
Вывод, ориентированный на агента | DIY-парсинг | ссылки на элементы, сигналы страницы, структурированное извлечение | DIY CDP / DOM-парсинг |
Интерактивная проверка доступа | ❌ | detect + stop | авторизованный браузер / подтверждение человеком |
Используйте unbrowser, когда одного HTTP слишком примитивно, а полный браузер слишком дорог. Когда страница требует Chrome, вывод подсказывает агенту эскалировать, а не делать вид, что совместимость, которой нет, существует.
Related MCP server: Browserbase MCP Server
Быстрый старт
Docker — Linux amd64/arm64, загрузка ~13 MiB
docker pull ghcr.io/protostatis/unbrowser:latest
# One-shot navigation
docker run --rm ghcr.io/protostatis/unbrowser:latest \
navigate https://example.com --json
# Default mode: MCP over stdio
docker run --rm -i ghcr.io/protostatis/unbrowser:latestОбраз distroless и запускается без привилегий root: в нём нет shell, пакетного менеджера или постоянного состояния. Для production зафиксируйте тег :vX.Y.Z или digest образа.
Python
pipx install pyunbrowser # recommended on macOS / modern Linux
# or, inside a Python 3.10+ virtual environment:
pip install pyunbrowserfrom unbrowser import Client
with Client() as ub:
ub.navigate("https://news.ycombinator.com")
for link in ub.query(".titleline > a")[:3]:
print(link["text"], link["attrs"]["href"])На macOS /usr/bin/python3 — это Python 3.9, и он не может установить wheel; используйте pipx или Homebrew Python. Дистрибутив на PyPI имеет имя pyunbrowser, однако импорт и исполняемый файл остаются unbrowser.
MCP
{
"mcpServers": {
"unbrowser": {
"command": "unbrowser",
"args": ["--mcp"]
}
}
}Минимальная поверхность: добавьте "--mcp-profile", "minimal", чтобы открыть только navigate/query/extract/help, и позвольте агенту обнаружить остальное через help(topic). Python-обёртка предоставляет «умный» сервер с тремя инструментами (search/open/help) в виде консольного скрипта unbrowser-smart.
{
"mcpServers": {
"unbrowser": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/protostatis/unbrowser:latest"
]
}
}
}См. справочник по установке и интерфейсу для деталей про Cargo, release-архивы, сборку из исходников, постоянные shell-сессии, raw JSON-RPC и все возможности MCP.
Что получает агент
navigateвозвращает BlockMap: заголовок страницы, ориентиры, заголовки, интерактивные элементы, сигналы плотности и ASCII-план. Размер результата зависит от страницы; оно структурировано для планирования, а не как обещание фиксированного числа токенов.Стабильные ссылки на элементы (
e:142): запросите элемент один раз, а затем выполняйтеclick,typeилиsubmitповторно, не разбирая HTML заново.Cookies и формы с сохранением состояния: cookie-хранилище, GET- и URL-encoded POST-форммы, ссылки и редиректы сохраняются в рамках сессии.
Сигналы страницы и challenge:
density.likely_js_filled,thin_shellиchallenge.providerсообщают агенту, стоит ли запускать скрипты, проверять встроенные данные, останавливаться или эскалировать на авторизованную браузерную сессию.Помощники маршрутизации в каждом результате:
micro_hint(конкретный следующий шаг),next_tools(ранжированные кандидаты),avoid(инструменты, где нечего делать) и стабильная таксономияescalation(challenge,thin_shell,partial_result, …) с атрибутами retryable/severity/proof — рекомендации никогда не противоречатavoid.Структурированные помощники: обнаружение маршрутов, извлечение карточек, нормализация таблиц,
text_mainи отладка селекторов охватывают типовые сценарии извлечения данных.
Режим скриптов и эскалация
{"id":1,"method":"navigate","params":{"url":"https://example.com","exec_scripts":true}}При exec_scripts: true встроенные и внешние скрипты работают в QuickJS с ограниченным watchdog'ом. Это может дать лёгкую гидравцию страницыи данных, видимых во fetch; это не V8 и не движок рендеринга. Тяжёлые приложения React/Vue/Ember всё равно могут оставлять пустую оболочку.
Эскалируйте на unchainedsky-cli или Unchained, когда разрешённая задача требует реальной отрисовки пикселей, Canvas/WebGL, Workers, расширений браузера, V8-совместимости, авторизованного профиля или подтверждения человеком. Если пользователь уже создал авторизованную сессию в Chrome, cookies_set может импортировать нужные сессионные cookies локально до их истечения; это не лицензия на обход ограничений сайта.
Документация
Нужно | Читать |
Пути установки, session CLI, one-shot CLI, raw RPC, MCP, каталог shims, полная RPC-таблица | |
Совместимость скриптов, признаки SPA, обработка challenge, авторизованная передача cookies, эскалация | |
Дистрибуция и поддерживаемые листинги каталогов | |
Сборка нативного бинарника |
Лицензия
Apache-2.0 — см. LICENSE.
Maintenance
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages through structured accessibility snapshots without requiring screenshots or visually-tuned models.224,588,713Apache 2.0
- AlicenseAqualityDmaintenanceEnables cloud browser automation through Browserbase and Stagehand, allowing LLMs to interact with web pages, take screenshots, extract data, and perform automated actions with support for proxies, stealth mode, and parallel sessions.143,231Apache 2.0

Plasmateofficial
AlicenseNot gradedqualityBmaintenanceAgent-native headless browser for AI agents. Converts web pages to a Semantic Object Model (SOM) instead of raw HTML — 17x average token reduction across real-world sites (up to 117x on complex pages). Native MCP server with fetch_page, extract_text, extract_links, and full browser automation. No API key required.37Apache 2.0- AlicenseNot gradedqualityCmaintenanceThe Zero-Setup Local Browser MCP. Enables AI agents to control web browsers via CDP with zero vision tokens and high-speed DOM mapping.17MIT
Related MCP Connectors
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Scrape, crawl, map & search the web. Open-source, self-hostable Rust crawler & search for AI agents.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/protostatis/unbrowser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server