Skip to main content
Glama

dsh-plugin-eyes — ojos, manos y OCR local para DeepSeek Harness en Windows

Plugin MCP local que le da a DSH visión, control y lectura del escritorio de Windows: 19 herramientas mcp__eyes__* registradas con la fila oficial @deepseek-ai/dsh-mcp-client. Sin servidor externo, sin proveedor de visión, sin dependencias nativas de npm y sin red para el OCR.

English · Cómo funciona · MIT

Instalación

Recomendada (gestor de plugins / página Plugins de DSH):

dsh plugin --profile <perfil> add dsh-plugin-eyes
# o directo desde GitHub:
dsh plugin --profile <perfil> add github:thegabopacheco-sudo/dsh-plugin-eyes

En la app de escritorio el perfil lo administra la aplicación: instalalo desde Settings → Plugins (o pedile al agente que use el plugin manager). El paquete trae un postinstall que copia el runtime a <DSH_HOME>\plugins\eyes; pnpm puede pedirte permitir el build script — aceptá (Permitir estos scripts y reintentar). No instala nada global, no toca el registro, no crea servicios.

Manual (desarrollo/offline):

powershell -ExecutionPolicy Bypass -File .\install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Uninstall

Requisitos: Windows 10 19041+/11, PowerShell 5.1 (incluido), Node ≥20 (lo aporta DSH), .NET Framework 4.x (incluido) para eyes-capture.exe. El OCR usa los idiomas OCR de Windows instalados.

Related MCP server: Computer Use MCP

Herramientas (19)

Ojos

Tool

Qué hace

screenshot

Captura pantalla (todos los monitores), monitor, ventana o región y devuelve la imagen dentro del tool result. Opciones: grid, showCursor, marks (Set-of-Marks), clipboard, focus.

list_windows / list_screens

Ventanas visibles / monitores y escritorio virtual.

ocr

OCR local (Windows.Media.Ocr, sin red): líneas + palabras con coordenadas absolutas; query filtra y boxes:true devuelve cajas. Funciona en Chrome/Electron.

click_text

OCR + click: encuentra texto visible y lo clickea (dryRun:true sólo reporta coordenadas).

Manos

Tool

Qué hace

click

Click izquierdo/derecho/medio en píxeles físicos del escritorio virtual.

move_mouse / scroll

Mueve el cursor / gira la rueda (positivo = arriba).

type / press

Texto unicode / combinación de teclas. Con window abortan si la ventana ya no existe.

drag

Press en (x,y), mover a (toX,toY), soltar (drag & drop, sliders).

window_action

focus, minimize, maximize, restore o close.

clipboard_get / clipboard_set

Lee / escribe el portapapeles.

batch

Hasta 30 acciones en una llamada; corta al primer error; verifyFinal devuelve captura final.

UI Automation

Tool

Qué hace

ui_tree

Árbol acotado: nombre, AutomationId, tipo, bounds, acciones.

ui_text

Texto vía ValuePattern/TextPattern.

ui_click / ui_set_value

Actúa por nombre o AutomationId. Rechaza campos de contraseña.

Act-and-verify

click, scroll, type, press, ui_click, ui_set_value y click_text aceptan verify:true y devuelven captura posterior; batch devuelve la final.

Ejemplos de uso

  • «mirá mi pantalla y decime qué ves»

  • «leé lo que dice esta ventana de Chrome» → ocr

  • «buscá el botón Guardar y tocá» → click_text

  • «completá el formulario: escribí X, tab, Y y enviá» → batch

  • «abrí el menú Archivo de Notepad y decime las opciones» → ui_tree + ui_click

  • «copiá esta captura y pegala en el chat» → screenshot clipboard:true + press ctrl+v

Apps nativas → UI Automation; web/Electron → ocr + click_text o screenshot con grid/marks.

Seguridad

  • DSH_EYES_MODE=read-only desactiva todas las acciones de input.

  • Cada acción mutante se registra en <DSH_HOME>\cache\eyes\audit.jsonl.

  • Campos de contraseña rechazados; Set-of-Marks no los numera.

  • type/press/click/drag con window abortan si la ventana desapareció.

  • Capturas locales (~/.dsh/cache/eyes, máx. 40 + archivos OCR).

Límites: SendInput no atraviesa UIPI/secure desktop (UAC/bloqueo); Chrome/Electron exponen poco UI Automation; PrintWindow suele ser rechazado por Chromium (se captura el área visible); ventanas minimizadas no se capturan.

Arquitectura

server.mjs + tools-extra.mjs ─► MCP stdio (fila de @deepseek-ai/dsh-mcp-client)
        ├─ eyes-capture.exe  ← C#: GDI, PrintWindow+DWM, DPI-aware, multi-monitor,
        │                       SendInput, portapapeles, UI Automation, marks,
        │                       drag y acciones de ventana
        └─ ocr.ps1           ← Windows.Media.Ocr (WinRT) sobre un PNG ya capturado
  • El servidor usa @modelcontextprotocol/server@2.2.0 (protocolo 2026-07-28).

  • El capturador es .exe porque un .ps1 con Add-Type + CopyFromScreen fue bloqueado por AMSI/Defender como contenido malicioso; el OCR corre en otro script PowerShell sin código de captura y escribe JSON UTF-8 a un archivo.

  • cordis.patch.yml inserta una fila de @deepseek-ai/dsh-mcp-client sin rutas de máquina: command = process.execPath, servidor en <DSH_HOME>/plugins/eyes.

Comparación (2026-11-10)

eyes

appshot

vision-toolkit

codex-style

Windows

✅

✅

✅

✅

Imagen dentro del tool result

✅

✅

❌

parcial

Manos (click/teclado/drag/ventana)

✅

❌

❌

✅

UI Automation

✅

❌

❌

✅

OCR local con cajas + click_text

✅

❌

✅

✅

Set-of-Marks + verify + batch

✅

❌

❌

✅ (batch)

read-only + audit

✅

❌

❌

✅ (4 modos)

Settings card / hotkey

❌ roadmap

✅

✅

❌

Peso

~47 KB exe + bundle 1,2 MB

42,2 MB

10,1 MB

9,1 MB

Desarrollo

npm install
npm run build:bundle     # dist/server.mjs (esbuild)
powershell -ExecutionPolicy Bypass -File .\build.ps1 -Force   # eyes-capture.exe (csc.exe)
cd test; npm install; node connect-test.mjs; node connect-test-extra.mjs

Licencia

MIT © thegabopacheco-sudo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      C
      maintenance
      Enables local Windows UI automation and screen capture, targeting windows that are difficult to automate such as games and legacy apps, with tools for window management, mouse and keyboard input, and desktop capture.
      8
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP clients to observe and control Windows desktop applications by reading UIA element trees and capturing screenshots, then acting through UIA patterns or synthesized mouse and keyboard input. It runs standalone on an interactive Windows session, without requiring the original host application.
      1
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to inspect and drive native Windows desktop applications (WinForms, WPF, WinUI 3, and WebView2 hybrids) through Microsoft UI Automation by capturing interactive control snapshots, then clicking, filling, and asserting on elements via ephemeral refs or semantic screen-map targets. Mutating actions are dry-run by default and gated behind explicit arming, allow-lists, and a kill switch for lawful, assisted QA testing.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to drive native Windows apps and headed browsers inside a hidden child desktop session with its own screen, pointer and keyboard focus. Provides tools for screenshots, mouse/keyboard input, accessibility inspection, UI waits, display changes, Android emulators, application launches and cancellable command jobs, so the user's own desktop stays free.
      7
      MIT