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.
- package/README.md +70 -45
- 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)
|
|
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
|
-
##
|
|
97
|
+
## 🏁 Getting Started
|
|
90
98
|
|
|
91
|
-
|
|
99
|
+
After installing, run the setup wizard:
|
|
92
100
|
|
|
93
|
-
|
|
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
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
> **Note:** Claude Code (CLI) can use either the signed app or npx - both work.
|
|
138
|
+
#### Windows — Claude Desktop
|
|
114
139
|
|
|
115
|
-
|
|
140
|
+
Config file: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
116
141
|
|
|
117
|
-
|
|
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
|
-
|
|
155
|
+
Requires Node.js 18+.
|
|
135
156
|
|
|
136
|
-
|
|
157
|
+
</details>
|
|
137
158
|
|
|
138
|
-
|
|
159
|
+
## 🔐 Security & Trust
|
|
139
160
|
|
|
140
|
-
|
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
##
|
|
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.
|
|
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.
|
|
57
|
-
"@sh3ll3x3c/native-devtools-mcp-win32-x64": "0.4.
|
|
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"
|