Airbrowser
Open-source browser automation API with anti-detection for AI agents, web scraping, and automation, providing undetectable Chrome via MCP and REST API with Cloudflare bypass.
README
Airbrowser
Open-source browser automation API with anti-detection — Undetectable Chrome for AI agents, web scraping, and automation. REST API + MCP server + VNC debugging. Selenium/Playwright alternative that bypasses Cloudflare.
Quick Start
Cloud Hosted (no setup)
Use the managed cloud version - no installation required:
Docker (one-liner)
docker run -d -p 18080:18080 --name airbrowser ghcr.io/ifokeev/airbrowser-mcp:latest
# With NVIDIA GPU (recommended for anti-detection)
docker run -d -p 18080:18080 --gpus all --device /dev/dri:/dev/dri --name airbrowser ghcr.io/ifokeev/airbrowser-mcp:latest
Portable Downloads
Download and run - no Docker knowledge required:
| Platform | Download | Requirements |
|---|---|---|
| Linux | airbrowser-linux.tar.gz | uidmap package or Docker |
| macOS | airbrowser-mac.tar.gz | Colima, Docker Desktop, or Podman |
| Windows | airbrowser-windows.zip | Docker Desktop or Podman |
# Linux/macOS
tar -xzf airbrowser-*.tar.gz && cd airbrowser-* && ./airbrowser
# Windows: Extract zip and double-click airbrowser.bat
From Source
git clone https://github.com/ifokeev/airbrowser-mcp.git
cd airbrowser-mcp
docker compose up --build
# With NVIDIA GPU
docker compose -f compose.gpu.yml up --build
Local Mode (no Docker) — Linux only
Run natively without a container — zero container fingerprint for maximum anti-detection stealth. Tested on Ubuntu/Debian.
git clone https://github.com/ifokeev/airbrowser-mcp.git
cd airbrowser-mcp
uv run python run_local.py # auto-installs deps + system packages
uv run python run_local.py --vnc # with VNC viewer at http://localhost:6080/vnc.html
Requires Chrome installed on the host. See python run_local.py --help for options.
| Service | URL | Description |
|---|---|---|
| Dashboard | http://localhost:8000/dashboard |
Browser pool management UI |
| Swagger Docs | http://localhost:8000/docs/ |
Interactive API documentation |
| REST API | http://localhost:8000/api/v1/ |
Browser automation endpoints |
| MCP Server | http://localhost:3099/mcp |
Model Context Protocol for AI agents |
| VNC | vnc://localhost:5900 |
Remote desktop (with --vnc flag) |
| noVNC | http://localhost:6080/vnc.html |
Web-based VNC viewer (with --vnc flag) |
Open http://localhost:18080 - all services available:
| Service | Path |
|---|---|
| Dashboard | / |
| API Docs | /docs/ |
| REST API | /api/v1/ |
| MCP Server | /mcp |
| VNC Viewer | /vnc/ |
Features
- Undetected Chrome (SeleniumBase UC)
- 100+ concurrent browsers
- Persistent profiles & cookies
- Tab management
- Proxy per browser (DataImpulse recommended)
- MCP for AI agents
- AI vision tools (optional)
GPU Passthrough (Recommended)
GPU passthrough enables hardware-accelerated WebGL rendering via Vulkan, making the browser fingerprint match a real desktop machine. Without it, Chrome falls back to software rendering (SwiftShader) which is easily detected by anti-bot systems.
Requirements: NVIDIA GPU + NVIDIA Container Toolkit
# Docker Compose (recommended)
docker compose -f compose.gpu.yml up
# Docker run
docker run -d -p 18080:18080 \
--gpus all \
--device /dev/dri:/dev/dri \
-e NVIDIA_VISIBLE_DEVICES=all \
-e NVIDIA_DRIVER_CAPABILITIES=all \
ghcr.io/ifokeev/airbrowser-mcp:latest
# Portable launcher
./airbrowser --gpu
Without a GPU, Chrome uses --use-gl=swiftshader automatically. With GPU passthrough, it uses --use-gl=angle --use-angle=vulkan for real GPU rendering.
AI Vision (Optional)
Enable AI-powered vision tools (what_is_visible, detect_coordinates) with any OpenAI-compatible vision backend. Vision turns on only when VISION_API_BASE_URL, VISION_API_KEY, and VISION_MODEL are all set.
When smart targeting is enabled per request, detect_coordinates can validate a raw vision point, optionally snap to a nearby clickable target, and return both the original click_point and a resolved_click_point with an outcome_status that tells you whether the result was confirmed, corrected, or needs inspection before clicking. Pair that with gui_click or MCP-compatible gui_click_xy to re-check coordinate clicks and request post-click feedback.
# Docker run
docker run -d -p 18080:18080 \
-e VISION_API_BASE_URL=https://your-openai-compatible-endpoint/v1 \
-e VISION_API_KEY=your-api-key \
-e VISION_MODEL=your-vision-model \
ghcr.io/ifokeev/airbrowser-mcp:latest
# Docker compose
VISION_API_BASE_URL=https://your-openai-compatible-endpoint/v1 \
VISION_API_KEY=your-api-key \
VISION_MODEL=your-vision-model \
docker compose up
MCP Client Configuration
Add airbrowser to your AI coding assistant:
<details> <summary><b>Claude Code</b></summary>
claude mcp add airbrowser --transport http http://localhost:18080/mcp
</details>
<details> <summary><b>Cursor</b></summary>
Go to Cursor Settings → MCP → Add new MCP Server:
{
"mcpServers": {
"airbrowser": {
"url": "http://localhost:18080/mcp",
"transport": "http"
}
}
}
</details>
<details> <summary><b>VS Code / Copilot</b></summary>
Add to your MCP settings:
{
"mcpServers": {
"airbrowser": {
"url": "http://localhost:18080/mcp",
"transport": "http"
}
}
}
</details>
<details> <summary><b>Cline</b></summary>
Follow Cline MCP guide with:
{
"mcpServers": {
"airbrowser": {
"url": "http://localhost:18080/mcp",
"transport": "http"
}
}
}
</details>
<details> <summary><b>Windsurf</b></summary>
Follow the Windsurf MCP guide with the config above. </details>
Test your setup
Navigate to https://example.com and take a screenshot
Your AI assistant should create a browser, navigate to the URL, and return a screenshot.
Generated Clients
Auto-generated from OpenAPI spec:
# Python
pip install airbrowser-client
# TypeScript
npm install airbrowser-client
Community
Join our Discord server for support, feature requests, and discussion.
Docs
License
Fair Source - Free for up to 10 users. Cannot be offered as a hosted service. Commercial license required for larger deployments.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.