Browser Demo
БесплатноНе проверенProvides a remote browser session and MCP tools for restricted search and extraction on sites like XHS, Yelp, and TripAdvisor, with human-in-the-loop login.
Описание
Provides a remote browser session and MCP tools for restricted search and extraction on sites like XHS, Yelp, and TripAdvisor, with human-in-the-loop login.
README
This project provides a minimal HITL (human-in-the-loop) remote browser session and an MCP tool gateway for restricted search/extraction. It currently supports XHS and includes real search adapters for Yelp and TripAdvisor.
Requirements
- Node.js >= 18
- Playwright Chromium (
npx playwright install chromium)
Install
npm install
npx playwright install chromium
Copy the environment template and adjust as needed:
cp .env.example .env
Run
npm run dev
This starts:
- HTTP server on
http://HOST:PORT - MCP server on stdio (connect with an MCP client)
Docker (single-user + noVNC)
This path is intended for a single user (or MAX_SESSIONS=1). It runs the browser inside Xvfb and streams the desktop via noVNC.
Build:
docker build -t browser-mcp-demo .
Run:
docker run --rm \
-p 3000:3000 -p 7900:7900 \
-e HOST=0.0.0.0 \
-e HEADLESS=false \
-e MAX_SESSIONS=1 \
-e VIEW_MODE=novnc \
-e PUBLIC_BASE_URL=http://YOUR_SERVER_IP:3000 \
-e NOVNC_URL_TEMPLATE="http://YOUR_SERVER_IP:7900/vnc.html?autoconnect=1&resize=scale&path=websockify" \
-e PROFILES_DIR=/data/profiles \
-e AUDIT_LOG_PATH=/data/logs/audit.log \
-e DELETE_PROFILE=false \
-v "$PWD/profiles:/data/profiles" \
-v "$PWD/logs:/data/logs" \
browser-mcp-demo
Notes:
VIEW_MODE=novncmakes/session/view/:idembed the live browser stream.- Update
PUBLIC_BASE_URLandNOVNC_URL_TEMPLATEwith your public host or domain.
HITL Login Flow
- Call MCP tool
create_session->{ sessionId, viewUrl } - Open
viewUrlin your browser.- Default mode: a local Chromium window is opened for login.
- noVNC mode (
VIEW_MODE=novnc): the remote browser stream is embedded in the page.
- Login on that window (QR/OTP/2FA handled by the user).
- Call
wait_for_loginuntil status isREADY(site-aware whensiteis provided).
MCP Tools (stdio)
Tools:
create_sessionwait_for_login(optionalsite)platform_search(site-aware viasiteparam)xhs_open_and_extract(site-aware viasiteparam)destroy_session
Example (pseudo):
const session = await client.callTool("create_session", {});
await client.callTool("wait_for_login", { sessionId: session.sessionId, timeoutSec: 120 });
const results = await client.callTool("platform_search", {
sessionId: session.sessionId,
query: "camping",
maxNotes: 10,
scrollTimes: 0,
site: "xhs" // xhs | yelp | tripadvisor
});
const detail = await client.callTool("xhs_open_and_extract", {
sessionId: session.sessionId,
url: results.notes[0]?.url,
site: "xhs"
});
Security Boundary
- Tools return sanitized structured JSON only.
- No cookies, localStorage, sessionStorage, storageState, or userDataDir exposure.
- No screenshot tool.
- Audit log is written to
logs/audit.logwith redaction.
Agent HTTP Endpoints
POST /agent/run→ start a run and execute until login required or donePOST /agent/continue→ continue a run after user loginGET /agent/run/:id→ fetch current run state
Example request body:
{
"query": "camping",
"maxNotes": 10,
"scrollTimes": 0,
"detailCount": 3,
"detailParallel": 4,
"site": "xhs"
}
Configuration
Key environment variables:
HOST,PORT,PUBLIC_BASE_URLUI_DIST_DIR(serve built UI from the same server)VIEW_MODE(info|novnc)NOVNC_URL_TEMPLATE(supports{sessionId}placeholder)OPENAI_API_KEY,OPENAI_MODELAGENT_RUN_TTL_MINUTESMAX_SESSIONS,SESSION_TTL_MINUTESPROFILES_DIR,DELETE_PROFILEHEADLESSXHS_BASE_URLAUDIT_LOG_PATH
Notes
- XHS, Yelp, and TripAdvisor all support search in the current adapter layer. XHS detail extraction is implemented; Yelp/TripAdvisor detail extraction is still stubbed.
- The DOM selectors for each site may change. Update
src/browser/xhs.tsorsrc/sites/*.tsif extraction breaks. - This MVP does not implement large-scale crawling or anti-bot bypass.
Установка Browser Demo
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Hanny658/browser-mcp-demoFAQ
Browser Demo MCP бесплатный?
Да, Browser Demo MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Browser Demo?
Нет, Browser Demo работает без API-ключей и переменных окружения.
Browser Demo — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Browser Demo в Claude Desktop, Claude Code или Cursor?
Открой Browser Demo на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Playwright
Browser automation, scraping, screenshots
автор: MicrosoftPuppeteer
Browser automation and web scraping.
автор: modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
автор: opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
автор: robhunterCompare Browser Demo with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории browse
