Token导航 LogoToken导航

MCP Server · 浏览器工具

MCP Browser Co Gnome

一个全面的浏览器自动化套件,通过Docker运行Playwright并集成noVNC可视化,提供Python API控制,记录所有浏览器操作和状态以进行调试,支持会话持久化和回放,并集成Cloudflare快速隧道实现远程访问。

stdio官方级别未说明来源级核验工具 24
浏览器自动化DockerClaude远程访问

快速开始

作者 / 组织
calhounpaul
提供方
calhounpaul

工具数量

24

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Browser Co Gnome 属于浏览器工具类 MCP Server,公开资料标注 24 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

浏览器工具

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 24 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

noVNC浏览器自动化套件

一个全面的浏览器自动化套件,在Docker中运行带有noVNC可视化的Playwright,提供用于控制的Python API,记录用于调试的所有浏览器操作/状态,启用会话持久性和回放,并集成用于远程访问的Cloudflare快速隧道。

特性

  • 可视化浏览器访问:通过noVNC web界面查看浏览器并与之交互
  • 剧作家自动化:完整的剧作家API,具有用于反探测的隐形模式
  • 会话保持:保存和恢复浏览器状态(Cookie、本地存储、URL)
  • 综合录音:视频、剧作家痕迹、HAR文件和动作日志
  • 远程访问:Cloudflare用于共享浏览器访问的快速隧道
  • 基于Docker:环境一致,易于部署

快速开始

1.启动Docker服务

# Start browser and video recording
docker compose up -d

# Or with remote access tunnel
docker compose --profile tunnel up -d

2.访问noVNC

打开http://localhost:6080在您的浏览器中。默认密码: secret

3.安装Python包

pip install -e .

4.运行自动化

import asyncio
from novnc_automation import AutomationBrowser

async def main():
    # Connect to the Docker browser via CDP
    async with AutomationBrowser(
        session_id="my-session",
        cdp_endpoint="http://localhost:9222"
    ) as browser:
        await browser.goto("https://example.com")
        await browser.click("a")
        await browser.screenshot("result")

asyncio.run(main())

或者使用Docker编排器进行编程控制:

from novnc_automation.docker import quick_start, quick_stop

# Start Docker containers with tunnel
status = quick_start(with_tunnel=True)
print(f"Tunnel URL: {status.tunnel_url}")
print(f"noVNC URL: {status.novnc_url}")

# ... run automation ...

quick_stop()

建筑

+-------------------+     +-------------------+     +-------------------+
|  Python Client    |---->|  Browser Container|---->|  Video Recorder   |
|  (Host machine)   |     |  (Playwright+VNC) |     |  (FFmpeg)         |
+-------------------+     +-------------------+     +-------------------+
                                  |
                                  v
                          +-------------------+
                          |  Cloudflared      |---> trycloudflare.com
                          |  (Quick Tunnel)   |     (Public URL)
                          +-------------------+

api参考

自动化浏览器

浏览器自动化的主要类。

from novnc_automation import AutomationBrowser

# Basic usage
async with AutomationBrowser(session_id="my-session") as browser:
    await browser.goto("https://example.com")
    await browser.click("#button")
    await browser.fill("#input", "text")
    await browser.screenshot("screenshot_name")

# Restore a previous session
async with AutomationBrowser() as browser:
    await browser.start(restore_session="my-session")
    # Browser state (cookies, localStorage) restored
导航方法
  • goto(url, wait_until="load") -导航到URL
  • reload() -重新加载页面
  • go_back() -回到历史
  • go_forward() -在历史中前进
交互方法
  • click(selector) -点击元素
  • fill(selector, value) -填写输入字段
  • type(selector, text, delay=0) -带按键模拟的类型
  • press(selector, key) -按键盘键
  • select_option(selector, value) -选择下拉选项
  • check(selector) / uncheck(selector) -切换复选框
  • hover(selector) -将鼠标悬停在元素上
等待方法
  • wait_for_selector(selector, state="visible") -等待元素
  • wait_for_load_state(state="load") -等待页面加载
  • wait_for_url(url_pattern) -等待URL匹配
内容提取
  • get_text(selector) -获取元素文本
  • get_attribute(selector, name) -获取属性值
  • get_inner_html(selector) -获取内部HTML
  • evaluate(js_expression) -运行JavaScript

会话管理器

管理浏览器会话持久性。

from novnc_automation import SessionManager

manager = SessionManager()

# List all sessions
sessions = await manager.list_sessions()

# Load session state
state = await manager.load_session_state("my-session")

# Delete session
await manager.delete_session("my-session")

隧道经理

为远程访问创建Cloudflare快速隧道。

from novnc_automation import TunnelManager

# As context manager
async with TunnelManager() as tunnel:
    print(f"Remote URL: {tunnel.url}")
    # Keep running...

# Manual control
tunnel = TunnelManager()
url = await tunnel.start()
print(f"Remote URL: {url}")
# ...
await tunnel.stop()

# Get URL from Docker container
url = TunnelManager.get_tunnel_url_from_docker_logs()

短暂数据

所有临时数据都保存到 tmp/ 目录(gitignored):

类型位置格式
视频tmp/videos/MP4
剧作家Tracetmp/traces/拉链
网络HARtmp/har/JSON
操作日志tmp/logs/jsonl
屏幕截图tmp/screenshots/PNG
X11屏幕截图tmp/x11_screenshots/PNG

用户输入捕获

用户交互在两个级别上自动捕获:

JS级别 -通过注入脚本执行DOM事件:

{
  "source": "user",
  "level": "js",
  "action": "click",
  "x": 450,
  "y": 320,
  "element": {"tag": "button", "id": "login", "text": "Sign In"}
}

X11级别 -带有屏幕截图的原始输入:

{
  "source": "user",
  "level": "x11",
  "action": "mouse_click",
  "pixel_x": 450,
  "pixel_y": 320,
  "normalized_x": 0.234375,
  "normalized_y": 0.296296,
  "screenshot": "tmp/x11_screenshots/20260204_123456_click_450_320.png"
}

查看痕迹

# Open Playwright trace viewer
npx playwright show-trace tmp/traces/my-session.zip

配置

环境变量

变量默认值描述
VNC_PASSWORDsecretnoVNC密码
RESOLUTION1920x1080x24显示分辨率
RECORD_VIDEOtrue启用视频录制
RECORD_TRACEtrue启用剧作家跟踪
RECORD_HARtrue启用HAR录制
STEALTH_MODEtrue启用反检测
HEADLESSfalse无头运行(无显示)
INSTALL_UBLOCKtrue安装 uBlock 起源 广告拦截器
TUNNEL_KEY(自动生成)网关隧道身份验证的共享密钥(添加 X-Tunnel-Key httpx请求的头部)

YAML配置

创建 config.yml:

browser:
  headless: false
  stealth_mode: true
  viewport_width: 1920
  viewport_height: 1080

recording:
  record_video: true
  record_trace: true
  record_har: true
  tmp_dir: tmp
  sessions_dir: sessions

tunnel:
  enable_tunnel: false
  tunnel_port: 6080

docker:
  vnc_password: secret
  resolution: 1920x1080x24

Docker服务

浏览器容器

  • 端口6080:noVNC web界面
  • 端口5900:VNC协议
  • 端口9222:Chrome DevTools协议

视频录制

使用Selenium的FFmpeg容器进行屏幕录制。

Cloudflare隧道

远程访问的可选服务。启用:

docker compose --profile tunnel up -d

例子

请参阅 examples/ 目录:

  • basic_usage.py -简单的自动化示例
  • session_persistence.py -保存和恢复会话
  • remote_access.py -Cloudflare隧道使用情况

MCP服务器

该软件包包括一个MCP(模型上下文协议)服务器,允许LLM控制浏览器。

安装

pip install -e .

配置

添加到您的Claude桌面配置(~/.config/claude/claude_desktop_config.json 在Linux或 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "novnc-automation": {
      "command": "novnc-mcp",
      "env": {
        "HEADLESS": "false",
        "STEALTH_MODE": "true"
      }
    }
  }
}

或者使用紫外线:

{
  "mcpServers": {
    "novnc-automation": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/novnc_automation_record", "novnc-mcp"]
    }
  }
}

可用工具

Docker管理
工具说明
docker_start启动Docker容器(浏览器、视频、隧道)
docker_stop停止所有Docker容器
docker_status获取状态,包括隧道URL、VNC URL、运行状况
浏览器控件
工具说明
browser_start启动浏览器会话(如果正在运行,则通过CDP自动连接到Docker)
browser_stop停止浏览器并保存会话
browser_goto导航到URL
browser_click按选择器单击元素
browser_fill在输入中填写文本
browser_type带按键模拟的类型
browser_press按键盘键
browser_screenshot截图(保存到 tmp/screenshots/)
browser_get_text获取元素文本内容
browser_evaluate执行JavaScript
browser_wait_for_selector等待元素
browser_get_url获取当前URL
browser_get_title获取页面标题
natural_language_click使用自然语言点击(GUI Actor AI)
OmniParser(UI元素检测)
工具说明
omniparser_analyze检测UI元素,保存带注释的图像+JSON
omniparser_click从分析结果中按ID单击元素
omniparser_get_html在bbox中心获取元素的HTML
omniparser_list_elements列出所有检测到的元素及其详细信息
会话和日志
工具说明
list_sessions列出已保存的会话
list_screenshots在tmp/中列出屏幕截图
get_action_logs获取操作日志

用于UI元素检测的OmniParser

MCP服务器集成 OmniParser v2 (Microsoft)用于检测和理解UI元素:

  • 你只活一次 用于图标/按钮检测
  • 光学字符识别 用于文本提取
  • 佛罗伦萨-2 用于元素字幕
# Basic install uses HuggingFace Spaces API (no GPU needed)
pip install -e .

# For local inference (requires GPU)
pip install -e '.[omniparser-local]'

工作流程示例:

  1. omniparser_analyze -检测所有UI元素
  2. 查看带注释的图像(带编号的边界框)
  3. omniparser_click 使用元素ID进行交互
  4. 或使用 omniparser_get_html 检查元素HTML

输出文件保存到 tmp/omniparser/:

  • YYYYMMDD_HHMMSS_annotated.png -带有编号bbox的图像
  • YYYYMMDD_HHMMSS_elements.json -元素详细信息(id、框、类型、文本、描述)

注: 未来的VLM查询工具计划通过本地视觉语言模型用于任意UI问题。目前,Claude Code可以直接分析带注释的图像。

使用GUI Actor进行自然语言点击

MCP服务器集成 GUI演员,一种能够理解自然语言指令以找到点击目标的视觉语言模型。

# Install GUI-Actor dependencies
pip install -e '.[gui-actor]'

通过MCP使用示例:

User: Click the login button
LLM: [calls natural_language_click with instruction="Click the login button"]

该模型截取屏幕截图,用人工智能进行分析,然后点击预测的位置。

临时文件

MCP服务器将文件保存到 tmp/ 目录(gitignored):

目录目录
tmp/screenshots/文件名中包含时间戳和URL的屏幕截图
tmp/omniparser/OmniParser带注释的图像和元素JSON
tmp/x11_screenshots/X11级点击截图,带坐标
tmp/logs/JSONL格式的操作日志
tmp/repos/克隆存储库(OmniParser、GUI Actor)

屏幕截图文件名遵循以下模式: YYYYMMDD_HHMMSS_fff_flattened_url.png

隐身模式

自动化使用 playwright-stealth 通过这些反检测措施:

  • navigator.webdriver 着手 undefined
  • 真实的浏览器插件和语言
  • 从用户代理中删除“HeadlessChrome”
  • WebGL供应商/渲染器欺骗
  • Chrome运行时补丁

发展

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/

许可证

麻省理工学院

工具与能力

工具数量

24

资源数量

0

提示词数量

0

能力标签

浏览器自动化Python本地部署PlaywrightDockernoVNC远程访问会话持久化

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

自动操作网页

打开页面、点击、填表,把浏览器动作交给模型执行。

抓结构化数据

把页面内容整理成表格或 JSON,省掉手工复制粘贴。

走一遍关键流程

按步骤检查页面是否正常,回归时少漏环节。

选择建议

值得选的地方

  • 工具数量 24 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在浏览器工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Browser Co Gnome

MCP World · 本页

24stdio有1 个2026-05-17
Fetch 9a2682de

MCP.so

1SSE有3 个2026-05-17
Browser 738d52bc

MCP World

0stdio有1 个2026-05-17
Playwright MCP Server

MCP.so

21stdio有4 个2026-05-17
Skyvern MCP

MCP World

0stdio有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Browser Co Gnome 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Browser Co Gnome 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

MCP Browser Co Gnome 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Browser Co Gnome 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP Browser Co Gnome 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP