@slbdn/mcp-tester 1.2.0 → 1.4.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/CHANGELOG.md +108 -0
- package/README.md +160 -7
- package/dist/cli/index.js +382 -62
- package/dist/cli/index.js.map +1 -1
- package/dist/client/MCPClient.d.ts +187 -10
- package/dist/client/MCPClient.d.ts.map +1 -1
- package/dist/client/MCPClient.js +270 -50
- package/dist/client/MCPClient.js.map +1 -1
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/validation.d.ts +52 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +326 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +8 -6
package/dist/client/MCPClient.js
CHANGED
|
@@ -1,54 +1,28 @@
|
|
|
1
1
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
2
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
|
-
|
|
3
|
+
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
4
|
+
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
4
5
|
import { ListToolsResultSchema, CallToolResultSchema, ListResourcesResultSchema, ReadResourceResultSchema, ListPromptsResultSchema, GetPromptResultSchema, ElicitRequestSchema, LoggingMessageNotificationSchema, ResourceListChangedNotificationSchema, CreateMessageResultSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
6
|
import { ConsoleLogger, NoOpLogger, startTimer, prettyPrint, } from '../utils/logger.js';
|
|
6
7
|
import { mergeEnvironments } from '../utils/env.js';
|
|
7
8
|
import { MCPClientError, MCPNotStartedError, MCPAlreadyStartedError, MCPConnectionError, MCPTimeoutError, MCPServerError, } from '../utils/errors.js';
|
|
9
|
+
import { validateServerConfig, validateToolCallOptions, validateResourceUri, validatePromptName, validatePromptArgs, validateSamplingRequest, validateClientOptions, } from '../utils/validation.js';
|
|
8
10
|
const DEFAULT_RETRY_OPTIONS = {
|
|
9
11
|
maxAttempts: 3,
|
|
10
12
|
baseDelay: 1000,
|
|
11
13
|
maxDelay: 10000,
|
|
12
14
|
backoffMultiplier: 2,
|
|
13
15
|
};
|
|
14
|
-
/**
|
|
15
|
-
* MCPClient is a wrapper around the Model Context Protocol SDK client.
|
|
16
|
-
*
|
|
17
|
-
* It provides a simplified API for testing MCP servers in CI/CD environments.
|
|
18
|
-
* The client manages the lifecycle of the server process and provides methods
|
|
19
|
-
* for calling tools, reading resources, and managing prompts.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const client = new MCPClient({
|
|
24
|
-
* name: 'my-test-client',
|
|
25
|
-
* version: '1.0.0',
|
|
26
|
-
* timeout: 30000,
|
|
27
|
-
* });
|
|
28
|
-
*
|
|
29
|
-
* await client.start({
|
|
30
|
-
* command: 'node',
|
|
31
|
-
* args: ['./server.js'],
|
|
32
|
-
* });
|
|
33
|
-
*
|
|
34
|
-
* const tools = await client.listTools();
|
|
35
|
-
* const result = await client.callTool({
|
|
36
|
-
* name: 'my-tool',
|
|
37
|
-
* arguments: { param: 'value' },
|
|
38
|
-
* });
|
|
39
|
-
*
|
|
40
|
-
* await client.stop();
|
|
41
|
-
* ```
|
|
42
|
-
*
|
|
43
|
-
* @see {@link https://spec.modelcontextprotocol.io | MCP Specification}
|
|
44
|
-
*/
|
|
45
16
|
export class MCPClient {
|
|
46
17
|
client = null;
|
|
47
18
|
transport = null;
|
|
19
|
+
transportType = null;
|
|
48
20
|
options;
|
|
49
21
|
notificationHandlers;
|
|
50
22
|
logger;
|
|
51
23
|
retryOptions;
|
|
24
|
+
healthMonitorTimer = null;
|
|
25
|
+
lastHealthStatus = null;
|
|
52
26
|
/**
|
|
53
27
|
* Creates a new MCPClient instance.
|
|
54
28
|
*
|
|
@@ -64,6 +38,7 @@ export class MCPClient {
|
|
|
64
38
|
* ```
|
|
65
39
|
*/
|
|
66
40
|
constructor(options = {}) {
|
|
41
|
+
validateClientOptions(options);
|
|
67
42
|
this.options = {
|
|
68
43
|
name: options.name || 'mcp-test-client',
|
|
69
44
|
version: options.version || '1.0.0',
|
|
@@ -88,36 +63,54 @@ export class MCPClient {
|
|
|
88
63
|
/**
|
|
89
64
|
* Starts the client and connects to the MCP server.
|
|
90
65
|
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
66
|
+
* Supports three transport types:
|
|
67
|
+
* - **stdio** (default): Spawns a local server process
|
|
68
|
+
* - **http**: Connects to a Streamable HTTP endpoint
|
|
69
|
+
* - **sse**: Connects to a legacy SSE endpoint
|
|
93
70
|
*
|
|
94
|
-
* @param config - Server configuration
|
|
71
|
+
* @param config - Server configuration (stdio, http, or sse)
|
|
95
72
|
* @throws `MCPAlreadyStartedError` if client is already started
|
|
96
|
-
* @throws
|
|
97
|
-
*
|
|
73
|
+
* @throws `MCPConnectionError` if the connection fails
|
|
74
|
+
*
|
|
75
|
+
* @example Stdio (default)
|
|
98
76
|
* ```typescript
|
|
99
77
|
* await client.start({
|
|
100
78
|
* command: 'node',
|
|
101
|
-
* args: ['./server.js'
|
|
102
|
-
*
|
|
79
|
+
* args: ['./server.js'],
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @example Streamable HTTP
|
|
84
|
+
* ```typescript
|
|
85
|
+
* await client.start({
|
|
86
|
+
* transport: 'http',
|
|
87
|
+
* url: 'http://localhost:3000/mcp',
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* @example SSE (legacy)
|
|
92
|
+
* ```typescript
|
|
93
|
+
* await client.start({
|
|
94
|
+
* transport: 'sse',
|
|
95
|
+
* url: 'http://localhost:3000/sse',
|
|
103
96
|
* });
|
|
104
97
|
* ```
|
|
105
98
|
*/
|
|
106
99
|
async start(config) {
|
|
100
|
+
validateServerConfig(config);
|
|
107
101
|
if (this.client) {
|
|
108
102
|
throw new MCPAlreadyStartedError();
|
|
109
103
|
}
|
|
104
|
+
// Determine transport type
|
|
105
|
+
const transportType = config.transport === 'http'
|
|
106
|
+
? 'http'
|
|
107
|
+
: config.transport === 'sse'
|
|
108
|
+
? 'sse'
|
|
109
|
+
: 'stdio';
|
|
110
|
+
this.transportType = transportType;
|
|
110
111
|
this.logger.info(`Starting MCP client: ${this.options.name} v${this.options.version}`);
|
|
111
|
-
this.logger.debug(`Server command: ${config.command}`, config.args || []);
|
|
112
|
-
const mergedEnv = mergeEnvironments(process.env, config.env);
|
|
113
|
-
const commandStr = `${config.command}${config.args ? ' ' + config.args.join(' ') : ''}`;
|
|
114
112
|
try {
|
|
115
|
-
|
|
116
|
-
this.transport = new StdioClientTransport({
|
|
117
|
-
command: config.command,
|
|
118
|
-
args: config.args || [],
|
|
119
|
-
env: mergedEnv,
|
|
120
|
-
});
|
|
113
|
+
this.transport = this.createTransport(config, transportType);
|
|
121
114
|
this.client = new Client({
|
|
122
115
|
name: this.options.name || 'mcp-test-client',
|
|
123
116
|
version: this.options.version || '1.0.0',
|
|
@@ -137,7 +130,7 @@ export class MCPClient {
|
|
|
137
130
|
};
|
|
138
131
|
this.setupNotificationHandlers();
|
|
139
132
|
await this.client.connect(this.transport);
|
|
140
|
-
this.logger.info(
|
|
133
|
+
this.logger.info(`Successfully connected to MCP server via ${transportType} transport`);
|
|
141
134
|
}
|
|
142
135
|
catch (error) {
|
|
143
136
|
this.logger.error('Failed to start MCP client:', error);
|
|
@@ -151,11 +144,53 @@ export class MCPClient {
|
|
|
151
144
|
this.transport = null;
|
|
152
145
|
}
|
|
153
146
|
this.client = null;
|
|
147
|
+
this.transportType = null;
|
|
154
148
|
if (error instanceof MCPClientError) {
|
|
155
149
|
throw error;
|
|
156
150
|
}
|
|
157
|
-
|
|
151
|
+
const connStr = transportType === 'stdio'
|
|
152
|
+
? `${config.command}${config.args ? ' ' + config.args.join(' ') : ''}`
|
|
153
|
+
: config.url;
|
|
154
|
+
throw new MCPConnectionError(`Failed to connect to MCP server via ${transportType}: ${error instanceof Error ? error.message : String(error)}`, connStr);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Creates the appropriate transport instance based on the config type.
|
|
159
|
+
*/
|
|
160
|
+
createTransport(config, transportType) {
|
|
161
|
+
if (transportType === 'stdio') {
|
|
162
|
+
const cfg = config;
|
|
163
|
+
this.logger.debug(`Server command: ${cfg.command}`, cfg.args || []);
|
|
164
|
+
const mergedEnv = mergeEnvironments(process.env, cfg.env);
|
|
165
|
+
return new StdioClientTransport({
|
|
166
|
+
command: cfg.command,
|
|
167
|
+
args: cfg.args || [],
|
|
168
|
+
env: mergedEnv,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
if (transportType === 'http') {
|
|
172
|
+
const cfg = config;
|
|
173
|
+
this.logger.debug(`Connecting to HTTP endpoint: ${cfg.url}`);
|
|
174
|
+
const requestInit = { ...cfg.requestInit };
|
|
175
|
+
if (cfg.headers) {
|
|
176
|
+
requestInit.headers = {
|
|
177
|
+
...cfg.headers,
|
|
178
|
+
...requestInit.headers,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return new StreamableHTTPClientTransport(new URL(cfg.url), {
|
|
182
|
+
requestInit,
|
|
183
|
+
sessionId: cfg.sessionId,
|
|
184
|
+
});
|
|
158
185
|
}
|
|
186
|
+
// SSE
|
|
187
|
+
const cfg = config;
|
|
188
|
+
this.logger.debug(`Connecting to SSE endpoint: ${cfg.url}`);
|
|
189
|
+
const requestInit = { ...cfg.requestInit };
|
|
190
|
+
if (cfg.headers) {
|
|
191
|
+
requestInit.headers = { ...cfg.headers, ...requestInit.headers };
|
|
192
|
+
}
|
|
193
|
+
return new SSEClientTransport(new URL(cfg.url), { requestInit });
|
|
159
194
|
}
|
|
160
195
|
/**
|
|
161
196
|
* Stops the client and disconnects from the MCP server.
|
|
@@ -170,6 +205,7 @@ export class MCPClient {
|
|
|
170
205
|
*/
|
|
171
206
|
async stop() {
|
|
172
207
|
this.logger.info('Stopping MCP client');
|
|
208
|
+
this.stopHealthMonitor();
|
|
173
209
|
if (this.client) {
|
|
174
210
|
try {
|
|
175
211
|
await this.client.close();
|
|
@@ -188,6 +224,7 @@ export class MCPClient {
|
|
|
188
224
|
}
|
|
189
225
|
this.transport = null;
|
|
190
226
|
}
|
|
227
|
+
this.transportType = null;
|
|
191
228
|
this.logger.info('MCP client stopped');
|
|
192
229
|
}
|
|
193
230
|
setupNotificationHandlers() {
|
|
@@ -258,6 +295,7 @@ export class MCPClient {
|
|
|
258
295
|
* ```
|
|
259
296
|
*/
|
|
260
297
|
async callTool(options) {
|
|
298
|
+
validateToolCallOptions(options);
|
|
261
299
|
if (!this.client) {
|
|
262
300
|
throw new MCPNotStartedError('callTool');
|
|
263
301
|
}
|
|
@@ -331,6 +369,7 @@ export class MCPClient {
|
|
|
331
369
|
* ```
|
|
332
370
|
*/
|
|
333
371
|
async readResource(uri) {
|
|
372
|
+
validateResourceUri(uri);
|
|
334
373
|
if (!this.client) {
|
|
335
374
|
throw new MCPNotStartedError('readResource');
|
|
336
375
|
}
|
|
@@ -401,6 +440,8 @@ export class MCPClient {
|
|
|
401
440
|
* ```
|
|
402
441
|
*/
|
|
403
442
|
async getPrompt(name, args) {
|
|
443
|
+
validatePromptName(name);
|
|
444
|
+
validatePromptArgs(args);
|
|
404
445
|
if (!this.client) {
|
|
405
446
|
throw new MCPNotStartedError('getPrompt');
|
|
406
447
|
}
|
|
@@ -442,6 +483,7 @@ export class MCPClient {
|
|
|
442
483
|
* ```
|
|
443
484
|
*/
|
|
444
485
|
async requestSampling(request) {
|
|
486
|
+
validateSamplingRequest(request);
|
|
445
487
|
if (!this.client) {
|
|
446
488
|
throw new MCPNotStartedError('requestSampling');
|
|
447
489
|
}
|
|
@@ -518,6 +560,171 @@ export class MCPClient {
|
|
|
518
560
|
isConnected() {
|
|
519
561
|
return this.client !== null && this.transport !== null;
|
|
520
562
|
}
|
|
563
|
+
/**
|
|
564
|
+
* Check if the server is alive and responsive.
|
|
565
|
+
*
|
|
566
|
+
* Sends a lightweight request to verify the server process is running
|
|
567
|
+
* and the MCP connection is functional. Detects zombie processes by
|
|
568
|
+
* checking if the PID is still alive.
|
|
569
|
+
*
|
|
570
|
+
* @returns A {@link HealthStatus} object with health info
|
|
571
|
+
*
|
|
572
|
+
* @example
|
|
573
|
+
* ```typescript
|
|
574
|
+
* const health = await client.isHealthy();
|
|
575
|
+
* if (!health.healthy) {
|
|
576
|
+
* console.error(`Server unhealthy: ${health.message}`);
|
|
577
|
+
* console.error(`PID ${health.pid}, latency: ${health.latencyMs}ms`);
|
|
578
|
+
* }
|
|
579
|
+
* ```
|
|
580
|
+
*/
|
|
581
|
+
async isHealthy() {
|
|
582
|
+
const checkedAt = Date.now();
|
|
583
|
+
// Not connected at all
|
|
584
|
+
if (!this.client || !this.transport) {
|
|
585
|
+
return {
|
|
586
|
+
healthy: false,
|
|
587
|
+
checkedAt,
|
|
588
|
+
latencyMs: -1,
|
|
589
|
+
pid: null,
|
|
590
|
+
message: 'Client is not connected',
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
// For stdio transport, check if the server process is still alive (zombie detection)
|
|
594
|
+
if (this.transportType === 'stdio') {
|
|
595
|
+
const pid = this.getStdioPid();
|
|
596
|
+
if (pid !== null && !isProcessAlive(pid)) {
|
|
597
|
+
return {
|
|
598
|
+
healthy: false,
|
|
599
|
+
checkedAt,
|
|
600
|
+
latencyMs: -1,
|
|
601
|
+
pid,
|
|
602
|
+
message: `Server process (PID ${pid}) is no longer running`,
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
// Send a lightweight request to verify MCP responsiveness
|
|
607
|
+
try {
|
|
608
|
+
const start = startTimer();
|
|
609
|
+
await this.client.request({ method: 'tools/list', params: {} }, ListToolsResultSchema);
|
|
610
|
+
const latencyMs = start();
|
|
611
|
+
const pid = this.getStdioPid();
|
|
612
|
+
const status = {
|
|
613
|
+
healthy: true,
|
|
614
|
+
checkedAt,
|
|
615
|
+
latencyMs,
|
|
616
|
+
pid,
|
|
617
|
+
message: 'Server is healthy',
|
|
618
|
+
};
|
|
619
|
+
this.lastHealthStatus = status;
|
|
620
|
+
return status;
|
|
621
|
+
}
|
|
622
|
+
catch (error) {
|
|
623
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
624
|
+
const pid = this.getStdioPid();
|
|
625
|
+
const status = {
|
|
626
|
+
healthy: false,
|
|
627
|
+
checkedAt,
|
|
628
|
+
latencyMs: -1,
|
|
629
|
+
pid,
|
|
630
|
+
message: `Health check failed: ${msg}`,
|
|
631
|
+
};
|
|
632
|
+
this.lastHealthStatus = status;
|
|
633
|
+
return status;
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Get the last health check result without performing a new check.
|
|
638
|
+
*
|
|
639
|
+
* @returns The last {@link HealthStatus}, or null if never checked
|
|
640
|
+
*/
|
|
641
|
+
getLastHealthStatus() {
|
|
642
|
+
return this.lastHealthStatus;
|
|
643
|
+
}
|
|
644
|
+
/**
|
|
645
|
+
* Get the server process PID.
|
|
646
|
+
*
|
|
647
|
+
* Only applicable to stdio transport. Returns null for HTTP/SSE transports
|
|
648
|
+
* (no local process).
|
|
649
|
+
*
|
|
650
|
+
* @returns The PID, or null if not connected / not a stdio transport
|
|
651
|
+
*/
|
|
652
|
+
getServerPid() {
|
|
653
|
+
return this.getStdioPid();
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Get the PID from a stdio transport, or null for other transports.
|
|
657
|
+
*/
|
|
658
|
+
getStdioPid() {
|
|
659
|
+
if (this.transportType !== 'stdio' || !this.transport) {
|
|
660
|
+
return null;
|
|
661
|
+
}
|
|
662
|
+
return this.transport.pid ?? null;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Start periodic health monitoring.
|
|
666
|
+
*
|
|
667
|
+
* Runs {@link isHealthy} at the specified interval and calls
|
|
668
|
+
* the provided callbacks on status changes.
|
|
669
|
+
*
|
|
670
|
+
* @param options - Monitoring configuration
|
|
671
|
+
*
|
|
672
|
+
* @example
|
|
673
|
+
* ```typescript
|
|
674
|
+
* client.startHealthMonitor({
|
|
675
|
+
* interval: 3000,
|
|
676
|
+
* onUnhealthy: (status) => console.error('Server down:', status.message),
|
|
677
|
+
* onRecovery: (status) => console.log('Server recovered:', status.message),
|
|
678
|
+
* });
|
|
679
|
+
*
|
|
680
|
+
* // Later...
|
|
681
|
+
* client.stopHealthMonitor();
|
|
682
|
+
* ```
|
|
683
|
+
*/
|
|
684
|
+
startHealthMonitor(options = {}) {
|
|
685
|
+
this.stopHealthMonitor();
|
|
686
|
+
const interval = options.interval ?? 5000;
|
|
687
|
+
let wasHealthy = null;
|
|
688
|
+
const check = async () => {
|
|
689
|
+
const status = await this.isHealthy();
|
|
690
|
+
options.onCheck?.(status);
|
|
691
|
+
if (!status.healthy && wasHealthy !== false) {
|
|
692
|
+
wasHealthy = false;
|
|
693
|
+
options.onUnhealthy?.(status);
|
|
694
|
+
this.logger.warn(`Health monitor: server unhealthy — ${status.message}`);
|
|
695
|
+
}
|
|
696
|
+
else if (status.healthy && wasHealthy === false) {
|
|
697
|
+
wasHealthy = true;
|
|
698
|
+
options.onRecovery?.(status);
|
|
699
|
+
this.logger.info('Health monitor: server recovered');
|
|
700
|
+
}
|
|
701
|
+
else if (status.healthy) {
|
|
702
|
+
wasHealthy = true;
|
|
703
|
+
}
|
|
704
|
+
};
|
|
705
|
+
// Run first check immediately
|
|
706
|
+
check();
|
|
707
|
+
this.healthMonitorTimer = setInterval(check, interval);
|
|
708
|
+
this.logger.debug(`Health monitor started (interval: ${interval}ms)`);
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* Stop periodic health monitoring.
|
|
712
|
+
*/
|
|
713
|
+
stopHealthMonitor() {
|
|
714
|
+
if (this.healthMonitorTimer) {
|
|
715
|
+
clearInterval(this.healthMonitorTimer);
|
|
716
|
+
this.healthMonitorTimer = null;
|
|
717
|
+
this.logger.debug('Health monitor stopped');
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Get the transport type in use.
|
|
722
|
+
*
|
|
723
|
+
* @returns `'stdio'`, `'http'`, `'sse'`, or null if not connected
|
|
724
|
+
*/
|
|
725
|
+
getTransportType() {
|
|
726
|
+
return this.transportType;
|
|
727
|
+
}
|
|
521
728
|
/**
|
|
522
729
|
* Sets the logging level for the client.
|
|
523
730
|
*
|
|
@@ -568,4 +775,17 @@ export class MCPClient {
|
|
|
568
775
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
569
776
|
}
|
|
570
777
|
}
|
|
778
|
+
/**
|
|
779
|
+
* Check if a process with the given PID is still alive.
|
|
780
|
+
* Uses signal 0 (does not actually send a signal, just checks existence).
|
|
781
|
+
*/
|
|
782
|
+
function isProcessAlive(pid) {
|
|
783
|
+
try {
|
|
784
|
+
process.kill(pid, 0);
|
|
785
|
+
return true;
|
|
786
|
+
}
|
|
787
|
+
catch {
|
|
788
|
+
return false;
|
|
789
|
+
}
|
|
790
|
+
}
|
|
571
791
|
//# sourceMappingURL=MCPClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/client/MCPClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/client/MCPClient.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { MCPClient } from './MCPClient.js';
|
|
2
|
-
export type {
|
|
2
|
+
export type { ServerConfig, StdioServerConfig, StreamableHttpServerConfig, SseServerConfig,
|
|
3
|
+
/** @deprecated Use StdioServerConfig */
|
|
4
|
+
MCPServerConfig, MCPClientOptions, ToolCallOptions, NotificationHandler, RetryOptions, HealthStatus, HealthMonitorOptions, } from './MCPClient.js';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe;AACf,wCAAwC;AACxC,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,9 @@
|
|
|
26
26
|
* await client.stop();
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
|
-
export { MCPClient, type
|
|
29
|
+
export { MCPClient, type ServerConfig, type StdioServerConfig, type StreamableHttpServerConfig, type SseServerConfig,
|
|
30
|
+
/** @deprecated Use StdioServerConfig */
|
|
31
|
+
type MCPServerConfig, type MCPClientOptions, type ToolCallOptions, type NotificationHandler, type RetryOptions, type HealthStatus, type HealthMonitorOptions, } from './client/index.js';
|
|
30
32
|
export { MCPClientError, MCPTimeoutError, MCPConnectionError, MCPNotStartedError, MCPAlreadyStartedError, MCPServerError, } from './utils/errors.js';
|
|
31
33
|
export type { Logger, LoggerOptions, LogLevel } from './utils/logger.js';
|
|
32
34
|
export { startTimer, prettyPrint } from './utils/logger.js';
|
|
@@ -35,4 +37,8 @@ export type { SecretPattern } from './utils/masking.js';
|
|
|
35
37
|
export * as assert from './assert.js';
|
|
36
38
|
export { AssertionError } from './assert.js';
|
|
37
39
|
export { toHaveTool, toHaveResource, toHavePrompt, toHaveToolWithSchema, toHaveToolCount, toHaveResourceCount, toHavePromptCount, toHaveResourceByName, toHavePromptWithArgs, toReturnText, toReturnTextContaining, toReturnError, toReturnOk, toReturnJson, toReturnContentCount, toReturnImage, toReturnResourceText, toReturnResourceTextContaining, toReturnPromptTextContaining, toReturnPromptMessageCount, setupJestMatchers, setupVitestMatchers, setupCustomMatchers, assertToolText, assertToolTextContains, assertHasTool, assertHasResource, assertHasPrompt, } from './matchers.js';
|
|
40
|
+
export { generateTests } from './generate-tests.js';
|
|
41
|
+
export type { GenerateTestOptions } from './generate-tests.js';
|
|
42
|
+
export { generateTypes } from './generate-types.js';
|
|
43
|
+
export type { GenerateTypesOptions } from './generate-types.js';
|
|
38
44
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,eAAe;AACpB,wCAAwC;AACxC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -33,4 +33,6 @@ export { maskSecrets, maskValue, addSecretPattern, resetSecretPatterns, getSecre
|
|
|
33
33
|
export * as assert from './assert.js';
|
|
34
34
|
export { AssertionError } from './assert.js';
|
|
35
35
|
export { toHaveTool, toHaveResource, toHavePrompt, toHaveToolWithSchema, toHaveToolCount, toHaveResourceCount, toHavePromptCount, toHaveResourceByName, toHavePromptWithArgs, toReturnText, toReturnTextContaining, toReturnError, toReturnOk, toReturnJson, toReturnContentCount, toReturnImage, toReturnResourceText, toReturnResourceTextContaining, toReturnPromptTextContaining, toReturnPromptMessageCount, setupJestMatchers, setupVitestMatchers, setupCustomMatchers, assertToolText, assertToolTextContains, assertHasTool, assertHasResource, assertHasPrompt, } from './matchers.js';
|
|
36
|
+
export { generateTests } from './generate-tests.js';
|
|
37
|
+
export { generateTypes } from './generate-types.js';
|
|
36
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,GAaV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input validation utilities for MCPClient.
|
|
3
|
+
*
|
|
4
|
+
* Validates all user-facing inputs and throws descriptive `MCPClientError`
|
|
5
|
+
* with actionable messages when validation fails.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Transport types supported by MCPClient.
|
|
9
|
+
*/
|
|
10
|
+
export type TransportType = 'stdio' | 'http' | 'sse';
|
|
11
|
+
/**
|
|
12
|
+
* Validate `start()` config.
|
|
13
|
+
*
|
|
14
|
+
* Supports three transport types:
|
|
15
|
+
* - **stdio** (default): `{ command, args, env, startupDelay }`
|
|
16
|
+
* - **http**: `{ transport: 'http', url, headers, sessionId }`
|
|
17
|
+
* - **sse**: `{ transport: 'sse', url, headers }`
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateServerConfig(config: unknown): void;
|
|
20
|
+
/**
|
|
21
|
+
* Validate `callTool()` options — tool name is required.
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateToolCallOptions(options: unknown): asserts options is {
|
|
24
|
+
name: string;
|
|
25
|
+
arguments?: Record<string, unknown>;
|
|
26
|
+
timeout?: number;
|
|
27
|
+
retries?: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Validate a resource URI — must be a non-empty string.
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateResourceUri(uri: unknown): asserts uri is string;
|
|
33
|
+
/**
|
|
34
|
+
* Validate prompt name — must be a non-empty string.
|
|
35
|
+
*/
|
|
36
|
+
export declare function validatePromptName(name: unknown): asserts name is string;
|
|
37
|
+
/**
|
|
38
|
+
* Validate prompt arguments — must be an object with string values if provided.
|
|
39
|
+
*/
|
|
40
|
+
export declare function validatePromptArgs(args: unknown): asserts args is Record<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Validate sampling request params.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateSamplingRequest(request: unknown): asserts request is {
|
|
45
|
+
messages: unknown[];
|
|
46
|
+
maxTokens: number;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Validate client constructor options.
|
|
50
|
+
*/
|
|
51
|
+
export declare function validateClientOptions(options: unknown): void;
|
|
52
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAmC1D;AAqLD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAqFA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAsBvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAqBxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsBxF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI;IAC5E,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CA+BA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyG5D"}
|