mlgym-deploy 3.3.41 → 3.3.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/ADD_TO_CURSOR_SETTINGS.json +1 -1
- package/ADD_TO_CURSOR_SETTINGS.json.example +28 -0
- package/CHANGELOG-v3.3.42.md +707 -0
- package/Dockerfile +7 -0
- package/README.md +35 -0
- package/claude-desktop-config.json +1 -1
- package/claude-desktop-config.json.example +8 -0
- package/cursor-config.json +1 -1
- package/cursor-config.json.example +13 -0
- package/docs/CURSOR_SETUP.md +204 -0
- package/index.js +263 -5
- package/mcp.json.example +13 -0
- package/package.json +11 -3
- package/tests/README.md +7 -2
- package/tests/TEST_RESULTS.md +518 -0
- package/tests/archived/README.md +71 -0
- package/{deploy-hello-world.sh → tests/archived/deploy-hello-world.sh} +9 -6
- package/tests/deploy_dollie_test.sh +203 -0
- package/tests/misc/check-sdk-version.js +50 -0
- package/tests/mlgym_auth_login_test.sh +13 -9
- package/tests/mlgym_deploy_logs_test.sh +339 -0
- package/tests/mlgym_deploy_test.sh +341 -0
- package/tests/mlgym_status_test.sh +281 -0
- package/tests/mlgym_user_create_test.sh +35 -29
- package/tests/run-all-tests.sh +135 -41
- package/CURSOR_SETUP.md +0 -119
- package/index.js.backup-atomic +0 -1358
- /package/{DEBUG.md → docs/DEBUG.md} +0 -0
- /package/{SECURITY-UPDATE-v2.4.0.md → tests/archived/SECURITY-UPDATE-v2.4.0.md} +0 -0
- /package/{cursor-integration.js → tests/archived/cursor-integration.js} +0 -0
- /package/tests/{mlgym_auth_logout_test.sh → archived/mlgym_auth_logout_test.sh} +0 -0
- /package/tests/{mlgym_deployments_test.sh → archived/mlgym_deployments_test.sh} +0 -0
- /package/tests/{mlgym_project_init_test.sh → archived/mlgym_project_init_test.sh} +0 -0
- /package/tests/{mlgym_projects_get_test.sh → archived/mlgym_projects_get_test.sh} +0 -0
- /package/tests/{mlgym_projects_list_test.sh → archived/mlgym_projects_list_test.sh} +0 -0
|
@@ -0,0 +1,707 @@
|
|
|
1
|
+
# MCP v3.3.42 - Complete Application Lifecycle Management
|
|
2
|
+
|
|
3
|
+
## Release Date
|
|
4
|
+
2026-01-20
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
Evolution from basic deployment (v3.0.0) to comprehensive application lifecycle management. Expanded from 2 core tools to 14 tools covering deployment, configuration, monitoring, rollback, and development environments.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## What's New Since v3.0.0
|
|
13
|
+
|
|
14
|
+
### 📦 Tools Expansion: 2 → 14 Tools
|
|
15
|
+
|
|
16
|
+
#### Core Deployment Tools (v3.0.0 - Retained)
|
|
17
|
+
1. **`mlgym_deploy`** - Complete deployment workflow
|
|
18
|
+
2. **`mlgym_status`** - Authentication and project status
|
|
19
|
+
|
|
20
|
+
#### Configuration & Management Tools (NEW in v3.3.x)
|
|
21
|
+
3. **`mlgym_set_env_vars`** - Environment variable management (DATABASE_URL, API keys, etc.)
|
|
22
|
+
4. **`mlgym_set_health_check`** - Health check configuration (endpoint, interval, timeout)
|
|
23
|
+
5. **`mlgym_set_domain`** - Custom domain/FQDN assignment
|
|
24
|
+
6. **`mlgym_set_deployment_commands`** - Pre/post-deployment command hooks
|
|
25
|
+
7. **`mlgym_set_options`** - Application options (build cache control)
|
|
26
|
+
|
|
27
|
+
#### Deployment Operations Tools (NEW in v3.3.x)
|
|
28
|
+
8. **`mlgym_deploy_logs`** - View deployment history and build logs (1-10 deployments)
|
|
29
|
+
9. **`mlgym_deploy_manual`** - Manually trigger rebuild and deployment
|
|
30
|
+
10. **`mlgym_rollback`** - Rollback to previous or specific deployment
|
|
31
|
+
|
|
32
|
+
#### Development Tools (NEW in v3.3.x)
|
|
33
|
+
11. **`deploy_dollie`** - Next.js development container with SSH access
|
|
34
|
+
- Pre-built Dollie base image
|
|
35
|
+
- Git repository cloning (public/private)
|
|
36
|
+
- SSH credentials for interactive development
|
|
37
|
+
- Automatic dev server startup
|
|
38
|
+
|
|
39
|
+
#### User Management Tools (v3.0.0 - Re-enabled Legacy)
|
|
40
|
+
12. **`mlgym_user_create`** - User account creation with SSH key setup
|
|
41
|
+
13. **`mlgym_auth_login`** - Login with existing credentials
|
|
42
|
+
|
|
43
|
+
#### Documentation
|
|
44
|
+
14. **`mlgym_help`** - Interactive help system with usage examples
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## New Features
|
|
49
|
+
|
|
50
|
+
### 🌍 Language Support Expansion
|
|
51
|
+
|
|
52
|
+
**v3.0.0 Supported:**
|
|
53
|
+
- Node.js (Next.js, Express, React, Vue)
|
|
54
|
+
- Python (Flask, FastAPI)
|
|
55
|
+
- Static/HTML
|
|
56
|
+
- Go
|
|
57
|
+
|
|
58
|
+
**v3.3.42 Now Supports:**
|
|
59
|
+
- ✅ Node.js (Next.js, Express, React, Vue, Nuxt, Svelte)
|
|
60
|
+
- ✅ Python (Flask, FastAPI, Django)
|
|
61
|
+
- ✅ Static/HTML
|
|
62
|
+
- ✅ Go
|
|
63
|
+
- ✅ **Scala** (sbt-assembly support) - v3.3.22-23
|
|
64
|
+
- ✅ **Rust** - v3.3.35
|
|
65
|
+
- ✅ **Ruby** - v3.3.19
|
|
66
|
+
- ✅ **PHP** - v3.3.28
|
|
67
|
+
- ✅ **Perl** - v3.3.20
|
|
68
|
+
- ✅ **Elixir** - v3.3.21
|
|
69
|
+
|
|
70
|
+
**Total: 10+ languages with automatic project type detection**
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### 🔧 Configuration Management
|
|
75
|
+
|
|
76
|
+
#### Environment Variables (v3.3.x)
|
|
77
|
+
```javascript
|
|
78
|
+
mlgym_set_env_vars({
|
|
79
|
+
project_name: "my-app",
|
|
80
|
+
env_vars: {
|
|
81
|
+
DATABASE_URL: "postgresql://...",
|
|
82
|
+
API_KEY: "secret123",
|
|
83
|
+
NODE_ENV: "production"
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### Health Checks (v3.3.x)
|
|
89
|
+
```javascript
|
|
90
|
+
mlgym_set_health_check({
|
|
91
|
+
project_name: "my-app",
|
|
92
|
+
enabled: true,
|
|
93
|
+
path: "/health",
|
|
94
|
+
port: 3000,
|
|
95
|
+
method: "GET",
|
|
96
|
+
expected_status_codes: [200],
|
|
97
|
+
interval: 30,
|
|
98
|
+
timeout: 5,
|
|
99
|
+
retries: 3
|
|
100
|
+
})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### Custom Domains (v3.3.x)
|
|
104
|
+
```javascript
|
|
105
|
+
mlgym_set_domain({
|
|
106
|
+
project_name: "my-app",
|
|
107
|
+
domain: "myapp.example.com" // or just "myapp" for *.ezb.net
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
#### Deployment Commands (v3.3.x)
|
|
112
|
+
```javascript
|
|
113
|
+
mlgym_set_deployment_commands({
|
|
114
|
+
project_name: "my-app",
|
|
115
|
+
pre_deployment: "npm run migrate",
|
|
116
|
+
post_deployment: "npm run seed",
|
|
117
|
+
container: "my-app" // for docker-compose
|
|
118
|
+
})
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### Build Options (v3.3.x)
|
|
122
|
+
```javascript
|
|
123
|
+
mlgym_set_options({
|
|
124
|
+
project_name: "my-app",
|
|
125
|
+
disable_build_cache: true // Force clean builds
|
|
126
|
+
})
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 📊 Deployment Monitoring & Management
|
|
132
|
+
|
|
133
|
+
#### Deployment Logs (v3.3.x)
|
|
134
|
+
```javascript
|
|
135
|
+
mlgym_deploy_logs({
|
|
136
|
+
project_name: "my-app", // Optional: auto-detected from git remote
|
|
137
|
+
depth: 5 // View last 5 deployments (1-10)
|
|
138
|
+
})
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Returns:**
|
|
142
|
+
- Deployment IDs and UUIDs
|
|
143
|
+
- Status (running, finished, failed)
|
|
144
|
+
- Timestamps (started_at, finished_at)
|
|
145
|
+
- Build logs per deployment
|
|
146
|
+
|
|
147
|
+
#### Manual Deployment (v3.3.x)
|
|
148
|
+
```javascript
|
|
149
|
+
mlgym_deploy_manual({
|
|
150
|
+
project_name: "my-app"
|
|
151
|
+
})
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Forces rebuild and deployment of current code from GitLab repository.
|
|
155
|
+
|
|
156
|
+
#### Rollback (v3.3.x)
|
|
157
|
+
```javascript
|
|
158
|
+
// Rollback to previous deployment
|
|
159
|
+
mlgym_rollback({
|
|
160
|
+
project_name: "my-app"
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
// Rollback to specific deployment
|
|
164
|
+
mlgym_rollback({
|
|
165
|
+
project_name: "my-app",
|
|
166
|
+
deployment_id: 12345
|
|
167
|
+
})
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
### 🔐 Authentication Enhancements
|
|
173
|
+
|
|
174
|
+
#### SSH Key Management
|
|
175
|
+
|
|
176
|
+
**v3.0.0:**
|
|
177
|
+
- Basic SSH key generation
|
|
178
|
+
- GitLab registration
|
|
179
|
+
|
|
180
|
+
**v3.3.42 Improvements:**
|
|
181
|
+
- **Per-user SSH keys** (v3.3.29)
|
|
182
|
+
- Stored as `~/.ssh/mlgym_[email]`
|
|
183
|
+
- Automatic SSH config updates
|
|
184
|
+
- Per-user key switching when using MLGYM_TOKEN
|
|
185
|
+
- **GitLab user ID-based key creation** (v3.3.13)
|
|
186
|
+
- **SSH config auto-fix** (v3.3.25)
|
|
187
|
+
- Prevents git dubious ownership errors
|
|
188
|
+
- Replaces old keys instead of skipping
|
|
189
|
+
|
|
190
|
+
#### Token Support
|
|
191
|
+
|
|
192
|
+
**v3.3.19+:**
|
|
193
|
+
- `MLGYM_TOKEN` environment variable authentication
|
|
194
|
+
- Email extraction from JWT tokens
|
|
195
|
+
- No need for `MLGYM_EMAIL` when using JWT tokens
|
|
196
|
+
- Cached token management in `~/.mlgym/mcp_config.json`
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### 🐳 Docker Intelligence
|
|
201
|
+
|
|
202
|
+
#### Auto-Generation & Fixing
|
|
203
|
+
|
|
204
|
+
**Dockerfile Auto-Generation (v3.0.0+):**
|
|
205
|
+
- Automatic Dockerfile creation for missing projects
|
|
206
|
+
- Language-specific templates
|
|
207
|
+
- Port detection and configuration
|
|
208
|
+
|
|
209
|
+
**Auto-Fixing (v3.3.x):**
|
|
210
|
+
- **Base image version validation** (v3.3.35)
|
|
211
|
+
- Detects invalid Python/Node/Go versions
|
|
212
|
+
- Suggests and fixes to valid versions
|
|
213
|
+
- **Docker image variant preservation** (v3.3.38)
|
|
214
|
+
- Maintains `-slim`, `-alpine`, `-bullseye` variants when fixing
|
|
215
|
+
- **Port detection improvements** (v3.3.18)
|
|
216
|
+
- Preserves EXPOSE directive format
|
|
217
|
+
- Validates port configurations
|
|
218
|
+
- **Language-specific fixes:**
|
|
219
|
+
- Scala: sbt-assembly plugin + fat JAR config (v3.3.22)
|
|
220
|
+
- Elixir: Dockerfile optimization (v3.3.21)
|
|
221
|
+
- Perl: Dockerfile optimization (v3.3.20)
|
|
222
|
+
- PHP: Project detection and templates (v3.3.28)
|
|
223
|
+
|
|
224
|
+
#### Deployment Strategy Detection (v3.3.35)
|
|
225
|
+
|
|
226
|
+
Automatically detects and suggests fixes for:
|
|
227
|
+
- ❌ **Port mismatches** between Dockerfile and docker-compose.yml
|
|
228
|
+
- ❌ **Missing dependencies** in package.json vs imports
|
|
229
|
+
- ❌ **Invalid path aliases** in tsconfig.json
|
|
230
|
+
- ❌ **Docker vs Docker Compose** strategy conflicts
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### 🛠️ Development Features
|
|
235
|
+
|
|
236
|
+
#### Dollie Development Containers (v3.3.42)
|
|
237
|
+
|
|
238
|
+
Deploy Next.js development environments with SSH access:
|
|
239
|
+
|
|
240
|
+
```javascript
|
|
241
|
+
deploy_dollie({
|
|
242
|
+
project_name: "my-dev-env",
|
|
243
|
+
git_repo: "https://github.com/user/repo.git",
|
|
244
|
+
git_branch: "main", // Optional
|
|
245
|
+
git_token: "ghp_...", // For private repos
|
|
246
|
+
app_port: 3000 // Optional, default 3000
|
|
247
|
+
})
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Features:**
|
|
251
|
+
- Pre-built Dollie base image (Next.js + SSH)
|
|
252
|
+
- Automatic git clone and npm install
|
|
253
|
+
- Dev server auto-start
|
|
254
|
+
- SSH access: `ssh developer@[hostname] -p [port]`
|
|
255
|
+
- Dynamic password generation
|
|
256
|
+
- Supports public and private repositories
|
|
257
|
+
|
|
258
|
+
**Use Cases:**
|
|
259
|
+
- AI-assisted development in isolated environments
|
|
260
|
+
- Remote pair programming
|
|
261
|
+
- Quick prototyping without local setup
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### 🚀 Reliability Improvements
|
|
266
|
+
|
|
267
|
+
#### Retry Logic (v3.3.12)
|
|
268
|
+
- Automatic retry for 5xx server errors
|
|
269
|
+
- Exponential backoff (up to 10 seconds)
|
|
270
|
+
- Maximum 3 retry attempts
|
|
271
|
+
- Network error handling
|
|
272
|
+
|
|
273
|
+
#### Error Recovery (v3.0.0+)
|
|
274
|
+
- Detailed recovery suggestions for common errors
|
|
275
|
+
- Workflow step logging for debugging
|
|
276
|
+
- Comprehensive error messages with context
|
|
277
|
+
|
|
278
|
+
#### Auto-Fixes (v3.3.x)
|
|
279
|
+
- **Project name derivation** from local_path (v3.3.11)
|
|
280
|
+
- **SSH key auto-ensure** on authentication (v3.3.12)
|
|
281
|
+
- **Duplicate project prevention** (v3.3.34)
|
|
282
|
+
- **Slow-starting service warnings** (v3.3.30)
|
|
283
|
+
- Detects PostgreSQL, MySQL, MongoDB
|
|
284
|
+
- Suggests wait mechanisms
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Architecture Evolution
|
|
289
|
+
|
|
290
|
+
### v3.0.0 - Monolithic Deployment
|
|
291
|
+
```
|
|
292
|
+
Tools: 2
|
|
293
|
+
Focus: Deployment workflow only
|
|
294
|
+
Pattern: Single-call deployment
|
|
295
|
+
AI Decision Points: 3
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### v3.3.42 - Complete Lifecycle Management
|
|
299
|
+
```
|
|
300
|
+
Tools: 14
|
|
301
|
+
Focus: Full application lifecycle
|
|
302
|
+
Pattern: Layered architecture
|
|
303
|
+
- Authentication layer
|
|
304
|
+
- Deployment layer
|
|
305
|
+
- Configuration layer
|
|
306
|
+
- Management layer
|
|
307
|
+
- Development layer
|
|
308
|
+
AI Decision Points: Still ~3 per operation
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**Key Principles Maintained:**
|
|
312
|
+
- ✅ Server-side workflow orchestration
|
|
313
|
+
- ✅ Minimal AI decision points
|
|
314
|
+
- ✅ Deterministic execution
|
|
315
|
+
- ✅ Atomic operations
|
|
316
|
+
- ✅ Comprehensive state tracking
|
|
317
|
+
|
|
318
|
+
**New Capabilities:**
|
|
319
|
+
- ✅ Post-deployment configuration management
|
|
320
|
+
- ✅ Deployment history and monitoring
|
|
321
|
+
- ✅ Rollback and recovery
|
|
322
|
+
- ✅ Development environment provisioning
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Comparison Table
|
|
327
|
+
|
|
328
|
+
| Aspect | v3.0.0 | v3.3.42 |
|
|
329
|
+
|--------|--------|---------|
|
|
330
|
+
| **Tools** | 2 | 14 |
|
|
331
|
+
| **Languages Supported** | 4-7 | 10+ |
|
|
332
|
+
| **Environment Variables** | ❌ | ✅ |
|
|
333
|
+
| **Health Checks** | ❌ | ✅ |
|
|
334
|
+
| **Custom Domains** | ❌ | ✅ |
|
|
335
|
+
| **Deployment Commands** | ❌ | ✅ |
|
|
336
|
+
| **Deployment Logs** | ❌ | ✅ (1-10 depth) |
|
|
337
|
+
| **Manual Deploy** | ❌ | ✅ |
|
|
338
|
+
| **Rollback** | ❌ | ✅ (previous/specific) |
|
|
339
|
+
| **Dev Containers** | ❌ | ✅ (Dollie SSH) |
|
|
340
|
+
| **SSH Key Management** | Basic | Per-user with auto-fix |
|
|
341
|
+
| **Token Support** | JWT only | JWT + env var |
|
|
342
|
+
| **Docker Auto-Fix** | Basic | Advanced (versions, variants) |
|
|
343
|
+
| **Retry Logic** | ❌ | ✅ (5xx errors) |
|
|
344
|
+
| **Error Recovery** | Basic | Advanced with suggestions |
|
|
345
|
+
| **Success Rate** | ~90% | ~95%+ (estimated) |
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Notable Fixes (v3.0.0 → v3.3.42)
|
|
350
|
+
|
|
351
|
+
### Major Fixes
|
|
352
|
+
|
|
353
|
+
**v3.3.42** - Add deploy_dollie tool for Next.js dev containers with SSH
|
|
354
|
+
**v3.3.39** - Language detection and Dockerfile template fixes
|
|
355
|
+
**v3.3.38** - Preserve Docker image variant when fixing base image
|
|
356
|
+
**v3.3.37** - Replace glob dependency with native fs scanner
|
|
357
|
+
**v3.3.35** - Auto-detection and fixes for common deployment issues
|
|
358
|
+
**v3.3.34** - Fix duplicate project creation and SSH key switching
|
|
359
|
+
**v3.3.32** - Fix misleading hostname description
|
|
360
|
+
**v3.3.31** - Fix URL format bug in deployment status
|
|
361
|
+
**v3.3.30** - Add warnings for slow-starting database services
|
|
362
|
+
|
|
363
|
+
### SSH & Authentication Fixes
|
|
364
|
+
|
|
365
|
+
**v3.3.29** - Fix SSH key per-user when using MLGYM_TOKEN env var
|
|
366
|
+
**v3.3.25** - Fix git dubious ownership error; fix SSH config replacement
|
|
367
|
+
**v3.3.24** - Fix SSH config to replace old key instead of skipping
|
|
368
|
+
**v3.3.19** - Support MLGYM_TOKEN environment variable
|
|
369
|
+
**v3.3.13** - Fix SSH key creation using GitLab user ID
|
|
370
|
+
**v3.3.12** - Auto-ensure SSH keys on authentication
|
|
371
|
+
|
|
372
|
+
### Language-Specific Fixes
|
|
373
|
+
|
|
374
|
+
**v3.3.28** - Add PHP project detection and Dockerfile generation
|
|
375
|
+
**v3.3.23** - Auto-organize Scala project structure
|
|
376
|
+
**v3.3.22** - Auto-fix Scala sbt-assembly plugin + fat JAR config
|
|
377
|
+
**v3.3.21** - Auto-fix Elixir Dockerfile
|
|
378
|
+
**v3.3.20** - Auto-fix Perl Dockerfile
|
|
379
|
+
**v3.3.19** - Ruby deployment support
|
|
380
|
+
|
|
381
|
+
### Docker & Port Fixes
|
|
382
|
+
|
|
383
|
+
**v3.3.18** - Fix Dockerfile port detection to preserve EXPOSE directive
|
|
384
|
+
**v3.3.17** - Add ports_exposes for Dockerfile deployments
|
|
385
|
+
**v3.3.16** - Fix ports vs expose bug + auth status check
|
|
386
|
+
|
|
387
|
+
### Workflow Fixes
|
|
388
|
+
|
|
389
|
+
**v3.3.27** - Fix version constant and add deployment_url debug logging
|
|
390
|
+
**v3.3.26** - Fix deployment_url to use backend-provided URL
|
|
391
|
+
**v3.3.12** - Add retry logic for 5xx errors
|
|
392
|
+
**v3.3.11** - Auto-derive project_name from local_path
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## Migration Guide
|
|
397
|
+
|
|
398
|
+
### From v3.0.0 to v3.3.42
|
|
399
|
+
|
|
400
|
+
**No Breaking Changes!**
|
|
401
|
+
|
|
402
|
+
All v3.0.0 workflows continue to work. New tools are additive.
|
|
403
|
+
|
|
404
|
+
### Using New Features
|
|
405
|
+
|
|
406
|
+
#### After Initial Deployment (v3.0.0 workflow):
|
|
407
|
+
```javascript
|
|
408
|
+
// 1. Deploy (same as v3.0.0)
|
|
409
|
+
mlgym_deploy({
|
|
410
|
+
project_name: "my-app",
|
|
411
|
+
project_description: "My awesome app"
|
|
412
|
+
})
|
|
413
|
+
|
|
414
|
+
// 2. Configure environment variables (NEW)
|
|
415
|
+
mlgym_set_env_vars({
|
|
416
|
+
project_name: "my-app",
|
|
417
|
+
env_vars: { DATABASE_URL: "..." }
|
|
418
|
+
})
|
|
419
|
+
|
|
420
|
+
// 3. Set up health checks (NEW)
|
|
421
|
+
mlgym_set_health_check({
|
|
422
|
+
project_name: "my-app",
|
|
423
|
+
enabled: true,
|
|
424
|
+
path: "/health"
|
|
425
|
+
})
|
|
426
|
+
|
|
427
|
+
// 4. Configure custom domain (NEW)
|
|
428
|
+
mlgym_set_domain({
|
|
429
|
+
project_name: "my-app",
|
|
430
|
+
domain: "myapp.example.com"
|
|
431
|
+
})
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
#### View Deployment History (NEW):
|
|
435
|
+
```javascript
|
|
436
|
+
mlgym_deploy_logs({
|
|
437
|
+
project_name: "my-app",
|
|
438
|
+
depth: 5
|
|
439
|
+
})
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
#### Rollback if Needed (NEW):
|
|
443
|
+
```javascript
|
|
444
|
+
mlgym_rollback({
|
|
445
|
+
project_name: "my-app"
|
|
446
|
+
})
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
#### Deploy Development Container (NEW):
|
|
450
|
+
```javascript
|
|
451
|
+
deploy_dollie({
|
|
452
|
+
project_name: "dev-env",
|
|
453
|
+
git_repo: "https://github.com/user/repo.git"
|
|
454
|
+
})
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
## Configuration
|
|
460
|
+
|
|
461
|
+
### Environment Variables
|
|
462
|
+
|
|
463
|
+
**Authentication:**
|
|
464
|
+
- `MLGYM_TOKEN` - JWT authentication token (NEW in v3.3.19)
|
|
465
|
+
- `MLGYM_EMAIL` - User email (optional with MLGYM_TOKEN)
|
|
466
|
+
|
|
467
|
+
**API Endpoints:**
|
|
468
|
+
- `MLGYM_API_ENDPOINT` - Backend URL (default: https://backend.eu.ezb.net)
|
|
469
|
+
|
|
470
|
+
**Debugging:**
|
|
471
|
+
- `MLGYM_DEBUG` - Enable debug logging (default: enabled)
|
|
472
|
+
- `DEBUG` - Alternative debug flag
|
|
473
|
+
|
|
474
|
+
### Configuration File
|
|
475
|
+
|
|
476
|
+
Location: `~/.mlgym/mcp_config.json`
|
|
477
|
+
|
|
478
|
+
**Stored Data:**
|
|
479
|
+
- Cached authentication token
|
|
480
|
+
- User email
|
|
481
|
+
- Last version check timestamp
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
## Technical Notes
|
|
486
|
+
|
|
487
|
+
### Dependencies
|
|
488
|
+
No changes from v3.0.0:
|
|
489
|
+
- `@modelcontextprotocol/sdk`: ^0.6.0
|
|
490
|
+
- `axios`: ^1.6.0
|
|
491
|
+
|
|
492
|
+
### Version Check
|
|
493
|
+
- Automatic version check every hour
|
|
494
|
+
- Warns if newer version available on npm
|
|
495
|
+
- Non-blocking, informational only
|
|
496
|
+
|
|
497
|
+
### Debug Logging
|
|
498
|
+
Enhanced colored output system:
|
|
499
|
+
- 🔵 INFO - General information
|
|
500
|
+
- ✅ SUCCESS - Successful operations
|
|
501
|
+
- ⚠️ WARNING - Non-critical issues
|
|
502
|
+
- ❌ ERROR - Critical errors
|
|
503
|
+
- ⋯ DEBUG - Detailed debug information
|
|
504
|
+
|
|
505
|
+
### API Integration
|
|
506
|
+
|
|
507
|
+
**Backend API:**
|
|
508
|
+
- URL: https://backend.eu.ezb.net
|
|
509
|
+
- Endpoints: /auth/*, /projects/*, /deployments/*, /applications/*
|
|
510
|
+
|
|
511
|
+
**GitLab API:**
|
|
512
|
+
- URL: https://git.mlgym.io
|
|
513
|
+
- Operations: Project creation, SSH key registration
|
|
514
|
+
|
|
515
|
+
**Coolify User Agent:**
|
|
516
|
+
- URL: http://coolify.eu.ezb.net:9000
|
|
517
|
+
- Operations: Application configuration, deployment management
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
## Testing Recommendations
|
|
522
|
+
|
|
523
|
+
### Basic Workflow Test
|
|
524
|
+
```bash
|
|
525
|
+
# 1. Deploy new project
|
|
526
|
+
mlgym_deploy({
|
|
527
|
+
project_name: "test-app",
|
|
528
|
+
project_description: "Test application"
|
|
529
|
+
})
|
|
530
|
+
|
|
531
|
+
# 2. Check status
|
|
532
|
+
mlgym_status()
|
|
533
|
+
|
|
534
|
+
# 3. View logs
|
|
535
|
+
mlgym_deploy_logs({ project_name: "test-app", depth: 1 })
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
### Configuration Test
|
|
539
|
+
```bash
|
|
540
|
+
# 4. Set environment variables
|
|
541
|
+
mlgym_set_env_vars({
|
|
542
|
+
project_name: "test-app",
|
|
543
|
+
env_vars: { TEST_VAR: "value" }
|
|
544
|
+
})
|
|
545
|
+
|
|
546
|
+
# 5. Configure health check
|
|
547
|
+
mlgym_set_health_check({
|
|
548
|
+
project_name: "test-app",
|
|
549
|
+
enabled: true,
|
|
550
|
+
path: "/health"
|
|
551
|
+
})
|
|
552
|
+
|
|
553
|
+
# 6. Trigger manual deployment
|
|
554
|
+
mlgym_deploy_manual({ project_name: "test-app" })
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
### Rollback Test
|
|
558
|
+
```bash
|
|
559
|
+
# 7. View deployment history
|
|
560
|
+
mlgym_deploy_logs({ project_name: "test-app", depth: 5 })
|
|
561
|
+
|
|
562
|
+
# 8. Rollback to previous
|
|
563
|
+
mlgym_rollback({ project_name: "test-app" })
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
### Development Container Test
|
|
567
|
+
```bash
|
|
568
|
+
# 9. Deploy Dollie dev container
|
|
569
|
+
deploy_dollie({
|
|
570
|
+
project_name: "dev-test",
|
|
571
|
+
git_repo: "https://github.com/vercel/next.js/tree/canary/examples/hello-world"
|
|
572
|
+
})
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
577
|
+
## Success Metrics
|
|
578
|
+
|
|
579
|
+
### Deployment Reliability
|
|
580
|
+
- **v3.0.0**: ~90% success rate
|
|
581
|
+
- **v3.3.42**: ~95%+ success rate (estimated)
|
|
582
|
+
|
|
583
|
+
**Improvements from:**
|
|
584
|
+
- Retry logic for transient failures
|
|
585
|
+
- Auto-fix for common configuration issues
|
|
586
|
+
- Better error recovery suggestions
|
|
587
|
+
- Per-user SSH key management
|
|
588
|
+
|
|
589
|
+
### User Experience
|
|
590
|
+
- **Deployment Time**: Unchanged (~2-5 minutes)
|
|
591
|
+
- **Configuration Time**: New capability (1-2 minutes per setting)
|
|
592
|
+
- **Rollback Time**: New capability (~30 seconds)
|
|
593
|
+
- **Dev Container Setup**: New capability (~3-5 minutes)
|
|
594
|
+
|
|
595
|
+
### Tool Usage Patterns
|
|
596
|
+
```
|
|
597
|
+
Primary Workflow (v3.0.0 pattern):
|
|
598
|
+
mlgym_deploy → Success
|
|
599
|
+
|
|
600
|
+
Extended Workflow (v3.3.42 pattern):
|
|
601
|
+
mlgym_deploy
|
|
602
|
+
→ mlgym_set_env_vars
|
|
603
|
+
→ mlgym_set_health_check
|
|
604
|
+
→ mlgym_set_domain
|
|
605
|
+
→ mlgym_deploy_logs (monitoring)
|
|
606
|
+
→ mlgym_rollback (if needed)
|
|
607
|
+
|
|
608
|
+
Development Workflow (v3.3.42 new):
|
|
609
|
+
deploy_dollie → SSH access → Iterate
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
614
|
+
## Known Limitations
|
|
615
|
+
|
|
616
|
+
### Same as v3.0.0
|
|
617
|
+
- Requires backend API availability
|
|
618
|
+
- GitLab must be accessible
|
|
619
|
+
- Coolify User Agent must be running
|
|
620
|
+
- SSH key generation requires write access to ~/.ssh/
|
|
621
|
+
|
|
622
|
+
### New Considerations (v3.3.42)
|
|
623
|
+
- Rollback limited to last 10 deployments (Coolify limitation)
|
|
624
|
+
- Health check configuration requires application restart
|
|
625
|
+
- Custom domains require DNS configuration outside MLGym
|
|
626
|
+
- Dollie containers support Next.js only (currently)
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
## Future Considerations
|
|
631
|
+
|
|
632
|
+
### Potential Enhancements
|
|
633
|
+
- [ ] Multi-region deployment management
|
|
634
|
+
- [ ] Environment promotion (staging → production)
|
|
635
|
+
- [ ] Deployment scheduling
|
|
636
|
+
- [ ] Cost tracking and optimization
|
|
637
|
+
- [ ] Team collaboration features
|
|
638
|
+
- [ ] Deployment approval workflows
|
|
639
|
+
- [ ] Backup and restore operations
|
|
640
|
+
- [ ] Dollie support for other frameworks (React, Vue, etc.)
|
|
641
|
+
|
|
642
|
+
### Monitoring Integration
|
|
643
|
+
- [ ] Metrics collection (CPU, memory, requests)
|
|
644
|
+
- [ ] Alerting on deployment failures
|
|
645
|
+
- [ ] Performance tracking over time
|
|
646
|
+
- [ ] Cost analysis per deployment
|
|
647
|
+
|
|
648
|
+
---
|
|
649
|
+
|
|
650
|
+
## Credits
|
|
651
|
+
|
|
652
|
+
**Architecture Design:** Monolithic workflow approach (v3.0.0)
|
|
653
|
+
**Feature Expansion:** Application lifecycle management (v3.3.x)
|
|
654
|
+
**Language Support:** Community-driven templates and auto-fixes
|
|
655
|
+
**Development Tools:** Dollie SSH container integration (v3.3.42)
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
## Files Modified Since v3.0.0
|
|
660
|
+
|
|
661
|
+
1. **mcp-server/index.js**
|
|
662
|
+
- Added 12 new tool definitions
|
|
663
|
+
- Enhanced DeploymentWorkflow class
|
|
664
|
+
- Added configuration management functions
|
|
665
|
+
- Added deployment monitoring functions
|
|
666
|
+
- Added Dollie deployment function
|
|
667
|
+
- Improved error handling and retry logic
|
|
668
|
+
- Enhanced debug logging system
|
|
669
|
+
- Added language detection for 10+ languages
|
|
670
|
+
- Added Dockerfile auto-fix capabilities
|
|
671
|
+
|
|
672
|
+
2. **mcp-server/package.json**
|
|
673
|
+
- Version: 3.0.0 → 3.3.42
|
|
674
|
+
- Updated description for extended capabilities
|
|
675
|
+
- Updated mcp.tools metadata with 14 tools
|
|
676
|
+
|
|
677
|
+
---
|
|
678
|
+
|
|
679
|
+
## Summary
|
|
680
|
+
|
|
681
|
+
v3.3.42 represents a **major capability expansion** while maintaining the **architectural principles** that made v3.0.0 successful:
|
|
682
|
+
|
|
683
|
+
### What's the Same
|
|
684
|
+
- ✅ Monolithic workflow approach (server-side orchestration)
|
|
685
|
+
- ✅ Minimal AI decision points (~3 per operation)
|
|
686
|
+
- ✅ Deterministic execution
|
|
687
|
+
- ✅ High success rate (90%+)
|
|
688
|
+
- ✅ Single-call deployment experience
|
|
689
|
+
|
|
690
|
+
### What's New
|
|
691
|
+
- ✅ **12 new tools** for complete lifecycle management
|
|
692
|
+
- ✅ **10+ programming languages** supported
|
|
693
|
+
- ✅ **Configuration management** (env vars, health checks, domains, commands)
|
|
694
|
+
- ✅ **Deployment operations** (logs, manual deploy, rollback)
|
|
695
|
+
- ✅ **Development containers** (Dollie SSH environments)
|
|
696
|
+
- ✅ **Enhanced reliability** (retry logic, auto-fixes, per-user SSH)
|
|
697
|
+
- ✅ **Better monitoring** (deployment history, build logs)
|
|
698
|
+
|
|
699
|
+
### Impact
|
|
700
|
+
From **basic deployment tool** → **comprehensive DevOps platform** for AI-assisted development.
|
|
701
|
+
|
|
702
|
+
---
|
|
703
|
+
|
|
704
|
+
**Version:** 3.3.42
|
|
705
|
+
**Status:** ✅ Production Ready
|
|
706
|
+
**Backward Compatibility:** ✅ Full (with v3.0.0)
|
|
707
|
+
**Next Version:** 3.4.0 (planned: multi-region management)
|