@frontmcp/testing 1.8.0 → 1.8.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/client/index.d.ts +1 -1
- package/client/index.d.ts.map +1 -1
- package/client/mcp-test-client.builder.d.ts +2 -1
- package/client/mcp-test-client.builder.d.ts.map +1 -1
- package/client/mcp-test-client.d.ts +6 -2
- package/client/mcp-test-client.d.ts.map +1 -1
- package/client/mcp-test-client.types.d.ts +8 -1
- package/client/mcp-test-client.types.d.ts.map +1 -1
- package/esm/fixtures/index.mjs +127 -6
- package/esm/index.mjs +132 -12
- package/esm/matchers/index.mjs +5 -6
- package/esm/package.json +6 -6
- package/esm/perf/index.mjs +127 -6
- package/esm/setup.mjs +5 -6
- package/fixtures/index.js +127 -6
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +132 -12
- package/matchers/index.js +5 -6
- package/matchers/matcher-types.d.ts +3 -2
- package/matchers/matcher-types.d.ts.map +1 -1
- package/matchers/mcp-matchers.d.ts +1 -1
- package/matchers/mcp-matchers.d.ts.map +1 -1
- package/package.json +6 -6
- package/perf/index.js +127 -6
- package/setup.js +5 -6
- package/transport/index.d.ts +1 -1
- package/transport/index.d.ts.map +1 -1
- package/transport/streamable-http.transport.d.ts +10 -0
- package/transport/streamable-http.transport.d.ts.map +1 -1
- package/transport/transport.interface.d.ts +9 -0
- package/transport/transport.interface.d.ts.map +1 -1
package/client/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export { McpTestClient } from './mcp-test-client';
|
|
6
6
|
export { McpTestClientBuilder } from './mcp-test-client.builder';
|
|
7
|
-
export type { McpTestClientConfig, McpResponse, McpErrorInfo, TestTransportType, TestAuthConfig, ToolResultWrapper, ResourceContentWrapper, PromptResultWrapper, LogEntry, LogLevel, RequestTrace, NotificationEntry, ProgressUpdate, SessionInfo, AuthState, TransportState, JSONRPCRequest, JSONRPCResponse, ElicitationCreateRequest, ElicitResponse, ElicitationHandler, InitializeResult, ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListResourceTemplatesResult, ListPromptsResult, GetPromptResult, Tool, Resource, ResourceTemplate, Prompt, } from './mcp-test-client.types';
|
|
7
|
+
export type { McpTestClientConfig, McpResponse, McpErrorInfo, TestTransportType, TestAuthConfig, ToolResultWrapper, ResourceContentWrapper, PromptResultWrapper, LogEntry, LogLevel, RequestTrace, NotificationEntry, ProgressUpdate, ToolCallOptions, SessionInfo, AuthState, TransportState, JSONRPCRequest, JSONRPCResponse, ElicitationCreateRequest, ElicitResponse, ElicitationHandler, InitializeResult, ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListResourceTemplatesResult, ListPromptsResult, GetPromptResult, Tool, Resource, ResourceTemplate, Prompt, } from './mcp-test-client.types';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/client/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,SAAS,EACT,cAAc,EAEd,cAAc,EACd,eAAe,EAEf,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,MAAM,GACP,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EAEd,cAAc,EACd,eAAe,EAEf,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,MAAM,GACP,MAAM,yBAAyB,CAAC"}
|
|
@@ -52,7 +52,8 @@ export declare class McpTestClientBuilder {
|
|
|
52
52
|
*/
|
|
53
53
|
withPublicMode(enabled?: boolean): this;
|
|
54
54
|
/**
|
|
55
|
-
* Set the MCP protocol version to request
|
|
55
|
+
* Set the MCP protocol version to request (default '2025-06-18').
|
|
56
|
+
* '2026-07-28' has no initialize handshake, so `build()` throws for it.
|
|
56
57
|
*/
|
|
57
58
|
withProtocolVersion(version: string): this;
|
|
58
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-test-client.builder.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKpC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKjD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,SAAS,CAAC,OAAO,UAAO,GAAG,IAAI;IAK/B;;;;OAIG;IACH,cAAc,CAAC,OAAO,UAAO,GAAG,IAAI;IAKpC
|
|
1
|
+
{"version":3,"file":"mcp-test-client.builder.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKpC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKjD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,SAAS,CAAC,OAAO,UAAO,GAAG,IAAI;IAK/B;;;;OAIG;IACH,cAAc,CAAC,OAAO,UAAO,GAAG,IAAI;IAKpC;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK7D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAS9C;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,YAAY,EAAE,sBAAsB,GAAG,IAAI;IAK5D;;;;;;;;;;OAUG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAKrD;;OAEG;IACH,KAAK,IAAI,aAAa;IAItB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;CAKhD"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { type MockDefinition, type MockHandle, type RequestInterceptor, type ResponseInterceptor } from '../interceptor';
|
|
6
6
|
import { McpTestClientBuilder } from './mcp-test-client.builder';
|
|
7
|
-
import type { AuthState, ElicitationHandler, InitializeResult, JSONRPCResponse, LogEntry, McpTestClientConfig, NotificationEntry, ProgressUpdate, Prompt, PromptResultWrapper, RequestTrace, Resource, ResourceContentWrapper, ResourceTemplate, SessionInfo, TestTransportType, Tool, ToolResultWrapper } from './mcp-test-client.types';
|
|
7
|
+
import type { AuthState, ElicitationHandler, InitializeResult, JSONRPCResponse, LogEntry, McpTestClientConfig, NotificationEntry, ProgressUpdate, Prompt, PromptResultWrapper, RequestTrace, Resource, ResourceContentWrapper, ResourceTemplate, SessionInfo, TestTransportType, Tool, ToolCallOptions, ToolResultWrapper } from './mcp-test-client.types';
|
|
8
8
|
export declare class McpTestClient {
|
|
9
9
|
private readonly config;
|
|
10
10
|
private transport;
|
|
@@ -20,6 +20,8 @@ export declare class McpTestClient {
|
|
|
20
20
|
private _traces;
|
|
21
21
|
private _notifications;
|
|
22
22
|
private _progressUpdates;
|
|
23
|
+
private collectingProgress;
|
|
24
|
+
private progressTokenCounter;
|
|
23
25
|
private _interceptors;
|
|
24
26
|
private _elicitationHandler?;
|
|
25
27
|
constructor(config: McpTestClientConfig);
|
|
@@ -74,7 +76,7 @@ export declare class McpTestClient {
|
|
|
74
76
|
/**
|
|
75
77
|
* Call a tool by name with arguments
|
|
76
78
|
*/
|
|
77
|
-
call: (name: string, args?: Record<string, unknown
|
|
79
|
+
call: (name: string, args?: Record<string, unknown>, options?: ToolCallOptions) => Promise<ToolResultWrapper>;
|
|
78
80
|
};
|
|
79
81
|
readonly resources: {
|
|
80
82
|
/**
|
|
@@ -371,6 +373,8 @@ export declare class McpTestClient {
|
|
|
371
373
|
private initialize;
|
|
372
374
|
private listTools;
|
|
373
375
|
private callTool;
|
|
376
|
+
private progressTokenFor;
|
|
377
|
+
private readonly recordNotification;
|
|
374
378
|
private listResources;
|
|
375
379
|
private listResourceTemplates;
|
|
376
380
|
private readResource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-test-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EACV,SAAS,EAET,kBAAkB,EAElB,gBAAgB,EAChB,eAAe,EAKf,QAAQ,EAGR,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,EAEnB,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EAEX,iBAAiB,EACjB,IAAI,EACJ,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-test-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,7 +117,7 @@ export interface McpTestClientConfig {
|
|
|
117
117
|
timeout?: number;
|
|
118
118
|
/** Enable debug logging (default: false) */
|
|
119
119
|
debug?: boolean;
|
|
120
|
-
/** MCP protocol version to request (default: '
|
|
120
|
+
/** MCP protocol version to request (default: '2025-06-18'; '2026-07-28' is not supported and throws) */
|
|
121
121
|
protocolVersion?: string;
|
|
122
122
|
/** Client info to send during initialization and for platform detection */
|
|
123
123
|
clientInfo?: ClientInfo;
|
|
@@ -277,6 +277,13 @@ export interface NotificationEntry {
|
|
|
277
277
|
/** Timestamp received */
|
|
278
278
|
timestamp: Date;
|
|
279
279
|
}
|
|
280
|
+
export interface ToolCallOptions {
|
|
281
|
+
/**
|
|
282
|
+
* Sent as `_meta.progressToken`. Defaults to a generated token while
|
|
283
|
+
* `notifications.collectProgress()` is active, so the server streams progress.
|
|
284
|
+
*/
|
|
285
|
+
progressToken?: string | number;
|
|
286
|
+
}
|
|
280
287
|
export interface ProgressUpdate {
|
|
281
288
|
/** Progress value (0-100 or custom) */
|
|
282
289
|
progress: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-test-client.types.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp-test-client.types.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.types.ts"],"names":[],"mappings":"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"}
|
package/esm/fixtures/index.mjs
CHANGED
|
@@ -473,6 +473,7 @@ function sleep(ms) {
|
|
|
473
473
|
|
|
474
474
|
// libs/testing/src/transport/streamable-http.transport.ts
|
|
475
475
|
var DEFAULT_TIMEOUT = 3e4;
|
|
476
|
+
var NOTIFICATION_STREAM_REOPEN_DELAY_MS = 250;
|
|
476
477
|
var StreamableHttpTransport = class {
|
|
477
478
|
config;
|
|
478
479
|
state = "disconnected";
|
|
@@ -484,6 +485,10 @@ var StreamableHttpTransport = class {
|
|
|
484
485
|
interceptors;
|
|
485
486
|
publicMode;
|
|
486
487
|
elicitationHandler;
|
|
488
|
+
notificationHandler;
|
|
489
|
+
notificationStream;
|
|
490
|
+
notificationProtocolVersion = "";
|
|
491
|
+
notificationStreamReopenTimer;
|
|
487
492
|
constructor(config) {
|
|
488
493
|
this.config = {
|
|
489
494
|
baseUrl: config.baseUrl.replace(/\/$/, ""),
|
|
@@ -500,6 +505,7 @@ var StreamableHttpTransport = class {
|
|
|
500
505
|
this.interceptors = config.interceptors;
|
|
501
506
|
this.publicMode = config.publicMode ?? false;
|
|
502
507
|
this.elicitationHandler = config.elicitationHandler;
|
|
508
|
+
this.notificationHandler = config.notificationHandler;
|
|
503
509
|
}
|
|
504
510
|
async connect() {
|
|
505
511
|
this.state = "connecting";
|
|
@@ -719,7 +725,12 @@ var StreamableHttpTransport = class {
|
|
|
719
725
|
};
|
|
720
726
|
}
|
|
721
727
|
}
|
|
728
|
+
async openNotificationStream(protocolVersion) {
|
|
729
|
+
this.notificationProtocolVersion = protocolVersion;
|
|
730
|
+
await this.connectNotificationStream();
|
|
731
|
+
}
|
|
722
732
|
async close() {
|
|
733
|
+
this.closeNotificationStream();
|
|
723
734
|
this.state = "disconnected";
|
|
724
735
|
this.sessionId = void 0;
|
|
725
736
|
this.log("StreamableHTTP transport closed");
|
|
@@ -758,6 +769,7 @@ var StreamableHttpTransport = class {
|
|
|
758
769
|
return { ...this.lastRequestHeaders };
|
|
759
770
|
}
|
|
760
771
|
async simulateDisconnect() {
|
|
772
|
+
this.closeNotificationStream();
|
|
761
773
|
this.state = "disconnected";
|
|
762
774
|
this.sessionId = void 0;
|
|
763
775
|
}
|
|
@@ -776,6 +788,72 @@ var StreamableHttpTransport = class {
|
|
|
776
788
|
// ═══════════════════════════════════════════════════════════════════
|
|
777
789
|
// PRIVATE HELPERS
|
|
778
790
|
// ═══════════════════════════════════════════════════════════════════
|
|
791
|
+
closeNotificationStream() {
|
|
792
|
+
clearTimeout(this.notificationStreamReopenTimer);
|
|
793
|
+
this.notificationStream?.abort();
|
|
794
|
+
this.notificationStream = void 0;
|
|
795
|
+
}
|
|
796
|
+
/** Opens the stream without holding up the caller past the request timeout; close() aborts it at any point. */
|
|
797
|
+
async connectNotificationStream() {
|
|
798
|
+
if (!this.sessionId || this.notificationStream) return;
|
|
799
|
+
const controller = new AbortController();
|
|
800
|
+
this.notificationStream = controller;
|
|
801
|
+
const { "Content-Type": _contentType, ...headers } = this.buildHeaders();
|
|
802
|
+
const established = fetch(this.mcpUrl(), {
|
|
803
|
+
method: "GET",
|
|
804
|
+
headers: { ...headers, Accept: "text/event-stream", "MCP-Protocol-Version": this.notificationProtocolVersion },
|
|
805
|
+
signal: controller.signal
|
|
806
|
+
}).then(
|
|
807
|
+
async (response) => {
|
|
808
|
+
const isEventStream = response.headers.get("content-type")?.includes("text/event-stream") ?? false;
|
|
809
|
+
if (!response.ok || !response.body || !isEventStream) {
|
|
810
|
+
await response.body?.cancel();
|
|
811
|
+
this.log(`Server offers no notification stream (HTTP ${response.status})`);
|
|
812
|
+
this.releaseNotificationStream(controller);
|
|
813
|
+
return;
|
|
814
|
+
}
|
|
815
|
+
void this.readNotificationStream(controller, response.body.getReader());
|
|
816
|
+
},
|
|
817
|
+
(error) => {
|
|
818
|
+
this.log("Failed to open the notification stream:", error);
|
|
819
|
+
this.releaseNotificationStream(controller);
|
|
820
|
+
}
|
|
821
|
+
);
|
|
822
|
+
let establishTimer;
|
|
823
|
+
const establishDeadline = new Promise((resolve) => {
|
|
824
|
+
establishTimer = setTimeout(resolve, this.config.timeout);
|
|
825
|
+
});
|
|
826
|
+
await Promise.race([established, establishDeadline]);
|
|
827
|
+
clearTimeout(establishTimer);
|
|
828
|
+
}
|
|
829
|
+
releaseNotificationStream(controller) {
|
|
830
|
+
if (this.notificationStream === controller) this.notificationStream = void 0;
|
|
831
|
+
}
|
|
832
|
+
async readNotificationStream(controller, reader) {
|
|
833
|
+
const decoder = new TextDecoder();
|
|
834
|
+
let buffer = "";
|
|
835
|
+
try {
|
|
836
|
+
for (let chunk = await reader.read(); !chunk.done; chunk = await reader.read()) {
|
|
837
|
+
const { completeEvents, remainder } = splitSSEEvents(buffer + decoder.decode(chunk.value, { stream: true }));
|
|
838
|
+
buffer = remainder;
|
|
839
|
+
for (const eventText of completeEvents) {
|
|
840
|
+
for (const event of this.parseSSEEvents(eventText, void 0).events) {
|
|
841
|
+
await this.handleSSEEvent(event);
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
} catch (error) {
|
|
846
|
+
this.log("Notification stream ended:", error);
|
|
847
|
+
} finally {
|
|
848
|
+
reader.releaseLock();
|
|
849
|
+
}
|
|
850
|
+
if (controller.signal.aborted || this.notificationStream !== controller) return;
|
|
851
|
+
this.releaseNotificationStream(controller);
|
|
852
|
+
this.notificationStreamReopenTimer = setTimeout(
|
|
853
|
+
() => void this.connectNotificationStream(),
|
|
854
|
+
NOTIFICATION_STREAM_REOPEN_DELAY_MS
|
|
855
|
+
);
|
|
856
|
+
}
|
|
779
857
|
/**
|
|
780
858
|
* Handle SSE response with elicitation support.
|
|
781
859
|
*
|
|
@@ -913,6 +991,13 @@ var StreamableHttpTransport = class {
|
|
|
913
991
|
response: { jsonrpc: "2.0", id: null, result: void 0 }
|
|
914
992
|
};
|
|
915
993
|
}
|
|
994
|
+
if ("method" in parsed && parsed.id === void 0) {
|
|
995
|
+
this.notificationHandler?.(parsed);
|
|
996
|
+
return {
|
|
997
|
+
isFinal: false,
|
|
998
|
+
response: { jsonrpc: "2.0", id: null, result: void 0 }
|
|
999
|
+
};
|
|
1000
|
+
}
|
|
916
1001
|
if ("result" in parsed || "error" in parsed) {
|
|
917
1002
|
return { isFinal: true, response: parsed };
|
|
918
1003
|
}
|
|
@@ -1083,6 +1168,13 @@ var StreamableHttpTransport = class {
|
|
|
1083
1168
|
};
|
|
1084
1169
|
}
|
|
1085
1170
|
};
|
|
1171
|
+
function splitSSEEvents(buffer) {
|
|
1172
|
+
const endsWithCarriageReturn = buffer.endsWith("\r");
|
|
1173
|
+
const normalized = (endsWithCarriageReturn ? buffer.slice(0, -1) : buffer).replace(/\r\n?/g, "\n");
|
|
1174
|
+
const completeEvents = normalized.split("\n\n");
|
|
1175
|
+
const remainder = completeEvents.pop() ?? "";
|
|
1176
|
+
return { completeEvents, remainder: endsWithCarriageReturn ? `${remainder}\r` : remainder };
|
|
1177
|
+
}
|
|
1086
1178
|
|
|
1087
1179
|
// libs/testing/src/platform/platform-client-info.ts
|
|
1088
1180
|
var MCP_APPS_EXTENSION_KEY = "io.modelcontextprotocol/ui";
|
|
@@ -1219,7 +1311,8 @@ var McpTestClientBuilder = class {
|
|
|
1219
1311
|
return this;
|
|
1220
1312
|
}
|
|
1221
1313
|
/**
|
|
1222
|
-
* Set the MCP protocol version to request
|
|
1314
|
+
* Set the MCP protocol version to request (default '2025-06-18').
|
|
1315
|
+
* '2026-07-28' has no initialize handshake, so `build()` throws for it.
|
|
1223
1316
|
*/
|
|
1224
1317
|
withProtocolVersion(version) {
|
|
1225
1318
|
this.config.protocolVersion = version;
|
|
@@ -1315,6 +1408,7 @@ var McpTestClientBuilder = class {
|
|
|
1315
1408
|
// libs/testing/src/client/mcp-test-client.ts
|
|
1316
1409
|
var DEFAULT_TIMEOUT2 = 3e4;
|
|
1317
1410
|
var DEFAULT_PROTOCOL_VERSION = "2025-06-18";
|
|
1411
|
+
var UNSUPPORTED_PROTOCOL_VERSIONS = ["2026-07-28"];
|
|
1318
1412
|
var DEFAULT_CLIENT_INFO = {
|
|
1319
1413
|
name: "@frontmcp/testing",
|
|
1320
1414
|
version: "0.4.0"
|
|
@@ -1351,6 +1445,8 @@ var McpTestClient = class {
|
|
|
1351
1445
|
_traces = [];
|
|
1352
1446
|
_notifications = [];
|
|
1353
1447
|
_progressUpdates = [];
|
|
1448
|
+
collectingProgress = false;
|
|
1449
|
+
progressTokenCounter = 0;
|
|
1354
1450
|
// Interceptor chain
|
|
1355
1451
|
_interceptors;
|
|
1356
1452
|
// Elicitation handler for server→client elicit requests
|
|
@@ -1359,6 +1455,11 @@ var McpTestClient = class {
|
|
|
1359
1455
|
// CONSTRUCTOR & FACTORY
|
|
1360
1456
|
// ═══════════════════════════════════════════════════════════════════
|
|
1361
1457
|
constructor(config) {
|
|
1458
|
+
if (config.protocolVersion && UNSUPPORTED_PROTOCOL_VERSIONS.includes(config.protocolVersion)) {
|
|
1459
|
+
throw new Error(
|
|
1460
|
+
`McpTestClient does not support protocol version ${config.protocolVersion}: it has no initialize handshake. Use ${DEFAULT_PROTOCOL_VERSION} or earlier.`
|
|
1461
|
+
);
|
|
1462
|
+
}
|
|
1362
1463
|
this.config = {
|
|
1363
1464
|
baseUrl: config.baseUrl,
|
|
1364
1465
|
entryPath: config.entryPath,
|
|
@@ -1444,6 +1545,7 @@ var McpTestClient = class {
|
|
|
1444
1545
|
jsonrpc: "2.0",
|
|
1445
1546
|
method: "notifications/initialized"
|
|
1446
1547
|
});
|
|
1548
|
+
await this.transport.openNotificationStream?.(this.initResult.protocolVersion);
|
|
1447
1549
|
this.log("info", `Connected to ${this.initResult.serverInfo?.name ?? "MCP Server"}`);
|
|
1448
1550
|
return this.initResult;
|
|
1449
1551
|
}
|
|
@@ -1554,8 +1656,8 @@ var McpTestClient = class {
|
|
|
1554
1656
|
/**
|
|
1555
1657
|
* Call a tool by name with arguments
|
|
1556
1658
|
*/
|
|
1557
|
-
call: async (name, args) => {
|
|
1558
|
-
const response = await this.callTool(name, args);
|
|
1659
|
+
call: async (name, args, options = {}) => {
|
|
1660
|
+
const response = await this.callTool(name, args, this.progressTokenFor(options));
|
|
1559
1661
|
return this.wrapToolResult(response);
|
|
1560
1662
|
}
|
|
1561
1663
|
};
|
|
@@ -1697,6 +1799,7 @@ var McpTestClient = class {
|
|
|
1697
1799
|
* Collect progress notifications specifically
|
|
1698
1800
|
*/
|
|
1699
1801
|
collectProgress: () => {
|
|
1802
|
+
this.collectingProgress = true;
|
|
1700
1803
|
return new ProgressCollector(this._progressUpdates);
|
|
1701
1804
|
},
|
|
1702
1805
|
/**
|
|
@@ -2002,12 +2105,29 @@ var McpTestClient = class {
|
|
|
2002
2105
|
async listTools() {
|
|
2003
2106
|
return this.request("tools/list", {});
|
|
2004
2107
|
}
|
|
2005
|
-
async callTool(name, args) {
|
|
2108
|
+
async callTool(name, args, progressToken) {
|
|
2006
2109
|
return this.request("tools/call", {
|
|
2007
2110
|
name,
|
|
2008
|
-
arguments: args ?? {}
|
|
2111
|
+
arguments: args ?? {},
|
|
2112
|
+
...progressToken !== void 0 && { _meta: { progressToken } }
|
|
2009
2113
|
});
|
|
2010
2114
|
}
|
|
2115
|
+
progressTokenFor(options) {
|
|
2116
|
+
if (options.progressToken !== void 0) return options.progressToken;
|
|
2117
|
+
return this.collectingProgress ? `progress-${++this.progressTokenCounter}` : void 0;
|
|
2118
|
+
}
|
|
2119
|
+
recordNotification = (notification) => {
|
|
2120
|
+
const timestamp = /* @__PURE__ */ new Date();
|
|
2121
|
+
this._notifications.push({ method: notification.method, params: notification.params, timestamp });
|
|
2122
|
+
if (notification.method !== "notifications/progress") return;
|
|
2123
|
+
const { progress, total, progressToken } = notification.params ?? {};
|
|
2124
|
+
this._progressUpdates.push({
|
|
2125
|
+
progress: Number(progress),
|
|
2126
|
+
total: typeof total === "number" ? total : void 0,
|
|
2127
|
+
progressToken: typeof progressToken === "string" || typeof progressToken === "number" ? progressToken : void 0,
|
|
2128
|
+
timestamp
|
|
2129
|
+
});
|
|
2130
|
+
};
|
|
2011
2131
|
async listResources() {
|
|
2012
2132
|
return this.request("resources/list", {});
|
|
2013
2133
|
}
|
|
@@ -2054,7 +2174,8 @@ var McpTestClient = class {
|
|
|
2054
2174
|
debug: this.config.debug,
|
|
2055
2175
|
interceptors: this._interceptors,
|
|
2056
2176
|
clientInfo: this.config.clientInfo,
|
|
2057
|
-
elicitationHandler: this._elicitationHandler
|
|
2177
|
+
elicitationHandler: this._elicitationHandler,
|
|
2178
|
+
notificationHandler: this.recordNotification
|
|
2058
2179
|
});
|
|
2059
2180
|
case "sse":
|
|
2060
2181
|
throw new Error("SSE transport not yet implemented");
|