by david-strejc
Provides a modern MCP server and companion browser extensions that enable reliable, multi‑instance automation across Chrome and Firefox through a single WebSocket daemon.
LaskoBOT delivers a unified automation platform built on the Model Context Protocol (MCP). It runs a WebSocket daemon (default port 8765) that can host many independent sessions—each mapped to its own browser tab—allowing concurrent interactions without cross‑talk. Chrome and Firefox extensions expose a rich set of tools (navigation, DOM actions, snapshots, JavaScript execution, tab management, etc.) that can be invoked from any MCP‑compatible client such as Claude Desktop.
git clone https://github.com/david-strejc/browsermcp-enhanced.git
cd browsermcp-enhanced
./scripts/deploy
npm install
npm run build
chrome://extensions → Load unpacked → chrome-extension/about:debugging#/runtime/this-firefox → Load Temporary Add‑on → firefox-extension/manifest.jsonhttp://127.0.0.1:3000/mcp (HTTP front‑end) and let it communicate with the WS daemon on port 8765.await browser_navigate({url: "https://example.com"})
await js.execute({code: "return document.title"})
Q: Do I need to run separate servers for Chrome and Firefox? A: No. The single daemon handles both browsers; the extensions negotiate the correct engine per session.
Q: How are sessions isolated? A: Each session is tied to a unique browser tab. The daemon routes MCP calls to the owning tab, preventing cross‑talk.
Q: Can I change the WebSocket port?
A: Yes. Set BROWSER_MCP_PORT environment variable before starting the daemon.
Q: What if a site blocks script injection? A: Enable the unsafe mode in the Firefox extension options; use it only for trusted sites.
Q: Is there support for Safari? A: Safari support is planned for the upcoming v2.0.0 release.
LaskoBOT v1.30.7
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
git clone https://github.com/david-strejc/browsermcp-enhanced.git
cd browsermcp-enhanced
npm install
npm run build
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.jsonhttp://127.0.0.1:3000/mcp// 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": "john@example.com",
"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
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.