@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.
- package/dist/server.d.ts +20 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +599 -1
- package/dist/server.js.map +1 -1
- package/dist/services/buildService.d.ts.map +1 -1
- package/dist/services/buildService.js +26 -2
- package/dist/services/buildService.js.map +1 -1
- package/dist/services/containerService.d.ts.map +1 -1
- package/dist/services/containerService.js +16 -2
- package/dist/services/containerService.js.map +1 -1
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/enhancedErrorHandler.d.ts +114 -0
- package/dist/utils/enhancedErrorHandler.d.ts.map +1 -0
- package/dist/utils/enhancedErrorHandler.js +469 -0
- package/dist/utils/enhancedErrorHandler.js.map +1 -0
- package/package.json +2 -2
|
@@ -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
|
|
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",
|