nodriver-mcp
nodriver-mcp
Локальный сервер Codex MCP для исследования аутентифицированных браузеров с помощью nodriver. Он сохраняет выделенный профиль Chromium/Helium между запусками и выполняет горячую перезагрузку Python-скрейперов для конкретных задач.
Setup
Требуется Python 3.11+, uv и браузер на основе Chromium.
uv sync --lockedДобавьте это в ~/.codex/config.toml, заменив каждый плейсхолдер на абсолютный путь:
[mcp_servers.nodriver]
command = "uv"
args = ["--directory", "<path-to-nodriver-mcp>", "run", "--frozen", "nodriver-mcp"]
startup_timeout_sec = 30
tool_timeout_sec = 600
[mcp_servers.nodriver.env]
NODRIVER_MCP_BROWSER_EXECUTABLE = "<path-to-helium-or-chromium>"
NODRIVER_MCP_USER_DATA_DIR = "<path-to-a-dedicated-browser-profile>"
NODRIVER_MCP_SCRIPTS_DIR = "<path-to-nodriver-mcp>/scrapers"
NODRIVER_MCP_ARTIFACTS_DIR = "<path-to-nodriver-mcp>/artifacts"Перезапустите Codex после изменения конфигурации MCP. Браузер запускается лениво. По умолчанию он видимый, чтобы вы могли один раз войти в выделенный профиль; его куки сохраняются. Codex передаёт headless=true, когда запрос явно требует безголового просмотра, и в противном случае выбирает видимый режим. Переключение режимов перезапускает управляемый браузер, сохраняя профиль.
Related MCP server: scout-mcp-server
Use
Спросите Codex, например:
Используй мою сессию браузера, чтобы найти подходящие элементы на example.com. Осмотри страницу, создай переиспользуемый скрейпер, запусти его и сохрани большие результаты как артефакт. Запусти в безголовом режиме.
Codex может осмотреть страницу с помощью инструментов браузера, затем сохранить и запустить скрейпер. Каждый вызов scraper_run снова читает файл, поэтому правки применяются без перезапуска MCP-сервера:
async def scrape(ctx, params):
if url := params.get("url"):
await ctx.goto(url)
items = await ctx.evaluate_json("""
Array.from(document.querySelectorAll('article')).map(item => ({
title: (item.querySelector('h2')?.innerText || '').trim(),
href: item.querySelector('a')?.href || null
}))
""")
return {"items": items}Точка входа должна быть async def scrape(ctx, params) и возвращать JSON-совместимые данные. Отдавайте предпочтение одному массовому вызову ctx.evaluate_json(...). Используйте ctx.write_artifact(...) для больших результатов. Скрейперы должны использовать асинхронные операции и завершать все задачи перед возвратом.
Test
uv run --frozen ruff check src tests
uv run --frozen pytestSecurity
Запускайте этот сервер локально только через STDIO. Скрейперы представляют собой Python без песочницы с доступом к ОС от процесса MCP и управлением аутентифицированным браузером. Никогда не раскрывайте куки, токены, пароли или конечную точку DevTools; считайте содержимое страниц ненадёжным; используйте только те данные, к которым у вас есть разрешение; и соблюдайте условия использования сайта и ограничения частоты запросов. Профили браузеров, сгенерированные скрейперы и артефакты могут содержать личные данные и не должны попадать в систему контроля версий.
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 gradedqualityCmaintenanceMCP server that exposes the Pinchtab browser API for token-efficient web scraping, change detection, and automated testing workflows.15
- AlicenseAqualityBmaintenanceMCP server for browser automation with anti-detection. Scout pages, find elements, interact with websites, and monitor network traffic from any AI client that supports the Model Context Protocol.211MIT
- AlicenseNot gradedqualityAmaintenanceRemote MCP server for web scraping with anti-bot evasion. Provides stealth HTTP fetching, headless browser with Cloudflare bypass, CSS selectors, YouTube transcripts, and Markdown conversion.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for controlling a local camofox-browser instance, enabling LLM agents to perform web automation tasks such as navigation, interaction, snapshotting, and content extraction.53MIT
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
An MCP server for deep research or task groups
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/namecallfilter/nodriver-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server