LaskoBOT
HTTP-SSE支持多实例浏览器自动化的现代MCP服务器
支持多实例浏览器自动化的现代MCP服务器
Modern MCP server + browser extensions for reliable, multi‑instance automation over a single WebSocket daemon.
git clone https://github.com/david-strejc/browsermcp-enhanced.git cd browsermcp-enhanced ./scripts/deploy
Option A: User services (recommended for nvm users, no sudo required):
./scripts/systemd-user-install.sh
Option B: System services (requires sudo):
sudo ./scripts/systemd-install.sh --user "$USER" \ --install-dir "/home/$USER/.local/lib/browsermcp-enhanced" \ --http-port 3000 --ws-port 8765
chrome://extensions → Developer mode → Load unpacked → chrome-extension/about:debugging#/runtime/this-firefox → Load Temporary Add‑on → firefox-extension/manifest.json{ "mcpServers": { "browsermcp": { "type": "http", "url": "http://127.0.0.1:3000/mcp" } } }
For detailed architecture and troubleshooting information, see ADVANCE_INFO.md
NO_PROXY=localhost,127.0.0.1 to allow local connections// Navigate to a URL await browser_navigate({ url: "https://example.com" }) // Snapshot await snapshot.accessibility({ mode: 'scaffold' }) // Click an element await browser_click({ ref: "button-1", element: "Submit button" })
// Plain DOM await js.execute({ code: "return document.title" }) // Safe operation (no code) await js.execute({ method: 'query', args: ['h3', { attrs: ['textContent'], limit: 10 }] }) // Unsafe (enable in extension options first) await js.execute({ code: "(function(){ return location.href })()", unsafe: true })
// Multi-step form filling await browser_multitool({ intent: "form_fill", snapshot: snapshotData, fields: { "username": "john.doe", "email": "[email protected]", "message": "Hello world" } })
Daemon: /tmp/browsermcp-daemon.log, /tmp/browsermcp-events.log
Chrome: chrome://extensions → Inspect (background)
Firefox: about:debugging → Inspect (background)
# Allow all origins (development) BROWSER_MCP_ALLOWED_ORIGINS="*" # Specific origins (production) BROWSER_MCP_ALLOWED_ORIGINS="https://example.com,https://app.example.com" # Custom WebSocket port BROWSER_MCP_PORT=8765
unsafe: true)browser_navigate, browser_go_back, browser_go_forwarddom.click, dom.type, dom.hover, dom.selectsnapshot.accessibilitytabs.list, tabs.select, tabs.new, tabs.closeconsole.get, screenshot.capture, js.execute# Run tests npm test # Quick test npm run test:quick # With coverage npm run test:coverage
# Watch mode npm run watch # Type checking npm run typecheck # Inspector npm run inspector
See CHANGELOG.md for detailed version history.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by the LaskoBOT Contributors