浏览器隐身自动化工具

Chrome MCP Stealth 是一款通过 Chrome DevTools 协议实现隐身浏览器自动化的工具,通过模拟人类交互行为(如贝塞尔鼠标曲线、高斯打字延迟、滚动抖动)来避免被检测为机器人。

  • by Riaan-Fourie
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Riaan-Fourie/chrome-mcp-stealth

使用说明

Chrome MCP隐形

通过Chrome DevTools协议实现隐形浏览器自动化的MCP服务器。连接到具有类人交互模式(贝塞尔鼠标曲线、高斯打字延迟、滚动抖动)的真实Chrome实例,以避免机器人检测。

为什么

标准浏览器自动化工具(Playwright、Puppeteer、Selenium)被现代反机器人系统轻松检测到。站点指纹鼠标移动(直线、即时传送)、键入模式(均匀延迟)和JavaScript属性(navigator.webdriver,缺少插件)以阻止自动访问。

Chrome MCP Stealth通过在Playwright与真实Chrome实例的CDP连接之上分层类似人类的行为来解决这个问题——不是一个无头浏览器,也不是一个新的配置文件,而是一个真实的浏览器,其中包含Cookie、扩展程序和历史记录。

特性

  • 隐身模式:贝塞尔鼠标移动、高斯击键延迟、滚动抖动、反检测JS补丁
  • 快速模式:无延迟的即时操作--适用于不受保护的域
  • 安全:针对快速注入、数据泄露和凭据泄漏的4层防御
  • 单个文件:整个服务器是一个 index.js 文件(约630行)

隐形是如何工作的

鼠标移动 遵循具有随机控制点的三次贝塞尔曲线,产生自然弧而不是直线。每次移动都使用12-50个插值步骤,便于输入输出时间和偶尔的过冲校正。

打字 使用高斯分布的键间延迟(平均约75ms),标点符号后有额外的停顿,每约10个字符有周期性的“思考停顿”,模仿人类打字节奏。

滚动 被分解为具有稳定延迟的抖动多步增量,避免了标志着自动化的瞬间跳跃。

防检测补丁 移除 navigator.webdriver,干净的剧作家/硒工艺品 window,注入真实感 chrome.runtime 以及插件存根。

看 建筑.md 了解完整的实施细节。

安全模型

  1. 快速注射扫描仪 --20多种正则表达式模式检测页面内容中的指令覆盖尝试、社会工程和数据泄露命令
  2. 内容净化 --在返回页面文本之前,隐藏/不可见元素被剥离,防止通过零大小或屏幕外元素注入
  3. 内容聚光灯 --所有页面内容都被包裹在 <EXTERNAL_CONTENT trust="untrusted"> 带安全脚的标签
  4. 域控制 --云元数据端点完全被阻止;银行/电子邮件域触发警告;仅隐形域执行隐形模式

此外,所有输出都会扫描凭证模式(API密钥、令牌、JWT),并在返回之前进行编辑。

工具(11)

工具 目的
chrome_set_mode 在隐形/快速模式之间切换
chrome_navigate 导航到URL
chrome_snapshot 获得经过消毒的可访问性树
chrome_screenshot 拍摄PNG截图
chrome_click 点击元素(隐藏的贝塞尔鼠标)
chrome_type 键入文本(隐形中的高斯延迟)
chrome_tabs 列出/切换/创建/关闭选项卡
chrome_evaluate 在页面上下文中运行JS(输出已编辑)
chrome_wait 等待选择器或超时
chrome_scroll 向上/向下滚动(悄悄地抖动)
chrome_page_info 获取当前URL、标题、域风险

设置

  1. 使用CDP启动Chrome浏览器:

    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
      --remote-debugging-port=9222 \
      --user-data-dir=~/.chrome-debug-profile
    
  2. 安装并运行:

    npm install
    npm start
    
  3. 在MCP配置中注册:

    {
      "chrome-stealth": {
        "command": "node",
        "args": ["path/to/chrome-mcp/index.js"],
        "env": { "CDP_ENDPOINT": "http://127.0.0.1:9222" }
      }
    }
    

仅隐藏域名

领英(linkedin.com, www.linkedin.com)强制隐形模式——快速模式被阻止。这在5层强制执行:导航、模式切换、每次交互、帖子重定向和标签切换。

依赖项

  • @modelcontextprotocol/sdk --MCP协议实现
  • playwright-core --Chrome DevTools协议连接

许可证

麻省理工学院