@172ai/containers-mcp-server 1.0.27 → 1.2.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.
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ /**
3
+ * Enhanced Error Reporting System for MCP Container Server
4
+ * Phase 1 Implementation - Structured errors with actionable suggestions
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EnhancedMCPErrorHandler = exports.MCP_ERROR_CODES = exports.MCPError = void 0;
8
+ const config_1 = require("../config");
9
+ /**
10
+ * Enhanced MCP Error class with contextual suggestions
11
+ */
12
+ class MCPError extends Error {
13
+ constructor(code, message, details = {}) {
14
+ super(message);
15
+ this.name = 'MCPError';
16
+ this.code = code;
17
+ this.details = details;
18
+ this.timestamp = new Date().toISOString();
19
+ this.retryPossible = details.retryPossible !== false;
20
+ this.severity = details.severity || 'error';
21
+ }
22
+ toJSON() {
23
+ return {
24
+ error: {
25
+ code: this.code,
26
+ message: this.message,
27
+ details: this.details,
28
+ timestamp: this.timestamp,
29
+ retry_possible: this.retryPossible,
30
+ severity: this.severity
31
+ }
32
+ };
33
+ }
34
+ }
35
+ exports.MCPError = MCPError;
36
+ /**
37
+ * Enhanced Error Codes for MCP Operations
38
+ */
39
+ exports.MCP_ERROR_CODES = {
40
+ // Container Build Errors
41
+ BUILD_FAILED_DOCKERFILE_SYNTAX: 'BUILD_FAILED_DOCKERFILE_SYNTAX',
42
+ BUILD_FAILED_MISSING_DEPENDENCIES: 'BUILD_FAILED_MISSING_DEPENDENCIES',
43
+ BUILD_FAILED_INVALID_BASE_IMAGE: 'BUILD_FAILED_INVALID_BASE_IMAGE',
44
+ BUILD_FAILED_TIMEOUT: 'BUILD_FAILED_TIMEOUT',
45
+ BUILD_FAILED_RESOURCE_EXHAUSTED: 'BUILD_FAILED_RESOURCE_EXHAUSTED',
46
+ // Container Execution Errors
47
+ EXECUTION_FAILED_PORT_BINDING: 'EXECUTION_FAILED_PORT_BINDING',
48
+ EXECUTION_FAILED_HEALTH_CHECK: 'EXECUTION_FAILED_HEALTH_CHECK',
49
+ EXECUTION_FAILED_ENV_MISSING: 'EXECUTION_FAILED_ENV_MISSING',
50
+ EXECUTION_FAILED_STARTUP_TIMEOUT: 'EXECUTION_FAILED_STARTUP_TIMEOUT',
51
+ EXECUTION_FAILED_RESOURCE_LIMIT: 'EXECUTION_FAILED_RESOURCE_LIMIT',
52
+ // File Operation Errors
53
+ FILE_UPLOAD_FAILED_SIZE_LIMIT: 'FILE_UPLOAD_FAILED_SIZE_LIMIT',
54
+ FILE_UPLOAD_FAILED_INVALID_PATH: 'FILE_UPLOAD_FAILED_INVALID_PATH',
55
+ FILE_UPLOAD_FAILED_PERMISSION: 'FILE_UPLOAD_FAILED_PERMISSION',
56
+ FILE_OPERATION_FAILED_NOT_FOUND: 'FILE_OPERATION_FAILED_NOT_FOUND',
57
+ // Container Management Errors
58
+ CONTAINER_NOT_FOUND: 'CONTAINER_NOT_FOUND',
59
+ CONTAINER_STATE_INVALID: 'CONTAINER_STATE_INVALID',
60
+ CONTAINER_OPERATION_CONFLICT: 'CONTAINER_OPERATION_CONFLICT',
61
+ // API and Network Errors
62
+ API_RATE_LIMIT_EXCEEDED: 'API_RATE_LIMIT_EXCEEDED',
63
+ API_AUTHENTICATION_FAILED: 'API_AUTHENTICATION_FAILED',
64
+ API_QUOTA_EXCEEDED: 'API_QUOTA_EXCEEDED',
65
+ NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',
66
+ // System Errors
67
+ SYSTEM_RESOURCE_UNAVAILABLE: 'SYSTEM_RESOURCE_UNAVAILABLE',
68
+ SYSTEM_MAINTENANCE_MODE: 'SYSTEM_MAINTENANCE_MODE',
69
+ SYSTEM_INTERNAL_ERROR: 'SYSTEM_INTERNAL_ERROR'
70
+ };
71
+ /**
72
+ * Error Suggestions Database
73
+ */
74
+ const ERROR_SUGGESTIONS = {
75
+ [exports.MCP_ERROR_CODES.BUILD_FAILED_DOCKERFILE_SYNTAX]: {
76
+ message: "Container build failed due to Dockerfile syntax error",
77
+ quickFixes: [
78
+ "Check Dockerfile syntax at the specified line",
79
+ "Ensure proper spacing and instruction format",
80
+ "Validate all file paths in COPY/ADD instructions",
81
+ "Verify base image reference is correct"
82
+ ],
83
+ commonCauses: [
84
+ "Missing instruction keywords (RUN, COPY, etc.)",
85
+ "Incorrect file paths in COPY instructions",
86
+ "Invalid base image references"
87
+ ],
88
+ documentation: "https://docs.172.ai/troubleshooting/dockerfile-errors",
89
+ estimatedFixTime: "2-5 minutes"
90
+ },
91
+ [exports.MCP_ERROR_CODES.BUILD_FAILED_MISSING_DEPENDENCIES]: {
92
+ message: "Container build failed due to missing dependencies",
93
+ quickFixes: [
94
+ "Add 'apt-get update' before package installation",
95
+ "Check package names for typos",
96
+ "Use correct package manager for base image",
97
+ "Add required repositories before installing packages"
98
+ ],
99
+ commonCauses: [
100
+ "Package cache not updated before installation",
101
+ "Incorrect package names or versions",
102
+ "Missing package repositories"
103
+ ],
104
+ documentation: "https://docs.172.ai/troubleshooting/dependency-errors",
105
+ estimatedFixTime: "5-10 minutes"
106
+ },
107
+ [exports.MCP_ERROR_CODES.EXECUTION_FAILED_PORT_BINDING]: {
108
+ message: "Container failed to start due to port binding issues",
109
+ quickFixes: [
110
+ "Check if port is already in use",
111
+ "Verify EXPOSE directive in Dockerfile",
112
+ "Ensure application binds to 0.0.0.0, not localhost",
113
+ "Check port number matches container configuration"
114
+ ],
115
+ commonCauses: [
116
+ "Port already bound by another container",
117
+ "Application binding to 127.0.0.1 instead of 0.0.0.0",
118
+ "Mismatched port configuration"
119
+ ],
120
+ documentation: "https://docs.172.ai/troubleshooting/port-binding",
121
+ estimatedFixTime: "3-7 minutes"
122
+ },
123
+ [exports.MCP_ERROR_CODES.EXECUTION_FAILED_HEALTH_CHECK]: {
124
+ message: "Container health check failed during startup",
125
+ quickFixes: [
126
+ "Check if application starts properly",
127
+ "Verify health check endpoint responds correctly",
128
+ "Increase health check timeout if needed",
129
+ "Check application logs for startup errors"
130
+ ],
131
+ commonCauses: [
132
+ "Application takes longer to start than health check timeout",
133
+ "Health check endpoint not implemented correctly",
134
+ "Database connection failures during startup"
135
+ ],
136
+ documentation: "https://docs.172.ai/troubleshooting/health-checks",
137
+ estimatedFixTime: "5-15 minutes"
138
+ },
139
+ [exports.MCP_ERROR_CODES.FILE_UPLOAD_FAILED_SIZE_LIMIT]: {
140
+ message: "File upload failed due to size limit exceeded",
141
+ quickFixes: [
142
+ "Compress files before uploading",
143
+ "Split large files into smaller chunks",
144
+ "Remove unnecessary files from upload",
145
+ "Use .dockerignore to exclude build artifacts"
146
+ ],
147
+ commonCauses: [
148
+ "Large binary files in project directory",
149
+ "Node_modules or other dependency directories included",
150
+ "Build artifacts not excluded"
151
+ ],
152
+ documentation: "https://docs.172.ai/troubleshooting/file-size-limits",
153
+ estimatedFixTime: "2-5 minutes"
154
+ },
155
+ [exports.MCP_ERROR_CODES.CONTAINER_NOT_FOUND]: {
156
+ message: "Container not found or has been removed",
157
+ quickFixes: [
158
+ "Verify container ID is correct",
159
+ "Check if container was deleted during operation",
160
+ "Refresh container list to get current status",
161
+ "Create a new container if previous one was lost"
162
+ ],
163
+ commonCauses: [
164
+ "Container deleted during long-running operation",
165
+ "Concurrent operations causing state conflicts",
166
+ "System cleanup removed inactive containers"
167
+ ],
168
+ documentation: "https://docs.172.ai/troubleshooting/container-lifecycle",
169
+ estimatedFixTime: "1-3 minutes"
170
+ },
171
+ [exports.MCP_ERROR_CODES.API_RATE_LIMIT_EXCEEDED]: {
172
+ message: "API rate limit exceeded",
173
+ quickFixes: [
174
+ "Wait before retrying the operation",
175
+ "Implement exponential backoff in your requests",
176
+ "Batch multiple operations together",
177
+ "Check if you have sufficient API quota"
178
+ ],
179
+ commonCauses: [
180
+ "Too many rapid API calls",
181
+ "Concurrent operations from multiple sources",
182
+ "Insufficient API quota for current usage"
183
+ ],
184
+ documentation: "https://docs.172.ai/api/rate-limits",
185
+ estimatedFixTime: "1-2 minutes (wait time)"
186
+ }
187
+ };
188
+ /**
189
+ * Enhanced Error Handler for MCP Operations
190
+ */
191
+ class EnhancedMCPErrorHandler {
192
+ /**
193
+ * Process and enhance errors with structured responses
194
+ */
195
+ static processError(error, context = {}) {
196
+ let mcpError;
197
+ // Convert to MCPError with classification
198
+ if (error instanceof MCPError) {
199
+ mcpError = error;
200
+ }
201
+ else {
202
+ mcpError = this.classifyError(error, context);
203
+ }
204
+ // Get suggestions for this error type
205
+ const suggestions = this.getSuggestions(mcpError.code, context);
206
+ // Create enhanced response
207
+ const enhancedError = {
208
+ type: 'mcp_error',
209
+ message: mcpError.message,
210
+ status: this.getStatusCode(mcpError.code),
211
+ code: mcpError.code,
212
+ details: mcpError.details,
213
+ requestId: context.requestId || this.generateRequestId(),
214
+ timestamp: mcpError.timestamp,
215
+ context: context.operation,
216
+ // Enhanced fields
217
+ suggestions: suggestions.quickFixes.slice(0, 3), // Top 3 suggestions
218
+ commonCauses: suggestions.commonCauses,
219
+ nextSteps: this.generateNextSteps(mcpError.code, context),
220
+ estimatedFixTime: suggestions.estimatedFixTime,
221
+ documentation: suggestions.documentation,
222
+ retryPossible: mcpError.retryPossible,
223
+ stack: config_1.config.isDevelopment() ? error.stack : undefined
224
+ };
225
+ return enhancedError;
226
+ }
227
+ /**
228
+ * Classify generic errors into specific MCP error types
229
+ */
230
+ static classifyError(error, context) {
231
+ const message = error.message?.toLowerCase() || '';
232
+ // Container Build Errors
233
+ if (this.isBuildError(error, context)) {
234
+ return this.classifyBuildError(error, context, message);
235
+ }
236
+ // Container Execution Errors
237
+ if (this.isExecutionError(error, context)) {
238
+ return this.classifyExecutionError(error, context, message);
239
+ }
240
+ // File Operation Errors
241
+ if (this.isFileError(error, context)) {
242
+ return this.classifyFileError(error, context, message);
243
+ }
244
+ // API Errors
245
+ if (this.isAPIError(error, context)) {
246
+ return this.classifyAPIError(error, context, message);
247
+ }
248
+ // Container Management Errors
249
+ if (this.isContainerError(error, context)) {
250
+ return this.classifyContainerError(error, context, message);
251
+ }
252
+ // Default classification
253
+ return new MCPError(exports.MCP_ERROR_CODES.SYSTEM_INTERNAL_ERROR, error.message || 'An unexpected error occurred', {
254
+ originalError: error.name,
255
+ operation: context.operation,
256
+ containerId: context.containerId
257
+ });
258
+ }
259
+ static isBuildError(error, context) {
260
+ return context.operation?.includes('build') ||
261
+ error.message?.includes('build') ||
262
+ error.message?.includes('dockerfile');
263
+ }
264
+ static classifyBuildError(error, context, message) {
265
+ const details = {
266
+ stage: context.buildStage || 'unknown',
267
+ line: this.extractLineNumber(error.message),
268
+ buildId: context.buildId,
269
+ containerId: context.containerId
270
+ };
271
+ if (message.includes('dockerfile') && message.includes('syntax')) {
272
+ return new MCPError(exports.MCP_ERROR_CODES.BUILD_FAILED_DOCKERFILE_SYNTAX, error.message, details);
273
+ }
274
+ if (message.includes('package') || message.includes('dependency') || message.includes('apt-get')) {
275
+ return new MCPError(exports.MCP_ERROR_CODES.BUILD_FAILED_MISSING_DEPENDENCIES, error.message, details);
276
+ }
277
+ if (message.includes('base image') || message.includes('pull')) {
278
+ return new MCPError(exports.MCP_ERROR_CODES.BUILD_FAILED_INVALID_BASE_IMAGE, error.message, details);
279
+ }
280
+ if (message.includes('timeout') || message.includes('deadline')) {
281
+ return new MCPError(exports.MCP_ERROR_CODES.BUILD_FAILED_TIMEOUT, error.message, details);
282
+ }
283
+ return new MCPError(exports.MCP_ERROR_CODES.SYSTEM_INTERNAL_ERROR, error.message, details);
284
+ }
285
+ static isExecutionError(error, context) {
286
+ return context.operation?.includes('execution') ||
287
+ context.operation?.includes('start') ||
288
+ error.message?.includes('container') && error.message?.includes('failed');
289
+ }
290
+ static classifyExecutionError(error, context, message) {
291
+ const details = {
292
+ containerId: context.containerId,
293
+ executionId: context.executionId,
294
+ port: this.extractPort(error.message)
295
+ };
296
+ if (message.includes('port') && (message.includes('bind') || message.includes('address'))) {
297
+ return new MCPError(exports.MCP_ERROR_CODES.EXECUTION_FAILED_PORT_BINDING, error.message, details);
298
+ }
299
+ if (message.includes('health') || message.includes('readiness')) {
300
+ return new MCPError(exports.MCP_ERROR_CODES.EXECUTION_FAILED_HEALTH_CHECK, error.message, details);
301
+ }
302
+ if (message.includes('environment') || message.includes('env')) {
303
+ return new MCPError(exports.MCP_ERROR_CODES.EXECUTION_FAILED_ENV_MISSING, error.message, details);
304
+ }
305
+ return new MCPError(exports.MCP_ERROR_CODES.SYSTEM_INTERNAL_ERROR, error.message, details);
306
+ }
307
+ static isFileError(error, context) {
308
+ return context.operation?.includes('file') ||
309
+ context.operation?.includes('upload') ||
310
+ error.message?.includes('file');
311
+ }
312
+ static classifyFileError(error, context, message) {
313
+ const details = {
314
+ filePath: context.filePath,
315
+ fileSize: context.fileSize,
316
+ containerId: context.containerId
317
+ };
318
+ if (message.includes('size') && (message.includes('limit') || message.includes('exceed'))) {
319
+ return new MCPError(exports.MCP_ERROR_CODES.FILE_UPLOAD_FAILED_SIZE_LIMIT, error.message, details);
320
+ }
321
+ if (message.includes('path') || message.includes('invalid')) {
322
+ return new MCPError(exports.MCP_ERROR_CODES.FILE_UPLOAD_FAILED_INVALID_PATH, error.message, details);
323
+ }
324
+ if (message.includes('not found') || message.includes('404')) {
325
+ return new MCPError(exports.MCP_ERROR_CODES.FILE_OPERATION_FAILED_NOT_FOUND, error.message, details);
326
+ }
327
+ return new MCPError(exports.MCP_ERROR_CODES.SYSTEM_INTERNAL_ERROR, error.message, details);
328
+ }
329
+ static isAPIError(error, context) {
330
+ const statusCode = error.response?.status || error.status;
331
+ return statusCode && (statusCode === 429 || statusCode === 401 || statusCode === 402);
332
+ }
333
+ static classifyAPIError(error, context, message) {
334
+ const statusCode = error.response?.status || error.status;
335
+ const details = {
336
+ statusCode,
337
+ endpoint: context.endpoint,
338
+ containerId: context.containerId
339
+ };
340
+ switch (statusCode) {
341
+ case 429:
342
+ return new MCPError(exports.MCP_ERROR_CODES.API_RATE_LIMIT_EXCEEDED, 'API rate limit exceeded', details);
343
+ case 401:
344
+ return new MCPError(exports.MCP_ERROR_CODES.API_AUTHENTICATION_FAILED, 'API authentication failed', details);
345
+ case 402:
346
+ return new MCPError(exports.MCP_ERROR_CODES.API_QUOTA_EXCEEDED, 'API quota exceeded', details);
347
+ default:
348
+ return new MCPError(exports.MCP_ERROR_CODES.NETWORK_CONNECTION_FAILED, error.message, details);
349
+ }
350
+ }
351
+ static isContainerError(error, context) {
352
+ return error.message?.includes('container') ||
353
+ error.message?.includes('not found') ||
354
+ context.operation?.includes('container');
355
+ }
356
+ static classifyContainerError(error, context, message) {
357
+ const details = {
358
+ containerId: context.containerId
359
+ };
360
+ if (message.includes('not found') || message.includes('404')) {
361
+ return new MCPError(exports.MCP_ERROR_CODES.CONTAINER_NOT_FOUND, error.message, details);
362
+ }
363
+ if (message.includes('state') || message.includes('invalid')) {
364
+ return new MCPError(exports.MCP_ERROR_CODES.CONTAINER_STATE_INVALID, error.message, details);
365
+ }
366
+ return new MCPError(exports.MCP_ERROR_CODES.SYSTEM_INTERNAL_ERROR, error.message, details);
367
+ }
368
+ /**
369
+ * Get suggestions for error code
370
+ */
371
+ static getSuggestions(errorCode, context) {
372
+ const suggestions = ERROR_SUGGESTIONS[errorCode];
373
+ if (!suggestions) {
374
+ return {
375
+ quickFixes: ["Check error details for specific information", "Retry the operation after a brief delay"],
376
+ commonCauses: ["Temporary system issues", "Network connectivity problems"],
377
+ documentation: "https://docs.172.ai/troubleshooting/general",
378
+ estimatedFixTime: "Variable"
379
+ };
380
+ }
381
+ // Enhance suggestions with context
382
+ const enhanced = { ...suggestions };
383
+ if (context.line && enhanced.quickFixes) {
384
+ enhanced.quickFixes = enhanced.quickFixes.map(fix => fix.includes('specified line') ? fix.replace('specified line', `line ${context.line}`) : fix);
385
+ }
386
+ return enhanced;
387
+ }
388
+ /**
389
+ * Generate next steps for error resolution
390
+ */
391
+ static generateNextSteps(errorCode, context) {
392
+ const steps = {
393
+ [exports.MCP_ERROR_CODES.BUILD_FAILED_DOCKERFILE_SYNTAX]: [
394
+ "1. Review Dockerfile syntax at the error line",
395
+ "2. Test Dockerfile locally with 'docker build'",
396
+ "3. Update file and rebuild container"
397
+ ],
398
+ [exports.MCP_ERROR_CODES.EXECUTION_FAILED_HEALTH_CHECK]: [
399
+ "1. Check container logs for startup errors",
400
+ "2. Test health endpoint manually",
401
+ "3. Adjust health check configuration if needed"
402
+ ],
403
+ [exports.MCP_ERROR_CODES.CONTAINER_NOT_FOUND]: [
404
+ "1. Refresh container list",
405
+ "2. Check if container was deleted",
406
+ "3. Create new container if needed"
407
+ ]
408
+ };
409
+ return steps[errorCode] || [
410
+ "1. Check error details and logs",
411
+ "2. Refer to documentation link",
412
+ "3. Retry operation if appropriate"
413
+ ];
414
+ }
415
+ /**
416
+ * Get HTTP status code for error
417
+ */
418
+ static getStatusCode(errorCode) {
419
+ const statusCodes = {
420
+ [exports.MCP_ERROR_CODES.BUILD_FAILED_DOCKERFILE_SYNTAX]: 400,
421
+ [exports.MCP_ERROR_CODES.BUILD_FAILED_MISSING_DEPENDENCIES]: 400,
422
+ [exports.MCP_ERROR_CODES.EXECUTION_FAILED_PORT_BINDING]: 409,
423
+ [exports.MCP_ERROR_CODES.EXECUTION_FAILED_HEALTH_CHECK]: 503,
424
+ [exports.MCP_ERROR_CODES.FILE_UPLOAD_FAILED_SIZE_LIMIT]: 413,
425
+ [exports.MCP_ERROR_CODES.FILE_OPERATION_FAILED_NOT_FOUND]: 404,
426
+ [exports.MCP_ERROR_CODES.CONTAINER_NOT_FOUND]: 404,
427
+ [exports.MCP_ERROR_CODES.API_RATE_LIMIT_EXCEEDED]: 429,
428
+ [exports.MCP_ERROR_CODES.API_AUTHENTICATION_FAILED]: 401,
429
+ [exports.MCP_ERROR_CODES.API_QUOTA_EXCEEDED]: 402
430
+ };
431
+ return statusCodes[errorCode] || 500;
432
+ }
433
+ /**
434
+ * Utility methods
435
+ */
436
+ static extractLineNumber(message) {
437
+ const lineMatch = message?.match(/line\s+(\d+)/i);
438
+ return lineMatch ? parseInt(lineMatch[1]) : null;
439
+ }
440
+ static extractPort(message) {
441
+ const portMatch = message?.match(/port\s+(\d+)/i);
442
+ return portMatch ? parseInt(portMatch[1]) : null;
443
+ }
444
+ static generateRequestId() {
445
+ return `mcp_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
446
+ }
447
+ /**
448
+ * Create user-friendly error response
449
+ */
450
+ static createUserResponse(error, context = {}) {
451
+ const processedError = this.processError(error, context);
452
+ return {
453
+ success: false,
454
+ error: {
455
+ code: processedError.code,
456
+ message: processedError.message,
457
+ suggestions: processedError.suggestions,
458
+ retry_possible: processedError.retryPossible,
459
+ estimated_fix_time: processedError.estimatedFixTime,
460
+ documentation: processedError.documentation
461
+ },
462
+ request_id: processedError.requestId,
463
+ timestamp: processedError.timestamp
464
+ };
465
+ }
466
+ }
467
+ exports.EnhancedMCPErrorHandler = EnhancedMCPErrorHandler;
468
+ exports.default = EnhancedMCPErrorHandler;
469
+ //# sourceMappingURL=enhancedErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancedErrorHandler.js","sourceRoot":"","sources":["../../src/utils/enhancedErrorHandler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@172ai/containers-mcp-server",
3
- "version": "1.0.27",
4
- "description": "MCP server for 172.ai container management platform - enables AI assistants to manage containers, builds, and files",
3
+ "version": "1.2.0",
4
+ "description": "MCP server for 172.ai container management platform - enables AI assistants to manage containers, builds, and files with comprehensive workflow prompts",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {
7
7
  "containers-mcp-server": "dist/cli.js",