@nanocollective/nanocoder 1.16.5 → 1.17.1
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 +53 -19
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/app.d.ts +6 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +54 -18
- package/dist/app.js.map +1 -1
- package/dist/cli.js +13 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/mcp.d.ts +6 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +25 -3
- package/dist/commands/mcp.js.map +1 -1
- package/dist/components/vscode-extension-prompt.d.ts +12 -0
- package/dist/components/vscode-extension-prompt.d.ts.map +1 -0
- package/dist/components/vscode-extension-prompt.js +115 -0
- package/dist/components/vscode-extension-prompt.js.map +1 -0
- package/dist/hooks/useAppInitialization.d.ts +2 -0
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +55 -1
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +2 -1
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +13 -1
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/hooks/useToolHandler.js +11 -0
- package/dist/hooks/useToolHandler.js.map +1 -1
- package/dist/hooks/useVSCodeServer.d.ts +45 -0
- package/dist/hooks/useVSCodeServer.d.ts.map +1 -0
- package/dist/hooks/useVSCodeServer.js +144 -0
- package/dist/hooks/useVSCodeServer.js.map +1 -0
- package/dist/lsp/index.d.ts +12 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +11 -0
- package/dist/lsp/index.js.map +1 -0
- package/dist/lsp/lsp-client.d.ts +78 -0
- package/dist/lsp/lsp-client.d.ts.map +1 -0
- package/dist/lsp/lsp-client.js +378 -0
- package/dist/lsp/lsp-client.js.map +1 -0
- package/dist/lsp/lsp-client.spec.d.ts +2 -0
- package/dist/lsp/lsp-client.spec.d.ts.map +1 -0
- package/dist/lsp/lsp-client.spec.js +395 -0
- package/dist/lsp/lsp-client.spec.js.map +1 -0
- package/dist/lsp/lsp-manager.d.ts +124 -0
- package/dist/lsp/lsp-manager.d.ts.map +1 -0
- package/dist/lsp/lsp-manager.js +313 -0
- package/dist/lsp/lsp-manager.js.map +1 -0
- package/dist/lsp/lsp-manager.spec.d.ts +2 -0
- package/dist/lsp/lsp-manager.spec.d.ts.map +1 -0
- package/dist/lsp/lsp-manager.spec.js +388 -0
- package/dist/lsp/lsp-manager.spec.js.map +1 -0
- package/dist/lsp/protocol.d.ts +313 -0
- package/dist/lsp/protocol.d.ts.map +1 -0
- package/dist/lsp/protocol.js +70 -0
- package/dist/lsp/protocol.js.map +1 -0
- package/dist/lsp/protocol.spec.d.ts +2 -0
- package/dist/lsp/protocol.spec.d.ts.map +1 -0
- package/dist/lsp/protocol.spec.js +406 -0
- package/dist/lsp/protocol.spec.js.map +1 -0
- package/dist/lsp/server-discovery.d.ts +35 -0
- package/dist/lsp/server-discovery.d.ts.map +1 -0
- package/dist/lsp/server-discovery.js +291 -0
- package/dist/lsp/server-discovery.js.map +1 -0
- package/dist/lsp/server-discovery.spec.d.ts +2 -0
- package/dist/lsp/server-discovery.spec.d.ts.map +1 -0
- package/dist/lsp/server-discovery.spec.js +375 -0
- package/dist/lsp/server-discovery.spec.js.map +1 -0
- package/dist/mcp/mcp-client.d.ts +18 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +59 -23
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/mcp-client.spec.d.ts +2 -0
- package/dist/mcp/mcp-client.spec.d.ts.map +1 -0
- package/dist/mcp/mcp-client.spec.js +64 -0
- package/dist/mcp/mcp-client.spec.js.map +1 -0
- package/dist/mcp/transport-factory.d.ts +39 -0
- package/dist/mcp/transport-factory.d.ts.map +1 -0
- package/dist/mcp/transport-factory.js +176 -0
- package/dist/mcp/transport-factory.js.map +1 -0
- package/dist/mcp/transport-factory.spec.d.ts +2 -0
- package/dist/mcp/transport-factory.spec.d.ts.map +1 -0
- package/dist/mcp/transport-factory.spec.js +303 -0
- package/dist/mcp/transport-factory.spec.js.map +1 -0
- package/dist/tools/create-file.d.ts.map +1 -1
- package/dist/tools/create-file.js +37 -3
- package/dist/tools/create-file.js.map +1 -1
- package/dist/tools/delete-lines.d.ts.map +1 -1
- package/dist/tools/delete-lines.js +41 -1
- package/dist/tools/delete-lines.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insert-lines.d.ts.map +1 -1
- package/dist/tools/insert-lines.js +40 -1
- package/dist/tools/insert-lines.js.map +1 -1
- package/dist/tools/lsp-get-diagnostics.d.ts +3 -0
- package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -0
- package/dist/tools/lsp-get-diagnostics.js +182 -0
- package/dist/tools/lsp-get-diagnostics.js.map +1 -0
- package/dist/tools/replace-lines.d.ts.map +1 -1
- package/dist/tools/replace-lines.js +44 -1
- package/dist/tools/replace-lines.js.map +1 -1
- package/dist/tools/tool-manager.d.ts +17 -0
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +12 -0
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/types/config.d.ts +27 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/mcp.d.ts +23 -1
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/vscode/extension-installer.d.ts +24 -0
- package/dist/vscode/extension-installer.d.ts.map +1 -0
- package/dist/vscode/extension-installer.js +110 -0
- package/dist/vscode/extension-installer.js.map +1 -0
- package/dist/vscode/extension-installer.spec.d.ts +2 -0
- package/dist/vscode/extension-installer.spec.d.ts.map +1 -0
- package/dist/vscode/extension-installer.spec.js +132 -0
- package/dist/vscode/extension-installer.spec.js.map +1 -0
- package/dist/vscode/index.d.ts +14 -0
- package/dist/vscode/index.d.ts.map +1 -0
- package/dist/vscode/index.js +14 -0
- package/dist/vscode/index.js.map +1 -0
- package/dist/vscode/protocol.d.ts +101 -0
- package/dist/vscode/protocol.d.ts.map +1 -0
- package/dist/vscode/protocol.js +7 -0
- package/dist/vscode/protocol.js.map +1 -0
- package/dist/vscode/protocol.spec.d.ts +2 -0
- package/dist/vscode/protocol.spec.d.ts.map +1 -0
- package/dist/vscode/protocol.spec.js +354 -0
- package/dist/vscode/protocol.spec.js.map +1 -0
- package/dist/vscode/vscode-server.d.ts +118 -0
- package/dist/vscode/vscode-server.d.ts.map +1 -0
- package/dist/vscode/vscode-server.js +303 -0
- package/dist/vscode/vscode-server.js.map +1 -0
- package/dist/vscode/vscode-server.spec.d.ts +2 -0
- package/dist/vscode/vscode-server.spec.d.ts.map +1 -0
- package/dist/vscode/vscode-server.spec.js +487 -0
- package/dist/vscode/vscode-server.spec.js.map +1 -0
- package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
- package/dist/wizard/steps/mcp-step.js +139 -72
- package/dist/wizard/steps/mcp-step.js.map +1 -1
- package/dist/wizard/steps/summary-step.d.ts.map +1 -1
- package/dist/wizard/steps/summary-step.js +58 -2
- package/dist/wizard/steps/summary-step.js.map +1 -1
- package/dist/wizard/templates/mcp-templates.d.ts +20 -2
- package/dist/wizard/templates/mcp-templates.d.ts.map +1 -1
- package/dist/wizard/templates/mcp-templates.js +351 -7
- package/dist/wizard/templates/mcp-templates.js.map +1 -1
- package/dist/wizard/templates/mcp-templates.spec.js +257 -0
- package/dist/wizard/templates/mcp-templates.spec.js.map +1 -1
- package/dist/wizard/validation-array.spec.d.ts +2 -0
- package/dist/wizard/validation-array.spec.d.ts.map +1 -0
- package/dist/wizard/validation-array.spec.js +221 -0
- package/dist/wizard/validation-array.spec.js.map +1 -0
- package/dist/wizard/validation.d.ts +26 -1
- package/dist/wizard/validation.d.ts.map +1 -1
- package/dist/wizard/validation.js +15 -2
- package/dist/wizard/validation.js.map +1 -1
- package/dist/wizard/validation.spec.js +13 -5
- package/dist/wizard/validation.spec.js.map +1 -1
- package/package.json +7 -3
- package/source/app/prompts/main-prompt.md +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-discovery.spec.js","sourceRoot":"","sources":["../../source/lsp/server-discovery.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/mcp-client.d.ts
CHANGED
|
@@ -4,8 +4,14 @@ export declare class MCPClient {
|
|
|
4
4
|
private clients;
|
|
5
5
|
private transports;
|
|
6
6
|
private serverTools;
|
|
7
|
+
private serverConfigs;
|
|
7
8
|
private isConnected;
|
|
8
9
|
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Ensures backward compatibility for old MCP server configurations
|
|
12
|
+
* by adding default transport type for existing configurations
|
|
13
|
+
*/
|
|
14
|
+
private normalizeServerConfig;
|
|
9
15
|
connectToServer(server: MCPServer): Promise<void>;
|
|
10
16
|
connectToServers(servers: MCPServer[], onProgress?: (result: MCPInitResult) => void): Promise<MCPInitResult[]>;
|
|
11
17
|
getAllTools(): Tool[];
|
|
@@ -38,5 +44,17 @@ export declare class MCPClient {
|
|
|
38
44
|
getConnectedServers(): string[];
|
|
39
45
|
isServerConnected(serverName: string): boolean;
|
|
40
46
|
getServerTools(serverName: string): MCPTool[];
|
|
47
|
+
/**
|
|
48
|
+
* Gets server information including transport type and URL for remote servers
|
|
49
|
+
*/
|
|
50
|
+
getServerInfo(serverName: string): {
|
|
51
|
+
name: string;
|
|
52
|
+
transport: string;
|
|
53
|
+
url?: string;
|
|
54
|
+
toolCount: number;
|
|
55
|
+
connected: boolean;
|
|
56
|
+
description?: string;
|
|
57
|
+
tags?: string[];
|
|
58
|
+
} | undefined;
|
|
41
59
|
}
|
|
42
60
|
//# sourceMappingURL=mcp-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../source/mcp/mcp-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../source/mcp/mcp-client.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,IAAI,EAAuB,aAAa,EAAC,MAAM,eAAe,CAAC;AAK5E,OAAO,KAAK,EAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAErE,qBAAa,SAAS;IACrB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,WAAW,CAAkB;;IAIrC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAWvB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CjD,gBAAgB,CACrB,OAAO,EAAE,SAAS,EAAE,EACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAC1C,OAAO,CAAC,aAAa,EAAE,CAAC;IAuC3B,WAAW,IAAI,IAAI,EAAE;IAuCrB;;;OAGG;IACH,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAwBvD,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAC,CAAC;IAkBzE;;;;;;;;OAQG;IACH,cAAc,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,aAAa,CAAC;QACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAC5D,CAAC;IAmCI,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAAC,MAAM,CAAC;YA6BJ,eAAe;IAmCvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC,mBAAmB,IAAI,MAAM,EAAE;IAI/B,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE;IAI7C;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAC7B;QACA,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACf,GACD,SAAS;CAmBZ"}
|
package/dist/mcp/mcp-client.js
CHANGED
|
@@ -1,45 +1,57 @@
|
|
|
1
1
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
-
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
2
|
import { tool, jsonSchema } from '../types/index.js';
|
|
4
3
|
import { logInfo, logError } from '../utils/message-queue.js';
|
|
4
|
+
import { TransportFactory } from './transport-factory.js';
|
|
5
5
|
export class MCPClient {
|
|
6
6
|
clients = new Map();
|
|
7
7
|
transports = new Map();
|
|
8
8
|
serverTools = new Map();
|
|
9
|
+
serverConfigs = new Map();
|
|
9
10
|
isConnected = false;
|
|
10
11
|
constructor() { }
|
|
12
|
+
/**
|
|
13
|
+
* Ensures backward compatibility for old MCP server configurations
|
|
14
|
+
* by adding default transport type for existing configurations
|
|
15
|
+
*/
|
|
16
|
+
normalizeServerConfig(server) {
|
|
17
|
+
// If no transport is specified, default to 'stdio' for backward compatibility
|
|
18
|
+
if (!server.transport) {
|
|
19
|
+
return {
|
|
20
|
+
...server,
|
|
21
|
+
transport: 'stdio',
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return server;
|
|
25
|
+
}
|
|
11
26
|
async connectToServer(server) {
|
|
12
|
-
//
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
VERBOSE: '0',
|
|
22
|
-
},
|
|
23
|
-
stderr: 'ignore',
|
|
24
|
-
});
|
|
27
|
+
// Normalize server configuration for backward compatibility
|
|
28
|
+
const normalizedServer = this.normalizeServerConfig(server);
|
|
29
|
+
// Validate server configuration
|
|
30
|
+
const validation = TransportFactory.validateServerConfig(normalizedServer);
|
|
31
|
+
if (!validation.valid) {
|
|
32
|
+
throw new Error(`Invalid MCP server configuration for "${normalizedServer.name}": ${validation.errors.join(', ')}`);
|
|
33
|
+
}
|
|
34
|
+
// Create transport using the factory
|
|
35
|
+
const transport = TransportFactory.createTransport(normalizedServer);
|
|
25
36
|
// Create and connect client
|
|
26
37
|
const client = new Client({
|
|
27
38
|
name: 'nanocoder-mcp-client',
|
|
28
39
|
version: '1.0.0',
|
|
29
40
|
});
|
|
30
41
|
await client.connect(transport);
|
|
31
|
-
// Store client and
|
|
32
|
-
this.clients.set(
|
|
33
|
-
this.transports.set(
|
|
42
|
+
// Store client, transport, and server config
|
|
43
|
+
this.clients.set(normalizedServer.name, client);
|
|
44
|
+
this.transports.set(normalizedServer.name, transport);
|
|
45
|
+
this.serverConfigs.set(normalizedServer.name, normalizedServer);
|
|
34
46
|
// List available tools from this server
|
|
35
47
|
const toolsResult = await client.listTools();
|
|
36
48
|
const tools = toolsResult.tools.map(tool => ({
|
|
37
49
|
name: tool.name,
|
|
38
50
|
description: tool.description || undefined,
|
|
39
51
|
inputSchema: tool.inputSchema,
|
|
40
|
-
serverName:
|
|
52
|
+
serverName: normalizedServer.name,
|
|
41
53
|
}));
|
|
42
|
-
this.serverTools.set(
|
|
54
|
+
this.serverTools.set(normalizedServer.name, tools);
|
|
43
55
|
// Success - no console logging here, will be handled by app
|
|
44
56
|
}
|
|
45
57
|
async connectToServers(servers, onProgress) {
|
|
@@ -47,10 +59,12 @@ export class MCPClient {
|
|
|
47
59
|
// Connect to servers in parallel for better performance
|
|
48
60
|
const connectionPromises = servers.map(async (server) => {
|
|
49
61
|
try {
|
|
50
|
-
|
|
51
|
-
const
|
|
62
|
+
// Normalize server configuration for backward compatibility
|
|
63
|
+
const normalizedServer = this.normalizeServerConfig(server);
|
|
64
|
+
await this.connectToServer(normalizedServer);
|
|
65
|
+
const tools = this.serverTools.get(normalizedServer.name) || [];
|
|
52
66
|
const result = {
|
|
53
|
-
serverName:
|
|
67
|
+
serverName: normalizedServer.name,
|
|
54
68
|
success: true,
|
|
55
69
|
toolCount: tools.length,
|
|
56
70
|
};
|
|
@@ -59,8 +73,9 @@ export class MCPClient {
|
|
|
59
73
|
return result;
|
|
60
74
|
}
|
|
61
75
|
catch (error) {
|
|
76
|
+
const normalizedServer = this.normalizeServerConfig(server);
|
|
62
77
|
const result = {
|
|
63
|
-
serverName:
|
|
78
|
+
serverName: normalizedServer.name,
|
|
64
79
|
success: false,
|
|
65
80
|
error: error instanceof Error ? error.message : String(error),
|
|
66
81
|
};
|
|
@@ -229,6 +244,7 @@ export class MCPClient {
|
|
|
229
244
|
this.clients.clear();
|
|
230
245
|
this.transports.clear();
|
|
231
246
|
this.serverTools.clear();
|
|
247
|
+
this.serverConfigs.clear();
|
|
232
248
|
this.isConnected = false;
|
|
233
249
|
}
|
|
234
250
|
getConnectedServers() {
|
|
@@ -240,5 +256,25 @@ export class MCPClient {
|
|
|
240
256
|
getServerTools(serverName) {
|
|
241
257
|
return this.serverTools.get(serverName) || [];
|
|
242
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* Gets server information including transport type and URL for remote servers
|
|
261
|
+
*/
|
|
262
|
+
getServerInfo(serverName) {
|
|
263
|
+
const client = this.clients.get(serverName);
|
|
264
|
+
const serverConfig = this.serverConfigs.get(serverName);
|
|
265
|
+
const tools = this.serverTools.get(serverName) || [];
|
|
266
|
+
if (!client || !serverConfig) {
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
name: serverName,
|
|
271
|
+
transport: serverConfig.transport,
|
|
272
|
+
url: serverConfig.url,
|
|
273
|
+
toolCount: tools.length,
|
|
274
|
+
connected: true,
|
|
275
|
+
description: serverConfig.description,
|
|
276
|
+
tags: serverConfig.tags,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
243
279
|
}
|
|
244
280
|
//# sourceMappingURL=mcp-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../source/mcp/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../source/mcp/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client.spec.d.ts","sourceRoot":"","sources":["../../source/mcp/mcp-client.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import { MCPClient } from './mcp-client.js';
|
|
3
|
+
console.log(`\nmcp-client.spec.ts`);
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Tests for MCPClient - Transport Support
|
|
6
|
+
// ============================================================================
|
|
7
|
+
test('MCPClient: creates instance successfully', t => {
|
|
8
|
+
const client = new MCPClient();
|
|
9
|
+
t.truthy(client);
|
|
10
|
+
t.is(typeof client.getConnectedServers, 'function');
|
|
11
|
+
t.is(typeof client.getServerTools, 'function');
|
|
12
|
+
t.is(typeof client.getServerInfo, 'function');
|
|
13
|
+
t.is(typeof client.disconnect, 'function');
|
|
14
|
+
});
|
|
15
|
+
test('MCPClient: normalizeServerConfig adds default stdio transport', t => {
|
|
16
|
+
const client = new MCPClient();
|
|
17
|
+
const server = {
|
|
18
|
+
name: 'test-legacy',
|
|
19
|
+
command: 'node',
|
|
20
|
+
args: ['server.js'],
|
|
21
|
+
transport: undefined, // Legacy config
|
|
22
|
+
};
|
|
23
|
+
// Access private method via type assertion for testing
|
|
24
|
+
const normalizeServerConfig = client.normalizeServerConfig.bind(client);
|
|
25
|
+
const normalized = normalizeServerConfig(server);
|
|
26
|
+
t.is(normalized.transport, 'stdio');
|
|
27
|
+
t.is(normalized.name, 'test-legacy');
|
|
28
|
+
t.is(normalized.command, 'node');
|
|
29
|
+
t.deepEqual(normalized.args, ['server.js']);
|
|
30
|
+
});
|
|
31
|
+
test('MCPClient.getServerInfo: returns undefined for non-existent server', t => {
|
|
32
|
+
const client = new MCPClient();
|
|
33
|
+
const serverInfo = client.getServerInfo('non-existent');
|
|
34
|
+
t.is(serverInfo, undefined);
|
|
35
|
+
});
|
|
36
|
+
test('MCPClient: maintains backward compatibility with existing APIs', t => {
|
|
37
|
+
const client = new MCPClient();
|
|
38
|
+
// Test that all existing methods still exist and are callable
|
|
39
|
+
t.truthy(typeof client.getConnectedServers === 'function');
|
|
40
|
+
t.truthy(typeof client.getServerTools === 'function');
|
|
41
|
+
t.truthy(typeof client.getServerInfo === 'function');
|
|
42
|
+
t.truthy(typeof client.disconnect === 'function');
|
|
43
|
+
t.truthy(typeof client.callTool === 'function');
|
|
44
|
+
t.truthy(typeof client.getAllTools === 'function');
|
|
45
|
+
t.truthy(typeof client.getNativeToolsRegistry === 'function');
|
|
46
|
+
// Test that they return expected types
|
|
47
|
+
const connectedServers = client.getConnectedServers();
|
|
48
|
+
t.true(Array.isArray(connectedServers));
|
|
49
|
+
const serverTools = client.getServerTools('non-existent');
|
|
50
|
+
t.true(Array.isArray(serverTools));
|
|
51
|
+
});
|
|
52
|
+
test('MCPClient: getConnectedServers returns array', t => {
|
|
53
|
+
const client = new MCPClient();
|
|
54
|
+
const connectedServers = client.getConnectedServers();
|
|
55
|
+
t.true(Array.isArray(connectedServers));
|
|
56
|
+
});
|
|
57
|
+
test('MCPClient: isServerConnected returns false for non-existent servers', t => {
|
|
58
|
+
const client = new MCPClient();
|
|
59
|
+
// Should return false for any server that hasn't been connected
|
|
60
|
+
t.false(client.isServerConnected('non-existent-server'));
|
|
61
|
+
t.false(client.isServerConnected('another-server'));
|
|
62
|
+
t.false(client.isServerConnected(''));
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=mcp-client.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client.spec.js","sourceRoot":"","sources":["../../source/mcp/mcp-client.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
2
|
+
import { WebSocketClientTransport } from '@modelcontextprotocol/sdk/client/websocket.js';
|
|
3
|
+
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
4
|
+
import type { MCPServer, MCPTransportType } from '../types/mcp.js';
|
|
5
|
+
type ClientTransport = StdioClientTransport | WebSocketClientTransport | StreamableHTTPClientTransport;
|
|
6
|
+
/**
|
|
7
|
+
* Factory for creating MCP client transports based on server configuration
|
|
8
|
+
*/
|
|
9
|
+
export declare class TransportFactory {
|
|
10
|
+
/**
|
|
11
|
+
* Creates a transport instance for the given MCP server configuration
|
|
12
|
+
*/
|
|
13
|
+
static createTransport(server: MCPServer): ClientTransport;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a stdio transport for local MCP servers
|
|
16
|
+
*/
|
|
17
|
+
private static createStdioTransport;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a WebSocket transport for remote MCP servers
|
|
20
|
+
*/
|
|
21
|
+
private static createWebSocketTransport;
|
|
22
|
+
/**
|
|
23
|
+
* Creates an HTTP transport for remote MCP servers
|
|
24
|
+
*/
|
|
25
|
+
private static createHTTPTransport;
|
|
26
|
+
/**
|
|
27
|
+
* Validates the server configuration for the given transport type
|
|
28
|
+
*/
|
|
29
|
+
static validateServerConfig(server: MCPServer): {
|
|
30
|
+
valid: boolean;
|
|
31
|
+
errors: string[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Gets transport-specific configuration tips for users
|
|
35
|
+
*/
|
|
36
|
+
static getTransportTips(transportType: MCPTransportType): string[];
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=transport-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-factory.d.ts","sourceRoot":"","sources":["../../source/mcp/transport-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAC,6BAA6B,EAAC,MAAM,oDAAoD,CAAC;AACjG,OAAO,KAAK,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAGjE,KAAK,eAAe,GACjB,oBAAoB,GACpB,wBAAwB,GACxB,6BAA6B,CAAC;AAEjC;;GAEG;AACH,qBAAa,gBAAgB;IAC5B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe;IAoB1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAgBnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IA+BvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA6ClC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG;QAC/C,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KACjB;IA6DD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAgClE"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
2
|
+
import { WebSocketClientTransport } from '@modelcontextprotocol/sdk/client/websocket.js';
|
|
3
|
+
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
4
|
+
/**
|
|
5
|
+
* Factory for creating MCP client transports based on server configuration
|
|
6
|
+
*/
|
|
7
|
+
export class TransportFactory {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a transport instance for the given MCP server configuration
|
|
10
|
+
*/
|
|
11
|
+
static createTransport(server) {
|
|
12
|
+
switch (server.transport) {
|
|
13
|
+
case 'stdio':
|
|
14
|
+
return this.createStdioTransport(server);
|
|
15
|
+
case 'websocket':
|
|
16
|
+
return this.createWebSocketTransport(server);
|
|
17
|
+
case 'http':
|
|
18
|
+
return this.createHTTPTransport(server);
|
|
19
|
+
default: {
|
|
20
|
+
const _exhaustiveCheck = server.transport;
|
|
21
|
+
throw new Error(`Unsupported transport type: ${_exhaustiveCheck}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates a stdio transport for local MCP servers
|
|
27
|
+
*/
|
|
28
|
+
static createStdioTransport(server) {
|
|
29
|
+
if (!server.command) {
|
|
30
|
+
throw new Error(`MCP server "${server.name}" missing command for stdio transport`);
|
|
31
|
+
}
|
|
32
|
+
return new StdioClientTransport({
|
|
33
|
+
command: server.command,
|
|
34
|
+
args: server.args || [],
|
|
35
|
+
env: server.env
|
|
36
|
+
? { ...process.env, ...server.env }
|
|
37
|
+
: undefined,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates a WebSocket transport for remote MCP servers
|
|
42
|
+
*/
|
|
43
|
+
static createWebSocketTransport(server) {
|
|
44
|
+
if (!server.url) {
|
|
45
|
+
throw new Error(`MCP server "${server.name}" missing URL for websocket transport`);
|
|
46
|
+
}
|
|
47
|
+
const url = new URL(server.url);
|
|
48
|
+
// Validate WebSocket URL
|
|
49
|
+
if (!url.protocol.startsWith('ws')) {
|
|
50
|
+
throw new Error(`Invalid WebSocket URL protocol: ${url.protocol}. Expected ws:// or wss://`);
|
|
51
|
+
}
|
|
52
|
+
const transport = new WebSocketClientTransport(url);
|
|
53
|
+
// Note: The WebSocketClientTransport doesn't directly support headers in the current SDK
|
|
54
|
+
// Authentication would need to be handled at the protocol level or via URL parameters
|
|
55
|
+
if (server.auth) {
|
|
56
|
+
console.warn(`WebSocket transport for server "${server.name}" has auth config, but current SDK doesn't support headers for WebSocket transport`);
|
|
57
|
+
}
|
|
58
|
+
return transport;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates an HTTP transport for remote MCP servers
|
|
62
|
+
*/
|
|
63
|
+
static createHTTPTransport(server) {
|
|
64
|
+
if (!server.url) {
|
|
65
|
+
throw new Error(`MCP server "${server.name}" missing URL for http transport`);
|
|
66
|
+
}
|
|
67
|
+
const url = new URL(server.url);
|
|
68
|
+
// Validate HTTP URL
|
|
69
|
+
if (!url.protocol.startsWith('http')) {
|
|
70
|
+
throw new Error(`Invalid HTTP URL protocol: ${url.protocol}. Expected http:// or https://`);
|
|
71
|
+
}
|
|
72
|
+
// Note: The StreamableHTTPClientTransport doesn't directly support custom headers in the current SDK
|
|
73
|
+
// This would need to be handled via the MCP client or additional transport configuration
|
|
74
|
+
const transport = new StreamableHTTPClientTransport(url);
|
|
75
|
+
if (server.auth) {
|
|
76
|
+
console.warn(`HTTP transport for server "${server.name}" has auth config, but current SDK doesn't support custom headers for HTTP transport`);
|
|
77
|
+
}
|
|
78
|
+
// Check if headers are specified but cannot be used
|
|
79
|
+
if (server.headers) {
|
|
80
|
+
const headerKeys = Object.keys(server.headers);
|
|
81
|
+
if (headerKeys.length > 0) {
|
|
82
|
+
console.warn(`HTTP transport for server "${server.name}" has custom headers [${headerKeys.join(', ')}], but current SDK doesn't support custom headers for HTTP transport. These headers will be ignored.`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return transport;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Validates the server configuration for the given transport type
|
|
89
|
+
*/
|
|
90
|
+
static validateServerConfig(server) {
|
|
91
|
+
const errors = [];
|
|
92
|
+
switch (server.transport) {
|
|
93
|
+
case 'stdio':
|
|
94
|
+
if (!server.command) {
|
|
95
|
+
errors.push('stdio transport requires a command');
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
case 'websocket':
|
|
99
|
+
if (!server.url) {
|
|
100
|
+
errors.push('websocket transport requires a URL');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
try {
|
|
104
|
+
const url = new URL(server.url);
|
|
105
|
+
if (!url.protocol.startsWith('ws')) {
|
|
106
|
+
errors.push('websocket URL must use ws:// or wss:// protocol');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
errors.push('websocket URL is invalid');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case 'http':
|
|
115
|
+
if (!server.url) {
|
|
116
|
+
errors.push('http transport requires a URL');
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
try {
|
|
120
|
+
const url = new URL(server.url);
|
|
121
|
+
if (!url.protocol.startsWith('http')) {
|
|
122
|
+
errors.push('http URL must use http:// or https:// protocol');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
errors.push('http URL is invalid');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Warn if headers are specified but won't be used
|
|
130
|
+
if (server.headers) {
|
|
131
|
+
const headerKeys = Object.keys(server.headers);
|
|
132
|
+
if (headerKeys.length > 0) {
|
|
133
|
+
console.warn(`HTTP transport for server "${server.name}" has custom headers [${headerKeys.join(', ')}], but current SDK doesn't support custom headers for HTTP transport. These headers will be ignored.`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
valid: errors.length === 0,
|
|
140
|
+
errors,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Gets transport-specific configuration tips for users
|
|
145
|
+
*/
|
|
146
|
+
static getTransportTips(transportType) {
|
|
147
|
+
switch (transportType) {
|
|
148
|
+
case 'stdio':
|
|
149
|
+
return [
|
|
150
|
+
'Stdio transport spawns a local process',
|
|
151
|
+
'Requires a command and optional arguments',
|
|
152
|
+
'Environment variables can be passed to the process',
|
|
153
|
+
'Best for local MCP servers and tools',
|
|
154
|
+
];
|
|
155
|
+
case 'websocket':
|
|
156
|
+
return [
|
|
157
|
+
'WebSocket transport connects to remote MCP servers',
|
|
158
|
+
'Requires a ws:// or wss:// URL',
|
|
159
|
+
'Supports real-time bidirectional communication',
|
|
160
|
+
'Best for interactive remote services',
|
|
161
|
+
'Note: Custom headers are not currently supported by the SDK and will be ignored',
|
|
162
|
+
];
|
|
163
|
+
case 'http':
|
|
164
|
+
return [
|
|
165
|
+
'HTTP transport connects to remote MCP servers via REST API',
|
|
166
|
+
'Requires an http:// or https:// URL',
|
|
167
|
+
'Uses the StreamableHTTP protocol from MCP specification',
|
|
168
|
+
'Best for stateless remote services and APIs',
|
|
169
|
+
'Note: Custom headers are not currently supported by the SDK and will be ignored',
|
|
170
|
+
];
|
|
171
|
+
default:
|
|
172
|
+
return ['Unknown transport type'];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=transport-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-factory.js","sourceRoot":"","sources":["../../source/mcp/transport-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-factory.spec.d.ts","sourceRoot":"","sources":["../../source/mcp/transport-factory.spec.ts"],"names":[],"mappings":""}
|