Labsco
MCP SERVER

Native Devtools

by sh3ll3x3c

One local server for driving native macOS and Windows apps, Chrome and Electron, and Android devices — in the same session.

Desktop & OS Automation
Summary
The desktop, the browser and the phone, from one session.

Most computer-use servers cover one surface; this one covers native macOS and Windows apps, Chrome and Electron through CDP, and Android through ADB without switching servers, and adds a macOS path that presses accessibility elements directly so the cursor stays where you left it. It is headed automation on a real machine with real permissions, not a headless test grid — the README is unusually direct about where that stops, naming Playwright MCP for web-only work and Appium for mobile-only work.

What it is

A local MCP server (npm `native-devtools-mcp`, 0.10.0) that gives a client direct control over native desktop apps, Chrome and Electron browsers, and Android devices: screenshots with OCR, accessibility-tree element lookup, input simulation, window management, the Chrome DevTools Protocol and ADB, all from one process. Platforms are macOS, Windows and Android; execution is entirely local and the server makes no unsolicited network calls.

What you get
  • Screenshots of screens, windows or regions with built-in OCR — Vision on macOS, Windows Media OCR on Windows — plus text lookup that queries the accessibility tree first and falls back to OCR — `take_screenshot`, `find_text`
  • Input simulation with global, window-relative and screenshot-relative targeting — `click`, `type_text`
  • Element-precise dispatch against macOS Accessibility elements that neither moves the mouse nor steals focus, the README's preferred path for native macOS apps — `take_ax_snapshot`, `ax_click`, `ax_set_value`, `ax_select`
  • DOM-level automation of Chrome and Electron apps over the Chrome DevTools Protocol, with element UIDs rather than coordinates — `cdp_connect`, `cdp_navigate`, `cdp_find_elements`, `cdp_take_dom_snapshot`, `cdp_click`, `cdp_fill`, `cdp_press_key`, `cdp_wait_for`; 18 CDP tools in all
  • Android over ADB, on USB or Wi-Fi; the `android_` tools appear once a device is connected — `android_list_devices`, `android_connect`, `android_disconnect`, `android_screenshot`, `android_find_text`, `android_click`, `android_swipe`, `android_type_text`, `android_press_key`, `android_launch_app`, `android_list_apps`, `android_get_display_info`, `android_get_current_activity`
  • Template matching for icons, toggles and custom controls that OCR cannot identify — `load_image`, `find_image`
  • Window and app lifecycle — list, focus, launch and quit — plus window recording to timestamped JPEG frames — `launch_app`, `start_recording`, `stop_recording`
  • Dwell-filtered hover tracking, meant for a model watching someone work — `start_hover_tracking`
  • Element inspection at a screen point, and screenshots carrying origin, scale and pixel dimensions so coordinates convert back exactly — `element_at_point`
  • A binary self-check: `native-devtools-mcp verify` hashes the running binary with SHA-256 and compares it against the checksums published on the Releases page
Requirements

No account and no API key — the server runs locally and makes no outbound API calls. On macOS it needs Accessibility and Screen Recording permissions; without both, clicks silently fail and screenshots come back as a black rectangle, so run `npx native-devtools-mcp setup` first, which checks them and opens the right System Settings panes. Claude Desktop on macOS needs the signed app bundle from GitHub Releases because Gatekeeper blocks npx. The npx path needs Node.js 18+; building from source needs Rust and `cargo build --release`. Chrome 136+ needs `--user-data-dir=<path>` alongside `--remote-debugging-port` or the debug port is silently ignored, while Electron apps need only the port. Android needs ADB on the host and USB debugging enabled on the device; MIUI and HyperOS devices additionally need the Developer options toggle "USB debugging (Security settings)" before input and text lookup work. Windows 10/11 works out of the box, except that it cannot interact with "Run as Administrator" windows unless the server is elevated too. macOS, Windows and Android only — no Linux, no iOS, and browser automation is Chrome and Electron rather than Firefox or WebKit. MIT licensed.

Setup effort

One command — npx -y native-devtools-mcp