@172ai/containers-mcp-server 1.0.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/.env.example +43 -0
- package/README.md +366 -0
- package/dist/auth.d.ts +57 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +192 -0
- package/dist/auth.js.map +1 -0
- package/dist/config.d.ts +84 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +246 -0
- package/dist/config.js.map +1 -0
- package/dist/server.d.ts +63 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +886 -0
- package/dist/server.js.map +1 -0
- package/dist/services/buildService.d.ts +51 -0
- package/dist/services/buildService.d.ts.map +1 -0
- package/dist/services/buildService.js +268 -0
- package/dist/services/buildService.js.map +1 -0
- package/dist/services/capabilityService.d.ts +62 -0
- package/dist/services/capabilityService.d.ts.map +1 -0
- package/dist/services/capabilityService.js +240 -0
- package/dist/services/capabilityService.js.map +1 -0
- package/dist/services/containerService.d.ts +52 -0
- package/dist/services/containerService.d.ts.map +1 -0
- package/dist/services/containerService.js +251 -0
- package/dist/services/containerService.js.map +1 -0
- package/dist/services/fileService.d.ts +65 -0
- package/dist/services/fileService.d.ts.map +1 -0
- package/dist/services/fileService.js +330 -0
- package/dist/services/fileService.js.map +1 -0
- package/dist/setup.d.ts +30 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +328 -0
- package/dist/setup.js.map +1 -0
- package/dist/types.d.ts +229 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/errorHandler.d.ts +78 -0
- package/dist/utils/errorHandler.d.ts.map +1 -0
- package/dist/utils/errorHandler.js +269 -0
- package/dist/utils/errorHandler.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorUtils = exports.ErrorHandler = exports.ApiError = void 0;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
/**
|
|
6
|
+
* Custom error class for API errors
|
|
7
|
+
*/
|
|
8
|
+
class ApiError extends Error {
|
|
9
|
+
constructor(message, status = 500, code = 'UNKNOWN_ERROR', details, requestId, context) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'ApiError';
|
|
12
|
+
this.type = 'api_error';
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.code = code;
|
|
15
|
+
this.details = details;
|
|
16
|
+
this.requestId = requestId;
|
|
17
|
+
this.timestamp = new Date().toISOString();
|
|
18
|
+
this.context = context;
|
|
19
|
+
// Maintain proper stack trace
|
|
20
|
+
if (Error.captureStackTrace) {
|
|
21
|
+
Error.captureStackTrace(this, ApiError);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convert to API error response format
|
|
26
|
+
*/
|
|
27
|
+
toResponse() {
|
|
28
|
+
return {
|
|
29
|
+
type: this.type,
|
|
30
|
+
message: this.message,
|
|
31
|
+
status: this.status,
|
|
32
|
+
code: this.code,
|
|
33
|
+
details: this.details,
|
|
34
|
+
requestId: this.requestId,
|
|
35
|
+
timestamp: this.timestamp,
|
|
36
|
+
context: this.context,
|
|
37
|
+
stack: config_1.config.isDevelopment() ? this.stack : undefined
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ApiError = ApiError;
|
|
42
|
+
/**
|
|
43
|
+
* Error handler class for processing different types of errors
|
|
44
|
+
*/
|
|
45
|
+
class ErrorHandler {
|
|
46
|
+
/**
|
|
47
|
+
* Process any error and return a standardized format
|
|
48
|
+
*/
|
|
49
|
+
static processError(error, context, requestId) {
|
|
50
|
+
const id = requestId || generateRequestId();
|
|
51
|
+
const timestamp = new Date().toISOString();
|
|
52
|
+
// Handle ApiError instances
|
|
53
|
+
if (error instanceof ApiError) {
|
|
54
|
+
return {
|
|
55
|
+
type: error.type,
|
|
56
|
+
message: error.message,
|
|
57
|
+
status: error.status,
|
|
58
|
+
code: error.code,
|
|
59
|
+
details: error.details,
|
|
60
|
+
requestId: id,
|
|
61
|
+
timestamp,
|
|
62
|
+
context: context || error.context,
|
|
63
|
+
stack: config_1.config.isDevelopment() ? error.stack : undefined
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Handle HTTP/fetch errors
|
|
67
|
+
if (error.response) {
|
|
68
|
+
const status = error.response.status || 500;
|
|
69
|
+
const data = error.response.data || {};
|
|
70
|
+
return {
|
|
71
|
+
type: 'http_error',
|
|
72
|
+
message: data.message || error.message || `HTTP ${status} Error`,
|
|
73
|
+
status,
|
|
74
|
+
code: data.code || `HTTP_${status}`,
|
|
75
|
+
details: data.details || { url: error.config?.url, method: error.config?.method },
|
|
76
|
+
requestId: id,
|
|
77
|
+
timestamp,
|
|
78
|
+
context,
|
|
79
|
+
stack: config_1.config.isDevelopment() ? error.stack : undefined
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// Handle network errors
|
|
83
|
+
if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND' || error.code === 'ETIMEDOUT') {
|
|
84
|
+
return {
|
|
85
|
+
type: 'network_error',
|
|
86
|
+
message: `Network error: ${error.message}`,
|
|
87
|
+
status: 503,
|
|
88
|
+
code: error.code || 'NETWORK_ERROR',
|
|
89
|
+
details: { networkError: error.code },
|
|
90
|
+
requestId: id,
|
|
91
|
+
timestamp,
|
|
92
|
+
context,
|
|
93
|
+
stack: config_1.config.isDevelopment() ? error.stack : undefined
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// Handle validation errors
|
|
97
|
+
if (error.name === 'ValidationError' || error.name === 'ZodError') {
|
|
98
|
+
return {
|
|
99
|
+
type: 'validation_error',
|
|
100
|
+
message: error.message || 'Validation failed',
|
|
101
|
+
status: 400,
|
|
102
|
+
code: 'VALIDATION_ERROR',
|
|
103
|
+
details: error.issues || error.errors || error.details,
|
|
104
|
+
requestId: id,
|
|
105
|
+
timestamp,
|
|
106
|
+
context,
|
|
107
|
+
stack: config_1.config.isDevelopment() ? error.stack : undefined
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// Handle timeout errors
|
|
111
|
+
if (error.code === 'TIMEOUT' || error.message?.includes('timeout')) {
|
|
112
|
+
return {
|
|
113
|
+
type: 'timeout_error',
|
|
114
|
+
message: 'Request timeout',
|
|
115
|
+
status: 408,
|
|
116
|
+
code: 'TIMEOUT',
|
|
117
|
+
requestId: id,
|
|
118
|
+
timestamp,
|
|
119
|
+
context,
|
|
120
|
+
stack: config_1.config.isDevelopment() ? error.stack : undefined
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// Handle generic errors
|
|
124
|
+
return {
|
|
125
|
+
type: 'unknown_error',
|
|
126
|
+
message: error.message || 'An unknown error occurred',
|
|
127
|
+
status: 500,
|
|
128
|
+
code: 'UNKNOWN_ERROR',
|
|
129
|
+
requestId: id,
|
|
130
|
+
timestamp,
|
|
131
|
+
context,
|
|
132
|
+
stack: config_1.config.isDevelopment() ? error.stack : undefined
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a standardized error for authentication issues
|
|
137
|
+
*/
|
|
138
|
+
static createAuthError(message, details) {
|
|
139
|
+
return new ApiError(message, 401, 'AUTH_ERROR', details);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a standardized error for authorization issues
|
|
143
|
+
*/
|
|
144
|
+
static createAuthorizationError(message, details) {
|
|
145
|
+
return new ApiError(message, 403, 'AUTHORIZATION_ERROR', details);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a standardized error for validation issues
|
|
149
|
+
*/
|
|
150
|
+
static createValidationError(message, details) {
|
|
151
|
+
return new ApiError(message, 400, 'VALIDATION_ERROR', details);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Create a standardized error for not found issues
|
|
155
|
+
*/
|
|
156
|
+
static createNotFoundError(message, details) {
|
|
157
|
+
return new ApiError(message, 404, 'NOT_FOUND', details);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Create a standardized error for rate limiting
|
|
161
|
+
*/
|
|
162
|
+
static createRateLimitError(message = 'Rate limit exceeded', details) {
|
|
163
|
+
return new ApiError(message, 429, 'RATE_LIMIT_EXCEEDED', details);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Create a standardized error for server errors
|
|
167
|
+
*/
|
|
168
|
+
static createServerError(message, details) {
|
|
169
|
+
return new ApiError(message, 500, 'SERVER_ERROR', details);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Log error with appropriate level based on status
|
|
173
|
+
*/
|
|
174
|
+
static logError(error) {
|
|
175
|
+
const logLevel = config_1.config.getLogLevel();
|
|
176
|
+
const shouldLog = (level) => {
|
|
177
|
+
const levels = ['error', 'warn', 'info', 'debug'];
|
|
178
|
+
return levels.indexOf(logLevel) >= levels.indexOf(level);
|
|
179
|
+
};
|
|
180
|
+
const logData = {
|
|
181
|
+
requestId: error.requestId,
|
|
182
|
+
type: error.type,
|
|
183
|
+
code: error.code,
|
|
184
|
+
status: error.status,
|
|
185
|
+
message: error.message,
|
|
186
|
+
context: error.context,
|
|
187
|
+
timestamp: error.timestamp,
|
|
188
|
+
details: error.details
|
|
189
|
+
};
|
|
190
|
+
if (error.status >= 500 && shouldLog('error')) {
|
|
191
|
+
console.error('Server Error:', JSON.stringify(logData, null, 2));
|
|
192
|
+
}
|
|
193
|
+
else if (error.status >= 400 && shouldLog('warn')) {
|
|
194
|
+
console.warn('Client Error:', JSON.stringify(logData, null, 2));
|
|
195
|
+
}
|
|
196
|
+
else if (shouldLog('info')) {
|
|
197
|
+
console.info('Request Error:', JSON.stringify(logData, null, 2));
|
|
198
|
+
}
|
|
199
|
+
// Log stack trace in development
|
|
200
|
+
if (config_1.config.isDevelopment() && error.stack && shouldLog('debug')) {
|
|
201
|
+
console.debug('Stack Trace:', error.stack);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Handle errors in async operations
|
|
206
|
+
*/
|
|
207
|
+
static async handleAsync(operation, context, requestId) {
|
|
208
|
+
try {
|
|
209
|
+
return await operation();
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
const processedError = this.processError(error, context, requestId);
|
|
213
|
+
this.logError(processedError);
|
|
214
|
+
throw new ApiError(processedError.message, processedError.status, processedError.code, processedError.details, processedError.requestId, processedError.context);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.ErrorHandler = ErrorHandler;
|
|
219
|
+
/**
|
|
220
|
+
* Generate a unique request ID
|
|
221
|
+
*/
|
|
222
|
+
function generateRequestId() {
|
|
223
|
+
return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Utility functions for common error scenarios
|
|
227
|
+
*/
|
|
228
|
+
exports.ErrorUtils = {
|
|
229
|
+
/**
|
|
230
|
+
* Wrap async function with error handling
|
|
231
|
+
*/
|
|
232
|
+
withErrorHandling: (fn, context) => {
|
|
233
|
+
return async (...args) => {
|
|
234
|
+
return ErrorHandler.handleAsync(() => fn(...args), context);
|
|
235
|
+
};
|
|
236
|
+
},
|
|
237
|
+
/**
|
|
238
|
+
* Check if error is retryable
|
|
239
|
+
*/
|
|
240
|
+
isRetryable: (error) => {
|
|
241
|
+
if (error instanceof ApiError) {
|
|
242
|
+
// Don't retry client errors (4xx) except for 429 (rate limit)
|
|
243
|
+
if (error.status >= 400 && error.status < 500 && error.status !== 429) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
// Retry network errors
|
|
249
|
+
if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND' || error.code === 'TIMEOUT') {
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
// Retry server errors
|
|
253
|
+
if (error.response && error.response.status >= 500) {
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
},
|
|
258
|
+
/**
|
|
259
|
+
* Get retry delay with exponential backoff
|
|
260
|
+
*/
|
|
261
|
+
getRetryDelay: (attempt, baseDelay = 1000) => {
|
|
262
|
+
const retryConfig = config_1.config.getRetryConfig();
|
|
263
|
+
const delay = baseDelay * Math.pow(retryConfig.backoffMultiplier, attempt);
|
|
264
|
+
return Math.min(delay, retryConfig.maxBackoffMs);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
// Export default
|
|
268
|
+
exports.default = ErrorHandler;
|
|
269
|
+
//# sourceMappingURL=errorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/utils/errorHandler.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@172ai/containers-mcp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for 172.ai container management platform - enables AI assistants to manage containers, builds, and files",
|
|
5
|
+
"main": "dist/server.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"containers-mcp-server": "dist/server.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node dist/server.js",
|
|
11
|
+
"dev": "ts-node src/server.ts",
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"watch": "tsc --watch",
|
|
14
|
+
"lint": "eslint src/**/*.ts",
|
|
15
|
+
"lint:fix": "eslint src/**/*.ts --fix",
|
|
16
|
+
"test": "jest",
|
|
17
|
+
"test:watch": "jest --watch",
|
|
18
|
+
"test:coverage": "jest --coverage",
|
|
19
|
+
"clean": "rm -rf dist",
|
|
20
|
+
"prebuild": "npm run clean",
|
|
21
|
+
"prepare": "npm run build",
|
|
22
|
+
"postinstall": "echo 'MCP Server installed successfully'",
|
|
23
|
+
"setup": "node dist/setup.js",
|
|
24
|
+
"configure": "node dist/configure.js"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"mcp",
|
|
28
|
+
"model-context-protocol",
|
|
29
|
+
"containers",
|
|
30
|
+
"docker",
|
|
31
|
+
"ai",
|
|
32
|
+
"assistant",
|
|
33
|
+
"server",
|
|
34
|
+
"172ai",
|
|
35
|
+
"claude",
|
|
36
|
+
"openai"
|
|
37
|
+
],
|
|
38
|
+
"author": "172.ai <support@172.ai>",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"dotenv": "^16.3.1",
|
|
42
|
+
"zod": "^3.22.4",
|
|
43
|
+
"inquirer": "^9.2.0",
|
|
44
|
+
"chalk": "^5.3.0",
|
|
45
|
+
"ora": "^7.0.0",
|
|
46
|
+
"axios": "^1.6.0",
|
|
47
|
+
"@modelcontextprotocol/sdk": "^0.4.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/node": "^20.10.0",
|
|
51
|
+
"@types/inquirer": "^9.0.0",
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
|
53
|
+
"@typescript-eslint/parser": "^6.13.1",
|
|
54
|
+
"eslint": "^8.54.0",
|
|
55
|
+
"jest": "^29.7.0",
|
|
56
|
+
"ts-jest": "^29.1.1",
|
|
57
|
+
"ts-node": "^10.9.1",
|
|
58
|
+
"typescript": "^5.3.2"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=18.0.0"
|
|
62
|
+
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist/**/*",
|
|
65
|
+
"README.md",
|
|
66
|
+
"package.json",
|
|
67
|
+
"LICENSE",
|
|
68
|
+
".env.example"
|
|
69
|
+
],
|
|
70
|
+
"repository": {
|
|
71
|
+
"type": "git",
|
|
72
|
+
"url": "https://github.com/172ai/containers-mcp-server.git"
|
|
73
|
+
},
|
|
74
|
+
"bugs": {
|
|
75
|
+
"url": "https://github.com/172ai/containers-mcp-server/issues"
|
|
76
|
+
},
|
|
77
|
+
"homepage": "https://github.com/172ai/containers-mcp-server#readme",
|
|
78
|
+
"publishConfig": {
|
|
79
|
+
"access": "public"
|
|
80
|
+
}
|
|
81
|
+
}
|