@mobilenext/mobile-mcp 0.0.41 → 0.0.43
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 +10 -1
- package/lib/android.js +3 -1
- package/lib/iphone-simulator.js +1 -1
- package/lib/mobilecli.js +1 -1
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -63,10 +63,19 @@ How we help to scale mobile automation:
|
|
|
63
63
|
|
|
64
64
|
- 🚀 **Fast and lightweight**: Uses native accessibility trees for most interactions, or screenshot based coordinates where a11y labels are not available.
|
|
65
65
|
- 🤖 **LLM-friendly**: No computer vision model required in Accessibility (Snapshot).
|
|
66
|
-
- 🧿 **Visual Sense**: Evaluates and analyses what
|
|
66
|
+
- 🧿 **Visual Sense**: Evaluates and analyses what's actually rendered on screen to decide the next action. If accessibility data or view-hierarchy coordinates are unavailable, it falls back to screenshot-based analysis.
|
|
67
67
|
- 📊 **Deterministic tool application**: Reduces ambiguity found in purely screenshot-based approaches by relying on structured data whenever possible.
|
|
68
68
|
- 📺 **Extract structured data**: Enables you to extract structred data from anything visible on screen.
|
|
69
69
|
|
|
70
|
+
### 🎯 Platform Support
|
|
71
|
+
|
|
72
|
+
| Platform | Supported |
|
|
73
|
+
|----------|:---------:|
|
|
74
|
+
| iOS Real Device | ✅ |
|
|
75
|
+
| iOS Simulator | ✅ |
|
|
76
|
+
| Android Real Device | ✅ |
|
|
77
|
+
| Android Emulator | ✅ |
|
|
78
|
+
|
|
70
79
|
## 🔧 Available MCP Tools
|
|
71
80
|
|
|
72
81
|
<details>
|
package/lib/android.js
CHANGED
|
@@ -75,7 +75,7 @@ const BUTTON_MAP = {
|
|
|
75
75
|
"DPAD_RIGHT": "KEYCODE_DPAD_RIGHT",
|
|
76
76
|
};
|
|
77
77
|
const TIMEOUT = 30000;
|
|
78
|
-
const MAX_BUFFER_SIZE = 1024 * 1024 *
|
|
78
|
+
const MAX_BUFFER_SIZE = 1024 * 1024 * 8;
|
|
79
79
|
class AndroidRobot {
|
|
80
80
|
deviceId;
|
|
81
81
|
constructor(deviceId) {
|
|
@@ -500,6 +500,7 @@ class AndroidDeviceManager {
|
|
|
500
500
|
.map(line => line.trim())
|
|
501
501
|
.filter(line => line !== "")
|
|
502
502
|
.filter(line => !line.startsWith("List of devices attached"))
|
|
503
|
+
.filter(line => line.split("\t")[1]?.trim() === "device") // Only include devices that are online and ready
|
|
503
504
|
.map(line => line.split("\t")[0]);
|
|
504
505
|
return names.map(name => ({
|
|
505
506
|
deviceId: name,
|
|
@@ -519,6 +520,7 @@ class AndroidDeviceManager {
|
|
|
519
520
|
.map(line => line.trim())
|
|
520
521
|
.filter(line => line !== "")
|
|
521
522
|
.filter(line => !line.startsWith("List of devices attached"))
|
|
523
|
+
.filter(line => line.split("\t")[1]?.trim() === "device") // Only include devices that are online and ready
|
|
522
524
|
.map(line => line.split("\t")[0]);
|
|
523
525
|
return names.map(deviceId => ({
|
|
524
526
|
deviceId,
|
package/lib/iphone-simulator.js
CHANGED
|
@@ -10,7 +10,7 @@ const webdriver_agent_1 = require("./webdriver-agent");
|
|
|
10
10
|
const robot_1 = require("./robot");
|
|
11
11
|
const TIMEOUT = 30000;
|
|
12
12
|
const WDA_PORT = 8100;
|
|
13
|
-
const MAX_BUFFER_SIZE = 1024 * 1024 *
|
|
13
|
+
const MAX_BUFFER_SIZE = 1024 * 1024 * 8;
|
|
14
14
|
class Simctl {
|
|
15
15
|
simulatorUuid;
|
|
16
16
|
constructor(simulatorUuid) {
|
package/lib/mobilecli.js
CHANGED
|
@@ -5,7 +5,7 @@ const node_fs_1 = require("node:fs");
|
|
|
5
5
|
const node_path_1 = require("node:path");
|
|
6
6
|
const node_child_process_1 = require("node:child_process");
|
|
7
7
|
const TIMEOUT = 30000;
|
|
8
|
-
const MAX_BUFFER_SIZE = 1024 * 1024 *
|
|
8
|
+
const MAX_BUFFER_SIZE = 1024 * 1024 * 8;
|
|
9
9
|
class Mobilecli {
|
|
10
10
|
path = null;
|
|
11
11
|
constructor() { }
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mobilenext/mobile-mcp",
|
|
3
3
|
"mcpName": "io.github.mobile-next/mobile-mcp",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.43",
|
|
5
5
|
"description": "Mobile MCP",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,15 +24,17 @@
|
|
|
24
24
|
"lib"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@modelcontextprotocol/sdk": "1.
|
|
27
|
+
"@modelcontextprotocol/sdk": "1.26.0",
|
|
28
|
+
"ajv": "^8.18.0",
|
|
28
29
|
"commander": "14.0.0",
|
|
29
30
|
"express": "5.1.0",
|
|
30
|
-
"fast-xml-parser": "5.
|
|
31
|
+
"fast-xml-parser": "5.3.7",
|
|
32
|
+
"qs": "^6.15.0",
|
|
31
33
|
"zod": "^4.1.13",
|
|
32
34
|
"zod-to-json-schema": "3.25.0"
|
|
33
35
|
},
|
|
34
36
|
"optionalDependencies": {
|
|
35
|
-
"@mobilenext/mobilecli": "0.0.
|
|
37
|
+
"@mobilenext/mobilecli": "0.0.54"
|
|
36
38
|
},
|
|
37
39
|
"devDependencies": {
|
|
38
40
|
"@eslint/eslintrc": "^3.2.0",
|