mcp-maestro-mobile-ai 1.1.0
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/CHANGELOG.md +114 -0
- package/CONTRIBUTING.md +417 -0
- package/LICENSE +22 -0
- package/README.md +719 -0
- package/ROADMAP.md +239 -0
- package/docs/ENTERPRISE_READINESS.md +545 -0
- package/docs/MCP_SETUP.md +180 -0
- package/docs/PRIVACY.md +198 -0
- package/docs/REACT_NATIVE_AUTOMATION_GUIDELINES.md +584 -0
- package/docs/SECURITY.md +573 -0
- package/package.json +69 -0
- package/prompts/example-login-tests.txt +9 -0
- package/prompts/example-youtube-tests.txt +8 -0
- package/src/mcp-server/index.js +625 -0
- package/src/mcp-server/tools/contextTools.js +194 -0
- package/src/mcp-server/tools/promptTools.js +191 -0
- package/src/mcp-server/tools/runTools.js +357 -0
- package/src/mcp-server/tools/utilityTools.js +721 -0
- package/src/mcp-server/tools/validateTools.js +220 -0
- package/src/mcp-server/utils/appContext.js +295 -0
- package/src/mcp-server/utils/logger.js +52 -0
- package/src/mcp-server/utils/maestro.js +508 -0
- package/templates/mcp-config-claude-desktop.json +15 -0
- package/templates/mcp-config-cursor.json +15 -0
- package/templates/mcp-config-vscode.json +13 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# MCP Server Setup Guide
|
|
2
|
+
|
|
3
|
+
## Setting up Maestro MCP Server with AI Clients
|
|
4
|
+
|
|
5
|
+
This guide explains how to configure the Maestro MCP Server with different AI clients.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
1. **Node.js 18+** installed
|
|
12
|
+
2. **Java 17+** installed
|
|
13
|
+
3. **Maestro CLI** installed
|
|
14
|
+
4. **Android Emulator** running
|
|
15
|
+
5. Dependencies installed: `npm install`
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Cursor Setup
|
|
20
|
+
|
|
21
|
+
### Step 1: Find your Cursor MCP config file
|
|
22
|
+
|
|
23
|
+
The config file is located at:
|
|
24
|
+
- **Windows**: `%USERPROFILE%\.cursor\mcp.json`
|
|
25
|
+
- **macOS**: `~/.cursor/mcp.json`
|
|
26
|
+
- **Linux**: `~/.cursor/mcp.json`
|
|
27
|
+
|
|
28
|
+
### Step 2: Add the Maestro server
|
|
29
|
+
|
|
30
|
+
Edit the `mcp.json` file and add:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"mcpServers": {
|
|
35
|
+
"maestro": {
|
|
36
|
+
"command": "node",
|
|
37
|
+
"args": ["C:/path/to/ai-automation-mobile/src/mcp-server/index.js"],
|
|
38
|
+
"env": {
|
|
39
|
+
"APP_ID": "com.google.android.youtube"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Important:** Replace the path with your actual project path.
|
|
47
|
+
|
|
48
|
+
### Step 3: Restart Cursor
|
|
49
|
+
|
|
50
|
+
Close and reopen Cursor for the changes to take effect.
|
|
51
|
+
|
|
52
|
+
### Step 4: Verify
|
|
53
|
+
|
|
54
|
+
In Cursor's AI chat, type:
|
|
55
|
+
```
|
|
56
|
+
List the available MCP tools
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
You should see the Maestro tools listed.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## VS Code with GitHub Copilot
|
|
64
|
+
|
|
65
|
+
### Option 1: Copilot MCP Extension (if available)
|
|
66
|
+
|
|
67
|
+
If there's an MCP extension for VS Code Copilot, configure it similarly to Cursor.
|
|
68
|
+
|
|
69
|
+
### Option 2: Run Server Manually
|
|
70
|
+
|
|
71
|
+
1. Start the MCP server:
|
|
72
|
+
```bash
|
|
73
|
+
cd C:\Krunal\Practice\ai-automation-mobile
|
|
74
|
+
npm start
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
2. The server will run on stdio and can be connected to compatible clients.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Testing the Setup
|
|
82
|
+
|
|
83
|
+
### 1. Check Configuration
|
|
84
|
+
|
|
85
|
+
Ask the AI:
|
|
86
|
+
```
|
|
87
|
+
Get the app configuration
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Expected response:
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"success": true,
|
|
94
|
+
"config": {
|
|
95
|
+
"appId": "com.google.android.youtube",
|
|
96
|
+
"platform": "android"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 2. List Prompt Files
|
|
102
|
+
|
|
103
|
+
Ask the AI:
|
|
104
|
+
```
|
|
105
|
+
List available prompt files
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 3. Run a Test
|
|
109
|
+
|
|
110
|
+
Ask the AI:
|
|
111
|
+
```
|
|
112
|
+
Run a test: "Test that user can open YouTube and search for TechGuru"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Environment Variables
|
|
118
|
+
|
|
119
|
+
You can pass environment variables in the MCP config:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"maestro": {
|
|
125
|
+
"command": "node",
|
|
126
|
+
"args": ["path/to/src/mcp-server/index.js"],
|
|
127
|
+
"env": {
|
|
128
|
+
"APP_ID": "com.mycompany.myapp",
|
|
129
|
+
"ANDROID_HOME": "C:/Users/Me/Android/Sdk",
|
|
130
|
+
"LOG_LEVEL": "debug"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Or create a `.env` file in the project root.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Troubleshooting
|
|
142
|
+
|
|
143
|
+
### Server doesn't start
|
|
144
|
+
|
|
145
|
+
1. Check Node.js version: `node --version` (must be 18+)
|
|
146
|
+
2. Check dependencies: `npm install`
|
|
147
|
+
3. Check for errors in `output/logs/mcp-server.log`
|
|
148
|
+
|
|
149
|
+
### Tools not appearing
|
|
150
|
+
|
|
151
|
+
1. Restart your editor
|
|
152
|
+
2. Check the MCP config path is correct
|
|
153
|
+
3. Verify the server path in the config
|
|
154
|
+
|
|
155
|
+
### Tests fail with "No emulator"
|
|
156
|
+
|
|
157
|
+
1. Start an Android emulator
|
|
158
|
+
2. Verify with `adb devices`
|
|
159
|
+
|
|
160
|
+
### "APP_ID not configured"
|
|
161
|
+
|
|
162
|
+
Set the `APP_ID` in either:
|
|
163
|
+
- The MCP config's `env` section
|
|
164
|
+
- A `.env` file in the project root
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Available Tools
|
|
169
|
+
|
|
170
|
+
| Tool | Description |
|
|
171
|
+
|------|-------------|
|
|
172
|
+
| `read_prompt_file` | Read test prompts from a file |
|
|
173
|
+
| `list_prompt_files` | List available prompt files |
|
|
174
|
+
| `get_app_config` | Get app configuration |
|
|
175
|
+
| `validate_maestro_yaml` | Validate Maestro YAML |
|
|
176
|
+
| `run_test` | Run a single test |
|
|
177
|
+
| `run_test_suite` | Run multiple tests |
|
|
178
|
+
| `get_test_results` | Get test results |
|
|
179
|
+
| `take_screenshot` | Take a screenshot |
|
|
180
|
+
|
package/docs/PRIVACY.md
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Privacy Policy
|
|
2
|
+
|
|
3
|
+
> **Maestro MCP Server** - Data Privacy Statement
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
**Maestro MCP does not collect, transmit, or store any user data externally.**
|
|
10
|
+
|
|
11
|
+
All operations are performed locally on your machine. No data is sent to external servers, cloud services, or third parties.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Data Collection
|
|
16
|
+
|
|
17
|
+
### What We DO NOT Collect
|
|
18
|
+
|
|
19
|
+
| Data Type | Collected? | Notes |
|
|
20
|
+
|-----------|------------|-------|
|
|
21
|
+
| Personal information | ❌ No | Never collected |
|
|
22
|
+
| Usage analytics | ❌ No | No tracking |
|
|
23
|
+
| Crash reports | ❌ No | Not sent anywhere |
|
|
24
|
+
| Test results | ❌ No | Stays local |
|
|
25
|
+
| Screenshots | ❌ No | Stays local |
|
|
26
|
+
| Device information | ❌ No | Not transmitted |
|
|
27
|
+
| IP addresses | ❌ No | No network calls |
|
|
28
|
+
|
|
29
|
+
### What Stays Local
|
|
30
|
+
|
|
31
|
+
| Data Type | Location | Purpose |
|
|
32
|
+
|-----------|----------|---------|
|
|
33
|
+
| Test results | `output/results/` | Test history |
|
|
34
|
+
| Screenshots | `output/screenshots/` | Failure debugging |
|
|
35
|
+
| Logs | `output/logs/` | Troubleshooting |
|
|
36
|
+
| Configuration | `.env` | Your settings |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Network Activity
|
|
41
|
+
|
|
42
|
+
### External Connections
|
|
43
|
+
|
|
44
|
+
**Maestro MCP makes ZERO external network connections.**
|
|
45
|
+
|
|
46
|
+
The only network activity is:
|
|
47
|
+
|
|
48
|
+
1. **npm install** - When you install the package (npm registry)
|
|
49
|
+
2. **ADB** - Local connection to Android device/emulator
|
|
50
|
+
|
|
51
|
+
### No Telemetry
|
|
52
|
+
|
|
53
|
+
- ❌ No usage statistics sent
|
|
54
|
+
- ❌ No error reports sent
|
|
55
|
+
- ❌ No heartbeats or pings
|
|
56
|
+
- ❌ No update checks (beyond npm)
|
|
57
|
+
- ❌ No analytics of any kind
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Third-Party Services
|
|
62
|
+
|
|
63
|
+
### Dependencies
|
|
64
|
+
|
|
65
|
+
Maestro MCP uses the following npm packages:
|
|
66
|
+
|
|
67
|
+
| Package | Purpose | Privacy |
|
|
68
|
+
|---------|---------|---------|
|
|
69
|
+
| @modelcontextprotocol/sdk | MCP protocol | No telemetry |
|
|
70
|
+
| winston | Logging | Local only |
|
|
71
|
+
| js-yaml | YAML parsing | Local only |
|
|
72
|
+
| zod | Validation | Local only |
|
|
73
|
+
| dotenv | Config loading | Local only |
|
|
74
|
+
|
|
75
|
+
None of these dependencies collect or transmit data.
|
|
76
|
+
|
|
77
|
+
### External Tools
|
|
78
|
+
|
|
79
|
+
| Tool | Privacy |
|
|
80
|
+
|------|---------|
|
|
81
|
+
| Maestro CLI | Local execution only |
|
|
82
|
+
| ADB | Local device communication |
|
|
83
|
+
| Android Emulator | Local execution |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Your Data
|
|
88
|
+
|
|
89
|
+
### Data Ownership
|
|
90
|
+
|
|
91
|
+
- **You own all data** generated by Maestro MCP
|
|
92
|
+
- Test results, screenshots, and logs are yours
|
|
93
|
+
- You control retention and deletion
|
|
94
|
+
|
|
95
|
+
### Data Location
|
|
96
|
+
|
|
97
|
+
All data is stored in your project directory:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
your-project/
|
|
101
|
+
├── output/
|
|
102
|
+
│ ├── results/ ← Your test results
|
|
103
|
+
│ ├── screenshots/ ← Your screenshots
|
|
104
|
+
│ └── logs/ ← Your logs
|
|
105
|
+
└── .env ← Your configuration
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Data Deletion
|
|
109
|
+
|
|
110
|
+
You can delete all generated data at any time:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Delete all results
|
|
114
|
+
rm -rf output/
|
|
115
|
+
|
|
116
|
+
# Or use the cleanup tool
|
|
117
|
+
cleanup_results --keepLast 0 --deleteScreenshots true
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Screenshots & Sensitive Data
|
|
123
|
+
|
|
124
|
+
### Warning
|
|
125
|
+
|
|
126
|
+
Screenshots captured during testing may contain:
|
|
127
|
+
|
|
128
|
+
- Personal information visible on screen
|
|
129
|
+
- Authentication credentials
|
|
130
|
+
- Financial data
|
|
131
|
+
- Health information
|
|
132
|
+
- Business confidential information
|
|
133
|
+
|
|
134
|
+
### Recommendations
|
|
135
|
+
|
|
136
|
+
1. **Use test accounts** with fake data
|
|
137
|
+
2. **Review screenshots** before sharing
|
|
138
|
+
3. **Implement cleanup policies** for old screenshots
|
|
139
|
+
4. **Do not commit** screenshots to version control
|
|
140
|
+
5. **Mask sensitive data** in test applications
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Compliance
|
|
145
|
+
|
|
146
|
+
### GDPR
|
|
147
|
+
|
|
148
|
+
Maestro MCP is GDPR-friendly:
|
|
149
|
+
|
|
150
|
+
- ✅ No personal data collection
|
|
151
|
+
- ✅ No data processing
|
|
152
|
+
- ✅ No data transfer
|
|
153
|
+
- ✅ Full user control
|
|
154
|
+
|
|
155
|
+
### CCPA
|
|
156
|
+
|
|
157
|
+
Maestro MCP complies with CCPA:
|
|
158
|
+
|
|
159
|
+
- ✅ No sale of personal information
|
|
160
|
+
- ✅ No data collection to sell
|
|
161
|
+
- ✅ Complete transparency
|
|
162
|
+
|
|
163
|
+
### Other Regulations
|
|
164
|
+
|
|
165
|
+
| Regulation | Status |
|
|
166
|
+
|------------|--------|
|
|
167
|
+
| GDPR | ✅ Compatible |
|
|
168
|
+
| CCPA | ✅ Compatible |
|
|
169
|
+
| HIPAA | ⚠️ User responsibility* |
|
|
170
|
+
| PCI DSS | ⚠️ User responsibility* |
|
|
171
|
+
| SOC 2 | ✅ Compatible (no cloud) |
|
|
172
|
+
|
|
173
|
+
*Screenshots may contain regulated data - user must manage appropriately.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Contact
|
|
178
|
+
|
|
179
|
+
For privacy inquiries:
|
|
180
|
+
|
|
181
|
+
- **GitHub Issues**: [Public questions](https://github.com/krunal-mahera/mcp-maestro-mobile-ai/issues)
|
|
182
|
+
- **Email**: For sensitive privacy matters
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Changes to This Policy
|
|
187
|
+
|
|
188
|
+
We will update this policy as needed. Changes will be:
|
|
189
|
+
|
|
190
|
+
- Documented in CHANGELOG.md
|
|
191
|
+
- Announced in release notes
|
|
192
|
+
- Effective immediately upon publication
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
*Last Updated: January 2025*
|
|
197
|
+
*Version: 1.0.0*
|
|
198
|
+
|