aironin-browse-mcp
v1.4.6
Published
aiRonin Browse MCP server with headed Chrome support
Maintainers
Readme
aiRonin Browse MCP Server
A Model Context Protocol (MCP) server for browser automation with headed Chrome support.
🚀 Quick Start
For Local Development:
# Install dependencies
npm install
# Start the server
npm startFor Production/End Users:
# Use npx (works everywhere)
npx --yes [email protected]For Dev Containers:
# Use npx (recommended - handles installation issues automatically)
npx --yes [email protected]
# Or install globally with resilient installation
npm install -g [email protected]Note: Version 1.2.10+ includes enhanced dev container support:
- ✅ Automatic detection of constrained environments (dev containers, codespaces)
- ✅ Graceful handling of SIGTERM during Puppeteer installation
- ✅ Multiple fallback installation strategies
- ✅ Works with remote browsers even if local Chromium installation fails
- ✅ Minimal server mode when dependencies are missing
📋 MCP Configuration
Standard Configuration (Recommended)
{
"mcpServers": {
"aironin-browse": {
"command": "npx",
"args": ["--yes", "aironin-browse-mcp@latest"],
"env": {
"NODE_ENV": "production",
"INSTALL_CHROMIUM": "false",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}With Local Chromium Download
{
"mcpServers": {
"aironin-browse": {
"command": "npx",
"args": ["--yes", "aironin-browse-mcp@latest"],
"env": {
"NODE_ENV": "production",
"INSTALL_CHROMIUM": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Dev Container Configuration
{
"mcpServers": {
"aironin-browse": {
"command": "npx",
"args": ["--yes", "aironin-browse-mcp@latest"],
"env": {
"NODE_ENV": "production",
"INSTALL_CHROMIUM": "false",
"REMOTE_BROWSER_ENABLED": "true",
"PUPPETEER_EXECUTABLE_PATH": "/usr/bin/google-chrome"
}
}
}
}🔧 Available Tools
Browser Control
launch_browser: Launch browser and navigate to URLclick_element: Click at specified coordinatestype_text: Type text into the browserscroll_page: Scroll the page up or downhover_element: Hover at specified coordinatesresize_browser: Resize browser windowclose_browser: Close the browser
Screenshot & Analysis
take_screenshot: Take a screenshot for AI agent analysiscapture_page: Capture a full page screenshotsave_screenshot: Take and save a screenshot to diskanalyze_page: Analyze the current page content
HTML Source Inspection
get_page_source: Get the full HTML source code of the current pageget_page_title: Get the title of the current pageget_page_meta: Extract meta tags and other page metadatainspect_element: Get HTML and properties of an element at specified coordinates
🌐 Remote Browser Support
The server automatically detects and uses:
- Local Chrome instances
- Remote Chrome instances (including Docker host)
- Headed Chrome for visibility
🔧 Troubleshooting
"No tools available" or "No server info found"
- Restart your MCP client (Cursor/Continue)
- Check that Node.js version is 20.0.0 or higher
- Verify the server is running:
npx --yes [email protected]
Dev Container Issues
- Use the latest version:
npx --yes [email protected] - The server will automatically use your host Chrome
- If Puppeteer installation fails, the server will still work with remote browsers
Permission Issues
- Use
npx --yesto avoid prompts - For global install:
sudo npm install -g [email protected]
Puppeteer Installation Issues
If you see Puppeteer installation errors in dev containers:
- The server will still work with remote browsers
- Start Chrome with:
chrome --remote-debugging-port=9222 - The server will auto-detect and connect to remote Chrome
Installation Issues
Package manager not found:
# npm comes bundled with Node.js (default) # npm should be available with Node.js installation # Or install pnpm (alternative) npm install -g pnpmPermission denied:
# Check permissions ls -la ~/.cursor/mcp.json chmod 644 ~/.cursor/mcp.jsonMCP server not starting:
# Test direct execution (choose one) npx --yes aironin-browse-mcp # Using npm (default) pnpm dlx aironin-browse-mcp # Using pnpm (alternative)
Browser Issues
Chrome not launching:
- Ensure sufficient disk space
- Check internet connection
- Verify Chrome is not already running
Remote browser connection fails:
- Start Chrome with:
chrome --remote-debugging-port=9222 - Check firewall settings
- Start Chrome with:
Common Errors
"Command not found":
- Restart Cursor after configuration changes
- Verify your package manager is installed and in PATH
- For npm:
which npm(should be available with Node.js) - For pnpm:
which pnpm
"MCP server failed to start":
- Check Node.js version (requires 20.0.0+)
- Verify all dependencies are installed
"No tools available" or "No prompts":
- Restart your MCP client (Cursor, Continue, etc.) after adding configuration
- Check that the MCP server is starting correctly in the logs
- Verify the configuration syntax is correct (no extra commas, proper JSON)
- Try the development configuration if production doesn't work
- Check that Node.js 20.0.0+ is installed and available
"Browser automation failed":
- Check Chrome/Chromium installation
- Verify sufficient system resources
📦 Installation Guide
Quick Installation
The MCP server is available as an npm package and will be automatically downloaded when you use it.
Option 1: npx (Default)
Add this to your MCP configuration:
{
"mcpServers": {
"aironin-browse": {
"command": "npx",
"args": ["--yes", "aironin-browse-mcp"],
"env": {
"NODE_ENV": "production",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Option 2: pnpm dlx (Alternative)
Add this to your MCP configuration:
{
"mcpServers": {
"aironin-browse": {
"command": "pnpm",
"args": ["dlx", "aironin-browse-mcp"],
"env": {
"NODE_ENV": "production",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Prerequisites
- Node.js: 20.0.0 or higher
- Package Manager:
- npm: 9.0.0 or higher (default)
- pnpm: 10.0.0 or higher (alternative)
- Chrome/Chromium: Will be downloaded automatically
- Cursor/Continue: MCP-compatible AI agent
Configuration
Cursor Configuration
Create or update .cursor/mcp.json:
Using npm (default):
{
"mcpServers": {
"aironin-browse": {
"command": "npx",
"args": ["--yes", "aironin-browse-mcp"],
"env": {
"NODE_ENV": "production",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Using pnpm (alternative):
{
"mcpServers": {
"aironin-browse": {
"command": "pnpm",
"args": ["dlx", "aironin-browse-mcp"],
"env": {
"NODE_ENV": "production",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Continue Configuration
Create or update ~/.continue/config.json:
Using npm (default):
{
"mcpServers": {
"aironin-browse": {
"command": "npx",
"args": ["--yes", "aironin-browse-mcp"],
"env": {
"NODE_ENV": "production",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Using pnpm (alternative):
{
"mcpServers": {
"aironin-browse": {
"command": "pnpm",
"args": ["dlx", "aironin-browse-mcp"],
"env": {
"NODE_ENV": "production",
"REMOTE_BROWSER_ENABLED": "true",
"SCREENSHOT_QUALITY": "75",
"BROWSER_VIEWPORT_SIZE": "900x600",
"BROWSER_NAVIGATION_TIMEOUT": "15000"
}
}
}
}Installation Options
Default Installation (Recommended for Dev Containers):
npm install # Skips Chromium download, uses system/remote ChromeWith Local Chromium Download:
INSTALL_CHROMIUM=true npm install # Downloads Chromium locallyConvenience Scripts:
npm run install:no-chromium # Explicit no-Chromium install
npm run install:with-chromium # Explicit with-Chromium install
npm run reinstall:no-chromium # Clean and reinstall without Chromium
npm run reinstall:with-chromium # Clean and reinstall with ChromiumDevelopment Setup
git clone <repository>
cd aironin-browse-mcp
npm install # Uses safe defaults
npm run build
npm startUsage Examples
Basic Browser Automation
// Launch browser and navigate
await launch_browser({ url: "https://example.com" });
// Click on an element
await click_element({ coordinates: "200,300" });
// Type text
await type_text({ text: "Hello World" });
// Take screenshot for analysis
await take_screenshot({ quality: 85 });
// Close browser
await close_browser({});Screenshot Analysis
// Take screenshot for AI analysis
await take_screenshot({ quality: 90 });
// Analyze page content
await analyze_page({ includeScreenshot: true });
// Save screenshot to disk
await save_screenshot({ filename: "result", quality: 85 });HTML Source Inspection
// Get full page source
await get_page_source({ includeComments: false });
// Get page title
await get_page_title({});
// Extract meta tags
await get_page_meta({ includeAllMeta: true });
// Inspect element at coordinates
await inspect_element({
coordinates: "200,300",
includeChildren: true,
});Verification
To verify your installation is working:
Test the MCP server directly:
# Using npm (default) npx --yes aironin-browse-mcp # Using pnpm (alternative) pnpm dlx aironin-browse-mcpCheck your MCP client logs for any error messages
Restart your MCP client (Cursor, Continue, etc.) after adding the configuration
Look for browser automation tools in your AI agent's available tools
Updates
To update to the latest version:
# For pnpm dlx installation (automatic)
# Just restart your MCP client - it will use the latest version
# For npx installation (automatic)
# Just restart your MCP client - it will use the latest version
# For global npm installation
npm update -g aironin-browse-mcpThen restart your MCP client (Cursor, Continue, etc.).
🏗️ Building
npm run build🧪 Testing
npm test📄 License
MIT
🆘 Support
- Issues: GitHub Issues
- Documentation: README.md
- Discussions: GitHub Discussions
