mira_browser:把 ai_browser MCP 與 DSH 會話協作接到同一套工具裏

前言

在 DSH 裏做需要瀏覽器的能力時,常見做法是單獨掛 MCP 服務端,再在另一個通道里和「另一臺機器或另一個會話」對聊。路徑一多,檔案目錄、登錄態和回執狀態就容易對不齊。下面介紹的 mira_browser(維護者 Stella-Mira,GitHub Stella-Mira/mira_browser,當前版本 0.2.0,MIT)把兩件事收進一個 DSH 工作流插件:通過補丁拉起 ai_browser 的 Python MCP,註冊 mcp__aibrowser__*;同時提供 collab_*,把同機或其它機器上的 DSH 會話當作對端收發消息。社區目錄 SkillHub 分類爲「工作流」,見 目錄頁。

這是什麼

一句話:DSH 瀏覽器與協作插件——接上 ai_browser 的 MCP 服務端,並把另一個 DSH 會話當成對端收發消息(collab_*)。

插件在宿主裏通過 cordis.patch.yml 插入兩行(順序不能顛倒):mira-browser-dirs 由本包 lib/index.js 在 apply 時同步建好瀏覽器檔案與臨時目錄;mcp-aibrowser 由 @deepseek-ai/dsh-mcp-client 以 stdio 拉起 ai_browser.mcp_server。所有工具返回 JSON 文本({ok:true,...} 或 {ok:false,error:{code,message,hint}})。

核心功能

ai_browser 作爲 DSH 瀏覽器工具

補丁註冊後,模型側可用 MCP 瀏覽器工具,例如:

工具 作用
mcp__aibrowser__browse 渲染網頁並返回純數據 JSON
mcp__aibrowser__session_open / session_act / session_list / session_close 有狀態會話
mcp__aibrowser__collect 記錄級抓取(自動翻頁)
mcp__aibrowser__cookies_import 把 cookie 文件導進某個 profile

缺 listen 時,上述 MCP 工具不受影響;只有 collab_* 會報配置缺失。

collab_*:跨會話協作

保留 0.1.0 的瀏覽器驅動思路(結構信號、選中行守衛、默認插話),0.2.0 新增穩定別名表、兩級回執、send_many、以及 queue/inflight 可觀測。共 10 個 collab_* 工具,例如 collab_list / collab_read / collab_send / collab_send_many / collab_wait / collab_receipt / collab_status,以及 collab_alias_set / collab_alias_list / collab_alias_remove。

collab_send 成功時會帶 receiptId、一級 receipt 與二級回執字段(見 README「工具清單」)。session 與會話標題尋址在 0.2.0 改爲精確匹配;若以前靠標題前綴,需用 collab_alias_set 登記別名。

本節點 listen 與入站投遞

在配置裏手填 listen 後,本節點開始監聽;對端可向本機 POST /collab/deliver 直投會話(走宿主 sessionController 的 steer/followup,不是去點本機 GUI)。非迴環監聽時,入站需 Authorization: Bearer <listen-token 文件內容>;無令牌文件時除 /healthz 外一律 403。

配置要點

運行期文件落在 $DSH_HOME/mira_config/mira_browser/(DSH_HOME 默認爲 ~/.dsh),包括 config.json、aliases.json、可選 listen-token 與 creds/<target>.json 等。優先級爲:內置默認值 ← config.json ← 宿主 profile 補丁里的 config:,最顯式的一方生效。

profile 層常見鍵(與 0.1.0 兼容,本輪只新增 listen)示例:

config:
  enabled: true
  python: $HOME/DeepSeek/Browser/.venv/bin/python
  aiBrowserHome: $HOME/DeepSeek/Browser
  playwrightBrowsersPath: $HOME/.cache/ms-playwright
  root: $HOME
  profilesDir: $HOME/.mira_browser/profiles
  tmpDir: $HOME/.mira_browser/tmp
  localGuiUrl: http://127.0.0.1:3080/
  proxyPort: 8543
  targets: []

listen 必須在 config.json 中手填,否則全部 collab_* 返回 config/missing;首次加載若無 config.json 會生成帶空 listen 的模板(權限 600),填完後重載插件即可。對象形態示例:

{ "schemaVersion": 1, "listen": { "ip": "192.0.2.10", "port": 8544 } }

同機快速試驗可用:

{ "schemaVersion": 1, "listen": "loopback" }

cordis.patch.yml 裏 mira-browser-dirs 與 mcp-aibrowser 必須共用同一套 profilesDir / tmpDir,否則 MCP 與 collab_* 各用一套瀏覽器檔案,登錄態不共享。

安裝與啓用

DSH 生態裏插件以 bundle 形式掛載;本包在 package.json 中聲明 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } },安裝後補丁會自動注入上述兩行。

SkillHub 目錄頁給出的安裝表述爲:請安裝 DSH 插件 Stella-Mira/mira_browser(頁面未提供其它 shell 安裝命令,勿自行拼接未在文檔出現的 dsh plugin add 形式)。安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證;插件以當前 dsh 進程權限運行,遠程目標口令建議放在 creds/<target>.json(600),而非明文寫在可共享的配置裏。

啓用協作前完成:

  1. 準備好 ai_browser 運行環境(python、aiBrowserHome、playwrightBrowsersPath;Windows 等環境見 README「跨平臺默認值」或環境變量 MIRA_BROWSER_*)。
  2. 在 config.json 填寫 listen,必要時配置 targets 與 listen-token。
  3. 重載插件;用 collab_status 查看 listen、別名、queue/inflight 等狀態。

典型用法

只用車載瀏覽器 MCP

profile 裏配好 Python 與 ai_browser 路徑即可;不必填 listen。在會話中調用 mcp__aibrowser__browse 或 session_* 做有狀態操作。

本機兩個 DSH 會話互發

  1. 協作端 A:listen 設爲 "loopback",記下 collab_status 裏的實際監聽與 reply_to(迴環下爲 http://127.0.0.1:<端口>/,僅適合同機)。
  2. 用 collab_alias_set 給對端會話登記穩定別名(精確標題或 sessionId)。
  3. 調用 collab_send 投遞文本;需要批量時用 collab_send_many。
  4. 用 collab_wait 等對端回覆,或用 collab_receipt 刷新二級回執;排障時看 collab_status 的 queue/inflight。

遠程 DSH 實例

在 profile 或 config.json 的 targets 中增加 { name, baseUrl, user?, pass? }(baseUrl 爲對方 mira_proxy 入口,名稱精確匹配)。口令優先讀 creds/<target>.json。對端需能把 HTTP 投遞打回你配置的 listen 地址(跨機勿用僅 127.0.0.1 可回的 loopback)。

適用場景與注意

適合誰:需要在 DSH 工作流裏統一使用 Playwright 瀏覽器 MCP,並驅動本地 GUI 或其它 DSH 節點會話做自動化協作的開發者。

務必注意:

  • 未配置 listen 時插件仍會加載並建目錄,但所有 collab_* 不可用;MCP 瀏覽器工具照常。
  • 0.2.0 工具返回由中文文本改爲 JSON;升級自 0.1.0 請先看 README「升級注意」。
  • targets 在 profile 層若寫 targets: [] 會整體覆蓋 config.json 裏的 targets;要加遠程目標需改 profile 或去掉 profile 中的空數組。
  • SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;星標與更新節奏以 GitHub 與目錄頁爲準。

結尾

mira_browser 把 ai_browser 的 MCP 與 DSH 會話協作收進同一插件:瀏覽器側用 mcp__aibrowser__*,協作側用 collab_* 與手填 listen。進一步細節以 README 的配置表與工具清單爲準。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜