mcpField
N
NexusBrowser

NexusBrowser

本地服务
julienpiron.fr浏览器自动化4今天更新

关于 NexusBrowser

NexusBrowser 是 MCP 服务和本地桥接程序,让 Agent 在后台标签页中操作用户自己的 Chrome,并沿用现有会话和扩展。它提供标签页归属控制及受限的浏览器操作,用户仍可在自己的标签页中继续工作。

主要功能

  1. 01按 Agent 分组的后台标签页
  2. 02可信鼠标与键盘事件
  3. 03基于定位器的页面交互
  4. 04网络捕获与下载管理
  5. 05访问跨域 iframe
  6. 06秘密信息遮罩与紧急停止

适用场景

  1. 01让 Agent 使用已登录的 Chrome 会话
  2. 02将网页导出为 Markdown
  3. 03检查网络响应和下载
  4. 04操作跨域框架中的元素

MCP 相关

`nexus-browser` MCP 服务连接本地桥接程序和 Chrome 扩展,向 MCP 客户端提供标签页、页面交互、网络、下载和导出能力。桥接程序和扩展负责执行标签页归属及命令限制。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"pironjulien-nexus-browser": {
"command": "uvx",
"args": [
"nexus-browser"
],
"env": {
"NEXUS_BROWSER_AGENT": "<NEXUS_BROWSER_AGENT>"
}
}
}
}
启动命令uvx nexus-browser
需要配置的环境变量
NEXUS_BROWSER_AGENTAgent name used for the tab group (Claude, Codex, Antigravity...)

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

安装包
pypinexus-browser2.31.6

工具

48

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

NexusBrowser

Release PyPI Tests OpenSSF Scorecard License: MIT Chrome MV3 Python 3.14 MCP

NexusBrowser:由后台标签页中的 AI Agent 驱动的真实 Chrome。

NexusBrowser:AI Agent 在后台 Chrome 标签页中填写表单、选择选项并点击,同时用户继续浏览

由后台标签页中的 AI Agent 驱动的真实 Chrome。 NexusBrowser 让 Antigravity、Claude 和 Codex 通过一个共享的本地桥接程序和一个 MCP 服务 nexus-browser,使用用户自己的 Chrome(包括其会话和扩展程序)。每个 Agent 都在自己的后台标签页中工作,标签页按其名称分组,并通过 Chrome DevTools Protocol 发送真实(可信)的鼠标和键盘事件,同时用户可以继续在自己的标签页中工作。

Windows 10/11 · Chrome 116+ · Python 3.14 · MIT 许可证

NexusBrowser 属于 Nexus 系列:NexusWindows (Claude · Codex · Antigravity), NexusBrowser (仓库), NexusAndroid (仓库). 项目页面:julienpiron.fr/nexusbrowser。

为什么

浏览器自动化通常意味着使用一个独立的无头浏览器(没有会话和扩展程序),或者进行屏幕级别的计算机操作——这会移动用户的光标并将窗口置于前台。NexusBrowser 在用户已经使用的浏览器中运行,不会激活 Agent 的标签页或窗口,并将防护措施放在扩展程序和桥接程序中,而不是交由 Agent 负责:标签页所有权、DevTools 命令允许列表、屏蔽的机密信息,以及紧急停止功能。

  • Antigravity:它自己的浏览器 Agent 在独立的 Chrome 配置文件中运行,无法使用用户浏览时的 Cookie 或登录状态(Antigravity 文档)。NexusBrowser 让它使用用户的真实 Chrome。
  • Claude 和 Codex 已经有自己的 Chrome 扩展程序(Claude in Chrome、Codex Chrome 扩展程序)。在 DevTools 协议桥接能发挥作用的场景中,NexusBrowser 可作为补充:JavaScript 对话框(browser_handle_dialog)、包含响应正文的详细网络捕获、跨源 iframe 内的元素、内容以及 Google Docs/Sheets/Slides 导出,还有下载。

在 2.4.0 之前,本项目以“Antigravity Browser Bridge”的名称在此发布,仅供 Antigravity 使用。从 2.6.0 起,它成为供多个 Agent 共享的中立桥接程序。

组件

文件夹作用
extension/Chrome MV3 扩展程序“NexusBrowser”:CDP 操作、定位器、网络、对话框、跨源 iframe、导出、标签页所有权
native-host/本地桥接程序(bridge_server.py:供扩展程序使用的 WebSocket 9224,以及供 Agent 使用的 HTTP 9225)和原生主机 com.nexus.browser_auth
client/MCP 服务 nexus-browser(mcp_server.py)、经过身份验证的传输(bridge_client.py)、命令行(browser_cli.py)、共享紧急停止机制
skills/、plugins/Skill 和 Antigravity 插件;install.ps1 仅将 Skill 复制到该插件中
benchmarks/与 Chrome DevTools MCP 对比的可复现 Token 和成功率基准测试(compare.py、结果和方法见其 README)
mcpb/Claude Desktop 扩展(nexus-browser.mcpb,随每个版本附带;服务来自 PyPI)
gemini-extension.jsonGemini CLI 扩展:gemini extensions install https://github.com/pironjulien/NexusBrowser(服务和 Skill 来自 PyPI)

工具

49 个 MCP 工具。

类别工具
标签页browser_list_tabs、browser_active_tab(只读)、browser_new_tab、browser_select_tab、browser_adopt_tab、browser_release_tab、browser_group_tabs、browser_close_tab、browser_reload、browser_navigate(URL、后退、前进)、browser_wait_load、browser_wait_for(等待文本或元素出现或消失)
输入(可信 CDP 事件)browser_click(按定位器、标记、选择器或文本)、browser_hover、browser_fill、browser_fill_form、browser_select_option、browser_check、browser_press_key、browser_type_keys、browser_drag_and_drop、browser_scroll、browser_upload、browser_handle_dialog
查找元素browser_find(Playwright 风格的定位器:角色、标签、文本、占位符、测试 ID,支持所有框架)、browser_interactive_map、browser_vision_inspect(Set-of-Mark 标记,可通过 browser_click(mark=N) 点击)、browser_axtree、browser_content、browser_check_handoff(2FA、CAPTCHA)
网络和下载browser_network_record、browser_network_stop、browser_network_requests、browser_network_response、browser_wait_network_idle、browser_download_status、browser_wait_download、browser_get_cookies
输出browser_screenshot(视图、整页或元素)、browser_pdf、browser_export(将主要内容导出为 Markdown、文本或 HTML)、browser_export_gsuite(通过 Google 的导出 URL 导出 Google Docs、Sheets、Slides)、browser_youtube_transcript、browser_logs
网站提供的工具(WebMCP)browser_webmcp_tools、browser_webmcp_call(页面通过 document.modelContext 暴露的工具)
页面访问browser_eval、browser_cdp_send(允许列表中的命令)
多项操作browser_batch(单次往返最多执行 30 次工具调用,遇到首个错误时停止;每个步骤均保留各自的检查)

安装

需要 Windows 10 或 11 和 Google Chrome。无需管理员权限,也无需预先安装其他软件。

  1. 从最新版本下载 get.ps1,右键点击并选择 使用 PowerShell 运行。如需先检查文件,请将其 SHA-256 与随文件一同发布的 get.ps1.sha256 进行比较:

    (Get-FileHash "$HOME\Downloads\get.ps1" -Algorithm SHA256).Hash
    

    或者,打开 PowerShell(在“开始”菜单中输入 PowerShell),粘贴以下单行命令:

    irm https://raw.githubusercontent.com/pironjulien/NexusBrowser/main/get.ps1 | iex
    

    如果尚未安装,uv 会自动安装;随后将最新版本下载到 %LOCALAPPDATA%\NexusBrowser\app,设置本地桥接程序和原生主机,并向找到的所有 AI 客户端声明 nexus-browser 服务:Claude Code、Claude Desktop、Codex 和 Antigravity。

  2. Chrome 会打开 chrome://extensions,并将扩展文件夹复制到剪贴板:打开 开发者模式(右上角),点击 加载已解压的扩展程序,粘贴文件夹(Ctrl+V),然后点击 选择文件夹。这是唯一需要手动完成的步骤:在 Chrome 网上应用店之外,Chrome 只能通过这种方式安装扩展程序。安装程序会等待,并在扩展程序连接后提示你。

  3. 重启 AI 应用并向它提出请求,例如:“在后台标签页中打开 https://example.com,并以 Markdown 格式提供页面内容。”

再次运行即可更新:文件夹位置保持不变,因此 Chrome 会保留并重新加载扩展程序。新版本会在工作版本旁准备就绪,并先检查其 Python 依赖;如果更新失败,则会恢复之前的版本、重新安装并重启桥接程序。 桥接程序也可以自行更新公开安装(这是 Nexus 产品共用的约定):它会写入 ~\.nexus\status\browser.json(包含 version、从 releases/latest 重定向读取的 latest(每天最多读取一次)、state 和 message);GET /api/update 会返回这些信息,而 POST /api/update(桥接令牌)会启动“Nexus Browser Update”任务。该任务会在桥接程序之外运行 get.ps1,并记录 done 或 failed(保留当前版本;Agent 在 Chrome 中工作时会延后更新)。克隆版本则使用 git 更新。 之后才安装了 AI 客户端?也请再次运行安装程序。你自行编写的条目,或已提供该服务的 nexus-browser 插件,均不会被更改。

从克隆仓库运行(开发者)

要求:uv、PowerShell 7、用于测试的 Node.js。

git clone https://github.com/pironjulien/NexusBrowser.git
cd NexusBrowser
pwsh -NoProfile -File install.ps1
  • Python 环境、令牌、日志、屏幕截图和导出文件都存放在 ~\.nexus\nexus-browser(克隆仓库之外); 每次调用的日志存放在 %LOCALAPPDATA%\NexusJournal\browser\(参见隐私)。
  • 计划任务 Nexus Browser Bridge 没有触发器:桥接程序按需启动(首次 Agent 调用时,或通过 schtasks /Run 启动)。
  • 向 Chrome(HKCU)声明原生主机 com.nexus.browser_auth:由它计算扩展的证明,令牌绝不会传到 Chrome。
  • 仅支持 Antigravity,且只能通过其插件(服务和技能);仅当存在共享 MCP 守护进程令牌时才可使用: 插件指向共享 HTTP 守护进程(client/mcp_server.py --http,端口 16182),并附带 ?agent=antigravity。 如果没有该令牌,install.ps1 会发出警告并跳过守护进程及其注册;但仍会安装桥接程序、原生主机和 计划任务。install.ps1 -Register(单行安装程序运行的命令)会在找到相应客户端时,通过 stdio 向 Claude Code、Claude Desktop 和 Codex 声明服务,并将其作为 nexus-browser 插件声明给 Antigravity(scripts/register_clients.py);同时将 NEXUS_BROWSER_AGENT 设为客户端名称(即其标签页组)。 如果未找到,请自行添加服务(见下文)。NEXUS_PACK=1(Nexus pack)会直接运行,不提示、不等待,也不显示窗口。
  • 桥接程序需要重新启动 Chrome 时,会使用 Default 配置文件;可通过 NEXUS_CHROME_EXTRA_ARGS 环境变量 添加额外的 Chrome 标志(例如语言设置……)(允许列表:--lang、--accept-lang、 --variations-override-country、--disable-features=Glic…、--force-dark-mode;其他设置都会被忽略)。
  • 从旧版“Antigravity Browser Bridge”迁移:其计划任务(端口相同)和原生主机 com.nexusagy.bridge_auth 都会被移除。

然后在 chrome://extensions 中加载一次 extension\(启用开发者模式,选择“加载已解压的扩展程序”),并移除旧版 “Antigravity Browser Bridge”(如果存在)。扩展 ID 由 manifest.json 中公开的 key 固定 (blcgddmjdkobmgakjffjpgiicjlflgjf),在每台电脑和任何文件夹中都相同;桥接程序和原生主机只接受这一个来源。

来自 PyPI 的 MCP 服务

安装桥接程序和扩展(见上文)后,任何 MCP 客户端都可以直接从 PyPI 启动服务,无需克隆仓库:

claude mcp add nexus-browser --scope user -e NEXUS_BROWSER_AGENT=Claude -- uvx nexus-browser

在 VS Code 中安装 在 VS Code Insiders 中安装

Gemini CLI:gemini extensions install https://github.com/pironjulien/NexusBrowser(从 PyPI 安装服务,并通过 gemini-extension.json 安装技能)。

Claude Desktop 扩展:下载 nexus-browser.mcpb,并将其拖到 Claude Desktop 窗口中,或在设置 > 扩展中添加(服务由 uv 从 PyPI 安装)。

没有桥接程序时,服务仍会启动并列出其 49 个工具;每次调用都会返回清晰的错误,提示进行一次性安装。

安全性(由扩展和桥接程序保障,而非由 Agent 保障)

  • 双向认证桥接(nexus-browser/1):对双方的随机数进行 HMAC 证明,之后每条消息都使用每连接密钥和严格的序列号签名。HTTP 请求必须包含 X-Nexus-Browser-Token,且拒绝任何浏览器来源。
  • 无需原生主机即可配对(无法向 Chrome 声明原生主机时,例如注册表写入被虚拟化的 Microsoft Store 应用):scripts/pair-extension.ps1 向桥接请求一个一次性 256 位密钥(有效期 5 分钟,5 次证明错误即失效;使用桥接令牌调用 POST /api/pair),然后打开 chrome-extension://<id>/pair.html#<secret>;页面会从地址栏清除密钥,双方相互证明,并据此以及握手过程派生扩展程序的密钥。桥接会为该扩展程序 ID 保留密钥(声明的 ID 必须与连接来源匹配),扩展程序则将其作为不可提取的 WebCrypto 密钥保存在自己的 IndexedDB 中(绝不存入内容脚本可读取的 chrome.storage)。证明、会话密钥和签名消息的机制与原生主机相同;只要原生主机已安装,就始终优先使用它。撤销:POST /api/pair/revoke。
  • 标签页归属:每个桥接客户端都要标识自身(Agent + 会话标头,由桥接通过签名通道转发)。通过 browser_new_tab 打开的标签页归该会话所有(记录在 chrome.storage.session 中);任何针对其他标签页(用户的、其他 Agent 的)的页面命令都会被拒绝。只有通过 browser_adopt_tab(tab_id, user_asked=True) 才能使用用户的标签页。每个页面工具都必须提供 tab_id。当 MCP 进程退出或静默超过 1.618 x 60 秒(服务每 37 秒发送一次心跳)时,该会话会留下孤儿标签页:同一 Agent 可以认领(browser_adopt_tab,启动时也会自动认领)、关闭或释放这些标签页;其他 Agent 永远不能操作。
  • 按客户端列出标签页:browser_list_tabs 和 browser_active_tab 仅返回调用方自有标签页(打开或认领)的完整标题和 URL。用户和其他 Agent 的标签页只显示域名(url = 来源,title 为 null,redacted: true):足以通过 id 和域名指定标签页以调用 browser_adopt_tab,但绝不泄露其 URL 中的令牌或文档 ID。
  • 保留的维护命令:只有安装程序(install.ps1,身份为 Installer)可以重新加载扩展程序,且仅当没有 Agent 正在使用 Chrome 时才可以(没有正在运行的命令,也没有被活动会话占用的标签页)。下载记录只能由启动该下载的客户端清除(通过 browser_wait_download 进行归属判定)。
  • browser_cdp_send 的 CDP 允许列表;每个扩展脚本都在隔离世界中运行(只有 browser_eval、YouTube 字幕以及 browser_cdp_send(..., world="page") 会访问页面世界)。
  • 机密信息:对机密标头、URL 参数以及 JSON/表单正文中的字段进行遮蔽(保留分页令牌和大模型令牌计数);仅本地开发来源可读取 Cookie 值(include_values=True);桥接本身会拒绝上传机密文件夹中的文件(会先规范化路径)。密码、一次性验证码或支付卡字段的值(type=password、autocomplete 为 current-password、new-password、one-time-code、cc-number、cc-csc、cc-exp)绝不会离开页面:browser_content(包括 html 模式)、browser_vision_inspect、browser_find、browser_axtree 和 browser_fill 读回的值都会以 [masked value] 替代。
  • browser_eval 可完全访问页面,不会遮蔽任何内容:与 browser_cdp_send(Runtime.evaluate) 一样(两个世界共享同一文档),它可以读取页面可读的内容(通过 document.cookie 读取非 HttpOnly Cookie、localStorage、sessionStorage、IndexedDB、表单字段),其 fetch 请求也会携带用户会话。上述遮蔽仅适用于专用工具,不适用于脚本或 browser_cdp_send 返回的原始 Chrome 响应(DOM.getOuterHTML、Accessibility.getFullAXTree 等):这是有意保留的行为,工具、技能和服务指令中都已明确说明。拒绝带有 scriptToEvaluateOnLoad 的 Page.reload(这会在加载时注入脚本)。
  • 执行对外操作前,必须取得用户对具体操作的同意(2.12.0):在点击(browser_click)、按 Enter / Control+Enter / Space(browser_press_key、browser_fill 的 keys)、输入换行(browser_type_keys)或拖动之前,服务会在不执行任何操作的情况下,通过桥接已有的读取路径读取触发对象(定位器使用 find;并通过扩展程序隔离世界中的 cdp-send 执行只读脚本 client/trigger_probe.js):不需要新增扩展程序操作,因此已加载的扩展程序也能使用此功能。服务会读取被点击的控件,或焦点字段所属表单中的提交按钮。如果共享策略(client/garde-fous.json)检测到对外操作词(send、pay、buy、order、publish、post、call、transfer、subscribe、book 等),则拒绝执行该操作,并返回具体操作摘要(目标、收件人、不含敏感值的表单内容、附件、页面来源和路径)以及一个有效期为 10 分钟的一次性令牌。Agent 会先向用户展示摘要,只有用户同意后,才会使用 confirm=true 和 accord="<token>" 再次发送相同调用。用户同意后若有任何变更,该同意即失效;单独设置 confirm=true 永远不够;在页面中读取到的令牌无效。若表单的按钮写有 Submit、Soumettre、Transmettre、Postuler 或 Valider ma demande,且表单中有已填写的数据(自由文本、电子邮件地址、电话号码、文件)或无法读取表单内容,则提交表单也属于对外操作;登录表单(含密码字段)、搜索、筛选、空表单或向导中的 Next 则不受限制(这是本浏览器特有的规则:只有该工具会读取触发操作所涉及的表单)。普通链接和按钮不受限制。只有读取确实失败时(脚本错误、焦点位于跨源框架中、按 Enter 时目标字段所属表单不可读取),检查才会采取失败即拒绝的处理方式。页面文本输出(browser_content、browser_axtree、browser_export、Google 和 YouTube 导出、网络正文)若看起来包含面向 AI 的指令,会附带 untrusted_note(这只是一个信号)。CLI 也会执行相同检查,但无法在命令之间传递令牌(每条命令都是独立进程):它会拒绝对外操作,返回摘要并提示使用 MCP 服务;其他操作仍不受限制。
  • WebMCP 工具(通过 document.modelContext 向 Agent 提供自有工具的网站;对于处于原点试用阶段的网站,这是 Chrome 149+ 的原生功能):browser_webmcp_tools 会列出这些工具,browser_webmcp_call 则通过 Chrome 自身的 getTools() / executeTool() 执行工具,并由扩展程序隔离世界中的 cdp-send 求值(页面无法替换这些方法;无需新增扩展程序操作,也无需 Chrome 标志)。调用也必须取得相同的同意:如果工具被页面标记为 consequentialHint,或其名称、标题、说明或表单提交按钮中包含对外操作词,或工具表明自己会提交数据(Submit、Transmettre、Postuler 等)且会收到已填写的数据,则拒绝调用,并返回具体调用内容(工具、来源、已遮蔽敏感值但已绑定令牌的输入、页面)以及一次性令牌。readOnlyHint 不会豁免任何检查:这只是页面自己的声明。只有在检查后工具定义未发生变化时才会执行该工具。说明和输出都是页面文本(untrusted_note)。
  • 不经过同意检查的路径:browser_eval 和 browser_cdp_send(Runtime.evaluate、Input.dispatch*)按设计保留对页面的完整访问权限,可在不经此检查的情况下点击或提交;工具说明和服务指令会告知模型,切勿用它们执行对外操作。browser_drag_and_drop 的纯坐标也不会被读取。
  • 紧急停止(Ctrl+Alt+Shift+Esc,~\.nexus\stop):取消已在运行的命令(输入、拖动、等待),断开调试器,并在 120 秒内拒绝所有操作。此文件协议也由 NexusWindows Agent 共用。
  • 各自控制的内容:每个 Agent 的标签页都位于一个以其名称命名的 Chrome 标签组中;browser_release_tab 会将标签页交还。工具栏图标会打开只读弹出窗口,显示桥接状态和各 Agent 的标签页。
  • 持有桥接令牌的人即可控制浏览器会话:请妥善保管 ~\.nexus\nexus-browser\bridge-token。

检查

pwsh -NoProfile -File test.ps1         # offline: ruff, Pyright, pytest (real bridge on ephemeral ports), Node tests
pwsh -NoProfile -File test.ps1 -Full   # plus real validation in the user's Chrome: --mouse then --full-live
pwsh -NoProfile -File verify.ps1 -Browser  # task, native host, bridge reached, loaded extension up to date

test.ps1 使用由 install.ps1 创建的环境。

更新现有安装时,也会检查扩展已加载的版本和功能,并在需要时重新加载扩展, 然后重新加载受监管的 Browser MCP 工作进程。 如果 Agent 正在使用浏览器标签页,更新会延后;不会驱动或激活用户的标签页。 如果 Chrome 已关闭,它会在下次启动时加载更新后的扩展文件;这不算实时验证。

隐私

NexusBrowser 完全在你的 PC 上运行:一个 Chrome 扩展、一个绑定到 127.0.0.1(通过本地令牌进行身份验证)的本地桥接程序,以及一个 MCP 服务。它没有账户、遥测或分析功能,也不连接远程服务;不会向作者或任何第三方发送任何内容。

  • 读取的内容:Agent 打开的标签页中(或你明确允许其接管的标签页中)的页面文本和无障碍树、屏幕截图、控制台日志、网络请求(标头和密钥字段会被遮蔽),以及调用 browser_get_cookies 时读取的 Cookie。读取内容中的密码、代码和卡片信息会被遮蔽,在屏幕截图和 PDF 中则显示为圆点(包括所有帧和跨源帧);控制台日志的遮蔽方式与网络正文相同;但通过 browser_cdp_send 调用的 browser_eval 和 Runtime.evaluate 可以完全访问页面。
  • 网络:页面由你自己的 Chrome 使用你自己的会话加载,效果与你自行浏览相同。导出内容(Google Docs、Sheets、Slides、YouTube 字幕稿)会在你的会话中从相应网站获取。
  • 数据去向:工具结果会返回给你所连接的 AI 客户端(Antigravity、Claude、Codex……),它可能会根据自身的隐私政策将结果发送给其模型提供商。
  • 存储内容:存储在 ~/.nexus/nexus-browser/ 下:Python 环境、桥接令牌、bridge.log(连接和紧急停止事件,达到 1 MB 时轮换,保留三个备份)、install.log、屏幕截图(最多 50 张,每张保留不超过 24 小时),以及你请求的导出内容。扩展会在 Chrome 的会话存储中保存标签页归属信息,并在 Chrome 关闭时清除。
  • Gmail 未读计数(默认关闭):工具栏弹出窗口中的一个框,用于 MX Keypad AI Agents 控制台。勾选后,扩展会在你自己的会话中每分钟读取一次 Gmail 官方未读邮件源(类似“Gmail 检查器”扩展),桥接程序只会将数量写入 ~/.nexus/nexus-browser/compteurs.json,每个 Chrome 配置文件对应一个随机标识符:不包含发件人、主题或内容。取消勾选后,会删除该配置文件对应的条目(如果没有剩余条目,则删除整个文件)。
  • 日志:位于 %LOCALAPPDATA%\NexusJournal\browser\<agent>\<YYYY-MM>.jsonl(或 NEXUS_JOURNAL_HOME),采用 Nexus 工具的通用格式:每次工具调用占一行,记录调用的 AI、操作、结果、耗时、技术方式、标签页的可注册域名(如 google.com,绝不记录地址)以及来自固定列表的错误类别。绝不记录页面文本、输入值、标题或图像。不会向任何地方发送内容;日志按月保存,直到你将其删除:你可以随时删除 browser 文件夹(或单个月份的文件)。
  • 移除:从 Chrome 中移除扩展,删除计划任务 Nexus Browser Bridge 和注册表项 HKCU\Software\Google\Chrome\NativeMessagingHosts\com.nexus.browser_auth,然后删除 ~/.nexus/nexus-browser/ 和 %LOCALAPPDATA%\NexusJournal\browser\(以及单行安装后生成的 %LOCALAPPDATA%\NexusBrowser\)。卸载安装程序声明的 nexus-browser 配置项:运行 claude mcp remove nexus-browser -s user,删除 ~/.codex/config.toml 中的 [mcp_servers.nexus-browser],删除 Antigravity 的 plugins/nexus-browser 文件夹,并删除 Claude Desktop 的 claude_desktop_config.json 中 mcpServers 下的 nexus-browser。

如有问题或顾虑,请在此代码库中提交 issue。

限制

  • 仅支持 Windows 和 Chrome(Manifest V3,chrome.debugger)。调试器连接期间,Chrome 会在 Agent 标签页上显示“正在调试”横幅。受保护的页面(chrome://、Web Store)无法执行脚本。
  • 标签页所有权按 MCP 进程划分:同一对话中的子 Agent 共享标签页。
  • YouTube 字幕读取页面自身的播放器(页面环境)。
  • 对外操作检查会在执行手势前读取触发操作:如果页面在两者之间改写表单或按钮,就无法检测到。它可识别 <form>、对话框,以及包含字段和按钮的最近区块(最多 3 个字段,类似聊天编辑框);只有带有 email 属性的自定义收件人标签才会被读取。令牌证明执行前已描述过这一完全相同且未变更的操作,但不证明是谁同意的:用户与工具之间始终只有 Agent 这一沟通渠道。
  • WebMCP:readOnlyHint 不会豁免任何检查(页面自称只读不能证明不会产生对外影响),consequentialHint 只会增加确认步骤;只有跨源 iframe 向顶层页面公开的工具(exposedTo)才会被列出,规范要求如此。不会使用 Chrome 的 CDP WebMCP 域(Chrome DevTools MCP 使用该域),因为它需要以 --enable-features=DevToolsWebMCPSupport 启动 Chrome。
  • 代码注释为法语。

许可证

MIT,详见 LICENSE。版权所有 (c) 2026 Julien Piron。

评论

支持 Markdown

第一次接触 MCP?

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

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