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,545 @@
|
|
|
1
|
+
# Enterprise Readiness Guide
|
|
2
|
+
|
|
3
|
+
> **Maestro MCP Server** - AI-Assisted Mobile Automation
|
|
4
|
+
|
|
5
|
+
This document provides enterprise decision-makers with a comprehensive overview of Maestro MCP's architecture, security model, operational characteristics, and roadmap.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Table of Contents
|
|
10
|
+
|
|
11
|
+
1. [Executive Summary](#executive-summary)
|
|
12
|
+
2. [Architecture Overview](#architecture-overview)
|
|
13
|
+
3. [Security Model](#security-model)
|
|
14
|
+
4. [Execution Model](#execution-model)
|
|
15
|
+
5. [Data Handling](#data-handling)
|
|
16
|
+
6. [Configuration & Governance](#configuration--governance)
|
|
17
|
+
7. [Reliability & Stability](#reliability--stability)
|
|
18
|
+
8. [CI/CD Integration](#cicd-integration)
|
|
19
|
+
9. [Compliance & Legal](#compliance--legal)
|
|
20
|
+
10. [Known Limitations](#known-limitations)
|
|
21
|
+
11. [Support & Maintenance](#support--maintenance)
|
|
22
|
+
12. [Roadmap](#roadmap)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Executive Summary
|
|
27
|
+
|
|
28
|
+
### What Is Maestro MCP?
|
|
29
|
+
|
|
30
|
+
Maestro MCP is a **Model Context Protocol (MCP) server** that enables AI assistants (Claude, GitHub Copilot, Cursor) to execute mobile UI tests using the [Maestro](https://maestro.mobile.dev) framework.
|
|
31
|
+
|
|
32
|
+
### Key Value Proposition
|
|
33
|
+
|
|
34
|
+
| Traditional Approach | With Maestro MCP |
|
|
35
|
+
| ------------------------------------ | ---------------------------------- |
|
|
36
|
+
| Write detailed test scripts manually | Describe tests in natural language |
|
|
37
|
+
| Learn Maestro YAML syntax | AI generates valid YAML |
|
|
38
|
+
| Debug selector issues | AI adapts selectors automatically |
|
|
39
|
+
| Maintain test suites | Prompts are maintainable English |
|
|
40
|
+
|
|
41
|
+
### Enterprise Suitability
|
|
42
|
+
|
|
43
|
+
| Criteria | Status | Notes |
|
|
44
|
+
| --------------------- | ------ | --------------------------------- |
|
|
45
|
+
| Local Execution | ✅ | All operations run locally |
|
|
46
|
+
| No Cloud Dependencies | ✅ | No external API calls required |
|
|
47
|
+
| No Telemetry | ✅ | Zero data collection |
|
|
48
|
+
| Open Source | ✅ | MIT License |
|
|
49
|
+
| Audit Trail | ✅ | All runs logged with full context |
|
|
50
|
+
| CI/CD Compatible | ✅ | Exit codes, JSON/JUnit output |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Architecture Overview
|
|
55
|
+
|
|
56
|
+
### High-Level Architecture
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
┌─────────────────────────────────────────────────────────┐
|
|
60
|
+
│ AI Client Layer │
|
|
61
|
+
│ (Cursor / Claude Desktop / VS Code Copilot) │
|
|
62
|
+
└─────────────────────────┬───────────────────────────────┘
|
|
63
|
+
│ MCP Protocol (stdio)
|
|
64
|
+
▼
|
|
65
|
+
┌─────────────────────────────────────────────────────────┐
|
|
66
|
+
│ Maestro MCP Server │
|
|
67
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
68
|
+
│ │ Prompt │ │ Validation │ │ Execution │ │
|
|
69
|
+
│ │ Tools │ │ Tools │ │ Tools │ │
|
|
70
|
+
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
71
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
72
|
+
│ │ Device │ │ Config │ │ Reporting │ │
|
|
73
|
+
│ │ Management │ │ Management │ │ Tools │ │
|
|
74
|
+
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
75
|
+
└─────────────────────────┬───────────────────────────────┘
|
|
76
|
+
│
|
|
77
|
+
▼
|
|
78
|
+
┌─────────────────────────────────────────────────────────┐
|
|
79
|
+
│ Maestro CLI │
|
|
80
|
+
│ (Mobile UI Automation) │
|
|
81
|
+
└─────────────────────────┬───────────────────────────────┘
|
|
82
|
+
│
|
|
83
|
+
▼
|
|
84
|
+
┌─────────────────────────────────────────────────────────┐
|
|
85
|
+
│ Android Device / Emulator │
|
|
86
|
+
│ (via ADB) │
|
|
87
|
+
└─────────────────────────────────────────────────────────┘
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Component Responsibilities
|
|
91
|
+
|
|
92
|
+
| Component | Responsibility |
|
|
93
|
+
| --------------- | ---------------------------------------------------- |
|
|
94
|
+
| **AI Client** | Natural language interpretation, YAML generation |
|
|
95
|
+
| **MCP Server** | Tool orchestration, validation, execution management |
|
|
96
|
+
| **Maestro CLI** | Mobile UI automation, device interaction |
|
|
97
|
+
| **ADB** | Android device communication |
|
|
98
|
+
|
|
99
|
+
### Data Flow
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
1. User → "Test that user can login"
|
|
103
|
+
2. AI Client → Generates Maestro YAML
|
|
104
|
+
3. MCP Server → Validates YAML syntax
|
|
105
|
+
4. MCP Server → Checks device connection
|
|
106
|
+
5. MCP Server → Checks app installation
|
|
107
|
+
6. MCP Server → Executes via Maestro CLI
|
|
108
|
+
7. MCP Server → Captures results & screenshots
|
|
109
|
+
8. MCP Server → Returns structured response
|
|
110
|
+
9. AI Client → Presents results to user
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Security Model
|
|
116
|
+
|
|
117
|
+
> **Detailed security information: See [SECURITY.md](./SECURITY.md)**
|
|
118
|
+
|
|
119
|
+
### Execution Boundaries
|
|
120
|
+
|
|
121
|
+
| Operation | Allowed | Restricted |
|
|
122
|
+
| ------------------------- | ------------------ | -------------- |
|
|
123
|
+
| Maestro test execution | ✅ | - |
|
|
124
|
+
| Screenshot capture | ✅ | - |
|
|
125
|
+
| Device listing | ✅ | - |
|
|
126
|
+
| App installation check | ✅ | - |
|
|
127
|
+
| System-level ADB commands | - | ✅ (Safe Mode) |
|
|
128
|
+
| File system access | Limited to output/ | ✅ |
|
|
129
|
+
| Network access | None | ✅ |
|
|
130
|
+
|
|
131
|
+
### Trust Model
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
┌────────────────────────────────────────┐
|
|
135
|
+
│ Trust Boundary │
|
|
136
|
+
│ ┌──────────────────────────────────┐ │
|
|
137
|
+
│ │ Local Machine Only │ │
|
|
138
|
+
│ │ • No external API calls │ │
|
|
139
|
+
│ │ • No cloud storage │ │
|
|
140
|
+
│ │ • No telemetry │ │
|
|
141
|
+
│ └──────────────────────────────────┘ │
|
|
142
|
+
└────────────────────────────────────────┘
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Authentication & Authorization
|
|
146
|
+
|
|
147
|
+
| Feature | Current State | Roadmap |
|
|
148
|
+
| ------------------- | ---------------- | ---------------- |
|
|
149
|
+
| User Authentication | N/A (local tool) | Planned for SaaS |
|
|
150
|
+
| Role-Based Access | Design ready | Q2 2025 |
|
|
151
|
+
| API Keys | N/A | Planned for SaaS |
|
|
152
|
+
| SSO Integration | N/A | Planned for SaaS |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Execution Model
|
|
157
|
+
|
|
158
|
+
### Test Execution Flow
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
162
|
+
│ Prompt │────▶│ Validate │────▶│ Execute │
|
|
163
|
+
│ Input │ │ YAML │ │ Test │
|
|
164
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
165
|
+
│ │
|
|
166
|
+
▼ ▼
|
|
167
|
+
┌─────────────┐ ┌─────────────┐
|
|
168
|
+
│ Reject │ │ Retry │
|
|
169
|
+
│ Invalid │ │ on Fail │
|
|
170
|
+
└─────────────┘ └─────────────┘
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Pre-Flight Checks
|
|
174
|
+
|
|
175
|
+
Before every test execution:
|
|
176
|
+
|
|
177
|
+
1. ✅ **Device Connection** - Verify Android device/emulator is connected
|
|
178
|
+
2. ✅ **App Installation** - Verify target app is installed
|
|
179
|
+
3. ✅ **YAML Validation** - Validate Maestro YAML syntax
|
|
180
|
+
4. ✅ **Configuration Check** - Verify required settings
|
|
181
|
+
|
|
182
|
+
### Retry Mechanism
|
|
183
|
+
|
|
184
|
+
| Setting | Default | Description |
|
|
185
|
+
| --------------------- | ---------- | ------------------------------- |
|
|
186
|
+
| `DEFAULT_RETRIES` | 1 | Automatic retries on failure |
|
|
187
|
+
| Retry Delay | 2 seconds | Wait between retries |
|
|
188
|
+
| Screenshot on Failure | ✅ Enabled | Capture screen on final failure |
|
|
189
|
+
|
|
190
|
+
### Timeout Governance
|
|
191
|
+
|
|
192
|
+
| Timeout | Default | Configurable |
|
|
193
|
+
| ---------------- | ---------- | ---------------------- |
|
|
194
|
+
| Test execution | 5 minutes | Via Maestro config |
|
|
195
|
+
| Wait for element | 10 seconds | `DEFAULT_WAIT_TIMEOUT` |
|
|
196
|
+
| ADB commands | 10 seconds | Hardcoded |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Data Handling
|
|
201
|
+
|
|
202
|
+
### Data Storage
|
|
203
|
+
|
|
204
|
+
| Data Type | Location | Retention | Sensitive |
|
|
205
|
+
| ------------ | --------------------- | ----------------- | --------- |
|
|
206
|
+
| Test results | `output/results/` | Configurable | No |
|
|
207
|
+
| Screenshots | `output/screenshots/` | Configurable | Possible |
|
|
208
|
+
| Logs | `output/logs/` | Session | No |
|
|
209
|
+
| Temp YAML | `.temp/` | Deleted after run | No |
|
|
210
|
+
|
|
211
|
+
### Data Lifecycle
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
Test Run Started
|
|
215
|
+
│
|
|
216
|
+
├── Temp YAML created (.temp/)
|
|
217
|
+
│
|
|
218
|
+
├── Test executed
|
|
219
|
+
│
|
|
220
|
+
├── Results saved (output/results/)
|
|
221
|
+
│
|
|
222
|
+
├── Screenshot captured (if failed)
|
|
223
|
+
│
|
|
224
|
+
├── Temp YAML deleted
|
|
225
|
+
│
|
|
226
|
+
└── Auto-cleanup of old results (MAX_RESULTS)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Data Retention Policy
|
|
230
|
+
|
|
231
|
+
| Setting | Default | Description |
|
|
232
|
+
| -------------------- | --------------- | ---------------------------- |
|
|
233
|
+
| `MAX_RESULTS` | 50 | Maximum result files to keep |
|
|
234
|
+
| Screenshot retention | Same as results | Cleaned with results |
|
|
235
|
+
| Log rotation | Manual | Logs grow unbounded |
|
|
236
|
+
|
|
237
|
+
### Data Privacy
|
|
238
|
+
|
|
239
|
+
- ❌ **No telemetry** - Zero data sent externally
|
|
240
|
+
- ❌ **No analytics** - No usage tracking
|
|
241
|
+
- ❌ **No cloud sync** - All data stays local
|
|
242
|
+
- ✅ **User control** - Full control over all data
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Configuration & Governance
|
|
247
|
+
|
|
248
|
+
### Configuration Hierarchy
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
Priority (highest to lowest):
|
|
252
|
+
1. Tool arguments (runtime)
|
|
253
|
+
2. Environment variables
|
|
254
|
+
3. .env file (project)
|
|
255
|
+
4. Built-in defaults
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Required Configuration
|
|
259
|
+
|
|
260
|
+
| Variable | Required | Description |
|
|
261
|
+
| -------------- | ----------- | --------------------- |
|
|
262
|
+
| `APP_ID` | ✅ Yes | Target app package ID |
|
|
263
|
+
| `ANDROID_HOME` | Recommended | Android SDK path |
|
|
264
|
+
|
|
265
|
+
### Optional Configuration
|
|
266
|
+
|
|
267
|
+
| Variable | Default | Description |
|
|
268
|
+
| ---------------------- | ------- | ----------------------------- |
|
|
269
|
+
| `DEFAULT_WAIT_TIMEOUT` | 10000 | Element wait timeout (ms) |
|
|
270
|
+
| `DEFAULT_RETRIES` | 1 | Auto-retry count |
|
|
271
|
+
| `MAX_RESULTS` | 50 | Result file limit |
|
|
272
|
+
| `SAFE_MODE` | true | Restrict dangerous operations |
|
|
273
|
+
| `LOG_LEVEL` | info | Logging verbosity |
|
|
274
|
+
|
|
275
|
+
### Configuration Validation
|
|
276
|
+
|
|
277
|
+
The server validates configuration at startup:
|
|
278
|
+
|
|
279
|
+
- ✅ Required variables present
|
|
280
|
+
- ✅ Valid format for known variables
|
|
281
|
+
- ✅ Device connectivity
|
|
282
|
+
- ⚠️ Warnings for recommended settings
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Reliability & Stability
|
|
287
|
+
|
|
288
|
+
### Health Checks
|
|
289
|
+
|
|
290
|
+
| Check | Frequency | Action on Failure |
|
|
291
|
+
| -------------------- | --------- | --------------------- |
|
|
292
|
+
| Device connection | Per test | Fail with clear error |
|
|
293
|
+
| App installation | Per test | Fail with hint |
|
|
294
|
+
| Maestro availability | Startup | Exit with error |
|
|
295
|
+
| ADB availability | Startup | Exit with error |
|
|
296
|
+
|
|
297
|
+
### Error Handling
|
|
298
|
+
|
|
299
|
+
| Error Type | Handling | User Feedback |
|
|
300
|
+
| -------------------- | ---------------- | ----------------------- |
|
|
301
|
+
| Device not connected | Fail fast | "Start emulator" hint |
|
|
302
|
+
| App not installed | Fail fast | "Install app" hint |
|
|
303
|
+
| Element not found | Retry, then fail | Screenshot + suggestion |
|
|
304
|
+
| Timeout | Retry, then fail | Increased timeout hint |
|
|
305
|
+
| YAML syntax error | Reject | Specific error location |
|
|
306
|
+
|
|
307
|
+
### Stability Features
|
|
308
|
+
|
|
309
|
+
- ✅ Graceful error handling (no crashes)
|
|
310
|
+
- ✅ Automatic retry on transient failures
|
|
311
|
+
- ✅ Resource cleanup (temp files)
|
|
312
|
+
- ✅ Memory-efficient result storage
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## CI/CD Integration
|
|
317
|
+
|
|
318
|
+
### Supported CI Systems
|
|
319
|
+
|
|
320
|
+
| CI System | Support Level | Notes |
|
|
321
|
+
| -------------- | ------------- | ------------------- |
|
|
322
|
+
| GitHub Actions | ✅ Full | Native support |
|
|
323
|
+
| GitLab CI | ✅ Full | Standard Node.js |
|
|
324
|
+
| Jenkins | ✅ Full | Pipeline compatible |
|
|
325
|
+
| Azure DevOps | ✅ Full | YAML pipelines |
|
|
326
|
+
| CircleCI | ✅ Full | Docker-based |
|
|
327
|
+
|
|
328
|
+
### Exit Codes
|
|
329
|
+
|
|
330
|
+
| Code | Meaning |
|
|
331
|
+
| ---- | -------------------------------------- |
|
|
332
|
+
| 0 | All tests passed |
|
|
333
|
+
| 1 | One or more tests failed |
|
|
334
|
+
| 2 | Infrastructure error (no device, etc.) |
|
|
335
|
+
|
|
336
|
+
### Output Formats
|
|
337
|
+
|
|
338
|
+
| Format | Status | Use Case |
|
|
339
|
+
| --------- | ------------ | ---------------------- |
|
|
340
|
+
| JSON | ✅ Available | Programmatic access |
|
|
341
|
+
| JUnit XML | 🔜 Roadmap | CI test reporting |
|
|
342
|
+
| HTML | 🔜 Roadmap | Human-readable reports |
|
|
343
|
+
|
|
344
|
+
### Example: GitHub Actions
|
|
345
|
+
|
|
346
|
+
```yaml
|
|
347
|
+
name: Mobile Tests
|
|
348
|
+
on: [push]
|
|
349
|
+
|
|
350
|
+
jobs:
|
|
351
|
+
test:
|
|
352
|
+
runs-on: macos-latest
|
|
353
|
+
steps:
|
|
354
|
+
- uses: actions/checkout@v4
|
|
355
|
+
|
|
356
|
+
- name: Setup Android Emulator
|
|
357
|
+
uses: reactivecircus/android-emulator-runner@v2
|
|
358
|
+
with:
|
|
359
|
+
api-level: 33
|
|
360
|
+
script: |
|
|
361
|
+
npm install -g @anthropic/maestro-mcp
|
|
362
|
+
maestro-mcp run --ci --prompt-file tests.txt
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Compliance & Legal
|
|
368
|
+
|
|
369
|
+
### License
|
|
370
|
+
|
|
371
|
+
**MIT License** - Full text in [LICENSE](../LICENSE)
|
|
372
|
+
|
|
373
|
+
Key permissions:
|
|
374
|
+
|
|
375
|
+
- ✅ Commercial use
|
|
376
|
+
- ✅ Modification
|
|
377
|
+
- ✅ Distribution
|
|
378
|
+
- ✅ Private use
|
|
379
|
+
|
|
380
|
+
### Data Compliance
|
|
381
|
+
|
|
382
|
+
| Regulation | Applicability | Notes |
|
|
383
|
+
| ---------- | ------------------- | --------------------------- |
|
|
384
|
+
| GDPR | N/A | No personal data collected |
|
|
385
|
+
| SOC 2 | Local tool | No cloud infrastructure |
|
|
386
|
+
| HIPAA | User responsibility | Screenshots may contain PHI |
|
|
387
|
+
| PCI DSS | User responsibility | Screenshots may contain PAN |
|
|
388
|
+
|
|
389
|
+
### Telemetry Statement
|
|
390
|
+
|
|
391
|
+
> **Maestro MCP collects zero telemetry data.**
|
|
392
|
+
>
|
|
393
|
+
> - No usage statistics
|
|
394
|
+
> - No crash reports
|
|
395
|
+
> - No analytics
|
|
396
|
+
> - No network calls to external services
|
|
397
|
+
|
|
398
|
+
### Third-Party Dependencies
|
|
399
|
+
|
|
400
|
+
| Dependency | License | Purpose |
|
|
401
|
+
| ------------------------- | ------------ | ------------------ |
|
|
402
|
+
| @modelcontextprotocol/sdk | MIT | MCP protocol |
|
|
403
|
+
| winston | MIT | Logging |
|
|
404
|
+
| js-yaml | MIT | YAML parsing |
|
|
405
|
+
| zod | MIT | Schema validation |
|
|
406
|
+
| dotenv | BSD-2-Clause | Environment config |
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
## Known Limitations
|
|
411
|
+
|
|
412
|
+
### Current Limitations
|
|
413
|
+
|
|
414
|
+
| Limitation | Impact | Workaround | Roadmap |
|
|
415
|
+
| --------------------- | ---------------- | ------------------------ | ------- |
|
|
416
|
+
| Android only | No iOS testing | Use iOS-specific tools | Q2 2025 |
|
|
417
|
+
| Single device | Sequential tests | Multiple instances | Q3 2025 |
|
|
418
|
+
| No parallel execution | Slower suites | External parallelization | Q3 2025 |
|
|
419
|
+
| English prompts only | Limited i18n | Translate prompts | Q4 2025 |
|
|
420
|
+
|
|
421
|
+
### AI Limitations
|
|
422
|
+
|
|
423
|
+
| Limitation | Description | Mitigation |
|
|
424
|
+
| ----------------- | ------------------------------------- | ------------------------ |
|
|
425
|
+
| Selector accuracy | AI may generate incorrect selectors | Validation + retry |
|
|
426
|
+
| Complex flows | Multi-step flows may require guidance | Break into smaller tests |
|
|
427
|
+
| Dynamic content | Handling dynamic data | Use wait strategies |
|
|
428
|
+
|
|
429
|
+
### Infrastructure Requirements
|
|
430
|
+
|
|
431
|
+
| Requirement | Minimum | Recommended |
|
|
432
|
+
| ----------- | ------- | ------------------- |
|
|
433
|
+
| Node.js | 18.x | 20.x LTS |
|
|
434
|
+
| Java | 17 | 21 LTS |
|
|
435
|
+
| RAM | 4 GB | 8 GB |
|
|
436
|
+
| Storage | 500 MB | 2 GB (with results) |
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## Support & Maintenance
|
|
441
|
+
|
|
442
|
+
### Support Channels
|
|
443
|
+
|
|
444
|
+
| Channel | Response Time | Availability |
|
|
445
|
+
| --------------- | ------------- | ------------ |
|
|
446
|
+
| GitHub Issues | 48-72 hours | Public |
|
|
447
|
+
| Email Support | 24-48 hours | Enterprise |
|
|
448
|
+
| Slack Community | Best effort | Public |
|
|
449
|
+
|
|
450
|
+
### Release Cadence
|
|
451
|
+
|
|
452
|
+
| Release Type | Frequency | Notes |
|
|
453
|
+
| ------------- | --------- | ---------------- |
|
|
454
|
+
| Patch (x.x.X) | As needed | Bug fixes |
|
|
455
|
+
| Minor (x.X.0) | Monthly | New features |
|
|
456
|
+
| Major (X.0.0) | Quarterly | Breaking changes |
|
|
457
|
+
|
|
458
|
+
### Versioning
|
|
459
|
+
|
|
460
|
+
Follows [Semantic Versioning 2.0.0](https://semver.org/):
|
|
461
|
+
|
|
462
|
+
- **MAJOR**: Breaking API changes
|
|
463
|
+
- **MINOR**: New features, backward compatible
|
|
464
|
+
- **PATCH**: Bug fixes, backward compatible
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## Roadmap
|
|
469
|
+
|
|
470
|
+
### Q1 2025 (Current)
|
|
471
|
+
|
|
472
|
+
- [x] Core MCP server implementation
|
|
473
|
+
- [x] Device management tools
|
|
474
|
+
- [x] Result storage and cleanup
|
|
475
|
+
- [x] Retry mechanism
|
|
476
|
+
- [ ] Security boundaries (Safe Mode)
|
|
477
|
+
- [ ] JUnit XML reports
|
|
478
|
+
- [ ] CI headless mode
|
|
479
|
+
|
|
480
|
+
### Q2 2025
|
|
481
|
+
|
|
482
|
+
- [ ] iOS support
|
|
483
|
+
- [ ] TypeScript migration
|
|
484
|
+
- [ ] Enhanced audit trail
|
|
485
|
+
- [ ] Configuration schema validation
|
|
486
|
+
- [ ] Health check endpoint
|
|
487
|
+
|
|
488
|
+
### Q3 2025
|
|
489
|
+
|
|
490
|
+
- [ ] Parallel test execution
|
|
491
|
+
- [ ] Plugin/hook system
|
|
492
|
+
- [ ] HTML report generation
|
|
493
|
+
- [ ] Slack/Teams integration
|
|
494
|
+
|
|
495
|
+
### Q4 2025
|
|
496
|
+
|
|
497
|
+
- [ ] Web dashboard (optional)
|
|
498
|
+
- [ ] Multi-tenant support
|
|
499
|
+
- [ ] RBAC implementation
|
|
500
|
+
- [ ] Enterprise support tier
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
## Getting Started
|
|
505
|
+
|
|
506
|
+
### Quick Evaluation
|
|
507
|
+
|
|
508
|
+
```bash
|
|
509
|
+
# Install
|
|
510
|
+
npm install -g mcp-maestro-mobile-ai
|
|
511
|
+
|
|
512
|
+
# Configure (add to your MCP client config)
|
|
513
|
+
{
|
|
514
|
+
"mcpServers": {
|
|
515
|
+
"maestro": {
|
|
516
|
+
"command": "maestro-mcp",
|
|
517
|
+
"env": {
|
|
518
|
+
"APP_ID": "com.your.app"
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
### Enterprise Evaluation
|
|
526
|
+
|
|
527
|
+
For enterprise evaluation, please:
|
|
528
|
+
|
|
529
|
+
1. Review [SECURITY.md](./SECURITY.md)
|
|
530
|
+
2. Test in isolated environment
|
|
531
|
+
3. Validate against your security policies
|
|
532
|
+
4. Contact for enterprise support options
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
## Contact
|
|
537
|
+
|
|
538
|
+
- **GitHub**: [krunal-mahera/mcp-maestro-mobile-ai](https://github.com/krunal-mahera/mcp-maestro-mobile-ai)
|
|
539
|
+
- **npm**: [mcp-maestro-mobile-ai](https://www.npmjs.com/package/mcp-maestro-mobile-ai)
|
|
540
|
+
- **Issues**: [GitHub Issues](https://github.com/krunal-mahera/mcp-maestro-mobile-ai/issues)
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
_Last Updated: January 2025_
|
|
545
|
+
_Version: 1.0.0_
|