Skip to main content
Glama
ccostello97

camoufox-mcp

by ccostello97
README.md
# Camoufox MCP

MCP server for browser automation using [Camoufox](https://camoufox.com/) anti-detect browser.

## Features

- Anti-detect browser with BrowserForge fingerprinting
- Automatic geolocation/timezone spoofing from proxy IP
- Human-like cursor movement
- DOM snapshot-based element targeting

## Installation

Requires [uv](https://docs.astral.sh/uv/) (handles Python 3.14+ automatically).

## Cursor Setup

Add to `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "camoufox": {
      "command": "uvx",
      "args": ["camoufox-mcp"]
    }
  }
}
```

### With Proxy

```json
{
  "mcpServers": {
    "camoufox": {
      "command": "uvx",
      "args": [
        "camoufox-mcp",
        "--proxy", "http://user:pass@proxy.example.com:8080"
      ]
    }
  }
}
```

Camoufox automatically spoofs geolocation and timezone based on the proxy IP.

### With Options

```json
{
  "mcpServers": {
    "camoufox": {
      "command": "uvx",
      "args": ["camoufox-mcp", "--headed", "--humanize", "1.5"]
    }
  }
}
```

## CLI Options

| Option             | Description                      |
| ------------------ | -------------------------------- |
| `--headed`         | Show browser window              |
| `--proxy URL`      | Proxy server (http/socks5)       |
| `--no-geoip`       | Disable geolocation spoofing     |
| `--locale LOCALE`  | Browser locale (e.g., en-US)     |
| `--humanize FLOAT` | Cursor movement intensity (0-2)  |
| `--block-images`   | Block image loading              |

## Available Tools

| Tool                   | Description                          |
| ---------------------- | ------------------------------------ |
| `browser_navigate`     | Navigate to URL                      |
| `browser_navigate_back`| Go back in history                   |
| `browser_snapshot`     | Get page structure with element refs |
| `browser_click`        | Click element by ref                 |
| `browser_type`         | Type text into element               |
| `browser_fill`         | Fill text (clears first)             |
| `browser_hover`        | Hover over element                   |
| `browser_select_option`| Select dropdown option               |
| `browser_press_key`    | Press keyboard key                   |
| `browser_screenshot`   | Take screenshot                      |
| `browser_tabs`         | Manage tabs                          |
| `browser_wait_for`     | Wait for text/time                   |
| `browser_evaluate`     | Run JavaScript                       |
| `browser_close`        | Close browser                        |

## License

MIT

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation5/5

Each tool has a clearly distinct action: navigate, snapshot, click, type, fill, hover, select, key press, wait, evaluate, screenshot, tabs, back, close. The only potential overlap is type vs. fill, but descriptions clarify that fill clears first, making them distinct.

Naming Consistency5/5

All tools use the 'browser_' prefix followed by a verb_noun pattern (e.g., browser_navigate, browser_click, browser_screenshot). The naming is predictable and uniform, with only minor deviations like browser_wait_for (verb_preposition) and browser_tabs (verb_noun but plural) that are still clear.

Tool Count5/5

14 tools is an ideal size for a browser automation server. It covers all essential interactions without being bloated. Each tool serves a specific purpose and there are no redundant or unnecessary tools.

Completeness4/5

The tool set covers the core browser automation lifecycle: navigation, interaction, tab management, screenshots, and JavaScript evaluation. Minor gaps exist, such as the absence of navigate_forward (only back) and a dedicated wait-for-element function (only wait for text or time). These are small but notable omissions.

Maintenance

ActivityInactive
ResponsivenessNo issues