@frontmcp/testing 1.11.2 → 1.12.0-rc.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 +11 -1
- package/assertions/mcp-assertions.d.ts +2 -2
- package/assertions/mcp-assertions.d.ts.map +1 -1
- package/auth/mock-cimd-server.d.ts +12 -2
- package/auth/mock-cimd-server.d.ts.map +1 -1
- package/client/index.d.ts +1 -1
- package/client/index.d.ts.map +1 -1
- package/client/mcp-test-client.builder.d.ts +23 -4
- package/client/mcp-test-client.builder.d.ts.map +1 -1
- package/client/mcp-test-client.d.ts +46 -1
- package/client/mcp-test-client.d.ts.map +1 -1
- package/client/mcp-test-client.types.d.ts +20 -3
- package/client/mcp-test-client.types.d.ts.map +1 -1
- package/esm/fixtures/index.mjs +2 -2
- package/esm/index.mjs +5 -5
- package/esm/package.json +6 -6
- package/esm/perf/index.mjs +1 -1
- package/fixtures/fixture-types.d.ts +13 -0
- package/fixtures/fixture-types.d.ts.map +1 -1
- package/fixtures/index.js +3 -3
- package/fixtures/test-fixture.d.ts.map +1 -1
- package/index.d.ts +3 -1
- package/index.d.ts.map +1 -1
- package/index.js +7 -7
- package/interceptor/interceptor-chain.d.ts +1 -1
- package/interceptor/interceptor-chain.d.ts.map +1 -1
- package/interceptor/mock-registry.d.ts +1 -1
- package/interceptor/mock-registry.d.ts.map +1 -1
- package/matchers/index.d.ts +1 -1
- package/matchers/index.d.ts.map +1 -1
- package/package.json +6 -6
- package/perf/index.js +4 -4
- package/perf/leak-detector.d.ts.map +1 -1
- package/perf/metrics-collector.d.ts +1 -1
- package/perf/metrics-collector.d.ts.map +1 -1
- package/perf/perf-fixtures.d.ts +1 -1
- package/perf/perf-fixtures.d.ts.map +1 -1
- package/perf/regression-detector.d.ts +1 -1
- package/perf/regression-detector.d.ts.map +1 -1
- package/server/port-registry.d.ts +16 -0
- package/server/port-registry.d.ts.map +1 -1
- package/transport/mcp-20260728.d.ts +19 -0
- package/transport/mcp-20260728.d.ts.map +1 -0
- package/transport/streamable-http.transport.d.ts +15 -1
- package/transport/streamable-http.transport.d.ts.map +1 -1
- package/transport/transport.interface.d.ts +19 -1
- package/transport/transport.interface.d.ts.map +1 -1
- package/webhook/webhook-receiver.d.ts +85 -0
- package/webhook/webhook-receiver.d.ts.map +1 -0
package/README.md
CHANGED
|
@@ -92,7 +92,9 @@ test.use({
|
|
|
92
92
|
transport: 'streamable-http', // or 'sse'
|
|
93
93
|
entryPath: '/mcp', // if the server sets http.entryPath
|
|
94
94
|
publicMode: true, // send no Authorization header, for auth: { mode: 'public' }
|
|
95
|
-
logLevel: 'debug',
|
|
95
|
+
logLevel: 'debug', // the server's own log level
|
|
96
|
+
protocolVersion: '2026-07-28', // default: '2025-06-18'
|
|
97
|
+
mcpLogLevel: 'info', // the log messages the clients ask for; default: 'debug', false for none
|
|
96
98
|
env: { API_KEY: 'test' },
|
|
97
99
|
startupTimeout: 30_000,
|
|
98
100
|
});
|
|
@@ -100,6 +102,14 @@ test.use({
|
|
|
100
102
|
|
|
101
103
|
Call `test.use()` at the top of a file to configure every test in it, or inside `test.describe()` to configure that block, which then gets a server of its own. `baseUrl` tests a server that's already running instead of starting one.
|
|
102
104
|
|
|
105
|
+
## Notifications
|
|
106
|
+
|
|
107
|
+
A tool's progress and log messages reach `mcp.notifications` by the time `mcp.tools.call()` returns, from a FrontMCP server that sends them on the call's own response (1.11.3 and later). The client asks for every log message unless `mcpLogLevel` says otherwise, and each progress update keeps its `message`.
|
|
108
|
+
|
|
109
|
+
## Protocol versions
|
|
110
|
+
|
|
111
|
+
The client speaks MCP `2025-06-18` by default, and any revision up to `2025-11-25` opens a session with `initialize`. With `protocolVersion: '2026-07-28'` it's stateless: it connects with `server/discover`, sends each request with its `_meta` and mirrored headers (`MCP-Protocol-Version`, `Mcp-Method`, `Mcp-Name`, `Mcp-Param-*`), answers a tool's `this.elicit()` through `input_required` with your `mcp.onElicitation()` handler, and listens for changes with `subscriptions/listen`. `mcp.discover()` sends `server/discover` from a client on any version.
|
|
112
|
+
|
|
103
113
|
## Other exports
|
|
104
114
|
|
|
105
115
|
| Export | Use it to |
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @file mcp-assertions.ts
|
|
3
3
|
* @description MCP-specific test assertions
|
|
4
4
|
*/
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
5
|
+
import type { CallToolResult, Prompt, ReadResourceResult, Resource, ResourceTemplate, Tool } from '@frontmcp/protocol';
|
|
6
|
+
import type { McpErrorInfo, McpResponse, ResourceContentWrapper, ToolResultWrapper } from '../client';
|
|
7
7
|
/**
|
|
8
8
|
* MCP-specific assertion helpers
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-assertions.d.ts","sourceRoot":"","sources":["../../src/assertions/mcp-assertions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp-assertions.d.ts","sourceRoot":"","sources":["../../src/assertions/mcp-assertions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEvH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAMtG;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;;OAGG;kBACW,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAC;IAW/D;;;OAGG;gBACS,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,iBAAiB,MAAM,GAAG,YAAY;IAa7E;;OAEG;8BACuB,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,IAAI;IAiBhF;;OAEG;8BAEO,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,QACjD,MAAM,GAAG,OAAO,GAAG,UAAU,GAClC,IAAI;IAkBP;;OAEG;iCAC0B,sBAAsB,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,MAAM;IAwB9F;;OAEG;8BACuB,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI;IASrD;;OAEG;sCAC+B,QAAQ,EAAE,OAAO,MAAM,GAAG,QAAQ;IASpE;;OAEG;8CACuC,gBAAgB,EAAE,eAAe,MAAM,GAAG,gBAAgB;IASpG;;OAEG;kCAC2B,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM;CAQ9D,CAAC;AAMF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,OAAO,CAExF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAM1G;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErF"}
|
|
@@ -49,8 +49,18 @@ export interface MockCimdClientOptions {
|
|
|
49
49
|
*/
|
|
50
50
|
tokenEndpointAuthMethod?: 'none' | 'client_secret_basic' | 'client_secret_post' | 'private_key_jwt';
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
|
|
52
|
+
* Inline public keys a `private_key_jwt` client signs its client assertions with. Not together with `jwksUri`.
|
|
53
|
+
*/
|
|
54
|
+
jwks?: {
|
|
55
|
+
keys: Array<Record<string, unknown>>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* URL of the key set a `private_key_jwt` client signs its client assertions with. Not together with `jwks`.
|
|
59
|
+
*/
|
|
60
|
+
jwksUri?: string;
|
|
61
|
+
/**
|
|
62
|
+
* OAuth grant types the client can use. Without `refresh_token`, FrontMCP issues the client no refresh token.
|
|
63
|
+
* @default ['authorization_code', 'refresh_token']
|
|
54
64
|
*/
|
|
55
65
|
grantTypes?: string[];
|
|
56
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-cimd-server.d.ts","sourceRoot":"","sources":["../../src/auth/mock-cimd-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;IAEpG;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"mock-cimd-server.d.ts","sourceRoot":"","sources":["../../src/auth/mock-cimd-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;IAEpG;;OAEG;IACH,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC;IAEhD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAmC;IAEhD,4BAA4B;IAC5B,OAAO,CAAC,OAAO,CAAuC;IAEtD,yDAAyD;IACzD,OAAO,CAAC,eAAe,CAAyD;gBAEpE,OAAO,GAAE,qBAA0B;IAI/C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAmC1C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;OAEG;IACH,IAAI,IAAI,IAAI,kBAAkB,CAK7B;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IA8BtD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjC;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAiB9D;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAM1E;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,aAAa;IAkDrB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,GAAG;CAKZ"}
|
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, 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';
|
|
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, DiscoverResult, 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,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"}
|
|
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,cAAc,EACd,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"}
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* @file mcp-test-client.builder.ts
|
|
3
3
|
* @description Builder pattern for creating McpTestClient instances
|
|
4
4
|
*/
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
5
|
+
import type { LoggingLevel } from '@frontmcp/protocol';
|
|
6
|
+
import type { EventsClientOptions } from '@frontmcp/sdk';
|
|
7
7
|
import type { TestPlatformType } from '../platform/platform-types';
|
|
8
|
+
import { McpTestClient } from './mcp-test-client';
|
|
9
|
+
import type { McpTestClientConfig, TestAuthConfig, TestClientCapabilities, TestTransportType } from './mcp-test-client.types';
|
|
8
10
|
/**
|
|
9
11
|
* Builder for creating McpTestClient instances with fluent API
|
|
10
12
|
*
|
|
@@ -52,10 +54,14 @@ export declare class McpTestClientBuilder {
|
|
|
52
54
|
*/
|
|
53
55
|
withPublicMode(enabled?: boolean): this;
|
|
54
56
|
/**
|
|
55
|
-
* Set the MCP protocol version
|
|
56
|
-
* '2026-07-28'
|
|
57
|
+
* Set the MCP protocol version the client speaks (default '2025-06-18').
|
|
58
|
+
* '2026-07-28' is stateless: the client sends `server/discover` instead of `initialize`.
|
|
57
59
|
*/
|
|
58
60
|
withProtocolVersion(version: string): this;
|
|
61
|
+
/**
|
|
62
|
+
* Set the level of the log messages the client asks the server for (default 'debug'); `false` asks for none.
|
|
63
|
+
*/
|
|
64
|
+
withMcpLogLevel(level: LoggingLevel | false): this;
|
|
59
65
|
/**
|
|
60
66
|
* Set the client info sent during initialization
|
|
61
67
|
*/
|
|
@@ -116,6 +122,19 @@ export declare class McpTestClientBuilder {
|
|
|
116
122
|
* ```
|
|
117
123
|
*/
|
|
118
124
|
withQueryParams(params: Record<string, string>): this;
|
|
125
|
+
/**
|
|
126
|
+
* Configure `client.events` (MCP Events): a webhook receiver to subscribe by webhook, a cursor store, the poll floor.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const receiver = new WebhookReceiver();
|
|
131
|
+
* const { url } = await receiver.start();
|
|
132
|
+
* const client = await McpTestClient.create({ baseUrl })
|
|
133
|
+
* .withEvents({ webhook: { url, receiver: receiver.eventReceiver } })
|
|
134
|
+
* .buildAndConnect();
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
withEvents(options: EventsClientOptions): this;
|
|
119
138
|
/**
|
|
120
139
|
* Build the McpTestClient instance (does not connect)
|
|
121
140
|
*/
|
|
@@ -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,
|
|
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,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;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,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI;IAKlD;;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;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAK9C;;OAEG;IACH,KAAK,IAAI,aAAa;IAItB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;CAKhD"}
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
* @file mcp-test-client.ts
|
|
3
3
|
* @description Main MCP Test Client implementation for E2E testing
|
|
4
4
|
*/
|
|
5
|
+
import { type DiscoverResult } from '@frontmcp/protocol';
|
|
6
|
+
import { EventsClient } from '@frontmcp/sdk';
|
|
5
7
|
import { type MockDefinition, type MockHandle, type RequestInterceptor, type ResponseInterceptor } from '../interceptor';
|
|
6
8
|
import { McpTestClientBuilder } from './mcp-test-client.builder';
|
|
7
9
|
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
10
|
export declare class McpTestClient {
|
|
9
11
|
private readonly config;
|
|
12
|
+
/** Protocol 2026-07-28: the resources `resources.subscribe()` listens to. */
|
|
13
|
+
private readonly resourceSubscriptions;
|
|
14
|
+
/** Protocol 2026-07-28: whether the tools were listed since connecting, which mirrors `x-mcp-header` arguments. */
|
|
15
|
+
private toolsListed;
|
|
10
16
|
private transport;
|
|
11
17
|
private initResult;
|
|
12
18
|
private requestIdCounter;
|
|
@@ -24,6 +30,7 @@ export declare class McpTestClient {
|
|
|
24
30
|
private progressTokenCounter;
|
|
25
31
|
private _interceptors;
|
|
26
32
|
private _elicitationHandler?;
|
|
33
|
+
private eventsClient?;
|
|
27
34
|
constructor(config: McpTestClientConfig);
|
|
28
35
|
/**
|
|
29
36
|
* Create a new McpTestClientBuilder for fluent configuration
|
|
@@ -73,6 +80,12 @@ export declare class McpTestClient {
|
|
|
73
80
|
* Check if server has a specific capability
|
|
74
81
|
*/
|
|
75
82
|
hasCapability(name: 'tools' | 'resources' | 'prompts' | 'logging' | 'sampling'): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Send `server/discover` and return what the server answers: its supported versions, capabilities,
|
|
85
|
+
* instructions and `_meta` (with its server info). Sent as a 2026-07-28 request whatever revision
|
|
86
|
+
* this client speaks, since the method exists only there. Throws with the server's error.
|
|
87
|
+
*/
|
|
88
|
+
discover(): Promise<DiscoverResult>;
|
|
76
89
|
readonly tools: {
|
|
77
90
|
/**
|
|
78
91
|
* List all available tools
|
|
@@ -98,7 +111,9 @@ export declare class McpTestClient {
|
|
|
98
111
|
read: (uri: string) => Promise<ResourceContentWrapper>;
|
|
99
112
|
/**
|
|
100
113
|
* Subscribe to a resource: the server then sends `notifications/resources/updated` when it changes.
|
|
101
|
-
* Throws with the server's error when it refuses the subscription.
|
|
114
|
+
* Throws with the server's error when it refuses the subscription. On 2026-07-28, which has no
|
|
115
|
+
* `resources/subscribe`, the client listens again (`subscriptions/listen`) with the URI added, and
|
|
116
|
+
* throws when the server doesn't acknowledge it.
|
|
102
117
|
*/
|
|
103
118
|
subscribe: (uri: string) => Promise<void>;
|
|
104
119
|
/**
|
|
@@ -116,6 +131,16 @@ export declare class McpTestClient {
|
|
|
116
131
|
*/
|
|
117
132
|
get: (name: string, args?: Record<string, string>) => Promise<PromptResultWrapper>;
|
|
118
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* `events.list()` lists the event types; `events.subscribe(name, args)` subscribes to one and yields its
|
|
136
|
+
* occurrences: by webhook when `withEvents({ webhook })` configured a receiver, else by push over Streamable HTTP,
|
|
137
|
+
* else by poll.
|
|
138
|
+
*/
|
|
139
|
+
get events(): EventsClient;
|
|
140
|
+
/** The events client's way to the server: this client's requests, and `events/stream` over Streamable HTTP. */
|
|
141
|
+
private eventsTransport;
|
|
142
|
+
/** Hold an `events/stream` open; over a session, cancel it with `notifications/cancelled` when it is aborted. */
|
|
143
|
+
private openEventStream;
|
|
119
144
|
readonly raw: {
|
|
120
145
|
/**
|
|
121
146
|
* Send any JSON-RPC request
|
|
@@ -376,7 +401,18 @@ export declare class McpTestClient {
|
|
|
376
401
|
clearAll: () => void;
|
|
377
402
|
};
|
|
378
403
|
setTimeout(ms: number): void;
|
|
404
|
+
private get isStateless();
|
|
405
|
+
private get clientCapabilities();
|
|
379
406
|
private initialize;
|
|
407
|
+
/** Protocol 2026-07-28 has no `initialize`: `server/discover` tells the client what the server offers. */
|
|
408
|
+
private discoverServer;
|
|
409
|
+
/** Ask for the server's log messages at `mcpLogLevel`, when the server has the logging capability. */
|
|
410
|
+
private setServerLogLevel;
|
|
411
|
+
/** Protocol 2026-07-28: open the `subscriptions/listen` stream for list changes and the subscribed resources. */
|
|
412
|
+
private listen;
|
|
413
|
+
private listenToResource;
|
|
414
|
+
/** Protocol 2026-07-28 mirrors `x-mcp-header` arguments into headers, so the tools' schemas are listed once. */
|
|
415
|
+
private learnToolSchemas;
|
|
380
416
|
private listTools;
|
|
381
417
|
/**
|
|
382
418
|
* Follow `nextCursor` until the server stops returning one, concatenating the
|
|
@@ -395,7 +431,16 @@ export declare class McpTestClient {
|
|
|
395
431
|
/** The MCP path this client is currently pointed at, for log and error text. */
|
|
396
432
|
private mcpPathLabel;
|
|
397
433
|
private createTransport;
|
|
434
|
+
/**
|
|
435
|
+
* Send a request, and answer each `input_required` result (protocol 2026-07-28) by sending the
|
|
436
|
+
* request again with the answers and the server's `requestState`, until the server settles.
|
|
437
|
+
*/
|
|
398
438
|
private request;
|
|
439
|
+
/** The answers to an `input_required` result's requests, or why the client can't give them. */
|
|
440
|
+
private answerInputRequests;
|
|
441
|
+
/** As over a session: the handler's answer, `decline` without a handler, and `cancel` when it throws. */
|
|
442
|
+
private answerElicitation;
|
|
443
|
+
private send;
|
|
399
444
|
/**
|
|
400
445
|
* Get the transport, throwing if not connected.
|
|
401
446
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-test-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"mcp-test-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* @file mcp-test-client.types.ts
|
|
3
3
|
* @description Type definitions for the MCP Test Client
|
|
4
4
|
*/
|
|
5
|
-
import type { CallToolResult, GetPromptResult, Implementation, InitializeResult, ListPromptsResult, ListResourcesResult, ListResourceTemplatesResult, ListToolsResult, Prompt, ReadResourceResult, Resource, ResourceTemplate, Tool } from '@frontmcp/protocol';
|
|
5
|
+
import type { CallToolResult, DiscoverResult, GetPromptResult, Implementation, InitializeResult, ListPromptsResult, ListResourcesResult, ListResourceTemplatesResult, ListToolsResult, LoggingLevel, Prompt, ReadResourceResult, Resource, ResourceTemplate, Tool } from '@frontmcp/protocol';
|
|
6
|
+
import type { EventsClientOptions } from '@frontmcp/sdk';
|
|
6
7
|
import type { TestPlatformType } from '../platform/platform-types';
|
|
7
8
|
/**
|
|
8
9
|
* Simplified JSON-RPC request type for testing
|
|
@@ -96,6 +97,8 @@ export interface TestClientCapabilities {
|
|
|
96
97
|
export interface McpTestClientConfig {
|
|
97
98
|
/** Base URL of the MCP server (its root, not the MCP endpoint). */
|
|
98
99
|
baseUrl: string;
|
|
100
|
+
/** How `client.events` subscribes: a webhook receiver, a cursor store, the poll floor. */
|
|
101
|
+
events?: EventsClientOptions;
|
|
99
102
|
/**
|
|
100
103
|
* The server's `http.entryPath` — where MCP itself is mounted (`/mcp`, …).
|
|
101
104
|
* Defaults to the server root. Applied to the MCP endpoint only; OAuth and
|
|
@@ -117,8 +120,20 @@ export interface McpTestClientConfig {
|
|
|
117
120
|
timeout?: number;
|
|
118
121
|
/** Enable debug logging (default: false) */
|
|
119
122
|
debug?: boolean;
|
|
120
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* The MCP protocol version the client speaks (default: '2025-06-18'). Up to '2025-11-25' it opens a
|
|
125
|
+
* session with `initialize`. '2026-07-28' is stateless: `connect()` sends `server/discover`, and every
|
|
126
|
+
* request carries the version, client info, capabilities and log level in its `_meta`, with the
|
|
127
|
+
* `MCP-Protocol-Version`, `Mcp-Method`, `Mcp-Name` and `Mcp-Param-*` headers. It needs the
|
|
128
|
+
* 'streamable-http' transport.
|
|
129
|
+
*/
|
|
121
130
|
protocolVersion?: string;
|
|
131
|
+
/**
|
|
132
|
+
* The level of the log messages (`notifications/message`) the client asks the server for
|
|
133
|
+
* (default: 'debug', every message). Sent with `logging/setLevel` after `initialize`, when the server
|
|
134
|
+
* has the logging capability, or in each request's `_meta` on 2026-07-28. `false` asks for none.
|
|
135
|
+
*/
|
|
136
|
+
mcpLogLevel?: LoggingLevel | false;
|
|
122
137
|
/** Client info to send during initialization and for platform detection */
|
|
123
138
|
clientInfo?: ClientInfo;
|
|
124
139
|
/**
|
|
@@ -289,6 +304,8 @@ export interface ProgressUpdate {
|
|
|
289
304
|
progress: number;
|
|
290
305
|
/** Total value */
|
|
291
306
|
total?: number;
|
|
307
|
+
/** The update's message, when the server sent one */
|
|
308
|
+
message?: string;
|
|
292
309
|
/** Progress token */
|
|
293
310
|
progressToken?: string | number;
|
|
294
311
|
/** Timestamp */
|
|
@@ -348,5 +365,5 @@ export interface ElicitResponse {
|
|
|
348
365
|
* Called when the server requests interactive input during tool execution.
|
|
349
366
|
*/
|
|
350
367
|
export type ElicitationHandler = (request: ElicitationCreateRequest) => Promise<ElicitResponse> | ElicitResponse;
|
|
351
|
-
export type { InitializeResult, ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListResourceTemplatesResult, ListPromptsResult, GetPromptResult, Tool, Resource, ResourceTemplate, Prompt, };
|
|
368
|
+
export type { DiscoverResult, InitializeResult, ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListResourceTemplatesResult, ListPromptsResult, GetPromptResult, Tool, Resource, ResourceTemplate, Prompt, };
|
|
352
369
|
//# sourceMappingURL=mcp-test-client.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-test-client.types.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,eAAe,EACf,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,IAAI,EACL,MAAM,oBAAoB,CAAC;
|
|
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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"}
|