@hypnosis/docker-mcp-server 1.0.1 → 1.0.4

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.
Files changed (56) hide show
  1. package/README.md +15 -1
  2. package/dist/adapters/adapter-registry.d.ts +5 -5
  3. package/dist/adapters/adapter-registry.js +5 -5
  4. package/dist/adapters/database-adapter.d.ts +8 -8
  5. package/dist/adapters/database-adapter.js +1 -1
  6. package/dist/adapters/postgresql.d.ts +8 -8
  7. package/dist/adapters/postgresql.js +26 -26
  8. package/dist/adapters/postgresql.js.map +1 -1
  9. package/dist/adapters/redis.d.ts +9 -9
  10. package/dist/adapters/redis.js +23 -23
  11. package/dist/adapters/redis.js.map +1 -1
  12. package/dist/adapters/sqlite.d.ts +6 -6
  13. package/dist/adapters/sqlite.js +14 -14
  14. package/dist/adapters/sqlite.js.map +1 -1
  15. package/dist/adapters/types.d.ts +6 -6
  16. package/dist/adapters/types.js +1 -1
  17. package/dist/discovery/project-discovery.d.ts.map +1 -1
  18. package/dist/discovery/project-discovery.js +17 -3
  19. package/dist/discovery/project-discovery.js.map +1 -1
  20. package/dist/index.js +56 -18
  21. package/dist/index.js.map +1 -1
  22. package/dist/managers/compose-manager.d.ts.map +1 -1
  23. package/dist/managers/compose-manager.js +33 -4
  24. package/dist/managers/compose-manager.js.map +1 -1
  25. package/dist/managers/container-manager.d.ts +57 -13
  26. package/dist/managers/container-manager.d.ts.map +1 -1
  27. package/dist/managers/container-manager.js +140 -28
  28. package/dist/managers/container-manager.js.map +1 -1
  29. package/dist/tools/container-tools.d.ts +6 -4
  30. package/dist/tools/container-tools.d.ts.map +1 -1
  31. package/dist/tools/container-tools.js +87 -8
  32. package/dist/tools/container-tools.js.map +1 -1
  33. package/dist/tools/database-tools.d.ts +3 -3
  34. package/dist/tools/database-tools.js +4 -4
  35. package/dist/tools/database-tools.js.map +1 -1
  36. package/dist/tools/env-tools.d.ts +4 -4
  37. package/dist/tools/env-tools.js +9 -9
  38. package/dist/tools/env-tools.js.map +1 -1
  39. package/dist/tools/executor-tool.d.ts +3 -3
  40. package/dist/tools/executor-tool.js +6 -6
  41. package/dist/tools/executor-tool.js.map +1 -1
  42. package/dist/tools/mcp-health-tool.d.ts +4 -4
  43. package/dist/tools/mcp-health-tool.js +5 -5
  44. package/dist/tools/mcp-health-tool.js.map +1 -1
  45. package/dist/utils/compose-exec.d.ts.map +1 -1
  46. package/dist/utils/compose-exec.js +16 -1
  47. package/dist/utils/compose-exec.js.map +1 -1
  48. package/dist/utils/port-utils.d.ts +24 -0
  49. package/dist/utils/port-utils.d.ts.map +1 -0
  50. package/dist/utils/port-utils.js +89 -0
  51. package/dist/utils/port-utils.js.map +1 -0
  52. package/dist/utils/workspace.d.ts +34 -0
  53. package/dist/utils/workspace.d.ts.map +1 -0
  54. package/dist/utils/workspace.js +52 -0
  55. package/dist/utils/workspace.js.map +1 -0
  56. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Container Manager
3
- * Управление Docker контейнерами
3
+ * Docker container management
4
4
  */
5
5
  export interface ContainerInfo {
6
6
  id: string;
@@ -22,36 +22,64 @@ export interface ContainerHealthStatus {
22
22
  checks: number;
23
23
  failures: number;
24
24
  }
25
+ export interface ImageInfo {
26
+ id: string;
27
+ tags: string[];
28
+ size: number;
29
+ created: string;
30
+ }
31
+ export interface VolumeInfo {
32
+ name: string;
33
+ driver: string;
34
+ mountpoint: string;
35
+ created: string;
36
+ }
37
+ export interface NetworkInfo {
38
+ id: string;
39
+ name: string;
40
+ driver: string;
41
+ scope: string;
42
+ created: string;
43
+ }
44
+ export interface ContainerStats {
45
+ id: string;
46
+ name: string;
47
+ cpuPercent: string;
48
+ memoryUsage: string;
49
+ memoryPercent: string;
50
+ netIO: string;
51
+ blockIO: string;
52
+ }
25
53
  export declare class ContainerManager {
26
54
  private docker;
27
55
  constructor();
28
56
  /**
29
- * Список контейнеров проекта
57
+ * List project containers
30
58
  */
31
59
  listContainers(projectName: string, composeFile?: string, projectDir?: string): Promise<ContainerInfo[]>;
32
60
  /**
33
- * Запустить контейнер
61
+ * Start container
34
62
  */
35
63
  startContainer(serviceName: string, projectName: string, composeFile?: string, projectDir?: string): Promise<void>;
36
64
  /**
37
- * Остановить контейнер
65
+ * Stop container
38
66
  */
39
67
  stopContainer(serviceName: string, projectName: string, timeout?: number, composeFile?: string, projectDir?: string): Promise<void>;
40
68
  /**
41
- * Перезапустить контейнер
69
+ * Restart container
42
70
  */
43
71
  restartContainer(serviceName: string, projectName: string, timeout?: number, composeFile?: string, projectDir?: string): Promise<void>;
44
72
  /**
45
- * Получить логи контейнера
46
- * Возвращает string для обычного режима или stream для follow mode
73
+ * Get container logs
74
+ * Returns string for normal mode or stream for follow mode
47
75
  */
48
76
  getLogs(serviceName: string, projectName: string, options?: LogOptions, composeFile?: string, projectDir?: string): Promise<string | NodeJS.ReadableStream>;
49
77
  /**
50
- * Получить health status контейнера
78
+ * Get container health status
51
79
  */
52
80
  getHealthStatus(serviceName: string, projectName: string, composeFile?: string, projectDir?: string): Promise<ContainerHealthStatus>;
53
81
  /**
54
- * Выполнить команду в контейнере
82
+ * Execute command in container
55
83
  */
56
84
  exec(serviceName: string, projectName: string, command: string[], options?: {
57
85
  user?: string;
@@ -60,22 +88,38 @@ export declare class ContainerManager {
60
88
  interactive?: boolean;
61
89
  }, composeFile?: string, projectDir?: string): Promise<string>;
62
90
  /**
63
- * Найти контейнер по имени сервиса
91
+ * Find container by service name
64
92
  */
65
93
  private findContainer;
66
94
  /**
67
- * Маппинг Docker ContainerInfo → наш формат
95
+ * Map Docker ContainerInfo → our format
68
96
  */
69
97
  private mapContainerInfo;
70
98
  /**
71
- * Извлекает порты из Docker container info
99
+ * Extract ports from Docker container info
72
100
  */
73
101
  private extractPorts;
74
102
  /**
75
- * Извлекает имя сервиса из имени контейнера
103
+ * Extract service name from container name
76
104
  * project_service_1 → service
77
105
  * project-service-1 → service
78
106
  */
79
107
  private extractServiceName;
108
+ /**
109
+ * List Docker images
110
+ */
111
+ listImages(): Promise<ImageInfo[]>;
112
+ /**
113
+ * List Docker volumes
114
+ */
115
+ listVolumes(): Promise<VolumeInfo[]>;
116
+ /**
117
+ * List Docker networks
118
+ */
119
+ listNetworks(): Promise<NetworkInfo[]>;
120
+ /**
121
+ * Get container stats (CPU, Memory, Network, Block I/O)
122
+ */
123
+ getContainerStats(serviceName: string, projectName: string, composeFile?: string, projectDir?: string): Promise<ContainerStats>;
80
124
  }
81
125
  //# sourceMappingURL=container-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-manager.d.ts","sourceRoot":"","sources":["../../src/managers/container-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,CAAC;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;;IAOvB;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA+E9G;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxH;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrI;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxI;;;OAGG;IACG,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,UAAe,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IAiC1C;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuC1I;;OAEG;IACG,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,EACxF,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;YACW,aAAa;IAgB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAc3B"}
1
+ {"version":3,"file":"container-manager.d.ts","sourceRoot":"","sources":["../../src/managers/container-manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Container Manager
3
- * Управление Docker контейнерами
3
+ * Docker container management
4
4
  */
5
5
  import { logger } from '../utils/logger.js';
6
6
  import { getDockerClient } from '../utils/docker-client.js';
@@ -11,11 +11,11 @@ export class ContainerManager {
11
11
  this.docker = client.getClient();
12
12
  }
13
13
  /**
14
- * Список контейнеров проекта
14
+ * List project containers
15
15
  */
16
16
  async listContainers(projectName, composeFile, projectDir) {
17
17
  logger.debug(`Listing containers for project: ${projectName}`);
18
- // Вариант 1: Используем Docker Compose labels (прямой вызов Docker API)
18
+ // Option 1: Use Docker Compose labels (direct Docker API call)
19
19
  try {
20
20
  const containers = await this.docker.listContainers({
21
21
  all: true,
@@ -32,7 +32,7 @@ export class ContainerManager {
32
32
  catch (error) {
33
33
  logger.debug('Failed to list containers via labels:', error);
34
34
  }
35
- // Fallback 1: Используем docker-compose ps CLI (если есть composeFile)
35
+ // Fallback 1: Use docker-compose ps CLI (if composeFile exists)
36
36
  if (composeFile && projectDir) {
37
37
  try {
38
38
  const { ComposeExec } = await import('../utils/compose-exec.js');
@@ -53,7 +53,7 @@ export class ContainerManager {
53
53
  .filter(c => c && c.Name);
54
54
  if (composeContainers.length > 0) {
55
55
  logger.debug(`Found ${composeContainers.length} containers via docker-compose ps`);
56
- // Получаем полную информацию о контейнерах через Docker API
56
+ // Get full container information via Docker API
57
57
  const containerNames = composeContainers.map(c => c.Name);
58
58
  const allContainers = await this.docker.listContainers({ all: true });
59
59
  const projectContainers = allContainers.filter(c => {
@@ -73,7 +73,7 @@ export class ContainerManager {
73
73
  logger.debug('Failed to use docker-compose ps:', error);
74
74
  }
75
75
  }
76
- // Fallback 2: Фильтр по имени проекта в названии контейнера
76
+ // Fallback 2: Filter by project name in container name
77
77
  logger.debug('Using name-based filter as final fallback');
78
78
  const containers = await this.docker.listContainers({
79
79
  all: true,
@@ -84,7 +84,7 @@ export class ContainerManager {
84
84
  return containers.map((c) => this.mapContainerInfo(c, projectName));
85
85
  }
86
86
  /**
87
- * Запустить контейнер
87
+ * Start container
88
88
  */
89
89
  async startContainer(serviceName, projectName, composeFile, projectDir) {
90
90
  const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
@@ -93,7 +93,7 @@ export class ContainerManager {
93
93
  logger.info(`Container ${serviceName} started successfully`);
94
94
  }
95
95
  /**
96
- * Остановить контейнер
96
+ * Stop container
97
97
  */
98
98
  async stopContainer(serviceName, projectName, timeout = 10, composeFile, projectDir) {
99
99
  const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
@@ -102,7 +102,7 @@ export class ContainerManager {
102
102
  logger.info(`Container ${serviceName} stopped successfully`);
103
103
  }
104
104
  /**
105
- * Перезапустить контейнер
105
+ * Restart container
106
106
  */
107
107
  async restartContainer(serviceName, projectName, timeout = 10, composeFile, projectDir) {
108
108
  const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
@@ -111,13 +111,13 @@ export class ContainerManager {
111
111
  logger.info(`Container ${serviceName} restarted successfully`);
112
112
  }
113
113
  /**
114
- * Получить логи контейнера
115
- * Возвращает string для обычного режима или stream для follow mode
114
+ * Get container logs
115
+ * Returns string for normal mode or stream for follow mode
116
116
  */
117
117
  async getLogs(serviceName, projectName, options = {}, composeFile, projectDir) {
118
118
  const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
119
119
  logger.debug(`Getting logs for: ${serviceName}`, options);
120
- // Если follow mode → возвращаем stream
120
+ // If follow mode → return stream
121
121
  if (options.follow) {
122
122
  logger.debug('Returning stream for follow mode');
123
123
  const logs = await container.logs({
@@ -130,7 +130,7 @@ export class ContainerManager {
130
130
  });
131
131
  return logs;
132
132
  }
133
- // Иначевозвращаем string
133
+ // Otherwisereturn string
134
134
  const logs = await container.logs({
135
135
  stdout: true,
136
136
  stderr: true,
@@ -139,17 +139,17 @@ export class ContainerManager {
139
139
  timestamps: options.timestamps || false,
140
140
  since: options.since,
141
141
  });
142
- // logs теперь Buffer, конвертируем в string
142
+ // logs is now Buffer, convert to string
143
143
  return Buffer.isBuffer(logs) ? logs.toString('utf-8') : logs.toString('utf-8');
144
144
  }
145
145
  /**
146
- * Получить health status контейнера
146
+ * Get container health status
147
147
  */
148
148
  async getHealthStatus(serviceName, projectName, composeFile, projectDir) {
149
149
  const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
150
150
  try {
151
151
  const info = await container.inspect();
152
- // Если контейнер не running
152
+ // If container is not running
153
153
  if (info.State.Status !== 'running') {
154
154
  return {
155
155
  status: 'not_running',
@@ -157,7 +157,7 @@ export class ContainerManager {
157
157
  failures: 0,
158
158
  };
159
159
  }
160
- // Если healthcheck не определён
160
+ // If healthcheck is not defined
161
161
  if (!info.State.Health) {
162
162
  return {
163
163
  status: 'none',
@@ -165,7 +165,7 @@ export class ContainerManager {
165
165
  failures: 0,
166
166
  };
167
167
  }
168
- // Healthcheck определён
168
+ // Healthcheck is defined
169
169
  const health = info.State.Health;
170
170
  const status = health.Status;
171
171
  return {
@@ -180,7 +180,7 @@ export class ContainerManager {
180
180
  }
181
181
  }
182
182
  /**
183
- * Выполнить команду в контейнере
183
+ * Execute command in container
184
184
  */
185
185
  async exec(serviceName, projectName, command, options = {}, composeFile, projectDir) {
186
186
  const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
@@ -210,7 +210,7 @@ export class ContainerManager {
210
210
  });
211
211
  }
212
212
  /**
213
- * Найти контейнер по имени сервиса
213
+ * Find container by service name
214
214
  */
215
215
  async findContainer(serviceName, projectName, composeFile, projectDir) {
216
216
  const containers = await this.listContainers(projectName, composeFile, projectDir);
@@ -223,12 +223,12 @@ export class ContainerManager {
223
223
  return this.docker.getContainer(found.id);
224
224
  }
225
225
  /**
226
- * Маппинг Docker ContainerInfo → наш формат
226
+ * Map Docker ContainerInfo → our format
227
227
  */
228
228
  mapContainerInfo(container, projectName, serviceNameOverride) {
229
- // Имя контейнера: /project_service_1 → извлекаем service
229
+ // Container name: /project_service_1 → extract service
230
230
  const fullName = container.Names[0]?.replace(/^\//, '') || '';
231
- // Приоритет: override → label → извлечение из имени
231
+ // Priority: override → label → extraction from name
232
232
  const serviceName = serviceNameOverride
233
233
  || container.Labels?.['com.docker.compose.service']
234
234
  || this.extractServiceName(fullName, projectName);
@@ -243,7 +243,7 @@ export class ContainerManager {
243
243
  };
244
244
  }
245
245
  /**
246
- * Извлекает порты из Docker container info
246
+ * Extract ports from Docker container info
247
247
  */
248
248
  extractPorts(ports) {
249
249
  if (!ports || ports.length === 0)
@@ -259,20 +259,132 @@ export class ContainerManager {
259
259
  }).filter((p) => p.length > 0);
260
260
  }
261
261
  /**
262
- * Извлекает имя сервиса из имени контейнера
262
+ * Extract service name from container name
263
263
  * project_service_1 → service
264
264
  * project-service-1 → service
265
265
  */
266
266
  extractServiceName(containerName, projectName) {
267
- // Убираем project name из начала
267
+ // Remove project name from beginning
268
268
  let name = containerName;
269
269
  if (name.startsWith(projectName)) {
270
270
  name = name.slice(projectName.length);
271
271
  }
272
- // Убираем разделители и номер в конце
272
+ // Remove separators and number at the end
273
273
  // project_service_1 → _service_1 → service_1 → service
274
274
  name = name.replace(/^[_-]/, '').replace(/[_-]\d+$/, '');
275
- return name || containerName; // Fallback на полное имя
275
+ return name || containerName; // Fallback to full name
276
+ }
277
+ /**
278
+ * List Docker images
279
+ */
280
+ async listImages() {
281
+ logger.debug('Listing Docker images');
282
+ try {
283
+ const images = await this.docker.listImages({ all: false });
284
+ return images.map((img) => ({
285
+ id: img.Id.replace('sha256:', '').slice(0, 12),
286
+ tags: img.RepoTags || ['<none>'],
287
+ size: img.Size,
288
+ created: new Date(img.Created * 1000).toISOString(),
289
+ }));
290
+ }
291
+ catch (error) {
292
+ logger.error('Failed to list images:', error);
293
+ throw new Error(`Failed to list Docker images: ${error.message}`);
294
+ }
295
+ }
296
+ /**
297
+ * List Docker volumes
298
+ */
299
+ async listVolumes() {
300
+ logger.debug('Listing Docker volumes');
301
+ try {
302
+ const result = await this.docker.listVolumes();
303
+ const volumes = result.Volumes || [];
304
+ return volumes.map((vol) => ({
305
+ name: vol.Name,
306
+ driver: vol.Driver,
307
+ mountpoint: vol.Mountpoint,
308
+ created: vol.CreatedAt || 'N/A',
309
+ }));
310
+ }
311
+ catch (error) {
312
+ logger.error('Failed to list volumes:', error);
313
+ throw new Error(`Failed to list Docker volumes: ${error.message}`);
314
+ }
315
+ }
316
+ /**
317
+ * List Docker networks
318
+ */
319
+ async listNetworks() {
320
+ logger.debug('Listing Docker networks');
321
+ try {
322
+ const networks = await this.docker.listNetworks();
323
+ return networks.map((net) => ({
324
+ id: net.Id.slice(0, 12),
325
+ name: net.Name,
326
+ driver: net.Driver,
327
+ scope: net.Scope,
328
+ created: net.Created || 'N/A',
329
+ }));
330
+ }
331
+ catch (error) {
332
+ logger.error('Failed to list networks:', error);
333
+ throw new Error(`Failed to list Docker networks: ${error.message}`);
334
+ }
335
+ }
336
+ /**
337
+ * Get container stats (CPU, Memory, Network, Block I/O)
338
+ */
339
+ async getContainerStats(serviceName, projectName, composeFile, projectDir) {
340
+ const container = await this.findContainer(serviceName, projectName, composeFile, projectDir);
341
+ logger.debug(`Getting stats for: ${serviceName}`);
342
+ try {
343
+ const stats = await container.stats({ stream: false });
344
+ // Calculate CPU percentage
345
+ const cpuDelta = stats.cpu_stats.cpu_usage.total_usage - stats.precpu_stats.cpu_usage.total_usage;
346
+ const systemDelta = stats.cpu_stats.system_cpu_usage - stats.precpu_stats.system_cpu_usage;
347
+ const cpuPercent = systemDelta > 0 && cpuDelta > 0
348
+ ? ((cpuDelta / systemDelta) * stats.cpu_stats.online_cpus * 100).toFixed(2)
349
+ : '0.00';
350
+ // Calculate memory usage
351
+ const memoryUsage = stats.memory_stats.usage || 0;
352
+ const memoryLimit = stats.memory_stats.limit || 0;
353
+ const memoryPercent = memoryLimit > 0
354
+ ? ((memoryUsage / memoryLimit) * 100).toFixed(2)
355
+ : '0.00';
356
+ // Format memory usage (MB)
357
+ const memoryUsageMB = (memoryUsage / 1024 / 1024).toFixed(2);
358
+ const memoryLimitMB = (memoryLimit / 1024 / 1024).toFixed(2);
359
+ // Network I/O
360
+ const networks = stats.networks || {};
361
+ let rxBytes = 0;
362
+ let txBytes = 0;
363
+ Object.values(networks).forEach((net) => {
364
+ rxBytes += net.rx_bytes || 0;
365
+ txBytes += net.tx_bytes || 0;
366
+ });
367
+ const netIO = `${(rxBytes / 1024 / 1024).toFixed(2)}MB / ${(txBytes / 1024 / 1024).toFixed(2)}MB`;
368
+ // Block I/O
369
+ const blkRead = stats.blkio_stats?.io_service_bytes_recursive?.find((item) => item.op === 'read')?.value || 0;
370
+ const blkWrite = stats.blkio_stats?.io_service_bytes_recursive?.find((item) => item.op === 'write')?.value || 0;
371
+ const blockIO = `${(blkRead / 1024 / 1024).toFixed(2)}MB / ${(blkWrite / 1024 / 1024).toFixed(2)}MB`;
372
+ const containerInfo = await container.inspect();
373
+ const containerName = containerInfo.Name.replace(/^\//, '');
374
+ return {
375
+ id: container.id.slice(0, 12),
376
+ name: containerName,
377
+ cpuPercent: `${cpuPercent}%`,
378
+ memoryUsage: `${memoryUsageMB}MB / ${memoryLimitMB}MB`,
379
+ memoryPercent: `${memoryPercent}%`,
380
+ netIO,
381
+ blockIO,
382
+ };
383
+ }
384
+ catch (error) {
385
+ logger.error(`Failed to get stats for ${serviceName}:`, error);
386
+ throw new Error(`Failed to get container stats: ${error.message}`);
387
+ }
276
388
  }
277
389
  }
278
390
  //# sourceMappingURL=container-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-manager.js","sourceRoot":"","sources":["../../src/managers/container-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-manager.js","sourceRoot":"","sources":["../../src/managers/container-manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Container Tools
3
- * MCP Tools для управления Docker контейнерами
3
+ * MCP Tools for Docker container management
4
4
  */
5
5
  import { CallToolRequest, Tool } from '@modelcontextprotocol/sdk/types.js';
6
6
  export declare class ContainerTools {
@@ -9,11 +9,11 @@ export declare class ContainerTools {
9
9
  private projectDiscovery;
10
10
  constructor();
11
11
  /**
12
- * Регистрация всех container tools
12
+ * Register all container tools
13
13
  */
14
14
  getTools(): Tool[];
15
15
  /**
16
- * Обработка вызова tool
16
+ * Handle tool call
17
17
  */
18
18
  handleCall(request: CallToolRequest): Promise<any>;
19
19
  private handleList;
@@ -23,8 +23,10 @@ export declare class ContainerTools {
23
23
  private handleLogs;
24
24
  private handleComposeUp;
25
25
  private handleComposeDown;
26
+ private handleResourceList;
27
+ private handleStats;
26
28
  /**
27
- * Helper: получить project config (auto-detect или explicit)
29
+ * Helper: get project config (auto-detect or explicit)
28
30
  */
29
31
  private getProject;
30
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-tools.d.ts","sourceRoot":"","sources":["../../src/tools/container-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACL,MAAM,oCAAoC,CAAC;AAM5C,qBAAa,cAAc;IACzB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAmB;;IAQ3C;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAuKlB;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;YA2C1C,UAAU;YAcV,WAAW;YAkBX,UAAU;YAwBV,aAAa;YAwBb,UAAU;YAyDV,eAAe;YAkBf,iBAAiB;IAiB/B;;OAEG;YACW,UAAU;CAKzB"}
1
+ {"version":3,"file":"container-tools.d.ts","sourceRoot":"","sources":["../../src/tools/container-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACL,MAAM,oCAAoC,CAAC;AAM5C,qBAAa,cAAc;IACzB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAmB;;IAQ3C;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAwMlB;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;YAiD1C,UAAU;YAcV,WAAW;YAkBX,UAAU;YAwBV,aAAa;YAwBb,UAAU;YAyDV,eAAe;YAkBf,iBAAiB;YAiBjB,kBAAkB;YA8BlB,WAAW;IAkBzB;;OAEG;YACW,UAAU;CAKzB"}