Native Devtools

by sh3ll3x3c

Not rated
GitHub

About

About MCP server for native computer use and browser automation.

Details

Author
sh3ll3x3c
Categories
Productivity, Automation, Other, Developer Tools

Option 1: Run withnpx(no install needed)

Using the build script(clones, builds, and runs setup):

curl -fsSL https://raw.githubusercontent.com/sh3ll3x3c/native-devtools-mcp/master/scripts/build-from-source.sh | bash
git clone https://github.com/sh3ll3x3c/native-devtools-mcp cd native-devtools-mcp cargo build --release # Binary: ./target/release/native-devtools-mcp

Manual configuration (without the setup wizard)

Config file:~/Library/Application Support/Claude/claude_desktop_config.json

{ "mcpServers": { "native-devtools": { "command": "/Applications/NativeDevtools.app/Contents/MacOS/native-devtools-mcp" } } }

Config file:%APPDATA%\Claude\claude_desktop_config.json

About MCP server for native computer use and browser automation.

An MCP server for computer use on native desktop and mobile apps — macOS, Windows, Android, and Chrome/Electron via CDP.

Claude Code:claude mcp add native-devtools -- npx -y native-devtools-mcp

native-devtools-mcpgives AI agents and MCP clients direct control over native desktop apps, Chrome/Electron browsers, and Android devices — screenshots, OCR, accessibility-first element lookup, input simulation, window management, Chrome DevTools Protocol (CDP), and ADB — all in one local server. Works withClaude Desktop,Claude Code,Cursor, and other MCP-compatible clients.

- 👀 Computer Vision:Screenshots of screens, windows, or regions with built-in OCR (Vision on macOS, Windows Media OCR on Windows).
- 🖱️ Input Simulation:Click, drag, scroll, type — global coordinates, window-relative, and screenshot-relative targeting.
- 🎯 Element-Precise AX Dispatch (macOS):take_ax_snapshotax_click/ax_set_value/ax_select— dispatch against Accessibility-tree elements without moving the mouse or stealing focus. The preferred path for native macOS apps.
- 🌐 Browser Automation (CDP):Chrome DevTools Protocol for Chrome and Electron apps (Signal, Discord, VS Code, Slack) — DOM-level click, fill, navigate, and JS evaluation without a separate Node.js server.
- 📱 Android (ADB):Screenshots, uiautomator-based text lookup, input, and app management over USB or Wi-Fi.
- 🧩 Template Matching:load_image+find_imagefor icons, toggles, and custom controls OCR can't identify.
- 🪟 Window Management:List, focus, launch, and quit apps; record windows as timestamped JPEG frames.
- 🔍 Hover Tracking:Observe user navigation patterns with dwell-filtered hover events — designed for LLMs watching a user work.
- 🔒 Local & Private:100% local execution. Screenshots and input never leave your machine.

Pick the approach that matches your target app.

For macOS native apps,AX Dispatch is the preferred path— it's element-precise, doesn't move the mouse, and doesn't steal focus. See theNative App AX Dispatch recipe.

There's also a fourth, niche path:AppDebugKit(app_connect/app_query/app_click) for apps instrumented with the AppDebugKit library. Mostly useful for developers testing their own apps.

The most honest peers are otherMCP servers for computer use. This table comparesnative-devtools-mcpagainst the leading MCP servers and two widely used non-MCP libraries.

Wherenative-devtools-mcpstands out:one local MCP server covering macOS + Windows + Chrome/Electron (CDP) + Android in the same session, plus element-precise macOS AX dispatch that doesn't move the cursor or steal focus.

- No Linux(contributions welcome — seeLinux Desktop MCPfor an AT-SPI2-based alternative in the meantime)
- Browser automation is Chrome / Electron onlyvia CDP — no Firefox, no WebKit (for those, use
Playwright MCP)
- Headed only— depends on real-machine permissions; not a headless CI test grid
- No iOS

If you needjustweb automation,Playwright MCPis more mature. If you needjustmobile (iOS + Android + deep device features),Appiumis more mature. This server is for the cross-cutting native-desktop + Chrome/Electron + Android case.

The install steps are identical on macOS and Windows.

Option 1: Run withnpx(no install needed)

Using the build script(clones, builds, and runs setup):

curl -fsSL https://raw.githubusercontent.com/sh3ll3x3c/native-devtools-mcp/master/scripts/build-from-source.sh | bash
git clone https://github.com/sh3ll3x3c/native-devtools-mcp cd native-devtools-mcp cargo build --release # Binary: ./target/release/native-devtools-mcp

Manual configuration (without the setup wizard)

Config file:~/Library/Application Support/Claude/claude_desktop_config.json

{ "mcpServers": { "native-devtools": { "command": "/Applications/NativeDevtools.app/Contents/MacOS/native-devtools-mcp" } } }

Config file:%APPDATA%\Claude\claude_desktop_config.json

Claude Code, Cursor, and other MCP clients

{ "mcpServers": { "native-devtools": { "command": "npx", "args": ["-y", "native-devtools-mcp"] } } }

macOS permissions:the server needsAccessibilityandScreen Recordingpermissions. The setup wizard opens the right System Settings panes for you. Without both, clicks silently fail and screenshots return a black rectangle.

Linux is not supported yet.The server uses platform-specific APIs (Core Graphics + Accessibility on macOS, Win32 + UI Automation on Windows) that don't exist on Linux. Contributions welcome — X11/Wayland screenshot, input, and AT-SPI paths would be a good first issue.
- Check permissions(macOS) — verifies Accessibility and Screen Recording, opens System Settings if needed.
- Detect your MCP clients— finds Claude Desktop, Claude Code, and Cursor.
- Write the configuration— generates the correct JSON config and offers to write it for you.

Then restart your MCP client and you're ready to go.

Claude Desktop on macOSrequires the signed app bundle (Gatekeeper blocks npx). DownloadNativeDevtools-X.X.X.dmgfromGitHub Releases, drag to/Applications, then run setup — it will detect the app and configure Claude Desktop to use it.

VS Code, Windsurf, and other clients:setupdoesn't auto-detect these yet. Runsetupfor the permission checks, then see the manual configuration above for the JSON config snippet.

Claude Code tip:To avoid approving every tool call (clicks, screenshots), add this to.claude/settings.local.json:

{ "permissions": { "allow": ["mcp__native-devtools__*"] } }

- Hands off:when the agent is "driving" (clicking / typing), don't move your mouse or type. Real hardware inputs conflict with simulated ones and clicks land in the wrong place.
- Focus matters:ensure the window you want the agent to use is visible. If a popup steals focus mid-flow, the agent may type into the wrong window unless it re-checks first.
- Prefer AX Dispatch on macOSwhen you want to keep using the machine — AX calls don't move the cursor and don't steal focus from whatever window is active.

- Recipes Index
-
Claude Desktop Setup·Claude Code Setup·Cursor Setup
-
End-to-End Desktop Flow
-
Native App AX Dispatch Flow (macOS)—preferred for native macOS apps
-
Native App Click Flow
-
OCR Fallback and Element Inspection
-
Template Matching Flow
-
[Android Quickstart

Connect to Chrome or Electron apps via the Chrome DevTools Protocol for DOM-level automation — more reliable than coordinate-based clicking for web content.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.