take_screenshotLABSCO 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— the README counts 18 CDP tools in all, with the full reference in its AGENTS.md - 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 verifyhashes 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
USE CASES
Driving a native macOS app while you keep using the machine
Take an accessibility snapshot, then press, set or select elements directly — no cursor movement, no focus stolen from your active window.
Automating an Electron app such as Slack, Discord or VS Code
Launch it with a remote debugging port, connect over CDP, then find and fill elements by DOM identity instead of screen coordinates.
Getting through a UI that exposes no accessibility tree
Fall back to the visual path — screenshot, find the label by OCR, click it; for icons OCR cannot read, match a template image instead.
Checking a build on a real Android handset
Connect to the device by serial, capture the screen, locate a control by its text through uiautomator, and tap it.
Watching how someone actually moves through an app
Turn on dwell-filtered hover tracking, or record the window as timestamped frames to a directory you name, and stop it when you are done.
39 tools
Listed in project docs. Your client may show a different list.
find_textclicktype_textfind_imageload_imagetake_ax_snapshotax_clickax_set_valueax_selectelement_at_pointlaunch_appstart_recordingstop_recordingstart_hover_trackingcdp_connectcdp_navigatecdp_find_elementscdp_take_dom_snapshotcdp_clickcdp_fillcdp_press_keycdp_wait_forapp_connectapp_queryapp_clickandroid_list_devicesandroid_connectandroid_disconnectandroid_screenshotandroid_find_textandroid_clickandroid_swipeandroid_type_textandroid_press_keyandroid_launch_appandroid_list_appsandroid_get_display_infoandroid_get_current_activityBEFORE YOU INSTALL
What to know first
Tools you get
39 tools named in the project's documentation.
Requires
- Node.js 18+
- macOS: Accessibility and Screen Recording permissions — the setup wizard opens the right System Settings panes
Where it runs
All 5 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y native-devtools-mcpMCP Clients
Claude Desktop — macOS
Download NativeDevtools-X.X.X.dmg from GitHub Releases (https://github.com/vectora-foundry/native-devtools-mcp/releases) and drag it to /Applications — Claude Desktop on macOS needs this signed app bundle, because Gatekeeper blocks npx
Run npx native-devtools-mcp setup — it checks the Accessibility and Screen Recording permissions, detects the app and configures Claude Desktop to use it
Or add this to ~/Library/Application Support/Claude/claude_desktop_config.json yourself:
{
"mcpServers": {
"native-devtools": {
"command": "/Applications/NativeDevtools.app/Contents/MacOS/native-devtools-mcp"
}
}
}Claude Desktop on Windows, Cursor
{
"mcpServers": {
"native-devtools": {
"command": "npx",
"args": [
"-y",
"native-devtools-mcp"
]
}
}
}Claude Code
claude mcp add native-devtools -- npx -y native-devtools-mcpVS Code
{
"servers": {
"native-devtools": {
"command": "npx",
"args": [
"-y",
"native-devtools-mcp"
]
}
}
}