haden-browser
haden-browser
haden-browser — это быстрый веб-браузер, ориентированный на ИИ, предоставляемый как локальный сервер Model Context Protocol. Он даёт ИИ наименьшее полезное представление страницы для текущей цели вместо отправки скриншотов и исходного кода страницы на каждом ходу.
Бенчмарк: на 33% меньше контекста ИИ-браузера
Основной результат: Haden использовал 7 822 референсных токена для основной сессии просмотра — на 32,7% меньше, чем Playwright MCP, и на 32,5% меньше, чем Chrome DevTools MCP в полном режиме. Среди протестированных браузерных MCP, которые возвращали семантические ссылки на действия и покрытие alt-текста изображений, Haden показал наименьший объём токенов.
Медиана пяти запусков | Haden | Playwright MCP | Chrome Slim† | Chrome Full |
Токены основного контекста | 7,822 | 11,627 | 4,638 | 11,596 |
Токены схемы инструментов | 727 | 3,999 | 221 | 4,974 |
Токены сценария работы со статьёй | 2,732 | 4,640 | 2,497 | 4,388 |
Первая полезная статья | 1,044 ms | 2,714 ms | 3,005 ms | 3,133 ms |
Передача данных статьи от источника | 16.7 KB / 1 request | 95.0 KB / 10 | 95.0 KB / 10 | 95.0 KB / 10 |
Семантические ссылки на действия | 15 | 172 | 0 | 143 |
Покрытие alt-текста изображений | 8/8 | 8/8 | 0/8 | 8/8 |
† Chrome Slim — это абсолютный минимум токенов, но он представляет собой низкоуровневый базовый уровень управления через JavaScript: модель должна сама писать скрипты страницы, а протестированный путь не возвращал семантических ссылок на действия или alt-текста изображений. Поэтому он показан прозрачно, но не рассматривается как эквивалент семантического браузера.
Основной контекст включает одну полную загрузку схемы инструментов, а также сериализованные вызовы MCP-инструментов и результаты для чтения статьи, отправки формы и проверки вычисленных стилей. Подсчёт выполняется с помощью токенизатора o200k_base. Пиксели изображений, пользовательские/системные промпты и рассуждения или текст модели исключены, поэтому фактическое тарифицируемое использование зависит от MCP-хоста и модели.
См. полный отчёт о бенчмарке, исходные данные по каждому запуску и инструкции по воспроизведению.
Related MCP server: browsegrab
Чем он отличается
Целевые представления — используйте компактный семантический текст для исследований, очищенный DOM для структуры или ограниченные вычисленные стили для визуальной работы.
Изображения остаются ленивыми — изображение представлено своим alt-текстом или
[image img1]. Пиксельные данные возвращаются только когда ИИ явно вызываетhaden_image.Управление с малым числом обменов — каждое взаимодействие возвращает свежий снимок, поэтому большинство сценариев кликов/ввода требуют один вызов инструмента на шаг.
Стабильные ссылки на действия — видимые элементы управления становятся
e1,e2и так далее, что дешевле и надёжнее, чем просить модель придумывать CSS-селекторы.Быстро по умолчанию — запросы изображений, медиа и шрифтов блокируются при обычном просмотре. CSS остаётся доступным для визуального представления.
Более безопасное локальное выполнение — не-HTTP схемы, URL с учётными данными и цели в частных сетях блокируются, если пользователь явно не согласится.
flowchart LR
AI[AI / MCP host] -->|stdio tools| MCP[haden-browser]
MCP --> PW[Playwright Chromium]
PW --> PAGE[Web page]
PAGE -->|semantic text / DOM / computed CSS| MCP
MCP -.->|only haden_image imgN| PIXELS[Image bytes]
PIXELS -.-> AIПредставления
Представление | Лучше всего подходит для | Возвращаемые данные |
| Поиск, чтение, формы | Заголовки, видимый текст, ссылки и элементы управления с |
| HTML-структура и атрибуты | Очищенный HTML; скрипты и встроенное содержимое удалены; |
| Макет и анализ CSS | Видимые значимые элементы с рамками и ограниченным набором вычисленных CSS-свойств |
text — представление по умолчанию, и его следует предпочитать, если только задача действительно не требует структуры или деталей оформления.
MCP-инструменты
Инструмент | Назначение |
| Открывает HTTP(S) URL и возвращает его первый снимок |
| Читает текущую страницу, опционально в пределах CSS-селектора |
| Выполняет клик, заполнение, выбор, нажатие, прокрутку, навигацию по истории, перезагрузку или ожидание; затем возвращает обновлённый снимок |
| Возвращает реальные пиксели изображения для одного |
| Сообщает активную страницу без запуска Chromium |
Пример текстового вывода:
# Example Domain
URL: https://example.com/
View: text
Interactive elements: 1
Images: 1 (use haden_image with an img ref only when visual inspection is needed)
# Example Domain
This domain is for use in illustrative examples.
[e1] link "More information" -> https://iana.org/domains/example
[image img1: "Example diagram"]Ссылки привязаны к последнему снимку. После существенных изменений страницы прочитайте её заново, прежде чем повторно использовать старый e- или img-реф.
Требования
Node.js 20 или новее
Chromium, установленный через Playwright
Установка из этого репозитория
git clone https://github.com/Haden-Min/haden-browser.git
cd haden-browser
npm ci
npm run setup-browser
npm run buildЗатем настройте MCP-хост для запуска собранного stdio-сервера. В реальной конфигурации используйте абсолютный путь:
{
"mcpServers": {
"haden-browser": {
"command": "node",
"args": ["/absolute/path/to/haden-browser/dist/index.js"]
}
}
}Во время разработки хост может запускать npx tsx /absolute/path/to/haden-browser/src/index.ts вместо этого.
После публикации пакета в npm предполагаемая конфигурация выглядит так:
{
"mcpServers": {
"haden-browser": {
"command": "npx",
"args": ["-y", "haden-browser"]
}
}
}Выполните npx playwright install chromium один раз на этой машине перед первым вызовом браузера.
Конфигурация
Переменная окружения | По умолчанию | Значение |
|
| Запускать Chromium без видимого окна |
|
| Блокировать изображения, медиа и шрифты при обычном просмотре |
|
| Разрешать localhost и адреса в частных сетях |
|
| Таймаут навигации и получения изображений |
|
| Таймаут кликов, заполнения и локаторов |
|
| Лимит символов снимка по умолчанию |
|
| Максимальное количество байт, возвращаемое |
Логические переменные принимают true/false, 1/0, yes/no и on/off.
Локальные страницы для разработки
Частные хосты блокируются по умолчанию для снижения риска SSRF. Чтобы просматривать приложение на localhost, дайте согласие только для этого MCP-процесса:
{
"mcpServers": {
"haden-browser-local": {
"command": "node",
"args": ["/absolute/path/to/haden-browser/dist/index.js"],
"env": { "HADEN_ALLOW_PRIVATE_HOSTS": "true" }
}
}
}Разработка
npm install
npm run setup-browser
npm run check
npm run buildТестовый набор покрывает сетевую политику, формирование текста, извлечение данных из реального Chromium, взаимодействия на основе рефов, отложенное получение изображений и внутрипроцессное MCP-соединение клиент/сервер.
Текущие ограничения
Для каждого stdio MCP-подключения поддерживается один активный контекст браузера.
Рефы изображений в настоящее время охватывают видимые HTML-элементы
<img>, но не CSS-фоновые изображения, canvas, кадры видео или содержимое iframe.Визуальное представление сообщает вычисленные свойства; оно не выгружает все правила таблиц стилей.
Скачивание файлов, загрузка файлов, расширения браузера, постоянные профили и решение CAPTCHA выходят за рамки MVP.
Фильтрация частных хостов снижает подверженность SSRF, но не заменяет сетевую изоляцию на уровне ОС/контейнеров во враждебных мультитенантных средах.
Руководство по разработке см. в CONTRIBUTING.md, а сообщения об уязвимостях — в SECURITY.md.
Лицензия
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.
- AlicenseNot gradedqualityDmaintenanceA token-efficient browser automation server that enables LLMs to navigate websites, click elements, and extract content using accessibility trees and markdown conversion. It provides eight tools for lightweight browser interaction optimized for performance with local LLM endpoints.MIT
- AlicenseAqualityAmaintenanceA token-efficient MCP server that gives AI agents structured access to the web, returning compact page summaries and targeted queries instead of full accessibility dumps.23435174MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.
Related MCP Connectors
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
E2LLM gives your AI eyes and hands in a real browser: structured perception (SiFR) plus action.
Web search, page extraction and structured commerce, social and business data for AI agents
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/Haden-Min/haden-browser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server