mcpField
C
camoufox-mcp

camoufox-mcp

本地服务
github.com/baixianger浏览器自动化736 周前更新

关于 camoufox-mcp

camoufox-mcp 是用于自动化 Camoufox 防检测 Firefox 浏览器的 MCP 服务。它为 AI Agent 提供浏览器交互、隔离会话、页面检查以及网络和控制台监控工具。

主要功能

  1. 01页面导航与元素交互
  2. 02管理隔离会话和已保存的身份验证状态
  3. 03获取页面快照、截图和文本
  4. 04执行 JavaScript 并提取框架状态
  5. 05监控和拦截网络请求

适用场景

  1. 01使用 Camoufox 自动执行浏览操作
  2. 02同时运行多个已验证身份的浏览器配置
  3. 03检查页面并捕获网络活动

MCP 相关

此 MCP 服务向 MCP 客户端提供 Camoufox 浏览器自动化工具,包括会话、页面、交互、检查和监控操作。它可通过 stdio 启动。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"baixianger-camoufox": {
"command": "npx",
"args": [
"-y",
"camoufox-mcp"
]
}
}
}
启动命令npx -y camoufox-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcamoufox-mcp1.0.0

工具

42

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

🦊 Camoufox MCP

面向 AI Agent 的反检测浏览器自动化

npm version npm downloads License: MIT Node.js

使用 Camoufox 进行浏览器自动化的 MCP 服务——一款反检测 Firefox 浏览器。

安装

npx camoufox-mcp

Claude Desktop 配置

添加到 claude_desktop_config.json:

基础配置:

{
  "mcpServers": {
    "camoufox": {
      "command": "npx",
      "args": ["camoufox-mcp"]
    }
  }
}

使用代理(通过环境变量):

{
  "mcpServers": {
    "camoufox": {
      "command": "npx",
      "args": ["camoufox-mcp"],
      "env": {
        "PROXY_SERVER": "http://1.2.3.4:8080",
        "PROXY_USER": "username",
        "PROXY_PASS": "password"
      }
    }
  }
}

然后在 ~/.config/camoufox-mcp/settings.json 中添加:

{
  "proxy": {
    "enabled": true,
    "server": "${PROXY_SERVER}",
    "username": "${PROXY_USER}",
    "password": "${PROXY_PASS}",
    "geoip": true
  }
}

为什么选择 Camoufox MCP?

功能Camoufox MCPChrome DevTools MCP
反检测
绕过机器人检测✅ 内置❌ 会被检测
指纹随机化✅❌
WebRTC 泄漏防护✅❌
Canvas 指纹伪装✅❌
自动化
拟人化光标移动✅ 逼真路径❌ 瞬间跳转
模拟真人延迟点击✅❌
代理 GeoIP 自动配置✅ 时区/区域设置❌ 手动配置
JavaScript 求值
MainWorld 求值(__NUXT__、__NEXT_DATA__)✅✅
隔离环境求值(支持 async/await)✅✅
会话管理
隔离的浏览器会话✅ 多个上下文❌ 单个上下文
预先认证的会话✅ Cookie/localStorage 注入❌
导出会话状态✅ 保存为 JSON❌
功能
自动关闭 Cookie 弹窗✅ 50+ 个选择器❌
用户操作录制✅❌
网络拦截✅✅
控制台捕获✅✅
性能跟踪❌✅
浏览器
引擎Firefox(Gecko)Chrome(Chromium)
自动安装✅ 约 150MB✅

工具

会话管理

会话提供相互隔离的浏览器上下文——每个会话都有自己的 Cookie、localStorage 和缓存。使用会话可同时运行多个已认证的用户配置。

工具描述
create_session创建新的隔离会话,可选择从 JSON 文件预加载 Cookie/localStorage
list_sessions列出所有会话及其页面数量和元数据
save_session将会话的 Cookie 和 localStorage 导出到 JSON 文件
close_session关闭会话及其所有页面
list_context_files列出 settings 中注册的可用上下文文件
页面管理
工具描述
new_page创建新页面,可选择在指定会话中创建
list_pages列出所有已打开的页面及其会话 ID
select_page将页面设为当前活动页面
close_page关闭页面
导航与交互
工具描述
navigate_page导航至 URL、返回、前进或重新加载
click根据 UID 点击元素
hover将鼠标悬停在元素上
fill填写表单字段
fill_form一次填写多个表单字段
press_key按下按键或组合键
drag将一个元素拖动到另一个元素上
检查
工具描述
take_snapshot获取包含交互元素 UID 的文本快照
take_screenshot截取页面或元素的屏幕截图
get_page_text提取文本内容
evaluate_mainworld在页面上下文中运行 JS(仅同步)
evaluate_isolated在隔离上下文中运行 JS(支持异步)
get_framework_state提取 Next.js/Nuxt.js 状态
上下文注入
工具描述
inject_context将 JSON 文件中的 Cookie 和 localStorage 注入会话
监控
工具描述
start_network_capture / stop_network_capture捕获网络请求
get_network_logs / clear_network_logs查看/清除捕获的请求
intercept_network / remove_intercept拦截或修改请求
start_console_capture / stop_console_capture捕获控制台消息
get_console_logs / clear_console_logs查看/清除控制台消息
start_recording / stop_recording / get_recording_status记录用户交互
实用工具
工具描述
dismiss_popups自动关闭 Cookie 同意弹窗
wait_for等待文本或选择器
wait_for_navigation等待导航完成
reload_settings从配置文件重新加载设置
get_config_paths显示配置文件路径
init_user_config初始化用户配置目录

会话

会话支持并行运行多个已认证的配置文件。每个会话都是一个独立的浏览器上下文,拥有自己的 Cookie 和 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
使用示例

创建一个预先加载身份验证信息的会话:

  1. 使用 contextPath: "github-cookies.json" 调用 create_session —— 返回一个 sessionId
  2. 使用 url: "https://github.com" 和 sessionId 调用 new_page —— 打开已登录的 GitHub

同时运行两个账户:

  1. 使用 contextPath: "account1.json" 调用 create_session —— 会话 A
  2. 使用 contextPath: "account2.json" 调用 create_session —— 会话 B
  3. 在会话 A 中调用 new_page —— 以账户 1 的身份登录
  4. 在会话 B 中调用 new_page —— 以账户 2 的身份登录

保存会话状态以供稍后使用:

  1. 在会话中手动登录
  2. 使用 outputPath: "my-session.json" 调用 save_session —— 导出 Cookie + localStorage
  3. 下次使用时,使用 contextPath: "my-session.json" 调用 create_session —— 恢复会话
上下文文件格式

上下文文件使用 Playwright 的 storageState 格式:

{
  "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" }
      ]
    }
  ]
}
在设置中注册上下文文件

将上下文文件路径添加到 settings.json,使其可通过 list_context_files 发现。会话会按需延迟创建——在 Agent 调用 create_session 之前不会占用内存:

{
  "contextPaths": [
    "/path/to/github-cookies.json",
    "/path/to/linkedin-cookies.json"
  ]
}

之后,Agent 可以调用 list_context_files 查看可用文件,并在需要时使用所需的 contextPath 调用 create_session 加载文件。

设置

创建 ~/.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": { "enabled": true, "server": "http://1.2.3.4:8080" } }

SOCKS5 代理:

{ "proxy": { "enabled": true, "server": "socks5://1.2.3.4:1080" } }

使用环境变量进行身份验证:

{
  "proxy": {
    "enabled": true,
    "server": "${PROXY_SERVER}",
    "username": "${PROXY_USER}",
    "password": "${PROXY_PASS}",
    "geoip": true
  }
}

geoip: true 会根据代理 IP 的位置自动调整浏览器时区/区域设置。

了解更多

  • Camoufox - 具有反检测功能的 Firefox 浏览器
  • camoufox-js - JavaScript/TypeScript 绑定

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。