native-devtools-mcp
Control of the macOS, Windows and Android desktop, Chrome and Electron through MCP: screenshots, OCR, clicks and typing
- 141 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent sees the whole screen and can click and type in any window, including mail and banking
- The Accessibility and Screen Recording permissions give broad access to the system
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/native-devtools-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent sees the whole screen and can click and type in any window, including mail and banking
- The Accessibility and Screen Recording permissions give broad access to the system
This is third-party code. Review the repository files before installing.
What it does
native-devtools-mcp gives an agent direct control of native apps, Chrome and Electron browsers and Android devices in one local server. Screenshots of a screen, window or region go through built-in text recognition: Vision on macOS and Windows Media OCR on Windows. Input covers clicks, drag, scroll and typing, and windows can be listed, focused, launched and quit. There are three approaches. The visual one fits any app: `take_screenshot`, `find_text`, `click`, `type_text`, `find_image`. On macOS the accessibility dispatcher is preferred: `take_ax_snapshot`, then `ax_click`, `ax_set_value` and `ax_select` act on elements without moving the mouse or taking focus. Chrome and Electron use the DevTools protocol: `cdp_connect`, `cdp_find_elements`, `cdp_click`, `cdp_fill`. Android is driven over ADB through USB or Wi-Fi.
Who it is for. Developers and testers who automate desktop and mobile apps with an agent where there is no API.
Good fit when
- You need to run a scenario in a native macOS app such as System Settings without the mouse and without grabbing focus
- An Electron app such as Slack or VS Code needs DOM-level work: find elements, click and fill fields
- You need to find an icon or toggle on screen that OCR cannot read, with `find_image` template matching
- An Android app is checked through ADB: screenshot, text search and input
Not a fit when
- You need headless runs in CI or on Linux: the server relies on real machine permissions and Linux is not supported yet
- Browser automation is enough: Playwright MCP is simpler when only the web is needed
- You need work with banking or payment apps or other people's accounts: an agent with such access is too dangerous
Example request
Open System Settings on macOS, find the Displays section, take a screenshot and switch the appearance theme through the accessibility treeMCP
- Transport
- stdio
- Authentication
- not required
Limitations
On macOS the Accessibility and Screen Recording permissions are required: without them clicks are silently lost and screenshots come out black, and the setup wizard opens the right System Settings panes. Android needs ADB enabled and, for input, debug mode with the event permission. Linux is not supported and macOS, Windows or Android is needed. The server works only with a display and has no headless mode. Screenshots and input stay on the machine but the agent sees everything visible on screen. The `SECURITY_AUDIT.md` file lists which permissions are used and where. Install with `npx -y native-devtools-mcp` and the package version and license are on npm.
How to disable. Remove the server entry (`claude mcp remove native-devtools`) and revoke the Accessibility and Screen Recording permissions of the terminal or client in System Settings.
FAQ
How do I connect the server to Claude Code?
With `claude mcp add native-devtools -- npx -y native-devtools-mcp`. On macOS then grant the Accessibility and Screen Recording permissions.
Which platforms are supported?
macOS, Windows and Android, plus Chrome and Electron through the DevTools protocol. Linux is not supported yet.
Why is the accessibility dispatcher better than coordinate clicks?
It acts on accessibility tree elements without moving the mouse or taking focus, so it is more reliable on native macOS apps.
Where do screenshots go?
The server runs entirely locally and screenshots and input stay on the machine. But the agent sees the screen content and passes it to its model.
What if screenshots are black?
On macOS the Screen Recording or Accessibility permission is missing. Run the `setup` wizard and it will open the right System Settings panes.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server that lets an agent see the screen and control macOS, Windows and Linux: screenshots, clicks, OCR and screen memory
MCP server for macOS desktop control through the Accessibility API: clicks, typing, windows, apps, shell commands and AppleScript
A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree
An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell
An MCP server for macOS: the agent moves the mouse, types, manages windows and captures the screen when an app has no API
Clawd Cursor: desktop control through MCP
Clawd Cursor
An MCP server that lets an agent drive windows and apps: it reads the screen as structure and acts by element name
README in short
The headline describes a server for controlling native apps on macOS, Windows and Android. Then come a quick start, features, three interaction approaches, a comparison table with Playwright MCP, Windows-MCP, Appium and pywinauto, permission setup, security notes and the inner workings.