ui-locate-mcp:本地屏幕定位與桌面交互的 DSH MCP 插件

前言

在 DeepSeek Harness(DSH)裏做桌面自動化或「看屏操作」時,模型往往只能拿到截圖或文字描述,缺少可執行的像素座標。自行接 OCR、檢測模型和點擊腳本,還要維護常駐推理進程,集成成本高。下面介紹的 ui-locate-mcp(維護者 citydirector)把本地檢測、OCR 與 MCP 工具打包成 DSH 插件:在本地查找屏幕上的 UI 文字與元素,返回精確座標,並支持定位、點擊、輸入、滾動及結果校驗等組合能力。檢測與動作均在本地運行;首次準備會下載 Python 依賴和約 80 MB 的檢測模型,由持久化服務做推理,輕量 MCP 進程轉發請求。

這是什麼

ui-locate-mcp 是 Screen locator MCP 插件:爲屏幕上的文字與圖標提供像素級座標,並以 DeepSeek Harness MCP bundle 形式對外提供工具。npm 包提供插件代碼;Python 依賴與模型需通過設置頁或 Host 工具單獨準備。bundle 內含 MCP 客戶端、Host 運行時管理插件,以及 Client 設置頁。

分類上在 DSH 插件目錄中屬於「模型推理」。當前 bundle 的 MCP 可執行路徑按 Windows 配置;跨平臺 Python 代碼並不等同於跨平臺 bundle 配置。許可證爲 MIT(見 GitHub 倉庫)。

核心功能

工具分爲 MCP 側與 Host 側(Host 可能對工具名加命名空間前綴)。README 中列出的能力如下。

工具 用途
locate_text 查找匹配的 UI 文字及其中心座標
find_all 返回多個匹配候選
detect_elements 枚舉檢測到的元素
ui_locate_marks 帶編號標記的截圖(可選命名網格),便於模型選編號而非猜像素
ui_locate_act 定位、執行動作並嘗試校驗
ui_locate_steps 按順序執行步驟並定位失敗點
ui_locate_windows 列出頂層窗口(標題、句柄、客戶區矩形、是否前臺)
ui_locate_diff 相對上次調用,屏幕變化區域(矩形,無圖像、無 vision token)
ui_locate_watch 錄製數秒並返回關鍵幀合成的一張圖(裁剪變化區域)
ui_locate_frames / ui_locate_frame 列出或獲取近期動作幀
list_monitors 顯示器尺寸、原點與索引
health 檢查服務是否就緒
ui_locate_setup 準備或重建 Python 依賴與模型

座標爲絕對屏幕座標,副屏上可能爲負值。monitor 支持 primary、索引字符串、all、window:<title> 或 hwnd:<handle>;UI 移動後需重新定位。

對無穩定文字的目標(遊戲物品、工具欄圖標等),可用編號標記操作:ui_locate_marks 生成帶框編號圖,ui_locate_act(mark=…) 點擊對應中心;還支持 box、grid、cell 等參數放大區域或按網格選格。除檢測框外,標記還包含按幾何重複的等尺寸單元格(如背包格、標籤頁),便於遊戲等場景。

指定 window= 時,捕獲優先嚐試 Windows Graphics Capture,失敗則回退 PrintWindow 或監視器裁剪;發送輸入前會將目標窗口置前(focus="off" 可關閉)。帶 verify="screen" 時可在屏幕穩定後再判定動作效果;ui_locate_watch 與 ui_locate_act(..., watch_ms=…) 用於「先看再動、再看結果」的一體式錄製。

環境與依賴

  1. Python 3.12+。設置頁準備流程由 Host 發現的 Python 創建獨立環境;若找不到解釋器,可檢查桌面安裝是否自帶運行時。
  2. 推理後端:默認 DirectML;可選 cuda、cpu。CUDA 需對應 NVIDIA 環境與更大依賴;切換後端需重建環境。
  3. DSH 能力:package.json 未聲明 engines.dsh 範圍,不保證與所有 DSH 版本兼容;bundle 需要工具註冊、MCP 客戶端與 settings 服務。

安裝與啓用

桌面 DSH(README Quick start):

  1. 在 DSH Plugins → Add plugin 中輸入 ui-locate-mcp,然後啓用。
  2. 在 Settings 中打開 ui-locate runtime,選擇路徑與 backend,並完成環境準備;Host 工具 ui_locate_setup 提供相同準備路徑。
  3. 準備完成後連接或重新啓用 mcp-ui-locate;若 DSH 提示則重啓。
  4. 調用 health,再試 locate_text(text="Save")。

Web profile 使用 CLI 時,需先停止實例,改完再重啓;桌面側更推薦 Plugins 頁面,且管理 desktop profile 需使用該安裝的 CLI 與相同 DSH_HOME:

dsh plugin --profile web add ui-locate-mcp

典型用法

按文字定位並點擊(monitor 可選):

locate_text(text="Save", monitor="primary")
ui_locate_act(text="Save", action="click", monitor="primary")

無穩定文字時用編號:

ui_locate_marks(monitor="primary")
ui_locate_act(mark=17)
ui_locate_marks(box="1200,40,1500,90")
ui_locate_marks(grid=8)
ui_locate_act(cell="B2")

同一標記圖上的編號需在一次 ui_locate_marks 結果內使用;可傳 mark_set 避免使用過期標記集。

適用場景與注意

適合需要在 DSH 智能體流程裏做 Windows 桌面 GUI 自動化、本地 OCR/檢測、以及「座標 + 點擊/輸入/校驗」閉環的開發者。Web profile 可安裝 bundle,但當前 MCP 可執行路徑面向 Windows 桌面場景;跨平臺需求需自行覈對 bundle 與運行環境。

插件以 當前 DSH 進程權限 運行,可截屏、發輸入並訪問本機文件(取決於 Host 與工具實現)。安裝前應閱讀 GitHub 源碼 與 MIT 許可證,確認行爲與信任邊界符合你的環境策略。

DSH 生態強調「一切皆插件」;社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

ui-locate-mcp 把本地視覺 grounding、OCR 與一系列 Host/MCP 工具收進一個 DSH bundle,讓智能體用工具調用而不是純猜像素來完成桌面交互。更多細節與完整參數說明見倉庫 README。

  • 插件目錄頁:https://www.skillhub.cn/plugins/citydirector/ui-locate-mcp
  • GitHub:https://github.com/citydirector/ui-locate-mcp
羽毛球分组比赛记分
小程序二维码

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

小夜