MCP Browser Automation
algonius/algonius-browser · 19 stars · TypeScript · Apache-2.0
MCP server MCP browser automation server. Exposes browser control tools to external AI systems via Model Context Protocol. Open-source & secure.
Install
The repo has no one-line install. Follow its README.
Files
MCP Browser Automation
🌐 Overview
Algonius Browser is an open-source MCP (Model Context Protocol) server that provides browser automation capabilities to external AI systems. It exposes a comprehensive set of browser control tools through the MCP protocol, enabling AI assistants and other tools to navigate websites, interact with DOM elements, and extract web content programmatically.
🎯 Key Features
- MCP Protocol Integration: Standard interface for AI systems to control browser automation
- Chrome Extension: Background service worker that handles browser interactions
- Native Messaging: Go-based MCP host that bridges Chrome extension with external tools
- Comprehensive Tool Set: 5 browser automation tools + 2 MCP resources
- Type Safety: Full TypeScript implementation with structured error handling
- Testing Suite: Comprehensive integration tests for all functionality
🛠️ Available MCP Tools
Navigation & Tabs
navigate_to: Navigate to URLs with configurable timeout handlingmanage_tabs: Create, close, and switch between browser tabs
DOM Interaction
get_dom_extra_elements: Advanced DOM element extraction with pagination and filteringclick_element: Click DOM elements using CSS selectors or text matchingset_value: Set values in input fields, textareas, and form elementsscroll_page: Scroll pages up or down with customizable distances
📋 Available MCP Resources
Browser State Resources
-
browser://current/state: Complete current browser state in AI-friendly Markdown format- Active tab information
- All browser tabs with URLs, titles, and status
- Real-time state updates via resource notifications
-
browser://dom/state: Current DOM state overview in Markdown format- Page metadata (URL, title, scroll position)
- First 20 interactive elements
- Total element count with "more available" indicators
- Simplified DOM structure
- Auto-updates when page changes
🚀 Quick Start
1. Install Chrome Extension
From Chrome Web Store (Recommended):
- Click the "Add to Chrome" button on the Chrome Web Store page
- Confirm the installation when prompted
- The extension will be automatically installed and ready to use
From Source (Development):
# Clone and build git clone https://github.com/algonius/algonius-browser.git cd algonius-browser pnpm install pnpm build # Load in Chrome # 1. Open chrome://extensions/ # 2. Enable "Developer mode" # 3. Click "Load unpacked" # 4. Select the 'dist' folder
⚠️ Important: The Chrome extension requires the MCP Host backend service to function properly. Please continue with step 2 to complete the installation.
2. Install MCP Host
One-Click Installation (Recommended):
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/algonius/algonius-browser/master/install-mcp-host.sh | bash
Windows (PowerShell):
iwr -useb https://raw.githubusercontent.com/algonius/algonius-browser/master/install-mcp-host.ps1 | iex
Manual Installation:
# Download latest release wget https://github.com/algonius/algonius-browser/releases/latest/download/mcp-host-linux-x86_64.tar.gz # Extract and install tar -xzf mcp-host-linux-x86_64.tar.gz cd mcp-host-linux-x86_64 ./install.sh
3. Verify Installation
# Test the MCP host installation mcp-host-go --version # The MCP host will be automatically started when needed by the Chrome extension # You should see the extension icon in your Chrome toolbar
✅ Success: Both components are now installed! The Chrome extension will automatically communicate with the MCP Host when browser automation is requested.
🔧 Integration Examples
Using with AI Assistants
Once installed, AI systems can use the browser automation tools and resources through the MCP protocol:
Tool Usage:
{
"method": "tools/call",
"params": {
"name": "navigate_to",
"arguments": {
"url": "https://example.com",
"timeout": 30000
}
}
}
Resource Access:
{
"method": "resources/read",
"params": {
"uri": "browser://current/state"
}
}
Common Workflows
Web Scraping:
navigate_to→ Navigate to target site- Read
browser://dom/state→ Get page overview get_dom_extra_elements→ Get specific elements with paginationclick_element→ Interact with elements- Read
browser://dom/state→ Extract updated content
Form Automation:
navigate_to→ Go to form page- Read
browser://dom/state→ Identify form elements set_value→ Fill form fieldsclick_element→ Submit form- Read
browser://current/state→ Verify completion
Multi-Tab Management:
- Read
browser://current/state→ Check current tabs manage_tabs→ Create/switch tabsnavigate_to→ Load content in each tab- Read
browser://current/state→ Monitor all tab states
Page Navigation with Scrolling:
navigate_to→ Go to target page- Read
browser://dom/state→ Get initial page state scroll_page→ Scroll to load more contentget_dom_extra_elements→ Extract newly loaded elements
🏗️ Architecture
External AI System
↓ (MCP Protocol)
MCP Host (Go)
↓ (Native Messaging)
Chrome Extension
↓ (Chrome APIs)
Browser Tabs
Components
- MCP Host: Go-based native messaging host that implements MCP protocol
- Chrome Extension: Background service worker with tool handlers
- Content Scripts: DOM interaction and data extraction utilities
- Integration Tests: Comprehensive test suite for all tools
🧪 Development
Build from Source
Prerequisites:
- Node.js 22.12.0+
- pnpm 9.15.1+
- Go 1.21+ (for MCP host)
Build Extension:
pnpm install pnpm build
Build MCP Host:
cd mcp-host-go make build
Run Tests:
# Extension tests pnpm test # MCP host tests cd mcp-host-go make test
Development Mode
# Extension development pnpm dev # MCP host development cd mcp-host-go make dev
📊 Supported Platforms
MCP Host:
- Linux x86_64
- macOS Intel (x86_64) and Apple Silicon (arm64)
- Windows x86_64
Chrome Extension:
- Chrome/Chromium 88+
- Microsoft Edge 88+
📚 Documentation
Detailed documentation available in the docs/ directory:
🤝 Contributing
We welcome contributions! Check out our CONTRIBUTING.md for guidelines.
Ways to contribute:
- Report bugs and feature requests
- Submit pull requests for improvements
- Add integration tests
- Improve documentation
- Share usage examples
🔒 Security
For security vulnerabilities, please create a GitHub Security Advisory rather than opening a public issue.
💬 Community
- Discord - Chat with developers and users
- GitHub Discussions - Share ideas and ask questions
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
👏 Acknowledgments
Built with these excellent open-source projects:
Made with ❤️ by the Algonius Browser Team
Give us a star 🌟 if this project helps you build better browser automation!
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 19
- License
- Apache-2.0
- Language
- TypeScript
- Last push
- 2025-06-25
- Forks
- 9
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k