@slbdn/mcp-tester 1.0.2 → 1.2.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 +83 -79
- package/README.md +333 -1406
- package/dist/assert.d.ts +75 -0
- package/dist/assert.d.ts.map +1 -0
- package/dist/assert.js +250 -0
- package/dist/assert.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +311 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client/MCPClient.d.ts +316 -0
- package/dist/client/MCPClient.d.ts.map +1 -1
- package/dist/client/MCPClient.js +270 -28
- package/dist/client/MCPClient.js.map +1 -1
- package/dist/index.d.ts +35 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/matchers.d.ts +262 -0
- package/dist/matchers.d.ts.map +1 -0
- package/dist/matchers.js +527 -0
- package/dist/matchers.js.map +1 -0
- package/dist/utils/errors.d.ts +80 -4
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +123 -6
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/logger.d.ts +88 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +131 -8
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/masking.d.ts +66 -0
- package/dist/utils/masking.d.ts.map +1 -0
- package/dist/utils/masking.js +171 -0
- package/dist/utils/masking.js.map +1 -0
- package/package.json +34 -5
- package/vitest.d.ts +51 -0
package/dist/client/MCPClient.js
CHANGED
|
@@ -2,15 +2,46 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
|
2
2
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
3
|
// Note: Server process is managed by StdioClientTransport, no manual spawn needed
|
|
4
4
|
import { ListToolsResultSchema, CallToolResultSchema, ListResourcesResultSchema, ReadResourceResultSchema, ListPromptsResultSchema, GetPromptResultSchema, ElicitRequestSchema, LoggingMessageNotificationSchema, ResourceListChangedNotificationSchema, CreateMessageResultSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
-
import { ConsoleLogger, NoOpLogger } from '../utils/logger.js';
|
|
5
|
+
import { ConsoleLogger, NoOpLogger, startTimer, prettyPrint, } from '../utils/logger.js';
|
|
6
6
|
import { mergeEnvironments } from '../utils/env.js';
|
|
7
|
-
import { MCPClientError, MCPNotStartedError, MCPAlreadyStartedError, MCPServerError, } from '../utils/errors.js';
|
|
7
|
+
import { MCPClientError, MCPNotStartedError, MCPAlreadyStartedError, MCPConnectionError, MCPTimeoutError, MCPServerError, } from '../utils/errors.js';
|
|
8
8
|
const DEFAULT_RETRY_OPTIONS = {
|
|
9
9
|
maxAttempts: 3,
|
|
10
10
|
baseDelay: 1000,
|
|
11
11
|
maxDelay: 10000,
|
|
12
12
|
backoffMultiplier: 2,
|
|
13
13
|
};
|
|
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
|
+
*/
|
|
14
45
|
export class MCPClient {
|
|
15
46
|
client = null;
|
|
16
47
|
transport = null;
|
|
@@ -18,6 +49,20 @@ export class MCPClient {
|
|
|
18
49
|
notificationHandlers;
|
|
19
50
|
logger;
|
|
20
51
|
retryOptions;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new MCPClient instance.
|
|
54
|
+
*
|
|
55
|
+
* @param options - Configuration options for the client
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const client = new MCPClient({
|
|
59
|
+
* name: 'test-client',
|
|
60
|
+
* version: '1.0.0',
|
|
61
|
+
* timeout: 60000,
|
|
62
|
+
* logLevel: 'debug',
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
21
66
|
constructor(options = {}) {
|
|
22
67
|
this.options = {
|
|
23
68
|
name: options.name || 'mcp-test-client',
|
|
@@ -40,6 +85,24 @@ export class MCPClient {
|
|
|
40
85
|
? new NoOpLogger()
|
|
41
86
|
: new ConsoleLogger({ level: this.options.logLevel, prefix: 'MCPClient' });
|
|
42
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Starts the client and connects to the MCP server.
|
|
90
|
+
*
|
|
91
|
+
* Spawns the server process and establishes the MCP connection.
|
|
92
|
+
* The server process lifecycle is managed by StdioClientTransport.
|
|
93
|
+
*
|
|
94
|
+
* @param config - Server configuration including command and arguments
|
|
95
|
+
* @throws `MCPAlreadyStartedError` if client is already started
|
|
96
|
+
* @throws Error if server fails to start
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* await client.start({
|
|
100
|
+
* command: 'node',
|
|
101
|
+
* args: ['./server.js', '--production'],
|
|
102
|
+
* env: { NODE_ENV: 'production' },
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
43
106
|
async start(config) {
|
|
44
107
|
if (this.client) {
|
|
45
108
|
throw new MCPAlreadyStartedError();
|
|
@@ -47,6 +110,7 @@ export class MCPClient {
|
|
|
47
110
|
this.logger.info(`Starting MCP client: ${this.options.name} v${this.options.version}`);
|
|
48
111
|
this.logger.debug(`Server command: ${config.command}`, config.args || []);
|
|
49
112
|
const mergedEnv = mergeEnvironments(process.env, config.env);
|
|
113
|
+
const commandStr = `${config.command}${config.args ? ' ' + config.args.join(' ') : ''}`;
|
|
50
114
|
try {
|
|
51
115
|
// Use StdioClientTransport to spawn the server process (single process)
|
|
52
116
|
this.transport = new StdioClientTransport({
|
|
@@ -87,9 +151,23 @@ export class MCPClient {
|
|
|
87
151
|
this.transport = null;
|
|
88
152
|
}
|
|
89
153
|
this.client = null;
|
|
90
|
-
|
|
154
|
+
if (error instanceof MCPClientError) {
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
throw new MCPConnectionError(`Failed to connect to MCP server: ${error instanceof Error ? error.message : String(error)}`, commandStr);
|
|
91
158
|
}
|
|
92
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Stops the client and disconnects from the MCP server.
|
|
162
|
+
*
|
|
163
|
+
* Closes the MCP connection and terminates the server process.
|
|
164
|
+
* Safe to call even if the client is not connected.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* await client.stop();
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
93
171
|
async stop() {
|
|
94
172
|
this.logger.info('Stopping MCP client');
|
|
95
173
|
if (this.client) {
|
|
@@ -128,31 +206,60 @@ export class MCPClient {
|
|
|
128
206
|
this.logger.debug('Resource list changed notification received');
|
|
129
207
|
});
|
|
130
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Lists all available tools from the MCP server.
|
|
211
|
+
*
|
|
212
|
+
* @returns Promise resolving to an array of Tool objects
|
|
213
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* const tools = await client.listTools();
|
|
217
|
+
* console.log(tools.map(t => t.name)); // ['echo', 'add', 'calculate']
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
131
220
|
async listTools() {
|
|
132
221
|
if (!this.client) {
|
|
133
|
-
throw new MCPNotStartedError();
|
|
222
|
+
throw new MCPNotStartedError('listTools');
|
|
134
223
|
}
|
|
135
224
|
const request = {
|
|
136
225
|
method: 'tools/list',
|
|
137
226
|
params: {},
|
|
138
227
|
};
|
|
139
228
|
if (this.options.enableProtocolLogging) {
|
|
140
|
-
this.logger.debug('Request:', request);
|
|
229
|
+
this.logger.debug('Request:', prettyPrint(request));
|
|
141
230
|
}
|
|
142
231
|
try {
|
|
232
|
+
const elapsed = startTimer();
|
|
143
233
|
const result = await this.withRetry(async () => this.client.request(request, ListToolsResultSchema));
|
|
144
234
|
const tools = result.tools || [];
|
|
145
|
-
this.logger.debug(`Listed ${tools.length} tools`);
|
|
235
|
+
this.logger.debug(`Listed ${tools.length} tools in ${elapsed()}ms`);
|
|
146
236
|
return tools;
|
|
147
237
|
}
|
|
148
238
|
catch (error) {
|
|
149
239
|
this.logger.error('Failed to list tools:', error);
|
|
150
|
-
|
|
240
|
+
this.wrapError(error, 'List tools');
|
|
151
241
|
}
|
|
152
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Calls a tool on the MCP server with optional arguments.
|
|
245
|
+
*
|
|
246
|
+
* @param options - Tool call options including name and arguments
|
|
247
|
+
* @returns Promise resolving to the tool result
|
|
248
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
249
|
+
* @throws `MCPServerError` if the tool call fails
|
|
250
|
+
* @example
|
|
251
|
+
* ```typescript
|
|
252
|
+
* const result = await client.callTool({
|
|
253
|
+
* name: 'calculator',
|
|
254
|
+
* arguments: { a: 5, b: 3 },
|
|
255
|
+
* timeout: 10000,
|
|
256
|
+
* });
|
|
257
|
+
* console.log(result.content[0].text);
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
153
260
|
async callTool(options) {
|
|
154
261
|
if (!this.client) {
|
|
155
|
-
throw new MCPNotStartedError();
|
|
262
|
+
throw new MCPNotStartedError('callTool');
|
|
156
263
|
}
|
|
157
264
|
const request = {
|
|
158
265
|
method: 'tools/call',
|
|
@@ -162,44 +269,70 @@ export class MCPClient {
|
|
|
162
269
|
},
|
|
163
270
|
};
|
|
164
271
|
if (this.options.enableProtocolLogging) {
|
|
165
|
-
this.logger.debug(`Calling tool: ${options.name}`, options.arguments);
|
|
272
|
+
this.logger.debug(`Calling tool: ${options.name}`, prettyPrint(options.arguments));
|
|
166
273
|
}
|
|
167
274
|
try {
|
|
275
|
+
const elapsed = startTimer();
|
|
168
276
|
const timeout = options.timeout ?? this.options.timeout;
|
|
169
277
|
const result = await this.withRetry(async () => this.client.request(request, CallToolResultSchema, { timeout }), options.retries);
|
|
170
|
-
this.logger.debug(`Tool ${options.name} executed
|
|
278
|
+
this.logger.debug(`Tool ${options.name} executed in ${elapsed()}ms`);
|
|
171
279
|
return result;
|
|
172
280
|
}
|
|
173
281
|
catch (error) {
|
|
174
282
|
this.logger.error(`Failed to call tool ${options.name}:`, error);
|
|
175
|
-
|
|
283
|
+
this.wrapError(error, `Call tool ${options.name}`, options.timeout ?? this.options.timeout);
|
|
176
284
|
}
|
|
177
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Lists all available resources from the MCP server.
|
|
288
|
+
*
|
|
289
|
+
* @returns Promise resolving to an array of Resource objects
|
|
290
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* const resources = await client.listResources();
|
|
294
|
+
* console.log(resources.map(r => r.uri)); // ['config://settings', 'data://users']
|
|
295
|
+
* ```
|
|
296
|
+
*/
|
|
178
297
|
async listResources() {
|
|
179
298
|
if (!this.client) {
|
|
180
|
-
throw new MCPNotStartedError();
|
|
299
|
+
throw new MCPNotStartedError('listResources');
|
|
181
300
|
}
|
|
182
301
|
const request = {
|
|
183
302
|
method: 'resources/list',
|
|
184
303
|
params: {},
|
|
185
304
|
};
|
|
186
305
|
if (this.options.enableProtocolLogging) {
|
|
187
|
-
this.logger.debug('Request:', request);
|
|
306
|
+
this.logger.debug('Request:', prettyPrint(request));
|
|
188
307
|
}
|
|
189
308
|
try {
|
|
309
|
+
const elapsed = startTimer();
|
|
190
310
|
const result = await this.withRetry(async () => this.client.request(request, ListResourcesResultSchema));
|
|
191
311
|
const resources = result.resources || [];
|
|
192
|
-
this.logger.debug(`Listed ${resources.length} resources`);
|
|
312
|
+
this.logger.debug(`Listed ${resources.length} resources in ${elapsed()}ms`);
|
|
193
313
|
return resources;
|
|
194
314
|
}
|
|
195
315
|
catch (error) {
|
|
196
316
|
this.logger.error('Failed to list resources:', error);
|
|
197
|
-
|
|
317
|
+
this.wrapError(error, 'List resources');
|
|
198
318
|
}
|
|
199
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Reads a specific resource by its URI.
|
|
322
|
+
*
|
|
323
|
+
* @param uri - The URI of the resource to read
|
|
324
|
+
* @returns Promise resolving to the resource contents
|
|
325
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
326
|
+
* @throws Error if the resource is not found or cannot be read
|
|
327
|
+
* @example
|
|
328
|
+
* ```typescript
|
|
329
|
+
* const result = await client.readResource('config://settings');
|
|
330
|
+
* console.log(result.contents[0].text);
|
|
331
|
+
* ```
|
|
332
|
+
*/
|
|
200
333
|
async readResource(uri) {
|
|
201
334
|
if (!this.client) {
|
|
202
|
-
throw new MCPNotStartedError();
|
|
335
|
+
throw new MCPNotStartedError('readResource');
|
|
203
336
|
}
|
|
204
337
|
const request = {
|
|
205
338
|
method: 'resources/read',
|
|
@@ -209,40 +342,67 @@ export class MCPClient {
|
|
|
209
342
|
this.logger.debug(`Reading resource: ${uri}`);
|
|
210
343
|
}
|
|
211
344
|
try {
|
|
345
|
+
const elapsed = startTimer();
|
|
212
346
|
const result = await this.withRetry(async () => this.client.request(request, ReadResourceResultSchema));
|
|
213
|
-
this.logger.debug(`Resource ${uri} read
|
|
347
|
+
this.logger.debug(`Resource ${uri} read in ${elapsed()}ms`);
|
|
214
348
|
return result;
|
|
215
349
|
}
|
|
216
350
|
catch (error) {
|
|
217
351
|
this.logger.error(`Failed to read resource ${uri}:`, error);
|
|
218
|
-
|
|
352
|
+
this.wrapError(error, `Read resource ${uri}`);
|
|
219
353
|
}
|
|
220
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* Lists all available prompts from the MCP server.
|
|
357
|
+
*
|
|
358
|
+
* @returns Promise resolving to an array of Prompt objects
|
|
359
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
360
|
+
* @example
|
|
361
|
+
* ```typescript
|
|
362
|
+
* const prompts = await client.listPrompts();
|
|
363
|
+
* console.log(prompts.map(p => p.name)); // ['greet', 'summarize']
|
|
364
|
+
* ```
|
|
365
|
+
*/
|
|
221
366
|
async listPrompts() {
|
|
222
367
|
if (!this.client) {
|
|
223
|
-
throw new MCPNotStartedError();
|
|
368
|
+
throw new MCPNotStartedError('listPrompts');
|
|
224
369
|
}
|
|
225
370
|
const request = {
|
|
226
371
|
method: 'prompts/list',
|
|
227
372
|
params: {},
|
|
228
373
|
};
|
|
229
374
|
if (this.options.enableProtocolLogging) {
|
|
230
|
-
this.logger.debug('Request:', request);
|
|
375
|
+
this.logger.debug('Request:', prettyPrint(request));
|
|
231
376
|
}
|
|
232
377
|
try {
|
|
378
|
+
const elapsed = startTimer();
|
|
233
379
|
const result = await this.withRetry(async () => this.client.request(request, ListPromptsResultSchema));
|
|
234
380
|
const prompts = result.prompts || [];
|
|
235
|
-
this.logger.debug(`Listed ${prompts.length} prompts`);
|
|
381
|
+
this.logger.debug(`Listed ${prompts.length} prompts in ${elapsed()}ms`);
|
|
236
382
|
return prompts;
|
|
237
383
|
}
|
|
238
384
|
catch (error) {
|
|
239
385
|
this.logger.error('Failed to list prompts:', error);
|
|
240
|
-
|
|
386
|
+
this.wrapError(error, 'List prompts');
|
|
241
387
|
}
|
|
242
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Gets a prompt template from the MCP server with optional arguments.
|
|
391
|
+
*
|
|
392
|
+
* @param name - Name of the prompt to retrieve
|
|
393
|
+
* @param args - Optional arguments for the prompt template
|
|
394
|
+
* @returns Promise resolving to the prompt messages
|
|
395
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
396
|
+
* @throws Error if the prompt is not found
|
|
397
|
+
* @example
|
|
398
|
+
* ```typescript
|
|
399
|
+
* const messages = await client.getPrompt('greet', { name: 'Alice' });
|
|
400
|
+
* console.log(messages[0].content.text); // 'Hello Alice!'
|
|
401
|
+
* ```
|
|
402
|
+
*/
|
|
243
403
|
async getPrompt(name, args) {
|
|
244
404
|
if (!this.client) {
|
|
245
|
-
throw new MCPNotStartedError();
|
|
405
|
+
throw new MCPNotStartedError('getPrompt');
|
|
246
406
|
}
|
|
247
407
|
const request = {
|
|
248
408
|
method: 'prompts/get',
|
|
@@ -252,21 +412,38 @@ export class MCPClient {
|
|
|
252
412
|
},
|
|
253
413
|
};
|
|
254
414
|
if (this.options.enableProtocolLogging) {
|
|
255
|
-
this.logger.debug(`Getting prompt: ${name}`, args);
|
|
415
|
+
this.logger.debug(`Getting prompt: ${name}`, prettyPrint(args));
|
|
256
416
|
}
|
|
257
417
|
try {
|
|
418
|
+
const elapsed = startTimer();
|
|
258
419
|
const result = await this.withRetry(async () => this.client.request(request, GetPromptResultSchema));
|
|
259
|
-
this.logger.debug(`Prompt ${name} retrieved
|
|
420
|
+
this.logger.debug(`Prompt ${name} retrieved in ${elapsed()}ms`);
|
|
260
421
|
return result;
|
|
261
422
|
}
|
|
262
423
|
catch (error) {
|
|
263
424
|
this.logger.error(`Failed to get prompt ${name}:`, error);
|
|
264
|
-
|
|
425
|
+
this.wrapError(error, `Get prompt ${name}`);
|
|
265
426
|
}
|
|
266
427
|
}
|
|
428
|
+
/**
|
|
429
|
+
* Requests LLM sampling from the MCP server.
|
|
430
|
+
*
|
|
431
|
+
* @param request - Sampling request parameters including messages
|
|
432
|
+
* @returns Promise resolving to the sampling result
|
|
433
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
434
|
+
* @throws Error if sampling is not supported or fails
|
|
435
|
+
* @example
|
|
436
|
+
* ```typescript
|
|
437
|
+
* const result = await client.requestSampling({
|
|
438
|
+
* messages: [{ role: 'user', content: { type: 'text', text: 'Hello' } }],
|
|
439
|
+
* maxTokens: 100,
|
|
440
|
+
* });
|
|
441
|
+
* console.log(result.content.text);
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
267
444
|
async requestSampling(request) {
|
|
268
445
|
if (!this.client) {
|
|
269
|
-
throw new MCPNotStartedError();
|
|
446
|
+
throw new MCPNotStartedError('requestSampling');
|
|
270
447
|
}
|
|
271
448
|
if (this.options.enableProtocolLogging) {
|
|
272
449
|
this.logger.debug('Sampling request:', request);
|
|
@@ -281,9 +458,24 @@ export class MCPClient {
|
|
|
281
458
|
}
|
|
282
459
|
catch (error) {
|
|
283
460
|
this.logger.error('Failed to request sampling:', error);
|
|
284
|
-
|
|
461
|
+
this.wrapError(error, 'Request sampling');
|
|
285
462
|
}
|
|
286
463
|
}
|
|
464
|
+
/**
|
|
465
|
+
* Configures a handler for server elicitation requests.
|
|
466
|
+
*
|
|
467
|
+
* Elicitation requests are sent when the server needs user input.
|
|
468
|
+
*
|
|
469
|
+
* @param handler - Async function that handles elicitation requests
|
|
470
|
+
* @throws `MCPNotStartedError` if client is not started
|
|
471
|
+
* @example
|
|
472
|
+
* ```typescript
|
|
473
|
+
* await client.setElicitationHandler(async (request) => {
|
|
474
|
+
* console.log('Elicitation request:', request.params);
|
|
475
|
+
* return { action: 'accept', content: { userInput: 'test' } };
|
|
476
|
+
* });
|
|
477
|
+
* ```
|
|
478
|
+
*/
|
|
287
479
|
async setElicitationHandler(handler) {
|
|
288
480
|
if (!this.client) {
|
|
289
481
|
return;
|
|
@@ -291,20 +483,70 @@ export class MCPClient {
|
|
|
291
483
|
this.client.setRequestHandler(ElicitRequestSchema, handler);
|
|
292
484
|
this.logger.debug('Elicitation handler configured');
|
|
293
485
|
}
|
|
486
|
+
/**
|
|
487
|
+
* Configures handlers for server-initiated notifications.
|
|
488
|
+
*
|
|
489
|
+
* @param handlers - Object containing notification handlers
|
|
490
|
+
* @example
|
|
491
|
+
* ```typescript
|
|
492
|
+
* client.setNotificationHandlers({
|
|
493
|
+
* onLoggingMessage: (level, data) => {
|
|
494
|
+
* console.log(`[${level}] ${data}`);
|
|
495
|
+
* },
|
|
496
|
+
* onResourceListChanged: () => {
|
|
497
|
+
* console.log('Resources updated');
|
|
498
|
+
* },
|
|
499
|
+
* });
|
|
500
|
+
* ```
|
|
501
|
+
*/
|
|
294
502
|
setNotificationHandlers(handlers) {
|
|
295
503
|
this.notificationHandlers = handlers;
|
|
296
504
|
this.setupNotificationHandlers();
|
|
297
505
|
this.logger.debug('Notification handlers updated');
|
|
298
506
|
}
|
|
507
|
+
/**
|
|
508
|
+
* Checks if the client is currently connected to an MCP server.
|
|
509
|
+
*
|
|
510
|
+
* @returns true if connected, false otherwise
|
|
511
|
+
* @example
|
|
512
|
+
* ```typescript
|
|
513
|
+
* if (client.isConnected()) {
|
|
514
|
+
* console.log('Client is connected');
|
|
515
|
+
* }
|
|
516
|
+
* ```
|
|
517
|
+
*/
|
|
299
518
|
isConnected() {
|
|
300
519
|
return this.client !== null && this.transport !== null;
|
|
301
520
|
}
|
|
521
|
+
/**
|
|
522
|
+
* Sets the logging level for the client.
|
|
523
|
+
*
|
|
524
|
+
* @param level - The log level to set
|
|
525
|
+
* @example
|
|
526
|
+
* ```typescript
|
|
527
|
+
* client.setLogLevel('debug');
|
|
528
|
+
* ```
|
|
529
|
+
*/
|
|
302
530
|
setLogLevel(level) {
|
|
303
531
|
this.options.logLevel = level;
|
|
304
532
|
this.logger =
|
|
305
533
|
level === 'none' ? new NoOpLogger() : new ConsoleLogger({ level, prefix: 'MCPClient' });
|
|
306
534
|
this.logger.debug(`Log level changed to ${level}`);
|
|
307
535
|
}
|
|
536
|
+
wrapError(error, operation, timeout) {
|
|
537
|
+
if (error instanceof MCPClientError) {
|
|
538
|
+
throw error;
|
|
539
|
+
}
|
|
540
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
541
|
+
if (message.toLowerCase().includes('timeout') || message.toLowerCase().includes('timed out')) {
|
|
542
|
+
const t = timeout ?? this.options.timeout ?? 30000;
|
|
543
|
+
throw new MCPTimeoutError(`${operation} timed out after ${t}ms`, t, operation);
|
|
544
|
+
}
|
|
545
|
+
// Extract MCP error code if present (e.g., "-32602" or "-32603")
|
|
546
|
+
const codeMatch = message.match(/code[:\s]+(-?\d+)/);
|
|
547
|
+
const serverCode = codeMatch ? parseInt(codeMatch[1], 10) : undefined;
|
|
548
|
+
throw new MCPServerError(`${operation} failed: ${message}`, operation, serverCode);
|
|
549
|
+
}
|
|
308
550
|
async withRetry(operation, retries) {
|
|
309
551
|
const maxAttempts = retries !== undefined ? retries + 1 : this.retryOptions.maxAttempts;
|
|
310
552
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
@@ -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/index.d.ts
CHANGED
|
@@ -1,4 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tester - A minimal MCP client implementation for CI/CD testing.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { MCPClient } from '@slbdn/mcp-tester';
|
|
9
|
+
*
|
|
10
|
+
* const client = new MCPClient({
|
|
11
|
+
* name: 'test-client',
|
|
12
|
+
* version: '1.0.0',
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* await client.start({
|
|
16
|
+
* command: 'node',
|
|
17
|
+
* args: ['./server.js'],
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const tools = await client.listTools();
|
|
21
|
+
* const result = await client.callTool({
|
|
22
|
+
* name: 'my-tool',
|
|
23
|
+
* arguments: { input: 'test' },
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* await client.stop();
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export { MCPClient, type MCPServerConfig, type MCPClientOptions, type ToolCallOptions, type NotificationHandler, type RetryOptions, } from './client/index.js';
|
|
2
30
|
export { MCPClientError, MCPTimeoutError, MCPConnectionError, MCPNotStartedError, MCPAlreadyStartedError, MCPServerError, } from './utils/errors.js';
|
|
3
31
|
export type { Logger, LoggerOptions, LogLevel } from './utils/logger.js';
|
|
32
|
+
export { startTimer, prettyPrint } from './utils/logger.js';
|
|
33
|
+
export { maskSecrets, maskValue, addSecretPattern, resetSecretPatterns, getSecretPatterns, getSensitiveEnvKeys, } from './utils/masking.js';
|
|
34
|
+
export type { SecretPattern } from './utils/masking.js';
|
|
35
|
+
export * as assert from './assert.js';
|
|
36
|
+
export { AssertionError } from './assert.js';
|
|
37
|
+
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';
|
|
4
38
|
//# 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,
|
|
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,GAClB,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tester - A minimal MCP client implementation for CI/CD testing.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { MCPClient } from '@slbdn/mcp-tester';
|
|
9
|
+
*
|
|
10
|
+
* const client = new MCPClient({
|
|
11
|
+
* name: 'test-client',
|
|
12
|
+
* version: '1.0.0',
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* await client.start({
|
|
16
|
+
* command: 'node',
|
|
17
|
+
* args: ['./server.js'],
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const tools = await client.listTools();
|
|
21
|
+
* const result = await client.callTool({
|
|
22
|
+
* name: 'my-tool',
|
|
23
|
+
* arguments: { input: 'test' },
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* await client.stop();
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export { MCPClient, } from './client/index.js';
|
|
2
30
|
export { MCPClientError, MCPTimeoutError, MCPConnectionError, MCPNotStartedError, MCPAlreadyStartedError, MCPServerError, } from './utils/errors.js';
|
|
31
|
+
export { startTimer, prettyPrint } from './utils/logger.js';
|
|
32
|
+
export { maskSecrets, maskValue, addSecretPattern, resetSecretPatterns, getSecretPatterns, getSensitiveEnvKeys, } from './utils/masking.js';
|
|
33
|
+
export * as assert from './assert.js';
|
|
34
|
+
export { AssertionError } from './assert.js';
|
|
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';
|
|
3
36
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,SAAS,GAMV,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"}
|