跳到主要内容

生态

se-cli 生态——三个协同工作的包,覆盖 CLI、MCP 和 VS Code 工作流。

概览

se-cli 生态遵循 Playwright 的多仓库模式。三个相互独立的仓库各自提供不同的入口——核心 CLI、MCP 服务器包装器和 VS Code 扩展。三者共享相同的 daemon 架构和 WebDriver 实例。

se-mcp

什么是 se-mcp?

se-mcp 是围绕 se-cli 的轻量 MCP(Model Context Protocol)服务器包装器。它通过 stdio JSON-RPC 2.0 向支持 MCP 的 AI 客户端(如 VS Code、Claude Desktop、Cursor 和 Claude Code)暴露 50 多个浏览器自动化工具。

安装

npx @browsers-cli/se-mcp

无需全局安装——npx 会自动下载并运行最新版本。

配置

将 se-mcp 添加到您的 MCP 客户端配置中。服务器名称为 se-cli

VS Code(settings.json):

{
"mcp.servers": {
"se-cli": {
"command": "npx",
"args": ["-y", "@browsers-cli/se-mcp"]
}
}
}

Claude Desktop(claude_desktop_config.json):

{
"mcpServers": {
"se-cli": {
"command": "npx",
"args": ["-y", "@browsers-cli/se-mcp"]
}
}
}

Cursor(~/.cursor/mcp.json):

{
"mcpServers": {
"se-cli": {
"command": "npx",
"args": ["-y", "@browsers-cli/se-mcp"]
}
}
}

工具目录

se-mcp 暴露 50 多个 MCP 工具,覆盖完整的浏览器自动化生命周期。所有工具均以 browser_ 为前缀。

工具描述
browser_open启动浏览器会话(Chrome、Edge 或 Firefox)
browser_close关闭浏览器会话并停止 daemon
browser_navigate导航到某个 URL
browser_click通过 ref 或 CSS 选择器点击元素
browser_fill向输入框填充文本
browser_snapshot获取带元素 ref 的无障碍(aria)快照
browser_screenshot截取页面或元素的截图
browser_eval在页面中执行 JavaScript
browser_run_code执行任意 Selenium 片段(v0.9)
browser_generate_locator为 ref 生成推荐定位器,并附带匹配计数(v0.9)
browser_tab_list列出所有打开的标签页
browser_cookie_list列出所有 cookie
browser_state_save将浏览器状态保存为 JSON
browser_expect断言条件(可见、隐藏、文本、值等)
browser_route模拟网络路由
browser_console获取缓冲的控制台消息和 JS 错误

se-extension-vscode

什么是 se-extension-vscode?

这是一个用于 se-cli 的 Visual Studio Code 扩展。它提供侧边栏浏览器面板(渲染 aria 快照和截图)、反映 daemon 状态的状态栏、常用浏览器操作的一键命令,以及为 Copilot 智能体自动注册 se-cli MCP 服务器。

安装

在扩展视图(Ctrl+Shift+X)中搜索 "se-cli"。

或者从命令行安装:

code --install-extension se-cli.se-extension-vscode

功能

  • MCP 服务器集成 —— se-cli 通过 contributes.mcpServers 注册为 Model Context Protocol 服务器,向 VS Code 智能体暴露 40 多个浏览器自动化工具。
  • 浏览器面板 —— 活动栏中的 webview,以树形展示最近一次 aria 快照、最近一次截图、快捷操作按钮(打开、关闭、导航、快照、截图、点击、填写)以及命令历史。
  • 状态栏 —— 实时显示 daemon 状态(浏览器运行中 / 已停止)。点击可打开包含所有命令的快速选择器。
  • 自动快照 —— 可选地在每次导航或交互后自动获取 aria 快照,使面板始终反映当前页面。
  • 有无全局安装均可使用 —— 使用已配置的 se-cli 二进制文件、PATH 上的全局安装,或回退到 npx @browsers-cli/se-cli

配置

设置类型默认值描述
se-cli.browserchrome | edge | firefoxchrome启动会话时要启动的浏览器。
se-cli.headlessbooleanfalse以无头模式运行浏览器。禁用以显示浏览器窗口。
se-cli.sessionstringdefault用于浏览器隔离 / 并行会话的命名会话。
se-cli.autoSnapshotbooleantrue在导航/交互后自动获取 aria 快照。
se-cli.cliPathstring""se-cli 二进制的路径。为空 = 自动检测,然后回退到 npx。

命令

命令描述
se-cli.openBrowser选择浏览器并启动 daemon 会话。
se-cli.closeBrowser停止 daemon 并关闭浏览器。
se-cli.navigate运行 goto <url>
se-cli.snapshot运行 snapshot 并在面板中渲染树。
se-cli.screenshot运行 screenshot 并在面板中显示图片。
se-cli.click通过 ref(e1)或 CSS 选择器点击。
se-cli.fill通过 ref/选择器向输入框填充文本。
se-cli.runCommand快速选择所有可用命令。

架构

三个包共享同一个 se-cli daemon,它持有 WebDriver 实例。CLI 通过 Unix socket(或 Windows 命名管道)每条命令发送一行 JSON。se-mcp 包装了 se-cli 中的 MCP 服务器,将 JSON-RPC 2.0 调用转换为 CLI 参数。VS Code 扩展直接为其命令启动 CLI,并为 Copilot 智能体集成注册 MCP 服务器。

┌─────────────┐ shell ┌──────────┐ JSON ┌──────────┐ WebDriver ┌────────┐
│ AI Agent │───────────►│ se-cli │─────────►│ Daemon │─────────────►│Browser │
│ (shell) │ │ CLI │ socket │ │ │ │
└─────────────┘ └────┬─────┘ └──────────┘ └────────┘

│ require()

┌─────────────┐ JSON-RPC ┌──────────┐
│ VS Code │◄──────────►│ se-mcp │
│ Copilot │ stdio │ wrapper │
└─────────────┘ └──────────┘

│ spawns
┌─────────────┐ spawns ┌──────────┐
│ VS Code │────────────►│ se-cli │
│ Extension │ │ CLI │
│ Panel │ └──────────┘
└─────────────┘

我应该使用哪个包?

使用场景
Shell 脚本、终端自动化se-cli
Claude Code、任何基于 shell 的 AI 智能体se-cli
Claude Desktop、Cursor(MCP 客户端)se-mcp
带 Copilot 智能体的 VS Codese-extension-vscode
带浏览器面板 UI 的 VS Codese-extension-vscode
在 Node.js 中以编程方式使用 MCP 服务器se-mcp
以上全部se-cli + se-mcp + se-extension-vscode