Browser Smoke
БесплатноНе проверенEnables browser automation and smoke testing via Playwright, with tools for navigation, DOM interaction, screenshots, network capture, and more.
Описание
Enables browser automation and smoke testing via Playwright, with tools for navigation, DOM interaction, screenshots, network capture, and more.
README
MCP browser smoke testing plugin for OpenCode — Playwright-based UI testing via browser automation. Jalankan smoke test terhadap web app langsung dari OpenCode dengan 24 tools.
Prerequisites
| Requirement | Version |
|---|---|
| Node.js | >= 18 |
| Python | >= 3.8 |
| OpenCode | terinstal |
Quick Install
npx browser-smoke init
CLI akan interaktif nanya:
Pilih lokasi instalasi:
[1] Global — untuk semua project (~/.config/opencode)
[2] Local — hanya project ini (./opencode.json)
[3] Cancel
Pilih [1/2/3]:
Proses:
- Setup Python virtual environment
- Install dependencies (
fastmcp,playwright,pixelmatch,Pillow) - Install Chromium browser
- Config
opencode.json+ skill file
Restart OpenCode setelah selesai.
Opsi Init
| Command | Description |
|---|---|
npx browser-smoke init |
Interaktif (tanya global/local) |
npx browser-smoke init --global |
Global, skip prompt |
npx browser-smoke init --local |
Local, skip prompt |
npx browser-smoke init --print |
Preview config tanpa install |
Manual Config
Kalo init gak bisa dipake, tambahin manual ke opencode.json:
{
"mcp": {
"browser-smoke": {
"type": "local",
"command": [".browser-smoke/.venv/bin/python3", "-m", "server"],
"cwd": ".browser-smoke/mcp"
}
}
}
Tools (24 MCP Tools)
Navigasi & Page
| Tool | Description |
|---|---|
browser_open(url, headless?) |
Buka URL. Returns title + status code + screenshot |
browser_open_tab(url) |
Buka tab baru, fokus ke tab baru |
browser_get_tabs() |
List semua tab (title, URL, active status) |
browser_close() |
Tutup browser session |
browser_scroll(x?, y?) |
Scroll page (default: down 200px) |
Interaksi DOM
| Tool | Description |
|---|---|
browser_extract_dom() |
List semua elemen interaktif (button, input, link) + CSS selector |
browser_click(selector) |
Klik element berdasarkan CSS selector |
browser_type(selector, text) |
Ketik teks ke input |
browser_type_guess(selector, input_type?) |
Auto-fill input (text/email/password/search/number) |
Screenshot & Visual
| Tool | Description |
|---|---|
browser_screenshot() |
Screenshot halaman saat ini |
browser_screenshot_diff(name, threshold?) |
Screenshot + diff dengan baseline. Threshold default 0.01 (1%) |
browser_highlight(selector, color?, duration?) |
Highlight element dengan outline |
JavaScript & Network
| Tool | Description |
|---|---|
browser_execute(js_code) |
Execute JavaScript di page context |
browser_inject_script(script, url_pattern?) |
Inject JS sebelum page load (mock API, polyfills) |
browser_network_capture(mode, patterns?) |
Intercept network requests (mode: start/stop/get) |
browser_block_resources(patterns) |
Block resources by glob pattern (*.jpg, *.png, analytics) |
Console & Error
| Tool | Description |
|---|---|
browser_console() |
Ambil captured console logs |
browser_errors() |
Ambil captured JS runtime errors |
Cookies & Storage
| Tool | Description |
|---|---|
browser_get_cookies() |
Get all cookies |
browser_set_cookie(name, value, domain?, path?) |
Set cookie |
browser_clear_cookies() |
Clear all cookies |
browser_storage(mode, storage?, key?, value?) |
localStorage/sessionStorage access (all/get/set/clear) |
Report
| Tool | Description |
|---|---|
browser_report(results_json) |
Generate smoke test report markdown |
Background
| Tool | Description |
|---|---|
browser_offscreen(action, url?, js?) |
Hidden page untuk background processing (open/exec/close) |
Usage Guide
Basic Smoke Test
- Load skill
browser-smokedi OpenCode - Test flow:
browser_open(url="http://localhost:5173")
browser_extract_dom()
browser_click(selector="button:has-text('Login')")
browser_type(selector="input[type='email']", text="[email protected]")
browser_type(selector="input[type='password']", text="Test1234!")
browser_click(selector="button:has-text('Submit')")
browser_screenshot()
browser_console()
browser_errors()
browser_report(results_json)
browser_close()
Network Capture
browser_network_capture(mode="start", patterns="*.api.*,*.json")
# lakukan interaksi...
browser_network_capture(mode="get") # lihat request/response
browser_network_capture(mode="stop")
Script Injection
browser_inject_script(script="window.__TEST_MODE__=true")
browser_open(url="http://localhost:5173")
browser_execute(js_code="window.__TEST_MODE__") # → true
Visual Regression
browser_open(url="http://localhost:5173")
browser_screenshot_diff(name="homepage") # baseline (first run)
# setelah code change...
browser_screenshot_diff(name="homepage") # diff with baseline
Skill Integration
Setelah install, skill browser-smoke otomatis terdaftar. Di OpenCode:
skill browser-smoke
Skill ini menyediakan metodologi smoke testing lengkap dengan failure analysis loop.
Troubleshooting
| Masalah | Solusi |
|---|---|
browser_screenshot_diff gagal |
Pastikan mcp/tools/browser.py punya akses ke artifacts directory |
| Chromium error | playwright install chromium lagi |
| Connection refused | Pastikan app target jalan (npm run dev, dll) |
| Python not found | python3 --version, kalo error install Python dulu |
Development
git clone https://github.com/sukirman1901/browser-smoke.git
cd browser-smoke
npm link # biar bisa npx browser-smoke dari lokal
License
MIT
Установка Browser Smoke
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/sukirman1901/browser-smokeFAQ
Browser Smoke MCP бесплатный?
Да, Browser Smoke MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Browser Smoke?
Нет, Browser Smoke работает без API-ключей и переменных окружения.
Browser Smoke — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Browser Smoke в Claude Desktop, Claude Code или Cursor?
Открой Browser Smoke на 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 Smoke with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории browse
