前言¶
在 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=…) 用於「先看再動、再看結果」的一體式錄製。
環境與依賴¶
- Python 3.12+。設置頁準備流程由 Host 發現的 Python 創建獨立環境;若找不到解釋器,可檢查桌面安裝是否自帶運行時。
- 推理後端:默認 DirectML;可選
cuda、cpu。CUDA 需對應 NVIDIA 環境與更大依賴;切換後端需重建環境。 - DSH 能力:
package.json未聲明engines.dsh範圍,不保證與所有 DSH 版本兼容;bundle 需要工具註冊、MCP 客戶端與 settings 服務。
安裝與啓用¶
桌面 DSH(README Quick start):
- 在 DSH Plugins → Add plugin 中輸入
ui-locate-mcp,然後啓用。 - 在 Settings 中打開 ui-locate runtime,選擇路徑與 backend,並完成環境準備;Host 工具
ui_locate_setup提供相同準備路徑。 - 準備完成後連接或重新啓用
mcp-ui-locate;若 DSH 提示則重啓。 - 調用
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