@browseagent/mcp
v1.0.1
Published
Browseagent MCP enables AI applications to take control of your browser.
Downloads
6
Maintainers
Readme
Browseagent MCP
✨ Features
- 🌐 Full Browser Control - Navigate, click, type, and interact with any website
- 📸 Screenshots & Analysis - Capture and analyze web pages visually
- 🎯 Smart Element Detection - AI-powered element identification and interaction
- 🔄 Real-time Automation - Dynamic connection with Chrome extension
🚀 Quick Start
See Documentation
🔒 Security & Privacy
- ✅ Local Communication - All data stays on your machine
- ✅ No Data Collection - We don't store or transmit your browsing data
- ✅ Permission Based - Extension only accesses tabs when explicitly used
- ✅ Open Source - Full transparency in code and operations
🏗️ Development
Local Development Setup
# Clone the repository
git clone https://github.com/browseagent/mcp.git
cd mcp
# Install dependencies
npm install
# Create global symlink for development
npm link
# Test the server
npm run testTesting with Claude Desktop (Development)
For local development and testing with Claude Desktop:
# 1. Create global link (one time setup)
npm link
# 2. Configure Claude Desktop to use your local versionAdd to your Claude Desktop MCP configuration:
{
"mcpServers": {
"browseagent-dev": {
"command": "npx",
"args": ["@browseagent/mcp", "--debug"]
}
}
}Development Workflow:
- Make changes to your code
- Test locally:
npm test - Test with Claude Desktop: Restart Claude Desktop to reload the linked package
- Iterate and repeat
Alternative: Direct Path Development
For more direct control during development:
{
"mcpServers": {
"browseagent-dev": {
"command": "node",
"args": ["/absolute/path/to/your/project/src/index.js", "--debug"],
"cwd": "/absolute/path/to/your/project"
}
}
}Running in Development Mode
# Run with debugging enabled
npm run dev
# Run with WebSocket mode for extension testing
npm run dev -- --websocket
# Run with watch mode for auto-restart during development
npm run dev -- --websocket --debug🧪 Comprehensive Testing Suite
The project includes a full testing suite to validate all components:
Core Test Commands
# Run full test suite
npm test
# Run all manual tests sequentially
npm run test:all
# Watch mode - auto-run tests on file changes
npm run test:watchIndividual Test Suites
1. Connection Tests (test:connection)
npm run test:connectionWhat it tests:
- ✅ Server startup and initialization
- ✅ WebSocket server creation and binding
- ✅ Extension bridge protocol handshake
- ✅ Architecture validation (STDIO vs WebSocket separation)
- ✅ Port conflict resolution
- ✅ Error handling and timeout scenarios
Use when: Setting up development environment or diagnosing connection issues.
2. Tools Tests (test:tools)
npm run test:toolsWhat it tests:
- ✅ Tool registry loading and structure validation
- ✅ Tool argument validation (required/optional fields)
- ✅ Schema completeness and type checking
- ✅ Tool categorization (navigation, interaction, utility, inspection)
- ✅ Input constraint validation (min/max values, patterns)
- ✅ Error message accuracy for invalid inputs
Use when: Adding new tools or modifying existing tool schemas.
3. Debug Tests (test:debug)
npm run test:debugWhat it tests:
- ✅ Bridge ↔ Server communication flow
- ✅ Extension connection event propagation
- ✅ Tool call request/response cycle
- ✅ Mock extension handshake simulation
- ✅ Event listener setup and cleanup
- ✅ Status synchronization between components
Use when: Debugging communication issues between bridge and server.
4. Interactive Tool Tests (test:tool)
npm run test:toolWhat it provides:
- 🎮 Interactive CLI for manual tool testing
- 🔧 Real-time tool execution with live extension
- 📊 Connection status monitoring
- 🎯 Specific tool argument input and validation
- 📝 Step-by-step debugging of tool calls
Use when: Manually testing specific tools with real browser extension.
Test Modes
STDIO Mode Testing (Production)
# Test STDIO mode (what Claude Desktop uses)
node src/index.js --debug
# Send test MCP message
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | node src/index.jsWebSocket Mode Testing (Development)
# Test WebSocket mode (for extension testing)
node src/index.js --websocket --debugAdvanced Testing Scenarios
Integration Testing
# Test with specific port
npm run test:connection -- --port 9999
# Test with timeout scenarios
npm run test:debug -- --timeout 5000
Development Tools
Linting and Code Quality
# Run ESLint
npm run lint
Debugging Tools
# Verbose logging
npm run dev -- --debugDevelopment Scripts
# Start in development mode
npm run start
# Start with debugging enabled
npm run dev
# Quick development test
npm run dev -- --websocket --debugTesting Best Practices
Before Committing
# Run full validation suite
npm run test:all
npm run lint
# Test both modes
node src/index.js --debug # STDIO mode
node src/index.js --websocket --debug # WebSocket modeContinuous Testing During Development
# Watch mode for automatic test runs
npm run test:watch
# Development mode with auto-restart
nodemon src/index.js -- --websocket --debugTesting with Real Extension
- Install Chrome extension
- Run interactive tool tester:
npm run test:tool - Connect extension via popup
- Test specific tools interactively
- Verify results in browser
Troubleshooting Development Issues
Common Development Problems
| Issue | Test Command | Solution |
|-------|-------------|----------|
| Extension not connecting | npm run test:connection | Check WebSocket port availability |
| Tool validation failing | npm run test:tools | Review tool schema definitions |
| Bridge communication broken | npm run test:debug | Verify event listener setup |
| Performance issues | node --inspect src/index.js | Profile memory/CPU usage |
Debug Logging Levels
# Minimal logging
node src/index.js
# Standard debug logging
node src/index.js --debug
# Verbose component logging
DEBUG=* node src/index.js --debug
# Specific component debugging
DEBUG=ExtensionBridge,MCPServer node src/index.js --debugBuilding from Source
# Install from source
npm install -g .
# Or run directly
node src/index.js --debug
# Package for distribution
npm pack🤝 Contributing
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Set up development environment:
npm install && npm link - Make your changes and test:
npm test - Test with Claude Desktop using the development configuration
- Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
Development Setup
# Clone your fork
git clone https://github.com/your-username/browseagent-mcp.git
cd browseagent-mcp
# Install dependencies
npm install
# Create development link
npm link
# Install the Chrome extension in development mode
npm run build:extension
# Test your changes
npm testDevelopment Tools
- ESLint:
npm run lint - Tests:
npm test - Debug mode:
npm run dev -- --debug - WebSocket mode:
npm run dev -- --websocket
📝 API Reference
MCP Protocol
This server implements the Model Context Protocol specification:
- Protocol Version:
2024-11-05 - Capabilities: Tools
- Transport: stdio
Tool Schemas
All tools follow the MCP tool schema format. See the API documentation for detailed schemas and examples.
🗂️ Project Structure
src/
├── index.js # Main entry point
├── server/ # MCP server implementation
│ ├── MCPServer.js # Core MCP protocol handler
│ └── transports/ # Communication transports
├── bridge/ # Chrome extension bridge
│ └── ExtensionBridge.js
├── tools/ # Tool definitions and registry
│ └── ToolRegistry.js
├── utils/ # Utilities and helpers
│ └── Logger.js
├── config/ # Configuration management
| └── Config.js
└── test/
├── connection.test.js # Test connection script
└── tools.test.js # Test tools script
📚 Documentation
🆘 Support
- 🐛 Bug Reports: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: [email protected]
- 🐦 Twitter: @Browseagent
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Anthropic - For MCP protocol
- Chrome Extension API - For enabling secure browser automation
- Open Source Community - For tools and inspiration
🐦 Follow updates • 📖 Read docs
Made with ❤️ by the BoostGPT team
