@hypnosis/docker-mcp-server 1.2.1 → 1.3.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/README.md +12 -0
- package/dist/adapters/database-adapter.d.ts +9 -5
- package/dist/adapters/database-adapter.d.ts.map +1 -1
- package/dist/adapters/postgresql.d.ts +14 -5
- package/dist/adapters/postgresql.d.ts.map +1 -1
- package/dist/adapters/postgresql.js +36 -23
- package/dist/adapters/postgresql.js.map +1 -1
- package/dist/adapters/redis.d.ts +10 -1
- package/dist/adapters/redis.d.ts.map +1 -1
- package/dist/adapters/redis.js +10 -7
- package/dist/adapters/redis.js.map +1 -1
- package/dist/adapters/sqlite.d.ts +11 -1
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +11 -7
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/adapters/types.d.ts +7 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/discovery/compose-parser.d.ts.map +1 -1
- package/dist/discovery/compose-parser.js +4 -7
- package/dist/discovery/compose-parser.js.map +1 -1
- package/dist/discovery/project-discovery.d.ts.map +1 -1
- package/dist/discovery/project-discovery.js +4 -2
- package/dist/discovery/project-discovery.js.map +1 -1
- package/dist/index.js +15 -36
- package/dist/index.js.map +1 -1
- package/dist/managers/container-manager.d.ts +2 -0
- package/dist/managers/container-manager.d.ts.map +1 -1
- package/dist/managers/container-manager.js +10 -3
- package/dist/managers/container-manager.js.map +1 -1
- package/dist/tools/container-tools.d.ts +2 -10
- package/dist/tools/container-tools.d.ts.map +1 -1
- package/dist/tools/container-tools.js +50 -74
- package/dist/tools/container-tools.js.map +1 -1
- package/dist/tools/database-tools.d.ts +15 -1
- package/dist/tools/database-tools.d.ts.map +1 -1
- package/dist/tools/database-tools.js +124 -20
- package/dist/tools/database-tools.js.map +1 -1
- package/dist/tools/discovery-tools.d.ts +1 -8
- package/dist/tools/discovery-tools.d.ts.map +1 -1
- package/dist/tools/discovery-tools.js +9 -45
- package/dist/tools/discovery-tools.js.map +1 -1
- package/dist/tools/env-tools.d.ts +1 -7
- package/dist/tools/env-tools.d.ts.map +1 -1
- package/dist/tools/env-tools.js +35 -77
- package/dist/tools/env-tools.js.map +1 -1
- package/dist/tools/executor-tool.d.ts +0 -7
- package/dist/tools/executor-tool.d.ts.map +1 -1
- package/dist/tools/executor-tool.js +8 -45
- package/dist/tools/executor-tool.js.map +1 -1
- package/dist/tools/mcp-health-tool.d.ts +1 -3
- package/dist/tools/mcp-health-tool.d.ts.map +1 -1
- package/dist/tools/mcp-health-tool.js +24 -18
- package/dist/tools/mcp-health-tool.js.map +1 -1
- package/dist/tools/profile-tool.d.ts +5 -12
- package/dist/tools/profile-tool.d.ts.map +1 -1
- package/dist/tools/profile-tool.js +12 -33
- package/dist/tools/profile-tool.js.map +1 -1
- package/dist/utils/docker-client.d.ts +9 -1
- package/dist/utils/docker-client.d.ts.map +1 -1
- package/dist/utils/docker-client.js +30 -3
- package/dist/utils/docker-client.js.map +1 -1
- package/dist/utils/profile-resolver.d.ts +58 -0
- package/dist/utils/profile-resolver.d.ts.map +1 -0
- package/dist/utils/profile-resolver.js +218 -0
- package/dist/utils/profile-resolver.js.map +1 -0
- package/dist/utils/remote-compose.d.ts +32 -0
- package/dist/utils/remote-compose.d.ts.map +1 -0
- package/dist/utils/remote-compose.js +69 -0
- package/dist/utils/remote-compose.js.map +1 -0
- package/dist/utils/schema-helpers.d.ts +96 -0
- package/dist/utils/schema-helpers.d.ts.map +1 -0
- package/dist/utils/schema-helpers.js +61 -0
- package/dist/utils/schema-helpers.js.map +1 -0
- package/dist/utils/ssh-exec.d.ts.map +1 -1
- package/dist/utils/ssh-exec.js +5 -2
- package/dist/utils/ssh-exec.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/env-tools.js
CHANGED
|
@@ -9,17 +9,15 @@ import { ComposeParser } from '../discovery/compose-parser.js';
|
|
|
9
9
|
import { ComposeExec } from '../utils/compose-exec.js';
|
|
10
10
|
import { stringify as stringifyYaml, parse as parseYaml } from 'yaml';
|
|
11
11
|
import { logger } from '../utils/logger.js';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { resolveSSHConfig } from '../utils/profile-resolver.js';
|
|
13
|
+
import { readRemoteComposeFile, readRemoteComposeContent } from '../utils/remote-compose.js';
|
|
14
14
|
export class EnvTools {
|
|
15
|
+
// ❗ АРХИТЕКТУРА: Managers НЕ хранятся в конструкторе
|
|
16
|
+
// Они создаются при каждом вызове с правильным sshConfig из args.profile
|
|
15
17
|
envManager;
|
|
16
|
-
projectDiscovery;
|
|
17
|
-
containerManager;
|
|
18
18
|
composeParser;
|
|
19
19
|
constructor() {
|
|
20
20
|
this.envManager = new EnvManager();
|
|
21
|
-
this.projectDiscovery = new ProjectDiscovery();
|
|
22
|
-
this.containerManager = new ContainerManager();
|
|
23
21
|
this.composeParser = new ComposeParser();
|
|
24
22
|
}
|
|
25
23
|
/**
|
|
@@ -35,7 +33,7 @@ export class EnvTools {
|
|
|
35
33
|
properties: {
|
|
36
34
|
profile: {
|
|
37
35
|
type: 'string',
|
|
38
|
-
description: 'Profile name from
|
|
36
|
+
description: 'Profile name from DOCKER_PROFILES environment variable (default: uses default profile)',
|
|
39
37
|
},
|
|
40
38
|
project: {
|
|
41
39
|
type: 'string',
|
|
@@ -61,7 +59,7 @@ export class EnvTools {
|
|
|
61
59
|
properties: {
|
|
62
60
|
profile: {
|
|
63
61
|
type: 'string',
|
|
64
|
-
description: 'Profile name from
|
|
62
|
+
description: 'Profile name from DOCKER_PROFILES environment variable (default: uses default profile)',
|
|
65
63
|
},
|
|
66
64
|
project: {
|
|
67
65
|
type: 'string',
|
|
@@ -90,7 +88,7 @@ export class EnvTools {
|
|
|
90
88
|
properties: {
|
|
91
89
|
profile: {
|
|
92
90
|
type: 'string',
|
|
93
|
-
description: 'Profile name from
|
|
91
|
+
description: 'Profile name from DOCKER_PROFILES environment variable (default: uses default profile)',
|
|
94
92
|
},
|
|
95
93
|
project: {
|
|
96
94
|
type: 'string',
|
|
@@ -140,53 +138,34 @@ export class EnvTools {
|
|
|
140
138
|
}
|
|
141
139
|
/**
|
|
142
140
|
* Get project (helper)
|
|
141
|
+
* Reads and parses remote docker-compose.yml if SSH config provided
|
|
143
142
|
*/
|
|
144
|
-
async getProject(projectName) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
*/
|
|
151
|
-
getSSHConfigForProfile(profile) {
|
|
152
|
-
if (!profile) {
|
|
153
|
-
return null; // Local Docker
|
|
154
|
-
}
|
|
155
|
-
// Load profile configuration
|
|
156
|
-
const profilesFile = process.env.DOCKER_MCP_PROFILES_FILE;
|
|
157
|
-
if (!profilesFile) {
|
|
158
|
-
logger.warn('DOCKER_MCP_PROFILES_FILE not set, using local Docker');
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
try {
|
|
162
|
-
const fileResult = loadProfilesFile(profilesFile);
|
|
163
|
-
if (fileResult.errors.length > 0 || !fileResult.config) {
|
|
164
|
-
logger.warn(`Failed to load profiles file: ${fileResult.errors.join(', ')}`);
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
const profileData = fileResult.config.profiles[profile];
|
|
168
|
-
if (!profileData) {
|
|
169
|
-
logger.warn(`Profile "${profile}" not found, using local Docker`);
|
|
170
|
-
return null;
|
|
143
|
+
async getProject(projectName, sshConfig) {
|
|
144
|
+
// If SSH config provided (remote mode), read remote compose file
|
|
145
|
+
if (sshConfig) {
|
|
146
|
+
let finalProjectName;
|
|
147
|
+
if (projectName) {
|
|
148
|
+
finalProjectName = projectName;
|
|
171
149
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
150
|
+
else {
|
|
151
|
+
// Use working directory name as fallback
|
|
152
|
+
const cwd = process.cwd();
|
|
153
|
+
finalProjectName = cwd.split('/').pop() || 'docker-mcp-server';
|
|
175
154
|
}
|
|
176
|
-
//
|
|
177
|
-
|
|
178
|
-
return sshConfig;
|
|
179
|
-
}
|
|
180
|
-
catch (error) {
|
|
181
|
-
logger.warn(`Failed to load profile "${profile}": ${error.message}`);
|
|
182
|
-
return null;
|
|
155
|
+
// ✅ FIX BUG-006: Read and parse remote docker-compose.yml
|
|
156
|
+
logger.info(`Reading remote compose file for project: ${finalProjectName}`);
|
|
157
|
+
return await readRemoteComposeFile(finalProjectName, sshConfig);
|
|
183
158
|
}
|
|
159
|
+
// Local mode: use local discovery
|
|
160
|
+
const projectDiscovery = new ProjectDiscovery();
|
|
161
|
+
return await projectDiscovery.findProject(projectName ? { explicitProjectName: projectName } : {});
|
|
184
162
|
}
|
|
185
163
|
/**
|
|
186
164
|
* docker_env_list handler
|
|
187
165
|
*/
|
|
188
166
|
async handleEnvList(args) {
|
|
189
|
-
const
|
|
167
|
+
const sshConfig = resolveSSHConfig(args);
|
|
168
|
+
const project = await this.getProject(args?.project, sshConfig);
|
|
190
169
|
// If service is specified, load env for specific service
|
|
191
170
|
let env;
|
|
192
171
|
if (args?.service) {
|
|
@@ -252,7 +231,7 @@ export class EnvTools {
|
|
|
252
231
|
*/
|
|
253
232
|
async handleComposeConfig(args) {
|
|
254
233
|
const shouldResolve = args?.resolve === true;
|
|
255
|
-
const sshConfig =
|
|
234
|
+
const sshConfig = resolveSSHConfig(args);
|
|
256
235
|
// Determine project name
|
|
257
236
|
let projectName;
|
|
258
237
|
let project;
|
|
@@ -271,38 +250,17 @@ export class EnvTools {
|
|
|
271
250
|
}
|
|
272
251
|
else {
|
|
273
252
|
// Local mode: use local discovery
|
|
274
|
-
project = await this.getProject(args?.project);
|
|
253
|
+
project = await this.getProject(args?.project, sshConfig);
|
|
275
254
|
projectName = project.name;
|
|
276
255
|
}
|
|
277
256
|
let composeFile = project.composeFile || '';
|
|
278
257
|
let composeContent = null;
|
|
279
258
|
// PRIORITY: If profile is specified, read REMOTE file FIRST
|
|
280
259
|
if (sshConfig) {
|
|
281
|
-
//
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
`${projectsPath}/${projectName}/compose.yml`,
|
|
286
|
-
];
|
|
287
|
-
for (const remoteComposePath of possiblePaths) {
|
|
288
|
-
try {
|
|
289
|
-
logger.debug(`Trying to read remote compose file: ${remoteComposePath}`);
|
|
290
|
-
composeContent = await readRemoteFile(remoteComposePath, {
|
|
291
|
-
sshConfig,
|
|
292
|
-
timeout: 30000,
|
|
293
|
-
});
|
|
294
|
-
composeFile = remoteComposePath;
|
|
295
|
-
logger.debug(`Successfully read remote compose file from: ${remoteComposePath}`);
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
catch (error) {
|
|
299
|
-
logger.warn(`Failed to read from ${remoteComposePath}: ${error.message}`);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
if (!composeContent) {
|
|
303
|
-
throw new Error(`Remote compose file not found for project '${projectName}' in ${projectsPath}. ` +
|
|
304
|
-
`Tried: docker-compose.yml, compose.yml`);
|
|
305
|
-
}
|
|
260
|
+
// ✅ FIX: Use unified remote compose reader (no duplication)
|
|
261
|
+
const remoteResult = await readRemoteComposeContent(projectName, sshConfig);
|
|
262
|
+
composeContent = remoteResult.content;
|
|
263
|
+
composeFile = remoteResult.filePath;
|
|
306
264
|
}
|
|
307
265
|
else {
|
|
308
266
|
// Local mode: use local file
|
|
@@ -380,9 +338,9 @@ export class EnvTools {
|
|
|
380
338
|
* docker_healthcheck handler
|
|
381
339
|
*/
|
|
382
340
|
async handleHealthcheck(args) {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
const
|
|
341
|
+
// Get SSH config for profile first
|
|
342
|
+
const sshConfig = resolveSSHConfig(args);
|
|
343
|
+
const project = await this.getProject(args?.project, sshConfig);
|
|
386
344
|
const containerManager = new ContainerManager(sshConfig);
|
|
387
345
|
// Получить список всех контейнеров
|
|
388
346
|
const containers = await containerManager.listContainers(project.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-tools.js","sourceRoot":"","sources":["../../src/tools/env-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env-tools.js","sourceRoot":"","sources":["../../src/tools/env-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Tool, CallToolRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
6
6
|
export declare class ExecutorTool {
|
|
7
|
-
private containerManager;
|
|
8
|
-
private projectDiscovery;
|
|
9
7
|
constructor();
|
|
10
8
|
getTool(): Tool;
|
|
11
9
|
handleCall(request: CallToolRequest): Promise<any>;
|
|
@@ -14,10 +12,5 @@ export declare class ExecutorTool {
|
|
|
14
12
|
* TODO: improve for quoted strings in the future
|
|
15
13
|
*/
|
|
16
14
|
private parseCommand;
|
|
17
|
-
/**
|
|
18
|
-
* Helper: get SSH config for profile
|
|
19
|
-
* Returns null for local profile or undefined profile
|
|
20
|
-
*/
|
|
21
|
-
private getSSHConfigForProfile;
|
|
22
15
|
}
|
|
23
16
|
//# sourceMappingURL=executor-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-tool.d.ts","sourceRoot":"","sources":["../../src/tools/executor-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"executor-tool.d.ts","sourceRoot":"","sources":["../../src/tools/executor-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAO3E,qBAAa,YAAY;;IAOvB,OAAO,IAAI,IAAI;IA0CT,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAwExD;;;OAGG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import { ContainerManager } from '../managers/container-manager.js';
|
|
6
6
|
import { ProjectDiscovery } from '../discovery/project-discovery.js';
|
|
7
7
|
import { logger } from '../utils/logger.js';
|
|
8
|
+
import { resolveSSHConfig } from '../utils/profile-resolver.js';
|
|
8
9
|
export class ExecutorTool {
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
// ❗ АРХИТЕКТУРА: Managers НЕ хранятся в конструкторе
|
|
11
|
+
// Они создаются при каждом вызове с правильным sshConfig из args.profile
|
|
11
12
|
constructor() {
|
|
12
|
-
|
|
13
|
-
this.projectDiscovery = new ProjectDiscovery();
|
|
13
|
+
// No shared state - managers created per request
|
|
14
14
|
}
|
|
15
15
|
getTool() {
|
|
16
16
|
return {
|
|
@@ -25,7 +25,7 @@ export class ExecutorTool {
|
|
|
25
25
|
},
|
|
26
26
|
profile: {
|
|
27
27
|
type: 'string',
|
|
28
|
-
description: 'Profile name from
|
|
28
|
+
description: 'Profile name from DOCKER_PROFILES environment variable (default: uses default profile)',
|
|
29
29
|
},
|
|
30
30
|
command: {
|
|
31
31
|
type: 'string',
|
|
@@ -60,9 +60,10 @@ export class ExecutorTool {
|
|
|
60
60
|
throw new Error('service and command parameters are required');
|
|
61
61
|
}
|
|
62
62
|
// Get SSH config for profile
|
|
63
|
-
const sshConfig =
|
|
63
|
+
const sshConfig = resolveSSHConfig(args);
|
|
64
64
|
const containerManager = new ContainerManager(sshConfig);
|
|
65
|
-
const
|
|
65
|
+
const projectDiscovery = new ProjectDiscovery();
|
|
66
|
+
const project = await projectDiscovery.findProject(args.project ? { explicitProjectName: args.project } : {});
|
|
66
67
|
// Auto-detect working_dir from docker-compose.yml if not specified
|
|
67
68
|
let workdir = args.workdir;
|
|
68
69
|
if (!workdir && project.services[args.service]?.working_dir) {
|
|
@@ -108,43 +109,5 @@ export class ExecutorTool {
|
|
|
108
109
|
// In the future, can add support for quoted strings
|
|
109
110
|
return command.split(' ').filter((s) => s.length > 0);
|
|
110
111
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Helper: get SSH config for profile
|
|
113
|
-
* Returns null for local profile or undefined profile
|
|
114
|
-
*/
|
|
115
|
-
getSSHConfigForProfile(profile) {
|
|
116
|
-
if (!profile) {
|
|
117
|
-
return null; // Local Docker
|
|
118
|
-
}
|
|
119
|
-
// Load profile configuration
|
|
120
|
-
const profilesFile = process.env.DOCKER_MCP_PROFILES_FILE;
|
|
121
|
-
if (!profilesFile) {
|
|
122
|
-
logger.warn('DOCKER_MCP_PROFILES_FILE not set, using local Docker');
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
try {
|
|
126
|
-
const { loadProfilesFile, profileDataToSSHConfig } = require('../utils/profiles-file.js');
|
|
127
|
-
const fileResult = loadProfilesFile(profilesFile);
|
|
128
|
-
if (fileResult.errors.length > 0 || !fileResult.config) {
|
|
129
|
-
logger.warn(`Failed to load profiles file: ${fileResult.errors.join(', ')}`);
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
const profileData = fileResult.config.profiles[profile];
|
|
133
|
-
if (!profileData) {
|
|
134
|
-
logger.warn(`Profile "${profile}" not found, using local Docker`);
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
// Check if local mode
|
|
138
|
-
if (profileData.mode === 'local') {
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
// Convert to SSHConfig
|
|
142
|
-
return profileDataToSSHConfig(profileData);
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
logger.warn(`Failed to load profile "${profile}": ${error.message}`);
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
112
|
}
|
|
150
113
|
//# sourceMappingURL=executor-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-tool.js","sourceRoot":"","sources":["../../src/tools/executor-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor-tool.js","sourceRoot":"","sources":["../../src/tools/executor-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
* MCP server self-diagnostics
|
|
4
4
|
*/
|
|
5
5
|
import { CallToolRequest, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
-
import type { SSHConfig } from '../utils/ssh-config.js';
|
|
7
6
|
export declare class MCPHealthTool {
|
|
8
|
-
|
|
9
|
-
constructor(sshConfig?: SSHConfig | null);
|
|
7
|
+
constructor();
|
|
10
8
|
/**
|
|
11
9
|
* Register health tool
|
|
12
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-health-tool.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-health-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACL,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-health-tool.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-health-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACL,MAAM,oCAAoC,CAAC;AAO5C,qBAAa,aAAa;;IAKxB;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,eAAe;;;;;;;;;;;;;IA0BzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC;QACrB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;QAC7C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC;gBACxB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;aAC3B,CAAC;YACF,GAAG,CAAC,EAAE;gBACJ,MAAM,EAAE,IAAI,GAAG,gBAAgB,CAAC;gBAChC,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,YAAY,CAAC,EAAE,OAAO,CAAC;aACxB,CAAC;YACF,SAAS,EAAE;gBACT,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC;gBACxB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,YAAY,CAAC,EAAE,OAAO,CAAC;gBACvB,WAAW,CAAC,EAAE,MAAM,CAAC;aACtB,CAAC;YACF,QAAQ,EAAE;gBACR,MAAM,EAAE,IAAI,CAAC;gBACb,UAAU,EAAE,MAAM,EAAE,CAAC;gBACrB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;gBACb,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;YACF,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC;gBACjB,SAAS,EAAE,MAAM,CAAC;gBAClB,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;SACH,CAAC;KACH,CAAC;CA0GH"}
|
|
@@ -8,9 +8,8 @@ import { adapterRegistry } from '../adapters/adapter-registry.js';
|
|
|
8
8
|
import { projectConfigCache } from '../utils/cache.js';
|
|
9
9
|
import { logger } from '../utils/logger.js';
|
|
10
10
|
export class MCPHealthTool {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.sshConfig = sshConfig || null;
|
|
11
|
+
constructor() {
|
|
12
|
+
// SSH config is resolved dynamically per-tool call via resolveSSHConfig()
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* Register health tool
|
|
@@ -58,36 +57,43 @@ export class MCPHealthTool {
|
|
|
58
57
|
*/
|
|
59
58
|
async check() {
|
|
60
59
|
const checks = {};
|
|
61
|
-
// 1. Docker Connection
|
|
60
|
+
// 1. Docker Connection (local only at startup)
|
|
62
61
|
try {
|
|
63
62
|
const start = Date.now();
|
|
64
|
-
const docker = getDockerClient();
|
|
63
|
+
const docker = getDockerClient(null); // Local Docker only
|
|
65
64
|
await docker.ping();
|
|
66
65
|
const latency = Date.now() - start;
|
|
67
66
|
checks.docker = {
|
|
68
67
|
status: 'ok',
|
|
69
68
|
latency,
|
|
70
|
-
mode:
|
|
69
|
+
mode: 'local',
|
|
71
70
|
};
|
|
72
71
|
}
|
|
73
72
|
catch (error) {
|
|
74
73
|
checks.docker = {
|
|
75
74
|
status: 'failed',
|
|
76
|
-
message: error.message || 'Docker connection failed',
|
|
77
|
-
mode:
|
|
75
|
+
message: error.message || 'Local Docker connection failed',
|
|
76
|
+
mode: 'local',
|
|
78
77
|
};
|
|
79
78
|
}
|
|
80
|
-
// 2. SSH Status (
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
79
|
+
// 2. SSH Status (profiles loaded from DOCKER_PROFILES ENV)
|
|
80
|
+
try {
|
|
81
|
+
const { getAvailableProfiles, getDefaultProfile } = await import('../utils/profile-resolver.js');
|
|
82
|
+
const profiles = getAvailableProfiles();
|
|
83
|
+
const defaultProfile = getDefaultProfile();
|
|
84
|
+
if (profiles.length > 0 && defaultProfile !== 'local') {
|
|
85
|
+
checks.ssh = {
|
|
86
|
+
status: 'configured', // Profiles available but connection tested per-tool
|
|
87
|
+
message: `${profiles.length} profile(s) configured, default: ${defaultProfile}`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
checks.ssh = {
|
|
92
|
+
status: 'not_configured',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
89
95
|
}
|
|
90
|
-
|
|
96
|
+
catch (error) {
|
|
91
97
|
checks.ssh = {
|
|
92
98
|
status: 'not_configured',
|
|
93
99
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-health-tool.js","sourceRoot":"","sources":["../../src/tools/mcp-health-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-health-tool.js","sourceRoot":"","sources":["../../src/tools/mcp-health-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
* Show and manage SSH profiles
|
|
4
4
|
*/
|
|
5
5
|
import { CallToolRequest, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
-
import type { SSHConfig } from '../utils/ssh-config.js';
|
|
7
6
|
export declare class ProfileTool {
|
|
8
|
-
|
|
9
|
-
private profilesFile;
|
|
10
|
-
constructor(sshConfig?: SSHConfig | null, profilesFile?: string);
|
|
7
|
+
constructor();
|
|
11
8
|
/**
|
|
12
9
|
* Register profile tool
|
|
13
10
|
*/
|
|
@@ -33,14 +30,10 @@ export declare class ProfileTool {
|
|
|
33
30
|
*/
|
|
34
31
|
getProfileInfo(): Promise<{
|
|
35
32
|
mode: 'local' | 'remote';
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
};
|
|
41
|
-
profilesFile?: string;
|
|
42
|
-
availableProfiles?: string[];
|
|
43
|
-
defaultProfile?: string;
|
|
33
|
+
availableProfiles: string[];
|
|
34
|
+
defaultProfile: string;
|
|
35
|
+
source: string;
|
|
36
|
+
DOCKER_PROFILES_configured: boolean;
|
|
44
37
|
}>;
|
|
45
38
|
}
|
|
46
39
|
//# sourceMappingURL=profile-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-tool.d.ts","sourceRoot":"","sources":["../../src/tools/profile-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACL,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"profile-tool.d.ts","sourceRoot":"","sources":["../../src/tools/profile-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EACL,MAAM,oCAAoC,CAAC;AAI5C,qBAAa,WAAW;;IAKtB;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,eAAe;;;;;;;;;;;;;IA0BzC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,0BAA0B,EAAE,OAAO,CAAC;KACrC,CAAC;CAgBH"}
|
|
@@ -3,13 +3,10 @@
|
|
|
3
3
|
* Show and manage SSH profiles
|
|
4
4
|
*/
|
|
5
5
|
import { logger } from '../utils/logger.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getAvailableProfiles, getDefaultProfile } from '../utils/profile-resolver.js';
|
|
7
7
|
export class ProfileTool {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
constructor(sshConfig, profilesFile) {
|
|
11
|
-
this.sshConfig = sshConfig || null;
|
|
12
|
-
this.profilesFile = profilesFile;
|
|
8
|
+
constructor() {
|
|
9
|
+
// SSH config is resolved per-tool call via resolveSSHConfig()
|
|
13
10
|
}
|
|
14
11
|
/**
|
|
15
12
|
* Register profile tool
|
|
@@ -56,35 +53,17 @@ export class ProfileTool {
|
|
|
56
53
|
* Get profile information
|
|
57
54
|
*/
|
|
58
55
|
async getProfileInfo() {
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
// Remote mode
|
|
56
|
+
// Load profiles from DOCKER_PROFILES ENV
|
|
57
|
+
const profiles = getAvailableProfiles();
|
|
58
|
+
const defaultProfile = getDefaultProfile();
|
|
59
|
+
const hasProfiles = profiles.length > 0 && (process.env.DOCKER_PROFILES || process.env.DOCKER_PROFILES_FILE);
|
|
66
60
|
const result = {
|
|
67
|
-
mode: 'remote',
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
},
|
|
61
|
+
mode: (hasProfiles && defaultProfile !== 'local' ? 'remote' : 'local'),
|
|
62
|
+
availableProfiles: profiles,
|
|
63
|
+
defaultProfile: defaultProfile,
|
|
64
|
+
source: process.env.DOCKER_PROFILES_FILE ? 'DOCKER_PROFILES_FILE' : 'DOCKER_PROFILES_ENV',
|
|
65
|
+
DOCKER_PROFILES_configured: !!(process.env.DOCKER_PROFILES || process.env.DOCKER_PROFILES_FILE),
|
|
73
66
|
};
|
|
74
|
-
// Load profiles file if available
|
|
75
|
-
if (this.profilesFile) {
|
|
76
|
-
result.profilesFile = this.profilesFile;
|
|
77
|
-
try {
|
|
78
|
-
const profilesResult = loadProfilesFile(this.profilesFile);
|
|
79
|
-
if (profilesResult.config) {
|
|
80
|
-
result.availableProfiles = Object.keys(profilesResult.config.profiles);
|
|
81
|
-
result.defaultProfile = profilesResult.config.default;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
logger.warn(`Failed to load profiles file: ${error.message}`);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
67
|
return result;
|
|
89
68
|
}
|
|
90
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-tool.js","sourceRoot":"","sources":["../../src/tools/profile-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"profile-tool.js","sourceRoot":"","sources":["../../src/tools/profile-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,MAAM,OAAO,WAAW;IACtB;QACE,8DAA8D;IAChE,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,iDAAiD;YAC9D,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAwB;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;qBACpC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;qBAChC;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAOlB,yCAAyC;QACzC,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAE7G,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,CAAC,WAAW,IAAI,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAuB;YAC5F,iBAAiB,EAAE,QAAQ;YAC3B,cAAc,EAAE,cAAc;YAC9B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB;YACzF,0BAA0B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;SAChG,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -10,12 +10,20 @@ import type { SSHConfig } from './ssh-config.js';
|
|
|
10
10
|
export declare class DockerClient {
|
|
11
11
|
private docker;
|
|
12
12
|
private sshConfig;
|
|
13
|
-
|
|
13
|
+
readonly isRemote: boolean;
|
|
14
14
|
private activeSocketPath;
|
|
15
15
|
private sshProcessPid;
|
|
16
16
|
private tunnelCreationLock;
|
|
17
17
|
private tunnelHealthCheckInterval;
|
|
18
18
|
constructor(sshConfig?: SSHConfig | null);
|
|
19
|
+
/**
|
|
20
|
+
* Get SSH config for comparison
|
|
21
|
+
*/
|
|
22
|
+
getSSHConfig(): SSHConfig | null;
|
|
23
|
+
/**
|
|
24
|
+
* Get SSH host for identification
|
|
25
|
+
*/
|
|
26
|
+
getSSHHost(): string | null;
|
|
19
27
|
/**
|
|
20
28
|
* Cleanup SSH tunnel (called on shutdown)
|
|
21
29
|
*/
|