# AutoBrowser **Repository Path**: xaek/auto-browser ## Basic Information - **Project Name**: AutoBrowser - **Description**: AutoBrowser Desk 解析并运行人写的 .js,把每一步动作发给 AutoBrowser-extends。扩展只在你已经打开的 Chrome 里执行,不解析脚本。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-24 - **Last Updated**: 2026-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoBrowser AutoBrowser Desk 解析并运行人写的 `.js`,把每一步动作发给 AutoBrowser-extends。扩展只在你已经打开的 Chrome 里执行,不解析脚本。 连接只发生在本机 `127.0.0.1`。Desk 不使用 Chrome 调试接口,标签页不会出现“正在被自动化软件控制”的黄条。MCP 由已经启动的 Desk 在 `http://127.0.0.1:47820/mcp` 提供。 ## 发布目录 | 路径 | 内容 | | --- | --- | | `publish/AutoBrowser.Desk/` | 可直接运行的 Desk(Windows x64,自带 .NET 8 运行时) | | `publish/AutoBrowser-extends/` | 未打包的 Chrome 扩展 | | `publish/samples/` | 测试页和示例脚本 | 启动 Desk: ```text publish\AutoBrowser.Desk\AutoBrowser.Desk.exe ``` 窗口标题是 AutoBrowser Desk。启动后等待扩展自动搜索并配对。 ## 加载扩展 1. 打开 Chrome,进入 `chrome://extensions`。 2. 打开右上角「开发者模式」。 3. 选择「加载已解压的扩展程序」,指向 `publish/AutoBrowser-extends`。 4. 若要操作 `file://` 页面,在扩展详情里打开「允许访问文件网址」。 弹出页只有连接状态、「重新搜索」、「全部停止」和「解除配对」。安装时 Chrome 会按清单提示一次权限。 ## 配对 1. 先启动 AutoBrowser Desk。它只在 `127.0.0.1` 的端口 `47821`–`47852` 上提供发现信息。 2. 扩展会自动搜索这一段,只接受程序名为 AutoBrowser Desk 的结果并完成配对。不用填写端口或配对码。 3. 已连接时,Desk 显示当前配置、扩展版本,以及窗口列表。双击一行会聚焦对应 Chrome 窗口。 每次重新启动 Desk 都会更换配对码,扩展会重新搜索并配对。点「解除配对」后,原来的连接立即失效,并且本次启动不会自动连上;点「重新搜索」或重启 Desk 后才会再配对。 ## MCP Desk 启动后在 `http://127.0.0.1:47820/mcp` 提供 HTTP MCP,只接受本机连接。需要先完成上面的配对。动作表里的能力都会做成工具,包括窗口和标签、页面读写、点击输入、截图、网络记录、Cookie、历史、书签、下载、清浏览数据,以及扩展自身的通知、闹钟和本机概要。Debug 日志仍只记 Cookie 的网站和名称,不记值。Python 或其他语言的调用方式见 [MCP接口.md](MCP接口.md)。Desk 里运行的 `.js` 仍看 [脚本接口.md](脚本接口.md)。 脚本正在运行时不能建立 MCP 会话。点「停止」或扩展里的「全部停止」会结束当前会话,之后的工具调用失败,直到客户端再次 `initialize`。界面状态栏会显示 MCP 地址;未监听、未配对或会话进行中也会写在那里。 Cursor 里可以这样连接: ```json { "mcpServers": { "autobrowser": { "url": "http://127.0.0.1:47820/mcp" } } } ``` ## 跑示例 1. 用 Chrome 打开 `publish/samples/test-page.html`,并至少再开一个窗口,都停在已有页面上。 2. 在 Desk 里点「打开文件夹」,选择 `publish/samples`。点选 `demo.js`,再点选要操作的窗口,然后点「运行」。脚本在外部编辑器里改,Desk 每次运行都读取磁盘上的文件。点选的窗口就是脚本里的 `browsers[0]`。 脚本会使用 `listBrowsers()` 的第一项:聚焦窗口,读取 `info()` 和 `html()`,按坐标截一块画面,并用 `copyTo("shot.png")` 把数据流写到脚本旁边。Desk 不显示这张图。接着在测试页等待输入框、写入文字、点击按钮,再读回结果。点击会向 `https://www.baidu.com/favicon.ico` 发一条请求;本机能访问该地址时,输出里能看到它的 URL 和状态码。 运行中可以点 Desk 的「停止」,或扩展里的「全部停止」。停止后不再执行新的 `auto` 调用。 标题栏的 Debug 打开时,脚本日志写在 `%LOCALAPPDATA%\AutoBrowser\logs\actions.jsonl`,每次启动会清空。关闭时不写文件。程序目录里的 `config.json` 可手改 `"debug"`,用来在闪退打不开窗口时打开日志。Cookie 只记录网站和名称,不记录值。 ## 从源码构建 需要 .NET 8 SDK。 ```powershell dotnet test AutoBrowser.sln -c Release dotnet publish src\AutoBrowser.Desk\AutoBrowser.Desk.csproj -c Release -r win-x64 --self-contained true -o publish\AutoBrowser.Desk ``` 国内镜像 `nuget.cdn.azure.cn` 当前无法加载索引,项目配置使用 nuget.org。 发布 Desk 之后,把 `extends` 复制为 `publish/AutoBrowser-extends`,把 `samples` 复制为 `publish/samples`。 ## 许可 MIT,见 [LICENSE](LICENSE)。