mcp-browser
MCP Browser
Нативный веб-браузер для macOS, который работает как сервер Model Context Protocol, позволяя ИИ-агентам управлять реальным WKWebView так же, как это делает человек — переходить по ссылкам, кликать, заполнять формы, читать DOM, делать скриншоты, выполнять JavaScript, а также отслеживать сетевую активность и консоль.
Построен на SwiftUI + WKWebView. MCP-сервер работает внутри процесса через локальный HTTP с аутентификацией по bearer-токену и защитой от DNS-ребиндинга.
Загрузка
⬇ Скачать последнюю сборку для macOS — подписанный и нотариально заверенный .dmg для Apple Silicon.
После загрузки откройте DMG и перетащите MCP Browser в папку «Программы» (Applications).
Скриншоты


Зачем это нужно
Большинство решений «браузер как инструмент» для агентов делятся на два типа:
Headless-автоматизация (Playwright, Puppeteer) — быстрая и скриптуемая, но агент не видит того, что видите вы, не может использовать ваши залогиненные сессии и работает на другом движке браузера, нежели тот, которому вы доверяете.
Облачные браузеры с удаленным управлением — ваши данные покидают ваш компьютер, и вы платите за каждую сессию.
MCP Browser — это третий вариант: реальное окно браузера на вашем Mac, в которое вы входите, по которому перемещаетесь и которое используете сами, и которым LLM может управлять через MCP, когда вы ее об этом просите. Куки, история, закладки и загрузки остаются локальными. Агент видит ту же страницу, что и вы.
Возможности
Браузер
Вкладки на базе WKWebView со стилем вкладок как в Safari (фавиконки, закрытие при наведении, вкладки одинаковой ширины)
Адресная строка с автодополнением из истории и закладок
Панель закладок, полноценный менеджер закладок, просмотр истории, всплывающее окно загрузок
Поиск на странице, сохранение масштаба для каждого хоста, контроллер «картинка в картинке»
Импортер закладок (форматы HTML / Safari / Chrome)
Захват куки и сети для каждой вкладки
MCP-сервер
Локальный HTTP-транспорт на порту
8833(настраиваемый) —POST /mcpдля JSON-RPC,GET /mcpдля статуса в стиле SSEАутентификация по bearer-токену с токеном на каждый запуск, который можно пересоздать в настройках
Защита от DNS-ребиндинга — заголовок
Hostпроверяется на соответствие127.0.0.1/localhostАвтоматическая регистрация в популярных MCP-клиентах (Claude Desktop, Codex и др.) через
MCPRegistrarЛог действий инструментов — каждый вызов инструмента записывается с аргументами, результатом и временем выполнения
Инструменты (текущий каталог)
Навигация —
navigate,back,forward,reload,current_url,current_titleВкладки —
list_tabs,new_tab,switch_tab,close_tabDOM —
click,fill,submit,hover,press_key,type_text,scroll,find_in_page,get_element,accessibility_treeСодержимое страницы —
read_text,read_page,page_metadata,screenshot,pdf_export,render_html,eval_js,find,list_links,list_formsКуки / хранилище —
get_cookies,set_cookie,storage,clear_sessionЗакладки —
list_bookmarks,open_bookmark_folderИнспекция —
console_logs,network_log,dialogФайлы —
download,upload_file(требуется разрешение пользователя)Разное —
wait_for,emulate,resize
См. MCP Browser/MCP/MCPToolCatalog.swift для получения полного списка.
Конфиденциальность и безопасность
Bearer-токен на каждый запуск — клиенты без него получают
401 UnauthorizedПроверка Origin / Host — блокирует атаки DNS-ребиндинга с вредоносных локальных веб-страниц
Подтверждение пользователя для загрузок, выгрузок и любых взаимодействий с
dialogПо умолчанию только локально — сервер привязывается к
127.0.0.1, никогда не выходит в публичную сетьЛог действий в Настройках → вы можете видеть в точности, что агент делал в вашем браузере
Требования
macOS 14+ (Sonoma или новее)
Xcode 16+ для сборки из исходного кода
Начало работы (пользователи)
Скачайте последний DMG со страницы Releases.
Перетащите MCP Browser в
/Applicationsи запустите его.Откройте Settings → Connection, чтобы скопировать bearer-токен и URL MCP-эндпоинта.
В вашем MCP-клиенте (Claude Desktop, Codex и др.) добавьте сервер. Вкладка Settings → MCP Clients в приложении может автоматически пропатчить конфигурацию для большинства популярных клиентов.
Пользуйтесь как обычно. Когда LLM потребуется что-то сделать в вебе, она вызовет инструменты через MCP, и вы увидите действие в логе.
Начало работы (разработчики)
Клонируйте этот репозиторий.
Откройте
MCP Browser.xcodeprojв Xcode.Выберите схему
MCP Browser.Соберите и запустите на My Mac.
Сборка через CLI:
xcodebuild -project "MCP Browser.xcodeproj" -scheme "MCP Browser" -configuration Debug buildСборка собственного форка
Проект поставляется с настройками подписи оригинального автора. Если вы делаете форк для сборки и распространения своей копии:
Команда разработчиков — откройте таргет
MCP Browserв Xcode → Signing & Capabilities → выберите свою команду. Это перезапишетDEVELOPMENT_TEAMвMCP Browser.xcodeproj/project.pbxproj.Идентификатор пакета (Bundle identifier) — измените
PRODUCT_BUNDLE_IDENTIFIERсcom.moosia.mcp-browserна свой собственный.API-ключи не включены. MCP Browser сам не вызывает никаких LLM-провайдеров — он только предоставляет инструменты любому клиенту, который к нему подключается.
Настройка MCP-клиента
Большинство MCP-клиентов принимают блок HTTP-транспорта. Пример для claude_desktop_config.json:
{
"mcpServers": {
"mcp-browser": {
"transport": "http",
"url": "http://127.0.0.1:8833/mcp",
"headers": {
"Authorization": "Bearer <token-from-settings>"
}
}
}
}Встроенная вкладка настроек MCP Clients может записать это за вас для известных ей клиентов (Claude Desktop, Codex и др.) — выберите клиент, нажмите Add MCP Browser, и он пропатчит файл на месте.
Токен обновляется каждый раз, когда вы нажимаете Regenerate token в Settings → Connection. Перепатчивайте свои клиенты после обновления токена.
Хранение данных
Закладки, история, масштаб для каждого хоста, загрузки и лог действий хранятся локально с помощью
PersistentStore(на базе файлов) и SwiftData, где это уместно.Bearer-токен хранится в
UserDefaults. Он пересоздается в Settings → Connection всякий раз, когда вы хотите отозвать доступ у существующих клиентов.Фавиконки кэшируются на диске в папке Application Support.
Никакой телеметрии. Никакой облачной синхронизации. Ничего не покидает компьютер, если только это не вызвано инструментом MCP, который вы запустили.
Структура проекта
MCP Browser/
├── Browser/ WKWebView wrapper, tab model, presenter, scripts, PiP
├── MCP/ MCP server, JSON-RPC, host protocol, tool catalog
│ ├── Registrar/ Auto-config patcher for Claude Desktop / Codex / etc.
│ └── Tools/ Tool implementations (navigation, DOM, content, etc.)
├── Settings/ Settings tabs (general, privacy, connection, recorder, etc.)
├── Storage/ Bookmarks, history, downloads, favicons, action log
├── Views/ Bookmarks bar, bookmarks manager, history, downloads popover
├── ContentView.swift Top-level window layout, tab strip, URL bar
├── AppCommands.swift Menu bar commands and keyboard shortcuts
└── MCP_BrowserApp.swift App entry point and environment wiringКлючевые файлы
MCP/MCPServer.swift— HTTP/JSON-RPC сервер на базеNWListener, аутентификация, защита от ребиндингаMCP/MCPCoordinator.swift— маршрутизация вызовов инструментов к активной вкладке сфокусированного окнаMCP/MCPToolCatalog.swift— реестр всех доступных инструментовMCP/MCPSecret.swift— bearer-токен, защищенный KeychainBrowser/BrowserTab.swift—@Observableмодель для каждой вкладки, оборачивающаяWKWebViewBrowser/WebViewHost.swift— мостNSViewRepresentable
Модель безопасности
MCP Browser намеренно работает без песочницы (un-sandboxed), чтобы иметь возможность:
Патчить конфигурационные файлы MCP-клиентов в
~/Library/Application Support/~/.configУправлять другими приложениями (например, открывать внешние схемы) при явном запросе
Он не:
Привязывается к сетевым интерфейсам, кроме loopback (
127.0.0.1)Принимает соединения без bearer-токена, выданного при запуске
Выполняет запросы, заголовок
Hostкоторых не совпадает с127.0.0.1илиlocalhost(защита от DNS-ребиндинга)Отправляет что-либо с компьютера самостоятельно
Если вы хотите провести аудит, вся HTTP-поверхность находится в MCP Browser/MCP/MCPServer.swift и занимает около 400 строк.
Известные ограничения
Лог действий пока нельзя искать из интерфейса.
Поддержка нескольких окон есть, но MCP-координатор направляет запросы только в последнее сфокусированное окно.
Потоки OAuth и базовой аутентификации для сайтов обрабатываются WebKit; сам MCP Browser не хранит пароли. Пока используйте системный Keychain через импорт из Safari/Chrome.
Нет сборки для мобильных устройств/iOS — это инструмент только для Mac.
Участие в разработке
См. CONTRIBUTING.md о том, как сообщать об ошибках, запрашивать функции и отправлять pull-реквесты.
Лицензия
This server cannot be installed
Maintenance
Latest Blog Posts
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/brainfuel/mcp-browser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server