native-devtools-mcp 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +70 -45
  2. package/package.json +3 -3
package/README.md CHANGED
@@ -15,7 +15,7 @@ A Model Context Protocol (MCP) server that provides **Computer Use** capabilitie
15
15
 
16
16
  [//]: # "Search keywords: MCP, MCP server, Model Context Protocol, computer use, desktop automation, UI automation, native app testing, test automation, e2e testing, RPA, screenshots, OCR, template matching, accessibility, mouse, keyboard, screen reading, macOS, Windows, Android, ADB, mobile testing, Claude, Claude Code, Cursor, AI agent, native-devtools-mcp"
17
17
 
18
- [Features](#-features) • [Installation](#-installation) • [For AI Agents](#-for-ai-agents-llms) • [Android](#-android-support) • [Permissions](#-required-permissions-macos)
18
+ [Features](#-features) • [Installation](#-installation) • [Getting Started](#-getting-started) • [Security & Trust](#-security--trust) • [For AI Agents](#-for-ai-agents-llms) • [Android](#-android-support)
19
19
 
20
20
  <table>
21
21
  <tr>
@@ -77,6 +77,14 @@ npm install -g native-devtools-mcp
77
77
  <details>
78
78
  <summary>Click to expand build instructions</summary>
79
79
 
80
+ **Using the build script** (clones, builds, and runs setup):
81
+
82
+ ```bash
83
+ curl -fsSL https://raw.githubusercontent.com/sh3ll3x3c/native-devtools-mcp/master/scripts/build-from-source.sh | bash
84
+ ```
85
+
86
+ **Or manually:**
87
+
80
88
  ```bash
81
89
  git clone https://github.com/sh3ll3x3c/native-devtools-mcp
82
90
  cd native-devtools-mcp
@@ -86,17 +94,36 @@ cargo build --release
86
94
 
87
95
  </details>
88
96
 
89
- ## ⚙️ Configuration
97
+ ## 🏁 Getting Started
90
98
 
91
- ### macOS Configuration
99
+ After installing, run the setup wizard:
92
100
 
93
- **Claude Desktop config file:** `~/Library/Application Support/Claude/claude_desktop_config.json`
101
+ ```bash
102
+ npx native-devtools-mcp setup
103
+ ```
104
+
105
+ This will:
106
+ 1. **Check permissions** (macOS) — verifies Accessibility and Screen Recording, opens System Settings if needed
107
+ 2. **Detect your MCP clients** — finds Claude Desktop, Claude Code, Cursor
108
+ 3. **Write the configuration** — generates the correct JSON config and offers to write it for you
109
+
110
+ Then restart your MCP client and you're ready to go.
94
111
 
95
- **Claude Desktop requires the signed app bundle** (npx/npm will not work due to Gatekeeper):
112
+ > **Claude Desktop on macOS** requires the signed app bundle (Gatekeeper blocks npx). Download `NativeDevtools-X.X.X.dmg` from [GitHub Releases](https://github.com/sh3ll3x3c/native-devtools-mcp/releases), drag to `/Applications`, then run setup — it will detect the app and configure Claude Desktop to use it.
96
113
 
97
- 1. Download `NativeDevtools-X.X.X.dmg` from [GitHub Releases](https://github.com/sh3ll3x3c/native-devtools-mcp/releases)
98
- 2. Open the DMG and drag `NativeDevtools.app` to `/Applications`
99
- 3. Configure Claude Desktop:
114
+ > **VS Code, Windsurf, and other clients:** `setup` doesn't auto-detect these yet. Run `setup` for the permission checks, then see the manual configuration below for the JSON config snippet.
115
+
116
+ > **Claude Code tip:** To avoid approving every tool call (clicks, screenshots), add this to `.claude/settings.local.json`:
117
+ > ```json
118
+ > { "permissions": { "allow": ["mcp__native-devtools__*"] } }
119
+ > ```
120
+
121
+ <details>
122
+ <summary><strong>Manual configuration (without setup)</strong></summary>
123
+
124
+ #### macOS — Claude Desktop
125
+
126
+ Config file: `~/Library/Application Support/Claude/claude_desktop_config.json`
100
127
 
101
128
  ```json
102
129
  {
@@ -108,17 +135,11 @@ cargo build --release
108
135
  }
109
136
  ```
110
137
 
111
- 4. Restart Claude Desktop - it will prompt for Screen Recording and Accessibility permissions for NativeDevtools
112
-
113
- > **Note:** Claude Code (CLI) can use either the signed app or npx - both work.
138
+ #### Windows Claude Desktop
114
139
 
115
- ### Windows Configuration
140
+ Config file: `%APPDATA%\Claude\claude_desktop_config.json`
116
141
 
117
- **Claude Desktop config file:** `%APPDATA%\Claude\claude_desktop_config.json`
118
-
119
- ### Configuration JSON (Windows and macOS CLI)
120
-
121
- For Windows (or macOS with Claude Code CLI):
142
+ #### Claude Code, Cursor, and other MCP clients
122
143
 
123
144
  ```json
124
145
  {
@@ -131,22 +152,43 @@ For Windows (or macOS with Claude Code CLI):
131
152
  }
132
153
  ```
133
154
 
134
- > **Note:** Requires Node.js 18+ installed.
155
+ Requires Node.js 18+.
135
156
 
136
- ### For Claude Code (CLI) Users
157
+ </details>
137
158
 
138
- To avoid approving every single tool call (clicks, screenshots), you can add this wildcard permission to your project's settings or global config:
159
+ ## 🔐 Security & Trust
139
160
 
140
- **File:** `.claude/settings.local.json` (or similar)
161
+ This tool requires Accessibility and Screen Recording permissions — that's a lot of trust. Here's how to verify it deserves it.
141
162
 
142
- ```json
143
- {
144
- "permissions": {
145
- "allow": ["mcp__native-devtools__*"]
146
- }
147
- }
163
+ ### Verify your binary
164
+
165
+ ```bash
166
+ native-devtools-mcp verify
167
+ ```
168
+
169
+ Computes the SHA-256 hash of the running binary and checks it against the official checksums published on the [GitHub Releases](https://github.com/sh3ll3x3c/native-devtools-mcp/releases) page. If the hash matches, you're running an unmodified official build.
170
+
171
+ ### Build from source
172
+
173
+ Don't trust pre-built binaries? Build it yourself:
174
+
175
+ ```bash
176
+ curl -fsSL https://raw.githubusercontent.com/sh3ll3x3c/native-devtools-mcp/master/scripts/build-from-source.sh | bash
148
177
  ```
149
178
 
179
+ The script clones the repo, optionally opens it for review before building, compiles the release binary, and runs setup. See [`scripts/build-from-source.sh`](scripts/build-from-source.sh).
180
+
181
+ ### Audit the code
182
+
183
+ [`SECURITY_AUDIT.md`](SECURITY_AUDIT.md) documents exactly which permissions are used, where in the source code, and includes an LLM audit prompt you can paste into any AI model to perform an independent security review.
184
+
185
+ ### What this server does NOT do
186
+
187
+ - **No unsolicited network access** — the server never phones home. Network is only used when the MCP client explicitly invokes `app_connect` (WebSocket to a local debug server) or when you run the `verify` subcommand (fetches checksums from GitHub)
188
+ - **No file scanning** — does not read or index your files. The only file reads are `load_image` (reads a path the MCP client explicitly provides) and short-lived temp files for screenshots (deleted immediately after capture)
189
+ - **No background persistence** — exits when the MCP client disconnects
190
+ - **No data exfiltration** — screenshots are returned to the MCP client via stdout, never stored or transmitted elsewhere
191
+
150
192
  ## 🔍 Two Approaches to Interaction
151
193
 
152
194
  We provide two ways for agents to interact, allowing them to choose the best tool for the job.
@@ -306,29 +348,12 @@ screen_y = screenshot_origin_y + (pixel_y / screenshot_scale)
306
348
 
307
349
  </details>
308
350
 
309
- ## 🛡️ Privacy, Safety & Best Practices
351
+ ## ⚠️ Operational Safety
310
352
 
311
- ### 🔒 Privacy First
312
- * **100% Local:** All processing (screenshots, OCR, logic) happens on your device.
313
- * **No Cloud:** Images are never uploaded to any third-party server by this tool.
314
- * **Open Source:** You can inspect the code to verify exactly what it does.
315
-
316
- ### ⚠️ Operational Safety
317
353
  * **Hands Off:** When the agent is "driving" (clicking/typing), **do not move your mouse or type**.
318
354
  * *Why?* Real hardware inputs can conflict with the simulated ones, causing clicks to land in the wrong place.
319
355
  * **Focus Matters:** Ensure the window you want the agent to use is visible. If a popup steals focus, the agent might type into the wrong window unless it checks first.
320
356
 
321
- ## 🔐 Required Permissions (macOS)
322
-
323
- On macOS, you must grant permissions to the **host application** (e.g., Terminal, VS Code, Claude Desktop) to allow screen recording and input control.
324
-
325
- 1. **Screen Recording:** Required for `take_screenshot`.
326
- * *System Settings > Privacy & Security > Screen Recording*
327
- 2. **Accessibility:** Required for `click`, `type_text`, `scroll`.
328
- * *System Settings > Privacy & Security > Accessibility*
329
-
330
- > **Restart Required:** After granting permissions, you must fully quit and restart the host application.
331
-
332
357
  ## 🪟 Windows Notes
333
358
 
334
359
  Works out of the box on **Windows 10/11**.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "native-devtools-mcp",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "mcpName": "io.github.sh3ll3x3c/native-devtools",
5
5
  "description": "MCP server for native app testing — screenshot, OCR, click, type, find_text, template matching. macOS, Windows & Android.",
6
6
  "license": "MIT",
@@ -53,8 +53,8 @@
53
53
  "bin"
54
54
  ],
55
55
  "optionalDependencies": {
56
- "@sh3ll3x3c/native-devtools-mcp-darwin-arm64": "0.4.2",
57
- "@sh3ll3x3c/native-devtools-mcp-win32-x64": "0.4.2"
56
+ "@sh3ll3x3c/native-devtools-mcp-darwin-arm64": "0.4.3",
57
+ "@sh3ll3x3c/native-devtools-mcp-win32-x64": "0.4.3"
58
58
  },
59
59
  "engines": {
60
60
  "node": ">=18"