camoufox-mcp-python
An MCP server that provides browser automation with anti-detect fingerprinting, accessibility snapshots, and ref-based element targeting, powered by Camoufox.
README
camoufox-mcp-python
A Model Context Protocol (MCP) server that provides browser automation tools powered by Camoufox — a stealthy, anti-detect browser built on Firefox. It exposes a Playwright-MCP compatible tool interface using accessibility snapshots and ref-based element targeting.
Think of it as playwright-mcp, but with built-in anti-detection and fingerprint spoofing.
Features
- Anti-detect browser fingerprinting — Camoufox automatically spoofs browser fingerprints to bypass bot detection
- Ref-based accessibility snapshots — Interact with page elements via accessibility refs, no CSS selectors needed
- Human-like cursor movement — Cursor humanization enabled by default for realistic interactions
- WebRTC leak protection — WebRTC blocked by default to prevent IP leaks
- Isolated browser profiles by default — Each server process gets a fresh temporary profile that is deleted on close; pass
--user-data-dirto reuse a persistent profile - GeoIP auto-matching — Automatically match browser locale/timezone to proxy location
- Proxy support — Full proxy support including authentication
- WebGL fingerprint control — Specify WebGL vendor/renderer pair or block entirely
- Custom addons — Load custom Firefox addons or exclude defaults like uBlock Origin
- Advanced fingerprint config — Override any BrowserForge fingerprint property or use a custom fingerprint
- Firefox preferences — Set custom Firefox user preferences
- Browser caching — Optional page/request caching for performance
- Privacy controls — Block WebGL and image loading to reduce leaks and bandwidth
- Multi-tab management — Create, close, select, and list browser tabs
- Modal & dialog handling — Handle JavaScript dialogs and file choosers
- Console & network monitoring — Inspect console messages and network requests
Quick Start
Use with Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"camoufox": {
"command": "uvx",
"args": ["camoufox-mcp-python"]
}
}
}
Use with Claude Code
claude mcp add camoufox -- uvx camoufox-mcp-python
Use with VS Code / Cursor
Add to .vscode/mcp.json:
{
"servers": {
"camoufox": {
"command": "uvx",
"args": ["camoufox-mcp-python"]
}
}
}
Use with Codex CLI
Add to codex.json or pass via CLI:
codex --mcp-server "npx @anthropic-ai/mcp-proxy -- uvx camoufox-mcp-python"
Pin a specific version
{
"mcpServers": {
"camoufox": {
"command": "uvx",
"args": ["--from", "camoufox-mcp-python==0.2.1", "camoufox-mcp-python"]
}
}
}
CLI Options
| Option | Description |
|---|---|
--headless / --no-headless |
Run the browser headlessly (default: on) |
--proxy <url> |
Proxy server URL (supports user:pass@host:port) |
--os <os> |
Target OS fingerprint: windows, macos, linux (repeatable) |
--humanize [seconds] |
Cursor humanization (default: on). Pass a number for max duration, or false to disable |
--geoip [ip] |
Auto-match locale/timezone to proxy IP, or specify a target IP |
--locale <locale> |
Browser locale(s), e.g. en-US (repeatable, comma-separated) |
--window <WxH> |
Outer window size, e.g. 1280x720 |
--block-webrtc / --no-block-webrtc |
Block WebRTC to prevent IP leaks (default: on) |
--block-webgl |
Disable WebGL |
--block-images |
Block image requests to reduce bandwidth |
--disable-coop |
Disable COOP for cross-origin iframe interactions |
--user-data-dir <path> |
Optional persistent profile directory. If omitted, each server process uses an isolated temporary profile that is deleted on close |
--caps <groups> |
Enable capability groups, e.g. dangerous (enables browser_evaluate) |
--webgl-config <v,r> |
WebGL vendor/renderer pair, e.g. "Intel Inc.,Intel(R) UHD Graphics 620" |
--addons <paths> |
Paths to extracted Firefox addons (repeatable, comma-separated) |
--exclude-addons <names> |
Default addons to exclude, e.g. UBO (repeatable, comma-separated) |
--config <json> |
Camoufox fingerprint properties as a JSON string |
--enable-cache |
Cache previous pages and requests (uses more memory) |
--firefox-user-prefs <json> |
Firefox user preferences as a JSON string |
--i-know-what-im-doing |
Silence Camoufox warnings for advanced configurations |
--debug |
Print the config being sent to Camoufox |
Examples
# Zero-config anti-detection (headless + humanize + block-webrtc on by default)
camoufox-mcp-python
# With proxy and GeoIP matching
camoufox-mcp-python --proxy http://user:pass@proxy.example.com:8080 --geoip
# Visible browser for debugging
camoufox-mcp-python --no-headless --debug
# Custom WebGL fingerprint
camoufox-mcp-python --webgl-config "Intel Inc.,Intel(R) UHD Graphics 620" --os windows
# Custom fingerprint properties
camoufox-mcp-python --config '{"navigator.hardwareConcurrency": 8}'
# With caching and custom Firefox prefs
camoufox-mcp-python --enable-cache --firefox-user-prefs '{"dom.webnotifications.enabled": false}'
# Privacy-hardened mode
camoufox-mcp-python --block-webgl --block-images
# Disable default anti-detection for debugging
camoufox-mcp-python --no-headless --humanize false --no-block-webrtc --debug
# Enable JavaScript evaluation
camoufox-mcp-python --caps dangerous
Available Tools
Navigation
| Tool | Description |
|---|---|
browser_navigate |
Navigate to a URL |
browser_navigate_back |
Go back to the previous page |
Snapshot & Interaction
| Tool | Description |
|---|---|
browser_snapshot |
Capture an accessibility snapshot of the current page |
browser_click |
Click an element by ref (supports double-click, right-click, modifiers) |
browser_hover |
Hover over an element |
browser_drag |
Drag from one element to another |
browser_select_option |
Select option(s) in a dropdown |
Input
| Tool | Description |
|---|---|
browser_type |
Type text into an editable element (supports slow typing and submit) |
browser_press_key |
Press a keyboard key or key combination |
browser_fill_form |
Fill multiple form fields in a single call |
Page
| Tool | Description |
|---|---|
browser_take_screenshot |
Take a screenshot (viewport, full page, or element) |
browser_console_messages |
Retrieve collected console messages |
browser_network_requests |
List network requests seen by the page |
browser_resize |
Resize the viewport |
browser_wait_for |
Wait for text to appear/disappear, or a fixed duration |
browser_close |
Close the browser session |
Tabs
| Tool | Description |
|---|---|
browser_tabs |
List, create, close, or select browser tabs |
Modals & Files
| Tool | Description |
|---|---|
browser_handle_dialog |
Accept or dismiss a JavaScript dialog |
browser_file_upload |
Handle a file chooser and upload files |
Dangerous (requires --caps dangerous)
| Tool | Description |
|---|---|
browser_evaluate |
Execute arbitrary JavaScript on the page or an element |
How It Works
The server uses Camoufox (a Firefox-based anti-detect browser) through Playwright's async API. Pages are represented as accessibility snapshots in YAML format, where each interactive element is assigned a ref identifier. The AI model reads the snapshot, identifies the target ref, and calls the appropriate tool — no fragile CSS/XPath selectors required.
AI Model ←→ MCP Server ←→ Camoufox Browser
│
├── Accessibility Snapshot (YAML)
├── Ref-based element targeting
└── Anti-detect fingerprinting
Local Development
# Clone and install
git clone https://github.com/user/camoufox-mcp.git
cd camoufox-mcp
uv pip install --python .venv/bin/python -e .
# Run the server
./.venv/bin/camoufox-mcp-python --headless
# Or run as a module
./.venv/bin/python -m camoufox_mcp --headless
# Smoke test
./.venv/bin/python -m compileall camoufox_mcp
./.venv/bin/camoufox-mcp-python --help
Requirements
- Python >= 3.10
- camoufox >= 0.4.11
- mcp[cli] >= 1.25
- playwright >= 1.58
Note: The first launch on a new machine may trigger automatic Camoufox binary and addon downloads.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。