The world's first browser tools project built using AgileAI - a revolutionary Agile methodology for human-AI collaborative development!
AgileAI combines XML-driven architecture, specialized AI agents, break-point methodology, and complete user control to create transparent, quality-assured collaborative development.
A powerful set of 9 browser automation tools built collaboratively with specialized AI agents:
- Complete re-write using AgileAI methodology
- 100% June 2025 MCP specification compliant
- Chrome extension with modern Manifest V3 architecture
Ready to experience revolutionary AI collaboration? See AgileAI_KickStart.md for 5-minute setup!
- REVOLUTIONARY: World's first Agile methodology for human-AI collaborative development
- 8 Claude Identity Agents: Ready for interactive collaboration (GitHub Issues #40-47)
- Next Priority: Agent B - Framework Specialist for Chrome extension architecture
- Implementation: 100% June 2025 MCP-compliant with AgileAI break-point methodology
- MCP Method:
mcp-server/server.mjs+mcp-server/http-bridge.mjs(port 3024)
World's first complete AI collaborative development platform!
- π¦ AgileAI Methodology: Revolutionary Agile methodology for human-AI collaborative development
- β Foundation Merged: Complete infrastructure with contracts, base classes, registry system
- ποΈ Core Architecture: TypeScript interfaces, quality gates, monitoring system
- π€ Agent Universes: 9 agents in 4 logical batches for systematic development
- π Contract-Driven: OpenAPI specifications and comprehensive quality requirements
- π― Complete Documentation: AgileAI KickStart Guide | Agent Specifications
Current Status - Foundation Complete, Ready for Batch 2:
- β
Batch 1: Agent A (Foundation) - COMPLETED & MERGED
- Contracts: OpenAPI 3.0 specification, quality gates
- Core: Base classes, interfaces, registry system
- Infrastructure: Service worker, monitoring, MCP handler
- π― Batch 2: Agent B (Framework) - NEXT TO DEPLOY
- UI Framework & Component System
- π― Batch 3: Agents C,D,E (Core Tools) - Working in OLD extension, NEW implementation needed
- browser_navigate, browser_screenshot, browser_click, browser_type, browser_wait
- π― Batch 4: Agents F,G,H,I (Advanced Tools) - Broken in OLD extension, NEW implementation needed
- browser_evaluate, browser_audit, browser_get_console, browser_get_content
main: Default stable branch- Agent branches: Each agent works in dedicated development reality
- Foundation: Infrastructure merged and operational
Working in OLD AgentDesk Chrome Ext. Need to be Implemnted in OUR new Chrome Ext:
- browser_navigate - Successfully navigates to URLs (NEW implementation needed)
- browser_screenshot - Captures screenshots perfectly (NEW implementation needed)
- browser_click - Clicks elements successfully (NEW implementation needed)
- browser_type - Types text into input fields (NEW implementation needed)
- browser_wait - Waits for elements to appear (NEW implementation needed)
Broken in OLD AgentDesk Chrome Ext. & Need to be Implemnted in OUR new Chrome Ext: 6. browser_evaluate - Timeout error when executing JavaScript (NEW implementation needed) 7. browser_get_content - Request timeout (NEW implementation needed) 8. browser_audit - Returns HTML instead of JSON (NEW implementation needed) 9. browser_get_console - Request timeout (NEW implementation needed)
π― Our Goal: Build ALL 9 tools from scratch using our foundation infrastructure (.mjs modules)
Enterprise-grade standards for all AgileAI agents:
- See gh issues 30-34
- Facilitates multi-tasking: user can operate computer without interfering with autonomous browser-testing by AI agent
- Uses fewer resources
- Faster navigation
- Accurate pick up of errors by AI agents
- Agents better at checking results of changes (user does not find app "broken" as often, while agent declares 100% fixed)
- AI agents faster at reading console errors than screenshots
- Autonomous AI agent screenshots as per Puppeteer, but faster
- One-click screenshots through Chrome extension
- Accessibility
- SEO
- Performance
- Leverage AgentDesk's original Chrome Extension "Browser Tools"
- Set Port Number or let Extension scan ports
- Update screenshots directory
- Configure log/query/string length and wipe logs
- Include Request/Response headers
- Toggle Auto-Paste to Cursor
We built our own browser tools MCP server to address critical protocol violations in the original npm package maintained by agentdeskai, which used the older > June 2025 MCP specification and no longer functioned.
- 100% 2025-06-18 MCP protocol compliant
- Clean stdio implementation
- Proper error handling
- Exit Claude Code (or do not start it yet)
/exit- Configure Claude Code MCP tools in .mcp.json: e.g. inside project directory
.mcp.json
( TOGGLE DEBUG MODE either ON: "1" or OFF: "0" )
{
"mcpServers": {
"mcp-claude-code-browser-tools": {
"type": "stdio",
"command": "node",
"args": [
"/Users/lennox/development/browser-tools-setup/mcp-server/server.mjs"
],
"env": {
"BROWSER_TOOLS_PORT": "3024",
"MCP_DEBUG": "1"
}
}
}
}
- Install and Prepare Claude Code Browser Tools (first time only)
# Install the MCP server and scripts
==TO-BE-DETERMINED==
# First time only - install dependencies
npm install
# Make script executable (
chmod +x mcp-server/start.sh- Start the HTTP Bridge Server (port 3024) in NEW Terminal Tab/Window starts on **Port 3024
# Start MCP HTTP bridge (for Claude Code) - PREFERRED METHOD
./mcp-server/start.sh
# CRITICAL - Working Directory Matters:
# β
Use script: ./mcp-server/start.sh (handles working directory correctly)
# β
Or direct: node mcp-server/http-bridge.mjs (from project root)
# β Never: cd mcp-server && node http-bridge.mjs (wrong working directory)-
Download/install Browser Tools Chrome extension from https://github.com/ahelme/mcp-claude-code-browser-tools/tree/main/chrome-extension
-
Activate Chrome Extension: Open Developer Tools (F12) & select Browser Tools tab
NOTE: Browser Tools tab MUST BE ACTIVE
-
Re/Start Claude Code in FIRST terminal window/tab:
$ claude -
Configure Browser Tools Chrome Extension Port to 3024 Set via UI form field "Server Connection Settings > Server Port to 3024"
This will connect extension to Claude Code Browser Tools MCP Server (via http bridge).
Complete Protocol Documentation is available for developers and AI agents:
# Start comprehensive documentation server
./chrome-extension/start-docs.shAvailable Endpoints:
- π Documentation Portal: http://localhost:3020/docs - Combined REST & WebSocket docs
- π REST API docs: http://localhost:3020/rest-docs - OpenAPI/Swagger UI
- π WebSocket docs: http://localhost:3020/ws-docs - AsyncAPI protocol docs
- π OpenAPI spec: http://localhost:3020/openapi.yaml - REST API contract
- π‘ AsyncAPI spec: http://localhost:3020/asyncapi.yaml - WebSocket protocol contract
- π€ AI-discoverable: http://localhost:3020/health - Complete protocol metadata
- π JSON formats: http://localhost:3020/openapi.json | http://localhost:3020/asyncapi.json
Features:
- β Dual Protocol Support - REST (OpenAPI 3.0.3) + WebSocket (AsyncAPI 3.0.0)
- β Interactive testing - test REST API directly from browser
- β Protocol visualization - AsyncAPI Studio integration for WebSocket protocol
- β AI-agent friendly - auto-discoverable endpoints and standard formats
- β Contract-driven - single source of truth prevents documentation drift
- β Always accurate - reflects actual implementation
Port Layout:
- 3020 - API Documentation Server
- 3024 - MCP HTTP Bridge (main functionality)
- 3025+ - Multi-project instances
Check if working:
# See configured server
cat .claude/mcp.json | grep browser-tools
# Test MCP HTTP bridge (port 3024)
curl http://localhost:3024/health
# Debug MCP server
MCP_DEBUG=1 node mcp-server/server.mjsSet MCP_DEBUG=1 in .mcp.json (see above).
Option to run direct http connection via Port 3026
# Starts the direct MCP HTTP bridge on port 3026
./mcp-server/mcp-server/start-direct-browser-tools.sh
# Test Direct HTTP bridge (port 3026)
curl http://localhost:3026/health
Main Method (MCP): Claude Code <--[stdio]--> MCP Server <--[HTTP:3024]--> MCP Bridge <--[WebSocket]--> Chrome Extension
Backup Method (Direct): External Tool <--[HTTP:3026]--> Direct Bridge <--[WebSocket]--> Chrome Extension
- Monitors XHR requests/responses and console logs
- Tracks selected DOM elements
- Sends all logs and current element to the BrowserTools Connector
- Connects to Websocket server to capture/send screenshots
- Allows user to configure token/truncation limits + screenshot folder path
- Acts as middleware between the Chrome extension and MCP server
- Receives logs and currently selected element from Chrome extension
- Processes requests from MCP server to capture logs, screenshot or current element
- Sends Websocket command to the Chrome extension for capturing a screenshot
- Intelligently truncates strings and # of duplicate objects in logs to avoid token limits
- Removes cookies and sensitive headers to avoid sending to LLMs in MCP clients
- Implements the Model Context Protocol
- Provides standardized tools for AI clients
- Compatible with various MCP clients (Cursor, Cline, Zed, Claude Desktop, etc.)
See mcp-server/mcp-server_docs/CODE-ARCHITECTURE.md for more details.
IMPORTANT: Port 3024 is reserved for MCP server method.
Run browser tools across multiple projects simultaneously without port conflicts!
The MCP server uses environment variables to allow custom port configuration, making it easy to run multiple instances.
Each project can specify its own port in .mcp.json:
{
"mcpServers": {
"mcp-claude-code-browser-tools": {
"type": "stdio",
"command": "node",
"args": ["path/to/mcp-server/server.mjs"],
"env": {
"BROWSER_TOOLS_PORT": "3025", // Custom port for this project
"MCP_DEBUG": "1"
}
}
}
}Start with custom ports using environment variables:
# Project A (default port)
cd /path/to/project-a
./mcp-server/start.sh
# β Runs on port 3024
# Project B (custom port)
cd /path/to/project-b
BROWSER_TOOLS_PORT=3025 ./mcp-server/start.sh
# β Runs on port 3025
# Project C (another custom port)
cd /path/to/project-c
BROWSER_TOOLS_PORT=3026 ./mcp-server/start.sh
# β Runs on port 3026- Install Browser Tools extension once from https://browsertools.agentdesk.ai/
- Switch between projects by changing the port in extension settings:
- Project A: Set port to
3024 - Project B: Set port to
3025 - Project C: Set port to
3026
- Project A: Set port to
- Or use multiple Chrome profiles - each with different port settings
# Terminal 1 - Project A (React app)
cd ~/projects/my-react-app
./mcp-server/start.sh # port 3024
claude # Start Claude Code
# Terminal 2 - Project B (Vue app)
cd ~/projects/my-vue-app
BROWSER_TOOLS_PORT=3025 ./mcp-server/start.sh # port 3025
claude # Start Claude Code
# Terminal 3 - Project C (Angular app)
cd ~/projects/my-angular-app
BROWSER_TOOLS_PORT=3026 ./mcp-server/start.sh # port 3026
claude # Start Claude CodeNow you can work on multiple projects simultaneously! π
- 3024: Default (Project A)
- 3025-3030: Additional projects
- 3031+: Available for other tools
All tools are prefixed with mcp__browser-tools__:
navigate- Go to URLscreenshot- Capture page/elementclick- Click elementstype- Enter textevaluate- Run JavaScriptget_content- Get HTMLaudit- Run Lighthousewait- Wait for elementsget_console- Get console logs
// Navigate to a page
mcp__browser-tools__navigate({ url: "https://example.com" })
// Take screenshot
mcp__browser-tools__screenshot({ fullPage: true })
// Click button
mcp__browser-tools__click({ selector: "#submit-button" })Guide to usage of available tools: TOOLS_GUIDE.md
mcp-server/server.mjs- MCP servermcp-server/http-bridge.mjs- MCP HTTP bridgemcp-server/start.sh- Start script for MCP
mcp-server/mcp-server/direct-http-bridge.js- Direct HTTP bridgemcp-server/mcp-server/start-direct-browser-tools.sh- Start script for direct
~/.claude/mcp.json- ==(DANGEROUS TO MODIFY)== User-level MCP configuration (Claude Code).mcp.json- Project-level MCP configuration (local config and team collaboration).screenshots/- Screenshot outputs
The MCP server supports several environment variables for customization:
| Variable | Default | Description | Example |
|---|---|---|---|
BROWSER_TOOLS_PORT |
3024 |
HTTP bridge port for MCP server | 3025 |
MCP_HTTP_BRIDGE_PORT |
3024 |
Alternative name for same setting | 3026 |
MCP_DEBUG |
0 |
Enable detailed debug logging | 1 |
Problem: "Error: listen EADDRINUSE: address already in use :::3024"
Solutions:
# 1. Check what's using the port
lsof -i :3024
# 2. Kill existing process
pkill -f "mcp-http-bridge"
# 3. Or use a different port
BROWSER_TOOLS_PORT=3025 ./mcp-server/start.shProblem: Running multiple projects simultaneously
Solution: Use different ports per project
# Check active browser tools processes
ps aux | grep mcp-http-bridge
# See which ports are in use
lsof -i :3024-3030
# Start each project with unique port
cd project-a && BROWSER_TOOLS_PORT=3024 ./mcp-server/start.sh
cd project-b && BROWSER_TOOLS_PORT=3025 ./mcp-server/start.shTo modify MCP server configurations:
- Edit
.mcp.jsonin codebase root - Restart Claude Code to apply changes
- Test server connectivity with debug mode:
MCP_DEBUG=1
{
"mcpServers": {
"claude-code-browser-tools": {
"type": "stdio",
"command": "node",
"args": [
"mcp-server/claude-code-browser-tools.js"
],
"env": {
"BROWSER_TOOLS_PORT": "3024",
"MCP_DEBUG": "1"
}
}
}
}- File Location: Place
.mcp.jsonin codebase root directory configured using latest specification - Server Types: All servers use
"type": "stdio"for JSON-RPC communication - Environment Variables: Configure ports and debug modes in the
envsection - Path Requirements: Use absolute paths for local scripts (e.g., our browser-tools-mcp-2025.js)
- NPX Dependencies: External packages can be run with
npx -yfor auto-installation
- Works with Claude Code
- May work with other MCP-compatible clients e.g. Cursor IDE integration
- TOOLS-GUIDE.md - Guide to use of available tools
- CODE-ARCHITECTURE.md - Full technical details
- MCP HTTP bridge uses port 3024 (for Claude Code)
- Direct HTTP bridge uses port 3026 (for API access)
- Chrome extension required for browser control
- MCP servers that are configured in .mcp.json auto-start with Claude Code
- Debug output goes to stderr only (MCP_DEBUG=1)