Model Context Protocol (MCP) server for agent-browser - providing complete browser automation capabilities for AI agents.
This project is an independent MCP server implementation that wraps the excellent agent-browser CLI tool, making its powerful browser automation features available through the Model Context Protocol.
- 🔧 44 Tools - Complete coverage of agent-browser's functionality
- 🎯 Token-Efficient @ref System - Reduces token usage by caching element references
- 🌐 Full Playwright API - Leverage the complete browser automation capabilities
- 🔄 Auto-Launch - Browser starts automatically when needed
- 💾 State Persistence - Save and restore browser state across sessions
- 🎬 Video Recording - Record browser sessions for debugging
- 🌐 Network Interception - Monitor and modify network requests
- 📊 Session Management - Manage multiple tabs and windows
npm install agent-browser-mcp-servergit clone https://github.com/hughedward/agent_browser_mcp.git
cd agent_browser_mcp
npm install
npm run build- Install the package
- Configure in Claude Desktop settings (
~/.claude/settings.json):
{
"mcpServers": {
"agent-browser-mcp-server": {
"command": "npx",
"args": ["agent-browser-mcp-server"],
"env": {
"HEADED": "false"
}
}
}
}agent-browser-mcp-serverbrowser_navigate- Navigate to a URLbrowser_snapshot- Capture page structure with @ref systembrowser_screenshot- Take screenshotsbrowser_close- Close browser/page
browser_back- Go back in historybrowser_forward- Go forward in historybrowser_reload- Reload the current page
browser_click- Click an elementbrowser_fill- Fill input fieldsbrowser_type- Type without clearingbrowser_select- Select dropdown optionsbrowser_check/browser_uncheck- Check/uncheck checkboxesbrowser_drag- Drag and dropbrowser_upload- Upload filesbrowser_dblclick- Double clickbrowser_focus- Focus elementsbrowser_hover- Hover over elementsbrowser_scroll- Scroll pagebrowser_press- Press keyboard keys
browser_find- Semantic element search (role, text, label, placeholder, etc.)browser_get- Get element informationbrowser_is- Check element state
browser_tab- Manage tabsbrowser_window- Manage windowsbrowser_frame- Switch to iframes
browser_record- Record browser sessionsbrowser_network- Monitor network requestsbrowser_console- Access consolebrowser_errors- Track JavaScript errorsbrowser_trace- Performance tracingbrowser_profiler- Chrome DevTools profilingbrowser_evaluate- Execute JavaScriptbrowser_pdf- Export to PDFbrowser_dialog- Handle JavaScript dialogsbrowser_download- Manage downloads
browser_state- Save/load browser statebrowser_cookies- Manage cookiesbrowser_storage- Access localStorage/sessionStorage
browser_wait- Wait for conditionsbrowser_set- Set element attributesbrowser_mouse- Mouse controlbrowser_diff- Compare pagesbrowser_highlight- Debug highlighting
Environment Variables:
| Variable | Description | Default |
|---|---|---|
HEADED |
Run in headed mode (visible browser) | false |
BROWSER |
Browser to use (chromium/firefox/webkit) | chromium |
# Install dependencies
npm install
# Build
npm run build
# Run in development mode (auto-rebuild)
npm run dev
# Run tests
npm test
# Watch mode
npm run test:watch
# Start server
npm start- CLAUDE.md - Development guide for Claude Code
- TESTING_GUIDE.md - Testing instructions
- QUICK_TEST_GUIDE.md - Quick reference
- agent-browser - Original CLI tool this project wraps
- Model Context Protocol - The protocol this server implements
Apache-2.0
Note: This project is an independent implementation and is not officially affiliated with Vercel or the original agent-browser project.