laskobot

david-strejc/laskobot

3.5

If you are the rightful owner of laskobot and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

BrowserMCP Enhanced is a powerful MCP server designed for browser automation, offering advanced JavaScript execution and comprehensive debugging capabilities.

Tools
5
Resources
0
Prompts
0

LaskoBOT — Protocol v2, Multi‑Instance, Cross‑Browser

LaskoBOT v1.30.7

Version MCP

Modern MCP server + browser extensions for reliable, multi‑instance automation over a single WebSocket daemon.

✨ Features

✨ Highlights

  • Single WS daemon (8765), many sessions (Claude instances)
  • Per‑session tab routing and ownership (no cross‑talk)
  • Unified tools across Chrome and Firefox
  • Auto‑reconnect (Firefox adds alarms + online hooks)

🚀 Quick Start

Prerequisites

  • Node.js 20+
  • Chrome or Firefox
  • Claude Desktop with MCP support

Installation

Option 1: Quick Deploy Script
git clone https://github.com/david-strejc/browsermcp-enhanced.git
cd browsermcp-enhanced
./scripts/deploy
Option 2: Manual Installation
  1. Clone and build:
git clone https://github.com/david-strejc/browsermcp-enhanced.git
cd browsermcp-enhanced
npm install
npm run build
  1. Install systemd services (HTTP + WS daemon):
sudo ./scripts/systemd-install.sh --user "$USER" \
  --install-dir "/home/$USER/.local/lib/browsermcp-enhanced" \
  --http-port 3000 --ws-port 8765
  1. Load extension (one browser at a time):
  • Chrome: chrome://extensions → Developer mode → Load unpacked → chrome-extension/
  • Firefox: about:debugging#/runtime/this-firefox → Load Temporary Add‑on → firefox-extension/manifest.json
  1. Configure Claude Desktop: Point to http://127.0.0.1:3000/mcp

📖 Usage

Basic Navigation

// 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" })

JavaScript Execution

// 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 })

Form Automation

// Multi-step form filling
await browser_multitool({
  intent: "form_fill",
  snapshot: snapshotData,
  fields: {
    "username": "john.doe",
    "email": "john@example.com",
    "message": "Hello world"
  }
})

Debugging & Logs

Daemon: /tmp/browsermcp-daemon.log, /tmp/browsermcp-events.log Chrome: chrome://extensions → Inspect (background) Firefox: about:debugging → Inspect (background)

🔧 Advanced Configuration

Environment Variables

# 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

Extension Options (Firefox)

  • Unsafe mode toggle (required for unsafe: true)

📚 API Reference

Core Tools

  • browser_navigate, browser_go_back, browser_go_forward
  • dom.click, dom.type, dom.hover, dom.select
  • snapshot.accessibility
  • tabs.list, tabs.select, tabs.new, tabs.close
  • console.get, screenshot.capture, js.execute

🧪 Testing

# Run tests
npm test

# Quick test
npm run test:quick

# With coverage
npm run test:coverage

🛠️ Development

# Watch mode
npm run watch

# Type checking
npm run typecheck

# Inspector
npm run inspector

📝 Changelog

See for detailed version history.

v1.0.0 (Latest)

  • 🚀 First production-ready release
  • ✅ RPC-based safe mode execution
  • ✅ Sandboxed iframe isolation
  • ✅ Comprehensive testing suite
  • ✅ Full documentation

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the file for details.

🙏 Acknowledgments

  • Model Context Protocol team for the MCP specification
  • Playwright for browser automation inspiration
  • Claude and the o3 model for architectural guidance
  • All contributors and testers

🐛 Known Issues

  • WebSocket reconnection may require Chrome restart
  • Some sites with strict CSP may require unsafe mode
  • Safari and Firefox support coming in v2.0.0

📞 Support


Made with ❤️ by the LaskoBOT Contributors