Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者提供的说明(英文原文)
Anti-detection browser automation with Camoufox - stealth Firefox for web scraping
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"camoufox": {
"command": "npx",
"args": [
"-y",
"camoufox-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add camoufox -- npx -y camoufox-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"camoufox": {
"command": "npx",
"args": [
"-y",
"camoufox-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"camoufox": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"camoufox-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 baixianger 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.0)于9个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Anti-detection browser automation for AI agents
MCP server for browser automation using Camoufox - an anti-detection Firefox browser.
npx camoufox-mcp
Add to claude_desktop_config.json:
Basic:
{
"mcpServers": { "camoufox": { "command": "npx", "args": ["camoufox-mcp"] } } }
With Proxy (via env vars):
{
"mcpServers": { "camoufox": { "command": "npx", "args": ["camoufox-mcp"], "env": { "PROXY_SERVER": "http://1.2.3.4:8080", "PROXY_USER": "username", "PROXY_PASS": "password" } } } }
Then in ~/.config/camoufox-mcp/settings.json:
{
"proxy": { "enabled": true, "server": "${PROXY_SERVER}", "username": "${PROXY_USER}", "password": "${PROXY_PASS}", "geoip": true } }
| Feature | Camoufox MCP | Chrome DevTools MCP |
|---|---|---|
| Anti-Detection | ||
| Bot detection bypass | ✅ Built-in | ❌ Detected |
| Fingerprint randomization | ✅ | ❌ |
| WebRTC leak protection | ✅ | ❌ |
| Canvas fingerprint spoofing | ✅ | ❌ |
| Automation | ||
| Humanized cursor movement | ✅ Realistic paths | ❌ Instant jumps |
| Click with human-like delays | ✅ | ❌ |
| Proxy with GeoIP auto-config | ✅ Timezone/locale | ❌ Manual |
| JavaScript Evaluation | ||
MainWorld eval (__NUXT__, __NEXT_DATA__) | ✅ | ✅ |
| Isolated eval (async/await) | ✅ | ✅ |
| Session Management | ||
| Isolated browser sessions | ✅ Multiple contexts | ❌ Single context |
| Pre-authenticated sessions | ✅ Cookie/localStorage injection | ❌ |
| Session state export | ✅ Save to JSON | ❌ |
| Features | ||
| Cookie popup auto-dismiss | ✅ 50+ selectors | ❌ |
| User action recording | ✅ | ❌ |
| Network interception | ✅ | ✅ |
| Console capture | ✅ | ✅ |
| Performance tracing | ❌ | ✅ |
| Browser | ||
| Engine | Firefox (Gecko) | Chrome (Chromium) |
| Auto-install | ✅ ~150MB | ✅ |
Sessions provide isolated browser contexts — each session has its own cookies, localStorage, and cache. Use sessions to run multiple authenticated profiles simultaneously.
| Tool | Description |
|---|---|
create_session | Create a new isolated session, optionally pre-loading cookies/localStorage from a JSON file |
list_sessions | List all sessions with their page counts and metadata |
save_session | Export a session's cookies and localStorage to a JSON file |
close_session | Close a session and all its pages |
list_context_files | List available context files registered in settings |
| Tool | Description |
|---|---|
new_page | Create a new page, optionally in a specific session |
list_pages | List all open pages with their session IDs |
select_page | Set a page as active |
close_page | Close a page |
| Tool | Description |
|---|---|
navigate_page | Navigate to URL, back, forward, or reload |
click | Click an element by UID |
hover | Hover over an element |
fill | Fill a form field |
fill_form | Fill multiple form fields at once |
press_key | Press a key or key combination |
drag | Drag an element to another |
| Tool | Description |
|---|---|
take_snapshot | Text snapshot with interactive element UIDs |
take_screenshot | Screenshot of page or element |
get_page_text | Extract text content |
evaluate_mainworld | Run JS in page context (sync only) |
evaluate_isolated | Run JS in isolated context (async OK) |
get_framework_state | Extract Next.js/Nuxt.js state |
| Tool | Description |
|---|---|
inject_context | Inject cookies + localStorage from a JSON file into a session |
| Tool | Description |
|---|---|
start_network_capture / stop_network_capture | Capture network requests |
get_network_logs / clear_network_logs | View/clear captured requests |
intercept_network / remove_intercept | Block or modify requests |
start_console_capture / stop_console_capture | Capture console messages |
get_console_logs / clear_console_logs | View/clear console messages |
start_recording / stop_recording / get_recording_status | Record user interactions |
| Tool | Description |
|---|---|
dismiss_popups | Auto-dismiss cookie consent popups |
wait_for | Wait for text or selector |
wait_for_navigation | Wait for navigation to complete |
reload_settings | Reload settings from config |
get_config_paths | Show config file paths |
init_user_config | Initialize user config directory |
Sessions enable running multiple authenticated profiles in parallel. Each session is an isolated browser context with its own cookies and localStorage.
Browser (single Camoufox instance)
├── Session "github" (cookies from github.json) │ ├── Page: github.com │ └── Page: github.com/repo ├── Session "linkedin" (cookies from linkedin.json) │ └── Page: linkedin.com/feed └── Session "default" (no pre-loaded state) └── Page: example.com
Create a session with pre-loaded authentication:
create_session with contextPath: "github-cookies.json" — returns a sessionIdnew_page with url: "https://github.com" and the sessionId — opens GitHub already logged inRun two accounts simultaneously:
create_session with contextPath: "account1.json" — session Acreate_session with contextPath: "account2.json" — session Bnew_page in session A — logged in as account 1new_page in session B — logged in as account 2Save session state for later:
save_session with outputPath: "my-session.json" — exports cookies + localStoragecreate_session with contextPath: "my-session.json" — restoredContext files use Playwright's storageState format:
{
"cookies": [ { "name": "session_id", "value": "abc123", "domain": ".example.com", "path": "/", "expires": 1735689600, "httpOnly": true, "secure": true, "sameSite": "Lax" } ], "origins": [ { "origin": "https://example.com", "localStorage": [ { "name": "token", "value": "xyz789" } ] } ] }
Add context file paths to settings.json to make them discoverable via list_context_files. Sessions are created lazily on demand — no memory is used until the agent calls create_session:
{
"contextPaths": [ "/path/to/github-cookies.json", "/path/to/linkedin-cookies.json" ] }
The agent can then call list_context_files to see what's available, and create_session with the desired contextPath to load it when needed.
Create ~/.config/camoufox-mcp/settings.json:
{
"browser": { "headless": false, "viewport": [1280, 1080], "timeout": 30000, "humanize": 0.5 }, "proxy": { "enabled": true, "server": "http://proxy.example.com:8080", "username": "user", "password": "pass", "geoip": true }, "contextPaths": [] }
HTTP/HTTPS Proxy:
{ "proxy": { "enabled": true, "server": "http://1.2.3.4:8080" } }
SOCKS5 Proxy:
{ "proxy": { "enabled": true, "server": "socks5://1.2.3.4:1080" } }
With Authentication (using env vars):
{
"proxy": { "enabled": true, "server": "${PROXY_SERVER}", "username": "${PROXY_USER}", "password": "${PROXY_PASS}", "geoip": true } }
geoip: trueauto-adjusts browser timezone/locale based on proxy IP location.
MIT