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
MCP server

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
All reasons and checks

vectora-foundry/native-devtools-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/native-devtools-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad 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 tree

MCP

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.

Official

An MCP server that lets an agent see the screen and control macOS, Windows and Linux: screenshots, clicks, OCR and screen memory

MCP serverBroad access92Repository stars

MCP server for macOS desktop control through the Accessibility API: clicks, typing, windows, apps, shell commands and AppleScript

MCP serverBroad access240Repository stars

A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree

MCP serverBroad access358Repository stars

An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell

MCP serverBroad access11.6KRepository stars

An MCP server for macOS: the agent moves the mouse, types, manages windows and captures the screen when an app has no API

MCP serverBroad access415Repository stars

An MCP server that lets an agent drive windows and apps: it reads the screen as structure and acts by element name

MCP serverBroad access408Repository stars

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.

README badge

Report a problem