browser-agent-mcp
Version:
Chrome extension and MCP server for comprehensive browser automation with AI agents
250 lines (176 loc) • 9.81 kB
Markdown
# Browser Agent MCP
A Chrome extension and MCP (Model Context Protocol) server that enables AI agents to fully automate and interact with web browsers using your existing Chrome instance.
## 🎯 Project Goals
This project aims to create the **most comprehensive browser automation MCP** that combines the best features of existing solutions while addressing their limitations:
- **Full browser automation** (navigation, clicking, typing, form filling)
- **Complete Chrome DevTools access** (console logs, network monitoring, element inspection)
- **DOM manipulation and querying** (search elements, extract data, modify content)
- **Works with your existing Chrome browser** (no separate browser instances required)
- **Reliable and fast** (direct extension APIs, no flaky WebSocket connections)
## 🚀 Why This Project?
### Current Browser MCP Limitations
| Tool | Navigation | DevTools | Existing Browser | Reliability |
| ---------------------------- | ---------- | -------- | ---------------- | ----------- |
| **Microsoft Playwright MCP** | ✅ | ❌ | ❌ | ✅ |
| **Browser MCP** | ❌ | ⚠️ | ✅ | ⚠️ |
| **BrowserTools MCP** | ❌ | ✅ | ✅ | ⚠️ |
| **Our Solution** | ✅ | ✅ | ✅ | ✅ |
### Key Problems We're Solving
1. **Navigation Gap**: Existing browser-based MCPs don't provide navigation automation
2. **Reliability Issues**: Current solutions are flaky and prone to connection drops
3. **Limited DevTools Access**: Most tools only provide basic console/network monitoring
4. **Complex Setup**: CDP-based solutions require debug mode and complex configuration
## 🏗️ Architecture Overview
```
AI Agent (Claude/Cursor/etc.)
↓ MCP Protocol
MCP Server (Node.js)
↓ WebSocket/Native Messaging
Chrome Extension
↓ Chrome APIs + Content Scripts
Web Pages (DOM Manipulation)
```
### Components
1. **Chrome Extension**
- Content scripts for DOM interaction
- Background service worker for tab management
- DevTools integration for debugging access
- Native messaging for MCP communication
2. **MCP Server**
- Implements Model Context Protocol
- Translates AI commands to browser actions
- Manages extension communication
- Provides structured responses to AI agents
3. **Communication Bridge**
- WebSocket or Native Messaging
- Real-time bidirectional communication
- Event streaming for live updates
- Error handling and reconnection logic
## 🛠️ Planned Features
### Core Automation
- ✅ **Navigation**: `navigate(url)`, `back()`, `forward()`, `reload()`
- ✅ **Element Interaction**: `click(selector)`, `type(selector, text)`, `submit(form)`
- ✅ **Waiting**: `waitForElement(selector)`, `waitForNavigation()`, `waitForText(text)`
- ✅ **Scrolling**: `scrollTo(selector)`, `scrollIntoView(element)`
### Advanced Interaction
- ✅ **Form Handling**: `fillForm(data)`, `selectOption(selector, value)`, `uploadFile(selector, path)`
- ✅ **Drag & Drop**: `dragAndDrop(from, to)`
- ✅ **Keyboard/Mouse**: `pressKey(key)`, `hover(selector)`, `rightClick(selector)`
- ✅ **Multi-tab**: `openTab(url)`, `switchTab(index)`, `closeTab()`
### DevTools Integration
- ✅ **Console Access**: Live console logs, error monitoring, JavaScript execution
- ✅ **Network Monitoring**: Request/response tracking, performance metrics
- ✅ **Element Inspector**: DOM tree access, CSS inspection, element highlighting
- ✅ **Performance**: Memory usage, CPU profiling, page load metrics
### DOM & Data Extraction
- ✅ **Element Querying**: `querySelector()`, `findByText()`, `findByAttribute()`
- ✅ **Data Extraction**: `getText()`, `getAttribute()`, `getHTML()`, `getTableData()`
- ✅ **Page Analysis**: `getLinks()`, `getForms()`, `getImages()`, `getMetadata()`
- ✅ **Screenshot**: `captureScreenshot()`, `captureElement(selector)`
### AI-Friendly Features
- ✅ **Smart Element Detection**: Find clickable elements, form fields, navigation menus
- ✅ **Content Understanding**: Extract structured data, identify page sections
- ✅ **Error Recovery**: Automatic retry logic, fallback selectors
- ✅ **Context Awareness**: Track page state, navigation history, user sessions
## 🎯 Target Use Cases
### Web Automation
- **Form Filling**: Automatically fill out job applications, surveys, registrations
- **Data Extraction**: Scrape product information, research data, contact details
- **Testing**: Automated UI testing, regression testing, accessibility testing
- **Monitoring**: Track website changes, price monitoring, availability checking
### AI Agent Integration
- **Research Tasks**: Navigate websites, extract information, compile reports
- **E-commerce**: Product research, price comparison, order tracking
- **Social Media**: Content posting, engagement tracking, audience analysis
- **Productivity**: Calendar management, email automation, document processing
### Development & Debugging
- **Performance Analysis**: Page speed testing, resource optimization
- **Accessibility Auditing**: WCAG compliance checking, screen reader testing
- **Cross-browser Testing**: Compatibility verification, feature detection
- **API Testing**: Frontend-backend integration testing
## 🚀 Getting Started
### Prerequisites
- Chrome browser (latest version)
- Node.js 18+
- MCP-compatible AI client (Claude Desktop, Cursor, etc.)
### Installation
```bash
# Clone the repository
git clone https://github.com/your-username/browser-agent-mcp.git
cd browser-agent-mcp
# Install dependencies
npm install
# Build the extension
npm run build
# Load extension in Chrome
# 1. Open chrome://extensions/
# 2. Enable "Developer mode"
# 3. Click "Load unpacked" and select the dist/ folder
# Start the MCP server
npm run start
```
### Configuration
```json
{
"mcpServers": {
"browser-agent": {
"command": "node",
"args": ["path/to/browser-agent-mcp/server.js"]
}
}
}
```
## 🤝 Contributing
We welcome contributions! This project aims to be the definitive browser automation solution for AI agents.
### Development Priorities
1. **Core automation features** (navigation, clicking, typing)
2. **DevTools integration** (console, network, elements)
3. **Reliability improvements** (error handling, reconnection)
4. **AI-friendly APIs** (smart element detection, context awareness)
5. **Performance optimization** (efficient DOM queries, memory management)
### Areas for Contribution
- **Extension Development**: Chrome APIs, content scripts, background workers
- **MCP Server**: Protocol implementation, command handling, response formatting
- **Testing**: Automated testing, browser compatibility, edge case handling
- **Documentation**: API docs, tutorials, example use cases
## 📋 Roadmap
### Minimal Viable Product (MVP)
Core features needed for basic AI agent browser interaction:
- [ ] **DOM Read Access**: Query elements, extract text/attributes, get page structure
- [ ] **Console Logs Read Access**: Monitor JavaScript console output, errors, warnings
- [ ] **Network Logs Read Access**: Track HTTP requests/responses, API calls, resource loading
### Phase 1: Foundation (Weeks 1-2)
- [ ] Basic Chrome extension structure (manifest, content scripts, background worker)
- [ ] MCP server implementation (protocol handling, command routing)
- [ ] **MVP: DOM read access** (`querySelector`, `getText`, `getAttributes`, `getHTML`)
- [ ] **MVP: Console logs monitoring** (capture console.log, errors, warnings)
- [ ] **MVP: Network request tracking** (monitor XHR, fetch, resource requests)
### Phase 2: Core Automation (Weeks 3-4)
- [ ] Navigation commands (`navigate`, `back`, `forward`, `reload`)
- [ ] Element interaction (`click`, `type`, `submit`)
- [ ] Basic waiting mechanisms (`waitForElement`, `waitForNavigation`)
- [ ] Screenshot capabilities (`captureScreenshot`, `captureElement`)
### Phase 3: Advanced Features (Weeks 5-6)
- [ ] Form automation (`fillForm`, `selectOption`, `uploadFile`)
- [ ] Multi-tab management (`openTab`, `switchTab`, `closeTab`)
- [ ] Advanced DOM querying (`findByText`, `findByAttribute`, `getTableData`)
- [ ] Drag & drop functionality (`dragAndDrop`)
### Phase 4: AI Optimization (Weeks 7-8)
- [ ] Smart element detection (find clickable elements, form fields, navigation menus)
- [ ] Context-aware responses (track page state, navigation history)
- [ ] Error recovery mechanisms (automatic retry logic, fallback selectors)
- [ ] Performance optimization (efficient DOM queries, memory management)
### Phase 5: Polish & Distribution (Weeks 9-10)
- [ ] Comprehensive testing (automated testing, browser compatibility)
- [ ] Documentation completion (API docs, tutorials, example use cases)
- [ ] Chrome Web Store preparation (store listing, permissions review)
- [ ] Community feedback integration (user testing, feature requests)
## 📄 License
MIT License - see [LICENSE](LICENSE) for details.
## 🙏 Acknowledgments
Inspired by and building upon:
- [Microsoft Playwright MCP](https://github.com/microsoft/playwright-mcp)
- [AgentDesk BrowserTools MCP](https://github.com/AgentDeskAI/browser-tools-mcp)
- [Browser MCP Extension](https://chromewebstore.google.com/detail/browser-mcp)
---
**Goal**: Create the most comprehensive, reliable, and AI-friendly browser automation MCP that works seamlessly with your existing Chrome browser.