mcp-maestro-mobile-ai 1.3.1 → 1.6.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 +344 -152
- package/ROADMAP.md +21 -8
- package/package.json +9 -3
- package/src/mcp-server/index.js +1394 -826
- package/src/mcp-server/schemas/toolSchemas.js +820 -0
- package/src/mcp-server/tools/contextTools.js +309 -2
- package/src/mcp-server/tools/runTools.js +409 -31
- package/src/mcp-server/utils/knownIssues.js +564 -0
- package/src/mcp-server/utils/maestro.js +265 -29
- package/src/mcp-server/utils/promptAnalyzer.js +701 -0
- package/src/mcp-server/utils/security.js +1200 -0
- package/src/mcp-server/utils/yamlCache.js +381 -0
- package/src/mcp-server/utils/yamlGenerator.js +426 -0
- package/src/mcp-server/utils/yamlTemplate.js +303 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,152 +1,344 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [Unreleased]
|
|
9
|
-
|
|
10
|
-
### Planned
|
|
11
|
-
|
|
12
|
-
- JUnit XML report generation
|
|
13
|
-
- CI headless mode
|
|
14
|
-
- iOS support
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
- `
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- `
|
|
94
|
-
- `
|
|
95
|
-
- `
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- Comprehensive
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
- **
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
- **
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Planned
|
|
11
|
+
|
|
12
|
+
- JUnit XML report generation
|
|
13
|
+
- CI headless mode (`--ci` flag)
|
|
14
|
+
- iOS support
|
|
15
|
+
- TypeScript migration
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## [1.6.0] - 2025-01-07
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **YAML Caching System**: Intelligent caching for faster recurring test execution
|
|
24
|
+
|
|
25
|
+
- `save_to_cache` - Save successful test YAML for future reuse
|
|
26
|
+
- `lookup_cache` - Check if a cached YAML exists for a prompt
|
|
27
|
+
- `list_cache` - List all cached tests with usage statistics
|
|
28
|
+
- `clear_cache` - Clear all cached YAMLs
|
|
29
|
+
- `delete_from_cache` - Delete specific cached test
|
|
30
|
+
- `get_cache_stats` - Get cache statistics (total cached, execution counts)
|
|
31
|
+
- `run_test_with_cache` - Run test with automatic cache lookup
|
|
32
|
+
|
|
33
|
+
- **Prompt-Based Hashing**: Unique identification of test prompts
|
|
34
|
+
- SHA-256 based hashing with normalization
|
|
35
|
+
- Handles minor formatting differences (whitespace, quotes)
|
|
36
|
+
- AppId included in hash for app-specific caching
|
|
37
|
+
|
|
38
|
+
- **Hidden Cache Storage**: Internal cache location (`~/.maestro-mcp/cache/`)
|
|
39
|
+
- Index file for fast lookup
|
|
40
|
+
- YAML files stored with hash-based names
|
|
41
|
+
- Not visible to end users
|
|
42
|
+
|
|
43
|
+
- **Usage Statistics**: Track cache effectiveness
|
|
44
|
+
- Execution count per cached test
|
|
45
|
+
- Last used timestamp
|
|
46
|
+
- Most used tests identification
|
|
47
|
+
|
|
48
|
+
- **Auto-Cache on Success**: After successful test execution
|
|
49
|
+
- Automatically saves YAML to cache (no user prompt needed)
|
|
50
|
+
- Failed tests are NOT cached (fix and re-run to cache)
|
|
51
|
+
- Automatic reuse when same prompt is run again
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- **Server Version**: Updated to v1.6.0
|
|
56
|
+
- **runTest function**: Now includes cache prompt for successful tests
|
|
57
|
+
- **runTestSuiteWithReport**: Offers bulk caching for successful tests
|
|
58
|
+
|
|
59
|
+
### Benefits
|
|
60
|
+
|
|
61
|
+
| Feature | Benefit |
|
|
62
|
+
|---------|---------|
|
|
63
|
+
| Faster Execution | Skip YAML generation for recurring tests |
|
|
64
|
+
| Reduced AI Calls | Cached YAML reused automatically |
|
|
65
|
+
| Clean Separation | Cache hidden from user-facing directories |
|
|
66
|
+
| Smart Invalidation | New YAML generated if prompt changes |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## [1.5.0] - 2025-01-07
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- **Prompt Analysis System (Action-Element-Verification Model)**: Intelligent prompt parsing for reliable YAML generation
|
|
75
|
+
|
|
76
|
+
- `validate_prompt` - PRIMARY tool for converting natural language to Maestro YAML
|
|
77
|
+
- `analyze_prompt` - Analyze prompts without generating YAML (debugging/inspection)
|
|
78
|
+
- Extracts: Actions, Elements, Values, Verifications, Sequence
|
|
79
|
+
|
|
80
|
+
- **Tiered Clarification System**: Smart handling of incomplete prompts
|
|
81
|
+
|
|
82
|
+
- **COMPLETE**: All required info present → generates clean YAML
|
|
83
|
+
- **GENERATABLE**: Missing some info → asks clarification OR generates with warnings
|
|
84
|
+
- **NEEDS_CLARIFICATION**: Missing important info → asks specific questions
|
|
85
|
+
- **INSUFFICIENT**: Missing critical info (app ID) → requests minimum required info
|
|
86
|
+
|
|
87
|
+
- **Force Generate with Warnings**: Option to generate YAML with assumptions
|
|
88
|
+
- Automatically adds warning comments for assumed values
|
|
89
|
+
- Lists all assumptions made during generation
|
|
90
|
+
- Placeholder values clearly marked for user to replace
|
|
91
|
+
|
|
92
|
+
- **New Utilities**:
|
|
93
|
+
- `src/mcp-server/utils/promptAnalyzer.js` - Action-Element-Verification parser
|
|
94
|
+
- `src/mcp-server/utils/yamlGenerator.js` - YAML generation with warnings support
|
|
95
|
+
- `validateAndGenerate()` - Orchestrator function in contextTools.js
|
|
96
|
+
|
|
97
|
+
- **Intelligent Clarification Questions**: Context-aware questions based on what's missing
|
|
98
|
+
- Critical questions (blocking): App ID
|
|
99
|
+
- Important questions: Field labels, button text
|
|
100
|
+
- Recommended questions: Verification elements, dropdown options
|
|
101
|
+
|
|
102
|
+
### Changed
|
|
103
|
+
|
|
104
|
+
- **Server Version**: Updated to v1.5.0
|
|
105
|
+
- **Description**: Updated to highlight prompt analysis and tiered clarification
|
|
106
|
+
- **Keywords**: Added `prompt-analysis`, `natural-language`, `yaml-generator`
|
|
107
|
+
|
|
108
|
+
### Developer Experience
|
|
109
|
+
|
|
110
|
+
- Generic, framework-agnostic approach works for ANY mobile app
|
|
111
|
+
- No hard-coded app-specific values
|
|
112
|
+
- Interaction patterns automatically applied
|
|
113
|
+
- Comprehensive test script for verification
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## [1.4.0] - 2025-01-07
|
|
118
|
+
|
|
119
|
+
### Security
|
|
120
|
+
|
|
121
|
+
- **Safe Mode (v1.1.0 Roadmap)**: Enterprise-grade security boundaries now implemented
|
|
122
|
+
|
|
123
|
+
- Safe Mode enabled by default (`SAFE_MODE=true`)
|
|
124
|
+
- Blocks potentially destructive operations (install/uninstall apps, clear data)
|
|
125
|
+
- Set `SAFE_MODE=false` to enable full mode (use with caution)
|
|
126
|
+
|
|
127
|
+
- **Command Allowlists**: Strict validation of all CLI commands
|
|
128
|
+
|
|
129
|
+
- Maestro commands restricted to: `test`, `validate`, `screenshot`, `--version`, `hierarchy`
|
|
130
|
+
- ADB commands categorized into Safe Mode and Full Mode allowlists
|
|
131
|
+
- 40+ dangerous ADB commands permanently blocked (rm, root, reboot, settings, etc.)
|
|
132
|
+
|
|
133
|
+
- **Blocked Pattern Detection**: Prevents injection attacks
|
|
134
|
+
|
|
135
|
+
- Shell injection: `; & | && ||`
|
|
136
|
+
- Command substitution: `` `cmd` ``, `$(cmd)`
|
|
137
|
+
- Path traversal: `../`
|
|
138
|
+
- Environment variable expansion: `${VAR}`, `$HOME`
|
|
139
|
+
- Null byte injection: `\x00`, `%00`
|
|
140
|
+
- Script injection: `<script>`, `javascript:`
|
|
141
|
+
|
|
142
|
+
- **Input Validation with Zod**: All 30 MCP tools now have strict input validation
|
|
143
|
+
|
|
144
|
+
- App ID format validation (`com.example.app`)
|
|
145
|
+
- Device ID format validation
|
|
146
|
+
- File path security (no traversal)
|
|
147
|
+
- YAML content security checks
|
|
148
|
+
- String length limits and type checking
|
|
149
|
+
|
|
150
|
+
- **Security Audit Logging**: Comprehensive event logging for compliance
|
|
151
|
+
- `TOOL_EXECUTION_START/SUCCESS/ERROR` events
|
|
152
|
+
- `TOOL_VALIDATION_FAILED` for rejected inputs
|
|
153
|
+
- `TOOL_SECURITY_ERROR` for security violations
|
|
154
|
+
- `SERVER_STARTED` with security config summary
|
|
155
|
+
|
|
156
|
+
### Added
|
|
157
|
+
|
|
158
|
+
- **New Security Module**: `src/mcp-server/utils/security.js`
|
|
159
|
+
|
|
160
|
+
- `SecurityError` class with error codes
|
|
161
|
+
- `isSafeModeEnabled()`, `getSecurityMode()`, `getSecurityConfig()`
|
|
162
|
+
- `validateAppId()`, `validateDeviceId()`, `sanitizeInput()`
|
|
163
|
+
- `isMaestroCommandAllowed()`, `isAdbCommandAllowed()`
|
|
164
|
+
- `containsBlockedPattern()`, `assertNoBlockedPatterns()`
|
|
165
|
+
- `checkYamlSecurity()` for YAML content validation
|
|
166
|
+
- `logSecurityEvent()` for audit trail
|
|
167
|
+
|
|
168
|
+
- **Zod Schema Validation**: `src/mcp-server/schemas/toolSchemas.js`
|
|
169
|
+
|
|
170
|
+
- Individual schemas for all 30 MCP tools
|
|
171
|
+
- Reusable schema components (`safeFilePath`, `appIdSchema`, etc.)
|
|
172
|
+
- `validateToolInput()` utility function
|
|
173
|
+
- `toolSchemas` registry for easy lookup
|
|
174
|
+
|
|
175
|
+
- **Validation Middleware**: Integrated into main request handler
|
|
176
|
+
- All tool inputs validated before execution
|
|
177
|
+
- Clear error messages with field-level details
|
|
178
|
+
- Security error handling with proper response format
|
|
179
|
+
|
|
180
|
+
### Changed
|
|
181
|
+
|
|
182
|
+
- **Server Version**: Updated to v1.4.0
|
|
183
|
+
- **Startup Logging**: Now displays security configuration summary
|
|
184
|
+
- **Error Responses**: Enhanced with validation details and security codes
|
|
185
|
+
- **Command Execution**: All Maestro/ADB commands validated against allowlists
|
|
186
|
+
|
|
187
|
+
### Environment Variables
|
|
188
|
+
|
|
189
|
+
- `SAFE_MODE` - Enable/disable Safe Mode (default: `true`)
|
|
190
|
+
- `LOG_SECURITY_EVENTS` - Enable security event logging (default: `true`)
|
|
191
|
+
- `MAESTRO_DEVICE` - Pre-select a specific device for testing
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## [1.3.1] - 2025-01-06
|
|
196
|
+
|
|
197
|
+
### Fixed
|
|
198
|
+
|
|
199
|
+
- **MCP Schema Fix**: Fixed `generate_report` tool array parameter missing `items` definition
|
|
200
|
+
- This was causing "tool parameters array type must have items" validation error
|
|
201
|
+
- Now properly defines the structure of test result objects
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## [1.2.0] - 2025-01-06
|
|
206
|
+
|
|
207
|
+
### Added
|
|
208
|
+
|
|
209
|
+
- **YAML Generation Instructions System**: Ensures consistent YAML generation across different environments
|
|
210
|
+
- `get_yaml_instructions` - AI MUST call this before generating YAML (provides exact rules)
|
|
211
|
+
- `validate_yaml_structure` - Validates YAML for common issues (like missing tapOn before inputText)
|
|
212
|
+
- `get_test_pattern` - Get standard patterns for login, search, navigation, form tests
|
|
213
|
+
- **Critical Fix**: Input text pattern now enforced - prevents password going to username field issue
|
|
214
|
+
- Standard test patterns for common scenarios (login, search, navigation, form)
|
|
215
|
+
|
|
216
|
+
### Fixed
|
|
217
|
+
|
|
218
|
+
- YAML generation inconsistency between different environments
|
|
219
|
+
- Text input going to wrong fields due to missing tapOn commands
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## [1.1.1] - 2025-01-06
|
|
224
|
+
|
|
225
|
+
### Fixed
|
|
226
|
+
|
|
227
|
+
- Version bump for npm publish
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## [1.1.0] - 2025-01-06
|
|
232
|
+
|
|
233
|
+
### Changed
|
|
234
|
+
|
|
235
|
+
- **Package Renamed**: Changed from `@krunal.mahera/maestro-mcp` to `mcp-maestro-mobile-ai` for easier configuration
|
|
236
|
+
- **YAML Storage**: Temp YAML files now stored in hidden system directory (`~/.maestro-mcp/`) instead of project folder
|
|
237
|
+
- Test results and screenshots now stored in `~/.maestro-mcp/output/`
|
|
238
|
+
|
|
239
|
+
### Added
|
|
240
|
+
|
|
241
|
+
- **Automatic Prerequisites Check**:
|
|
242
|
+
- Runs automatically after `npm install`
|
|
243
|
+
- Checks for Node.js 18+, Java 17+, Maestro CLI, Android SDK
|
|
244
|
+
- Shows clear error messages with installation hints
|
|
245
|
+
- Manual check available via `npm run check`
|
|
246
|
+
- **Runtime Validation**: Server validates prerequisites on startup and exits gracefully if critical deps missing
|
|
247
|
+
- **App Context Training System**: New tools to teach the AI about your app's UI
|
|
248
|
+
- `register_elements` - Register testIDs, accessibilityLabels for app elements
|
|
249
|
+
- `register_screen` - Define screen structures and available actions
|
|
250
|
+
- `save_successful_flow` - Save working test patterns for AI reference
|
|
251
|
+
- `get_saved_flows` - Retrieve saved flow patterns
|
|
252
|
+
- `delete_flow` - Remove saved patterns
|
|
253
|
+
- `get_ai_context` - Get formatted context for AI (call before generating tests!)
|
|
254
|
+
- `get_full_context` - Get complete raw context data
|
|
255
|
+
- `clear_app_context` - Clear all context for an app
|
|
256
|
+
- `list_app_contexts` - List all apps with saved context
|
|
257
|
+
|
|
258
|
+
### Improved
|
|
259
|
+
|
|
260
|
+
- AI test generation accuracy when context is provided
|
|
261
|
+
- Cleaner project directory (no temp files visible)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## [1.0.0] - 2025-01-05
|
|
266
|
+
|
|
267
|
+
### Added
|
|
268
|
+
|
|
269
|
+
- Initial public release on npm as `mcp-maestro-mobile-ai`
|
|
270
|
+
- MCP server implementation with stdio transport
|
|
271
|
+
- 14 MCP tools for mobile test automation:
|
|
272
|
+
- `read_prompt_file` - Read test prompts from files
|
|
273
|
+
- `list_prompt_files` - List available prompt files
|
|
274
|
+
- `list_devices` - List connected Android devices
|
|
275
|
+
- `select_device` - Select specific device for testing
|
|
276
|
+
- `clear_device` - Clear device selection
|
|
277
|
+
- `check_device` - Verify device connection
|
|
278
|
+
- `check_app` - Verify app installation
|
|
279
|
+
- `get_app_config` - Get server configuration
|
|
280
|
+
- `validate_maestro_yaml` - Validate YAML syntax
|
|
281
|
+
- `run_test` - Execute single test
|
|
282
|
+
- `run_test_suite` - Execute multiple tests
|
|
283
|
+
- `get_test_results` - Retrieve test results
|
|
284
|
+
- `take_screenshot` - Capture device screen
|
|
285
|
+
- `cleanup_results` - Clean up old results
|
|
286
|
+
- Automatic retry mechanism for failed tests
|
|
287
|
+
- Pre-flight checks (device, app) before test execution
|
|
288
|
+
- Screenshot capture on test failure
|
|
289
|
+
- Auto-cleanup of old results based on `MAX_RESULTS`
|
|
290
|
+
- Improved error messages with hints
|
|
291
|
+
- Support for physical devices via USB
|
|
292
|
+
- Device selection for multi-device environments
|
|
293
|
+
- Winston-based logging
|
|
294
|
+
- Environment variable configuration
|
|
295
|
+
- Example prompt files
|
|
296
|
+
|
|
297
|
+
### Documentation
|
|
298
|
+
|
|
299
|
+
- Comprehensive README with setup guides
|
|
300
|
+
- MCP client configuration examples (Cursor, VS Code, Claude Desktop)
|
|
301
|
+
- Template configuration files
|
|
302
|
+
- React Native automation guidelines
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## [0.1.0] - 2025-01-01
|
|
307
|
+
|
|
308
|
+
### Added
|
|
309
|
+
|
|
310
|
+
- Initial proof of concept
|
|
311
|
+
- Basic Maestro CLI integration
|
|
312
|
+
- Simple test execution
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Release Notes Format
|
|
317
|
+
|
|
318
|
+
### Version Numbering
|
|
319
|
+
|
|
320
|
+
- **MAJOR** (X.0.0): Breaking API changes
|
|
321
|
+
- **MINOR** (0.X.0): New features, backward compatible
|
|
322
|
+
- **PATCH** (0.0.X): Bug fixes, backward compatible
|
|
323
|
+
|
|
324
|
+
### Change Categories
|
|
325
|
+
|
|
326
|
+
- **Added**: New features
|
|
327
|
+
- **Changed**: Changes in existing functionality
|
|
328
|
+
- **Deprecated**: Features to be removed in future
|
|
329
|
+
- **Removed**: Removed features
|
|
330
|
+
- **Fixed**: Bug fixes
|
|
331
|
+
- **Security**: Security-related changes
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
[Unreleased]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/compare/v1.6.0...HEAD
|
|
336
|
+
[1.6.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.6.0
|
|
337
|
+
[1.5.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.5.0
|
|
338
|
+
[1.4.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.4.0
|
|
339
|
+
[1.3.1]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.3.1
|
|
340
|
+
[1.2.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.2.0
|
|
341
|
+
[1.1.1]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.1.1
|
|
342
|
+
[1.1.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.1.0
|
|
343
|
+
[1.0.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v1.0.0
|
|
344
|
+
[0.1.0]: https://github.com/krunal-mahera/mcp-maestro-mobile-ai/releases/tag/v0.1.0
|
package/ROADMAP.md
CHANGED
|
@@ -37,16 +37,18 @@ Transform how teams approach mobile testing by enabling:
|
|
|
37
37
|
|
|
38
38
|
**Theme**: Enterprise Trust & Automation
|
|
39
39
|
|
|
40
|
-
### v1.
|
|
40
|
+
### v1.4.0 - Security Boundaries ✅ RELEASED
|
|
41
41
|
|
|
42
42
|
| Feature | Priority | Status |
|
|
43
43
|
|---------|----------|--------|
|
|
44
|
-
| Safe Mode (default ON) | 🔴 Critical |
|
|
45
|
-
| Command allowlist | 🔴 Critical |
|
|
46
|
-
| Blocked operations list | 🔴 Critical |
|
|
47
|
-
| Input validation (Zod schemas) | 🟠 High |
|
|
44
|
+
| Safe Mode (default ON) | 🔴 Critical | ✅ Done |
|
|
45
|
+
| Command allowlist | 🔴 Critical | ✅ Done |
|
|
46
|
+
| Blocked operations list | 🔴 Critical | ✅ Done |
|
|
47
|
+
| Input validation (Zod schemas) | 🟠 High | ✅ Done |
|
|
48
|
+
| Security audit logging | 🟠 High | ✅ Done |
|
|
49
|
+
| Pattern detection (injection prevention) | 🟠 High | ✅ Done |
|
|
48
50
|
|
|
49
|
-
### v1.
|
|
51
|
+
### v1.5.0 - CI/CD Mode
|
|
50
52
|
|
|
51
53
|
| Feature | Priority | Status |
|
|
52
54
|
|---------|----------|--------|
|
|
@@ -55,11 +57,11 @@ Transform how teams approach mobile testing by enabling:
|
|
|
55
57
|
| `--prompt-file` direct execution | 🟠 High | 🔲 Planned |
|
|
56
58
|
| JUnit XML output | 🟠 High | 🔲 Planned |
|
|
57
59
|
|
|
58
|
-
### v1.
|
|
60
|
+
### v1.6.0 - Audit & Observability
|
|
59
61
|
|
|
60
62
|
| Feature | Priority | Status |
|
|
61
63
|
|---------|----------|--------|
|
|
62
|
-
| Enhanced audit trail | 🟠 High |
|
|
64
|
+
| Enhanced audit trail | 🟠 High | ⚠️ Partial (security events) |
|
|
63
65
|
| YAML preservation | 🟠 High | 🔲 Planned |
|
|
64
66
|
| Structured logging (JSON) | 🟡 Medium | 🔲 Planned |
|
|
65
67
|
| Health check tool | 🟡 Medium | 🔲 Planned |
|
|
@@ -212,6 +214,17 @@ Transform how teams approach mobile testing by enabling:
|
|
|
212
214
|
|
|
213
215
|
## Completed Milestones
|
|
214
216
|
|
|
217
|
+
### ✅ v1.4.0 - Security Boundaries (January 2025)
|
|
218
|
+
|
|
219
|
+
- [x] Safe Mode (default ON) - blocks destructive operations
|
|
220
|
+
- [x] Command allowlists for Maestro and ADB
|
|
221
|
+
- [x] 40+ blocked dangerous commands
|
|
222
|
+
- [x] Pattern detection (shell injection, path traversal, etc.)
|
|
223
|
+
- [x] Input validation with Zod schemas for all 30 tools
|
|
224
|
+
- [x] Security audit logging
|
|
225
|
+
- [x] SecurityError class with error codes
|
|
226
|
+
- [x] Validation middleware in request handler
|
|
227
|
+
|
|
215
228
|
### ✅ v1.0.0 - Foundation (January 2025)
|
|
216
229
|
|
|
217
230
|
- [x] MCP server implementation
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-maestro-mobile-ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "MCP Server for AI-Assisted Mobile Automation using Maestro - Run mobile tests with natural language prompts",
|
|
5
|
+
"description": "MCP Server for AI-Assisted Mobile Automation using Maestro - Run mobile tests with natural language prompts. Features prompt analysis, tiered clarification, and enterprise-grade security.",
|
|
6
6
|
"main": "src/mcp-server/index.js",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
@@ -51,7 +51,13 @@
|
|
|
51
51
|
"cursor",
|
|
52
52
|
"testing",
|
|
53
53
|
"automation",
|
|
54
|
-
"ai"
|
|
54
|
+
"ai",
|
|
55
|
+
"security",
|
|
56
|
+
"validation",
|
|
57
|
+
"zod",
|
|
58
|
+
"prompt-analysis",
|
|
59
|
+
"natural-language",
|
|
60
|
+
"yaml-generator"
|
|
55
61
|
],
|
|
56
62
|
"author": "Krunal Mahera <krunal.mahera@gmail.com>",
|
|
57
63
|
"license": "MIT",
|