Camoufox MCP Server
A Python MCP (Model Context Protocol) server providing full browser automation with Camoufox anti-detection capabilities.
Features
- 21 browser automation tools for complete browser control
- Anti-detection: Automatic fingerprint randomization to avoid bot detection
- Lazy initialization: Browser only launches on first tool call
- Persistent sessions: Browser persists between tool calls
- Tab management: Support for multiple tabs/pages
- Form automation: Fill forms, upload files, handle dialogs
Installation
Quick Start (uvx - recommended)
uvx camoufox-mcp
Using pipx
pipx run camoufox-mcp
Using pip
pip install camoufox-mcp
camoufox-mcp
From source
# Clone the repository
git clone https://github.com/rlgrpe/camoufox-mcp-python.git
cd camoufox-mcp-python
# Install with uv
uv sync
Install Camoufox browser
After installing the package, you need to download the Camoufox browser binary:
# macOS
python3 -m camoufox fetch
# Linux
python -m camoufox fetch
# Also install system dependencies:
# Ubuntu/Debian: sudo apt install -y libgtk-3-0 libx11-xcb1 libasound2
# Arch: sudo pacman -S gtk3 libx11 libxcb cairo libasound alsa-lib
# Windows
camoufox fetch
To uninstall the browser binary:
camoufox remove
Usage
Start the server
# Using uvx (recommended)
uvx camoufox-mcp
# Using uv (from source)
uv run camoufox-mcp
# Or as a module
python -m camoufox_mcp
Add to Claude Code
claude mcp add camoufox-mcp -- uvx camoufox-mcp
Claude Desktop Configuration
Add to your Claude Desktop config file:
{
"mcpServers": {
"camoufox-mcp": {
"command": "uvx",
"args": ["camoufox-mcp"]
}
}
}
Or if running from source:
{
"mcpServers": {
"camoufox-mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/camoufox-mcp-python",
"camoufox-mcp"
]
}
}
}
Tools Reference
Navigation (4 tools)
| Tool | Description |
|---|---|
browser_navigate |
Navigate to a URL |
browser_navigate_back |
Go back to the previous page |
browser_snapshot |
Capture accessibility snapshot of the current page |
browser_wait_for |
Wait for text to appear/disappear or a specified time |
Interaction (6 tools)
| Tool | Description |
|---|---|
browser_click |
Click on an element |
browser_type |
Type text into an element |
browser_hover |
Hover over an element |
browser_drag |
Drag and drop between two elements |
browser_press_key |
Press a key on the keyboard |
browser_select_option |
Select an option in a dropdown |
Page (4 tools)
| Tool | Description |
|---|---|
browser_evaluate |
Evaluate JavaScript on the page or element |
browser_console_messages |
Get console messages |
browser_network_requests |
Get network requests |
browser_take_screenshot |
Take a screenshot |
Forms (3 tools)
| Tool | Description |
|---|---|
browser_fill_form |
Fill multiple form fields |
browser_file_upload |
Upload files |
browser_handle_dialog |
Handle dialogs (alert, confirm, prompt) |
Session (4 tools)
| Tool | Description |
|---|---|
browser_tabs |
List, create, close, or select tabs |
browser_resize |
Resize the browser window |
browser_close |
Close the browser |
browser_install |
Install Camoufox browser |
Configuration
The browser can be configured via the BrowserConfig class in camoufox_mcp/config.py. Available options:
| Parameter | Type | Default | Description |
|---|---|---|---|
os |
str | None | OS to spoof (windows/macos/linux) |
headless |
bool/str | False | Headless mode (or 'virtual') |
humanize |
bool/float | True | Human-like cursor movements |
geoip |
bool | True | Auto-detect geolocation from IP |
proxy |
str/dict | None | Proxy configuration |
block_webrtc |
bool | True | Block WebRTC leaks |
block_webgl |
bool | False | Block WebGL fingerprinting |
block_images |
bool | False | Block image loading |
locale |
str | None | Browser locale |
viewport |
dict | None | Viewport dimensions |
enable_cache |
bool | True | Enable caching |
timeout |
int | 30000 | Page load timeout (ms) |
wait_strategy |
str | "domcontentloaded" | Wait strategy |
ublock |
bool | False | Enable uBlock Origin |
Proxy Configuration Example
proxy = {
'server': 'http://proxy.example.com:8080',
'username': 'user',
'password': 'pass'
}
Development
# Install dev dependencies
uv sync --dev
# Run tests
uv run pytest
# Format code
uv run ruff format
# Lint
uv run ruff check
License
MIT License - see LICENSE for details.
Related Projects
Metadata
Release files for camoufox-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| camoufox_mcp-0.1.0.tar.gz | 152.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| camoufox_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 171.9 kB
Release files / camoufox_mcp-0.1.0.tar.gz
| Download URL | camoufox_mcp-0.1.0.tar.gz |
|---|---|
| Size | 152.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75dab8bf84edfd7a9d1feb08b8032de950d402ce27c5b75ad8dc420ec45599f7
|
|
BLAKE2b-256 checksum How to use checksums |
1a777b912ec73d6e46618cdb6b8e9140ee7077a2f32158a762494bf503902d85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Release files / camoufox_mcp-0.1.0-py3-none-any.whl
| Download URL | camoufox_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
488cdbd6cdd452c3ee577ed0201fb977d5b1a198afca636f8fcdc04fd3d098bc
|
|
BLAKE2b-256 checksum How to use checksums |
32ecca56bf7d4ea52120591150707b447cc92eebda3d2e328e0e8afb68de0670
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|