@mastra/mcp 1.18.1-alpha.2 → 2.0.0-alpha.4

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.
Files changed (90) hide show
  1. package/dist/client/actions/resource.d.ts +9 -59
  2. package/dist/client/actions/resource.d.ts.map +1 -1
  3. package/dist/client/client.d.ts +71 -124
  4. package/dist/client/client.d.ts.map +1 -1
  5. package/dist/client/configuration.d.ts +30 -120
  6. package/dist/client/configuration.d.ts.map +1 -1
  7. package/dist/client/error-utils.d.ts +9 -0
  8. package/dist/client/error-utils.d.ts.map +1 -1
  9. package/dist/client/index.d.ts +2 -1
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/oauth-callback-server.d.ts +8 -4
  12. package/dist/client/oauth-callback-server.d.ts.map +1 -1
  13. package/dist/client/oauth-provider.d.ts +91 -45
  14. package/dist/client/oauth-provider.d.ts.map +1 -1
  15. package/dist/client/server-proxy.d.ts +26 -46
  16. package/dist/client/server-proxy.d.ts.map +1 -1
  17. package/dist/client/types.d.ts +106 -143
  18. package/dist/client/types.d.ts.map +1 -1
  19. package/dist/conformance/fixture.d.ts +3 -0
  20. package/dist/conformance/fixture.d.ts.map +1 -0
  21. package/dist/conformance/run.d.ts +2 -0
  22. package/dist/conformance/run.d.ts.map +1 -0
  23. package/dist/conformance/stdio-server.d.ts +2 -0
  24. package/dist/conformance/stdio-server.d.ts.map +1 -0
  25. package/dist/docs/SKILL.md +2 -1
  26. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  27. package/dist/docs/references/reference-migrations-mcp-v2.md +268 -0
  28. package/dist/docs/references/reference-tools-mcp-client.md +36 -14
  29. package/dist/docs/references/reference-tools-mcp-server.md +24 -83
  30. package/dist/index.cjs +1532 -3284
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +1535 -3288
  33. package/dist/index.js.map +1 -1
  34. package/dist/server/actions.d.ts +34 -0
  35. package/dist/server/actions.d.ts.map +1 -0
  36. package/dist/server/oauth-middleware.d.ts +1 -1
  37. package/dist/server/request.d.ts +54 -0
  38. package/dist/server/request.d.ts.map +1 -0
  39. package/dist/server/server.d.ts +112 -808
  40. package/dist/server/server.d.ts.map +1 -1
  41. package/dist/server/types.d.ts +82 -138
  42. package/dist/server/types.d.ts.map +1 -1
  43. package/dist/shared/index.d.ts +1 -0
  44. package/dist/shared/index.d.ts.map +1 -1
  45. package/dist/shared/oauth-types.d.ts +3 -3
  46. package/dist/shared/oauth-types.d.ts.map +1 -1
  47. package/dist/shared/trace-context.d.ts +20 -0
  48. package/dist/shared/trace-context.d.ts.map +1 -0
  49. package/package.json +12 -17
  50. package/dist/_types/hono/dist/types/client/client.d.ts +0 -4
  51. package/dist/_types/hono/dist/types/client/fetch-result-please.d.ts +0 -35
  52. package/dist/_types/hono/dist/types/client/index.d.ts +0 -7
  53. package/dist/_types/hono/dist/types/client/types.d.ts +0 -229
  54. package/dist/_types/hono/dist/types/client/utils.d.ts +0 -18
  55. package/dist/_types/hono/dist/types/context.d.ts +0 -455
  56. package/dist/_types/hono/dist/types/helper/streaming/index.d.ts +0 -8
  57. package/dist/_types/hono/dist/types/helper/streaming/sse.d.ts +0 -13
  58. package/dist/_types/hono/dist/types/helper/streaming/stream.d.ts +0 -3
  59. package/dist/_types/hono/dist/types/helper/streaming/text.d.ts +0 -3
  60. package/dist/_types/hono/dist/types/hono-base.d.ts +0 -220
  61. package/dist/_types/hono/dist/types/hono.d.ts +0 -19
  62. package/dist/_types/hono/dist/types/index.d.ts +0 -37
  63. package/dist/_types/hono/dist/types/request/constants.d.ts +0 -1
  64. package/dist/_types/hono/dist/types/request.d.ts +0 -324
  65. package/dist/_types/hono/dist/types/router.d.ts +0 -97
  66. package/dist/_types/hono/dist/types/types.d.ts +0 -573
  67. package/dist/_types/hono/dist/types/utils/body.d.ts +0 -79
  68. package/dist/_types/hono/dist/types/utils/headers.d.ts +0 -8
  69. package/dist/_types/hono/dist/types/utils/http-status.d.ts +0 -32
  70. package/dist/_types/hono/dist/types/utils/mime.d.ts +0 -70
  71. package/dist/_types/hono/dist/types/utils/stream.d.ts +0 -31
  72. package/dist/_types/hono/dist/types/utils/types.d.ts +0 -74
  73. package/dist/_types/hono/package.json +0 -1
  74. package/dist/_types/hono-mcp-server-sse-transport/build/index.d.ts +0 -1
  75. package/dist/_types/hono-mcp-server-sse-transport/build/sse.d.ts +0 -25
  76. package/dist/_types/hono-mcp-server-sse-transport/package.json +0 -1
  77. package/dist/client/actions/elicitation.d.ts +0 -63
  78. package/dist/client/actions/elicitation.d.ts.map +0 -1
  79. package/dist/server/__tests__/mock-extra.d.ts +0 -15
  80. package/dist/server/__tests__/mock-extra.d.ts.map +0 -1
  81. package/dist/server/mrtrElicitation.d.ts +0 -39
  82. package/dist/server/mrtrElicitation.d.ts.map +0 -1
  83. package/dist/server/notificationBroadcast.d.ts +0 -24
  84. package/dist/server/notificationBroadcast.d.ts.map +0 -1
  85. package/dist/server/promptActions.d.ts +0 -49
  86. package/dist/server/promptActions.d.ts.map +0 -1
  87. package/dist/server/resourceActions.d.ts +0 -72
  88. package/dist/server/resourceActions.d.ts.map +0 -1
  89. package/dist/server/toolActions.d.ts +0 -84
  90. package/dist/server/toolActions.d.ts.map +0 -1
@@ -102,75 +102,25 @@ export declare class ResourceClientActions {
102
102
  })[];
103
103
  }>;
104
104
  /**
105
- * Subscribes to updates for a specific resource.
105
+ * Subscribes to update notifications for a resource. The client carries every
106
+ * subscription on one `subscriptions/listen` stream and reopens it after reconnects.
106
107
  *
107
- * After subscribing, you'll receive notifications via the `onUpdated` handler
108
- * when the resource content changes.
109
- *
110
- * @param uri - URI of the resource to subscribe to
111
- * @returns Promise resolving when subscription is established
112
- * @throws {Error} If subscription fails
108
+ * @param uri - URI of the resource to watch
109
+ * @throws {Error} If the server declines the subscription
113
110
  *
114
111
  * @example
115
112
  * ```typescript
113
+ * await client.resources.onUpdated(({ uri }) => console.log(`updated ${uri}`));
116
114
  * await client.resources.subscribe('file://data/config.json');
117
115
  * ```
118
116
  */
119
- subscribe(uri: string): Promise<{
120
- _meta?: {
121
- [x: string]: unknown;
122
- "io.modelcontextprotocol/serverInfo"?: {
123
- version: string;
124
- websiteUrl?: string | undefined;
125
- description?: string | undefined;
126
- icons?: {
127
- src: string;
128
- mimeType?: string | undefined;
129
- sizes?: string[] | undefined;
130
- theme?: "dark" | "light" | undefined;
131
- }[] | undefined;
132
- name: string;
133
- title?: string | undefined;
134
- } | undefined;
135
- } | undefined;
136
- }>;
137
- /**
138
- * Unsubscribes from updates for a specific resource.
139
- *
140
- * Stops receiving notifications for this resource URI.
141
- *
142
- * @param uri - URI of the resource to unsubscribe from
143
- * @returns Promise resolving when unsubscription is complete
144
- * @throws {Error} If unsubscription fails
145
- *
146
- * @example
147
- * ```typescript
148
- * await client.resources.unsubscribe('file://data/config.json');
149
- * ```
150
- */
151
- unsubscribe(uri: string): Promise<{
152
- _meta?: {
153
- [x: string]: unknown;
154
- "io.modelcontextprotocol/serverInfo"?: {
155
- version: string;
156
- websiteUrl?: string | undefined;
157
- description?: string | undefined;
158
- icons?: {
159
- src: string;
160
- mimeType?: string | undefined;
161
- sizes?: string[] | undefined;
162
- theme?: "dark" | "light" | undefined;
163
- }[] | undefined;
164
- name: string;
165
- title?: string | undefined;
166
- } | undefined;
167
- } | undefined;
168
- }>;
117
+ subscribe(uri: string): Promise<void>;
118
+ /** Stops update notifications for a resource previously passed to {@link subscribe}. */
119
+ unsubscribe(uri: string): Promise<void>;
169
120
  /**
170
121
  * Sets a notification handler for when subscribed resources are updated.
171
122
  *
172
- * The handler is called whenever the server sends a resource update notification
173
- * for any resource you've subscribed to.
123
+ * Updates arrive for resources passed to {@link subscribe}.
174
124
  *
175
125
  * @param handler - Callback function receiving the updated resource URI
176
126
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/client/actions/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,UAAU,2BAA2B;IACnC,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,2BAA2B,EAG1D;IAED;;;;;;;;;;;;;;;OAeG;IACU,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAyBvC;IAED;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAyBxD;IAED;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE5B;IAED;;;;;;;;;;;;;;OAcG;IACU,SAAS,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;OAEjC;IAED;;;;;;;;;;;;;OAaG;IACU,WAAW,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;OAEnC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACU,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;IAED;;;;;;;;;;;;;;;OAeG;IACU,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;CACF"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/client/actions/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,UAAU,2BAA2B;IACnC,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,2BAA2B,EAG1D;IAED;;;;;;;;;;;;;;;OAeG;IACU,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAyBvC;IAED;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAyBxD;IAED;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE5B;IAED;;;;;;;;;;;;OAYG;IACU,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;IAED,wFAAwF;IAC3E,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnD;IAED;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;IAED;;;;;;;;;;;;;;;OAeG;IACU,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;CACF"}
@@ -1,13 +1,12 @@
1
1
  import type { Stream } from 'node:stream';
2
2
  import { MastraBase } from '@mastra/core/base';
3
3
  import type { Tool } from '@mastra/core/tools';
4
- import type { EmptyResult, GetPromptResult, ListPromptsResult, ListResourcesResult, ListResourceTemplatesResult, ReadResourceResult } from '@modelcontextprotocol/client';
5
- import { ElicitationClientActions } from './actions/elicitation.js';
4
+ import type { GetPromptResult, ListPromptsResult, ListResourcesResult, ListResourceTemplatesResult, ReadResourceResult } from '@modelcontextprotocol/client';
6
5
  import { ProgressClientActions } from './actions/progress.js';
7
6
  import { PromptClientActions } from './actions/prompt.js';
8
7
  import { ResourceClientActions } from './actions/resource.js';
9
- import type { ElicitationHandler, ProgressHandler, InternalMastraMCPClientOptions, Root, SerializableMCPToolDefinition } from './types.js';
10
- export type { LoggingLevel, LogMessage, LogHandler, ElicitationHandler, ProgressHandler, MastraFetchLike, MastraMCPServerDefinition, InternalMastraMCPClientOptions, Root, RequireToolApproval, RequireToolApprovalFn, RequireToolApprovalContext, SerializableMCPToolDefinition, } from './types.js';
8
+ import type { ProgressHandler, InternalMastraMCPClientOptions, SerializableMCPToolDefinition } from './types.js';
9
+ export type { LoggingLevel, LogMessage, LogHandler, ProgressHandler, MastraFetchLike, MastraMCPServerDefinition, MCPClientCapabilities, MCPClientProtocolVersion, MCPInputRequest, MCPInputRequestHandler, InternalMastraMCPClientOptions, RequireToolApproval, RequireToolApprovalFn, RequireToolApprovalContext, SerializableMCPToolDefinition, } from './types.js';
11
10
  /**
12
11
  * OAuth authorization state of an MCP server connection.
13
12
  *
@@ -50,8 +49,12 @@ export declare function getMcpCallToolMeta(output: unknown): Record<string, unkn
50
49
  /**
51
50
  * Internal MCP client implementation for connecting to a single MCP server.
52
51
  *
53
- * This class handles the low-level connection, transport management, and protocol
54
- * communication with an MCP server. Most users should use MCPClient instead.
52
+ * Probes the server with `server/discover` unless `protocolVersion` pins a
53
+ * revision, then speaks whichever revision was negotiated. On 2026-07-28 there is
54
+ * no session, embedded input requests are answered through the configured
55
+ * `inputRequests` handler, and change notifications arrive on one managed
56
+ * `subscriptions/listen` stream (see {@link subscribeResource}). Those two
57
+ * facilities fail on a legacy negotiation; everything else works on either revision.
55
58
  *
56
59
  * @internal
57
60
  */
@@ -60,8 +63,8 @@ export declare class InternalMastraMCPClient extends MastraBase {
60
63
  private client;
61
64
  private readonly timeout;
62
65
  private logHandler?;
63
- private enableServerLogs?;
64
- private enableProgressTracking?;
66
+ private readonly serverLogLevel?;
67
+ private enableProgressTracking;
65
68
  private serverConfig;
66
69
  private transport?;
67
70
  private pendingAuthTransport?;
@@ -73,68 +76,32 @@ export declare class InternalMastraMCPClient extends MastraBase {
73
76
  private sigTermHandler?;
74
77
  private sigHupHandler?;
75
78
  private serverInstructions?;
76
- private _roots;
77
- private hasElicitationCapability;
79
+ /** The verdict of the last successful probe, reused so reconnects skip it. */
80
+ private priorDiscovery?;
78
81
  private readonly requireToolApproval;
79
82
  private readonly onToolError;
80
- /** Provides access to resource operations (list, read, subscribe, etc.) */
83
+ private jsonSchemaValidator?;
84
+ private jsonSchemaValidatorPromise?;
85
+ /** Provides access to resource operations (list, read, notifications) */
81
86
  readonly resources: ResourceClientActions;
82
87
  /** Provides access to prompt operations (list, get, notifications) */
83
88
  readonly prompts: PromptClientActions;
84
- /** Provides access to elicitation operations (request handling) */
85
- readonly elicitation: ElicitationClientActions;
86
89
  /** Provides access to progress operations (notifications) */
87
90
  readonly progress: ProgressClientActions;
88
91
  /**
89
92
  * @internal
90
93
  */
91
- constructor({ name, version, server, capabilities, timeout, }: InternalMastraMCPClientOptions);
94
+ constructor({ name, version, server, timeout }: InternalMastraMCPClientOptions);
92
95
  /**
93
96
  * Log a message at the specified level
94
- * @param level Log level
95
- * @param message Log message
96
- * @param details Optional additional details
97
97
  */
98
98
  private log;
99
- private setupLogging;
100
99
  /**
101
- * Set up handler for roots/list requests from the server.
102
- *
103
- * Per MCP spec (https://modelcontextprotocol.io/specification/2025-11-25/client/roots):
104
- * When a server sends a roots/list request, the client responds with the configured roots.
105
- */
106
- private setupRootsHandler;
107
- /**
108
- * Get the currently configured roots.
109
- *
110
- * @returns Array of configured filesystem roots
100
+ * Request metadata every outgoing request carries: the per-request log-level
101
+ * opt-in (when enabled) and the W3C trace fields resolved for this request,
102
+ * merged under caller-supplied keys.
111
103
  */
112
- get roots(): Root[];
113
- /**
114
- * Update the list of filesystem roots and notify the server.
115
- *
116
- * Per MCP spec, when roots change, the client sends a `notifications/roots/list_changed`
117
- * notification to inform the server that it should re-fetch the roots list.
118
- *
119
- * @param roots - New list of filesystem roots
120
- *
121
- * @example
122
- * ```typescript
123
- * await client.setRoots([
124
- * { uri: 'file:///home/user/projects', name: 'Projects' },
125
- * { uri: 'file:///tmp', name: 'Temp' }
126
- * ]);
127
- * ```
128
- */
129
- setRoots(roots: Root[]): Promise<void>;
130
- /**
131
- * Send a roots/list_changed notification to the server.
132
- *
133
- * Per MCP spec, clients that support `listChanged` MUST send this notification
134
- * when the list of roots changes. The server will then call roots/list to get
135
- * the updated list.
136
- */
137
- sendRootsListChanged(): Promise<void>;
104
+ private requestMeta;
138
105
  private buildStdioEnv;
139
106
  private connectStdio;
140
107
  private connectHttp;
@@ -142,27 +109,21 @@ export declare class InternalMastraMCPClient extends MastraBase {
142
109
  * Detaches whatever transport is still attached to the underlying SDK Client.
143
110
  *
144
111
  * The SDK assigns its internal `_transport` before `transport.start()` and never
145
- * clears it when `start()` throws, and its cleanup after a failed initialize is a
146
- * fire-and-forget `void this.close()`. Either way a stale transport can remain
147
- * attached, making every subsequent `client.connect()` throw "Already connected
148
- * to a transport" and permanently wedging this client (issue #19862). Mastra's
149
- * own `this.transport` is only assigned after a successful connect, so
150
- * disconnect/forceReconnect never see the stale one. Calling this before every
151
- * connect attempt restores the invariant that a connect starts from a detached
152
- * SDK client.
112
+ * clears it when `start()` throws, so a stale transport can remain attached and
113
+ * make every subsequent `client.connect()` throw "Already connected to a
114
+ * transport". Mastra's own `this.transport` is only assigned after a successful
115
+ * connect, so disconnect/forceReconnect never see the stale one.
153
116
  */
154
117
  private detachStaleClientTransport;
155
118
  /**
156
119
  * Severs the mutual references between the SDK client and a stale transport
157
- * without closing it. Clearing the transport's callbacks ensures a later
158
- * close() of the stale transport cannot reach into the SDK client and clear
159
- * the state of a newer live connection.
120
+ * without closing it, so a later close() of the stale transport cannot reach
121
+ * into the SDK client and clear the state of a newer live connection.
160
122
  */
161
123
  private severClientTransportLink;
162
124
  /**
163
125
  * Closes and clears any transport retained from an unfinished authorization
164
- * flow. Safe to call when nothing is pending. Centralizes the cleanup so
165
- * success, disconnect, and forceReconnect all release the same resource.
126
+ * flow. Safe to call when nothing is pending.
166
127
  */
167
128
  private closePendingAuthTransport;
168
129
  /**
@@ -181,68 +142,55 @@ export declare class InternalMastraMCPClient extends MastraBase {
181
142
  *
182
143
  * Exchanges the authorization code captured at the redirect URI on the same
183
144
  * transport that started the flow, then leaves the client ready to connect().
184
- *
185
- * @param authorizationCode - The authorization code captured at the redirect URI
186
- * @throws {Error} If no authorization flow is pending for this server
145
+ * The RFC 9207 `iss` captured at the redirect is validated against the
146
+ * discovered authorization server before the code is exchanged.
187
147
  *
188
148
  * @internal
189
149
  */
190
- finishAuth(authorizationCode: string): Promise<void>;
150
+ finishAuth(authorizationCode: string, issuer?: string): Promise<void>;
191
151
  private isConnected;
192
152
  private reconnectPromise;
153
+ /**
154
+ * Change notifications the caller has asked for. The client keeps exactly one
155
+ * `subscriptions/listen` stream open for this interest set, replaces it when the
156
+ * set changes and reopens it after a reconnect.
157
+ */
158
+ private subscriptionInterest;
159
+ private subscriptionStream?;
160
+ private subscriptionUpdate;
193
161
  private lifecycleGeneration;
194
162
  /**
195
163
  * Connects to the MCP server using the configured transport.
196
164
  *
197
- * Automatically detects transport type based on configuration (stdio vs HTTP).
198
165
  * Safe to call multiple times - returns existing connection if already connected.
199
166
  *
200
- * @returns Promise resolving to true when connected
201
- * @throws {MastraError} If connection fails
202
- *
203
167
  * @internal
204
168
  */
205
169
  connect(): Promise<boolean>;
206
- /**
207
- * Gets the current session ID if using Streamable HTTP transport.
208
- *
209
- * Returns undefined if not connected or not using Streamable HTTP transport.
210
- *
211
- * @returns Session ID string or undefined
212
- *
213
- * @internal
214
- */
215
- get sessionId(): string | undefined;
216
170
  /**
217
171
  * Gets the stderr stream of the child process, if using stdio transport with `stderr: 'pipe'`.
218
172
  *
219
- * Returns null if not connected, not using stdio transport, or stderr is not piped.
220
- *
221
173
  * @internal
222
174
  */
223
175
  get stderr(): Stream | null;
224
176
  get instructions(): string | undefined;
177
+ /** The protocol revision negotiated with the server; `undefined` until connected. */
178
+ get negotiatedProtocolVersion(): string | undefined;
179
+ private rememberNegotiation;
180
+ /** Fails a call that only the 2026-07-28 revision supports when the server negotiated an older one. */
181
+ private assertCurrentRevision;
225
182
  get forwardInstructions(): boolean;
226
183
  get instructionsMaxLength(): number;
227
- private refreshServerInstructions;
228
184
  disconnect(): Promise<void>;
229
185
  /**
230
186
  * Forces a reconnection to the MCP server by disconnecting and reconnecting.
231
187
  *
232
- * This is useful when the session becomes invalid (e.g., after server restart)
233
- * and the client needs to establish a fresh connection.
234
- *
235
- * @returns Promise resolving when reconnection is complete
236
- * @throws {Error} If reconnection fails
237
- *
238
188
  * @internal
239
189
  */
240
190
  forceReconnect(): Promise<void>;
241
191
  private reconnectAfterTransportFailure;
242
192
  listResources(): Promise<ListResourcesResult>;
243
193
  readResource(uri: string): Promise<ReadResourceResult>;
244
- subscribeResource(uri: string): Promise<EmptyResult>;
245
- unsubscribeResource(uri: string): Promise<EmptyResult>;
246
194
  listResourceTemplates(): Promise<ListResourceTemplatesResult>;
247
195
  /**
248
196
  * Fetch the list of available prompts from the MCP server.
@@ -250,27 +198,40 @@ export declare class InternalMastraMCPClient extends MastraBase {
250
198
  listPrompts(): Promise<ListPromptsResult>;
251
199
  /**
252
200
  * Get a prompt and its dynamic messages from the server.
253
- * @param name The prompt name
254
- * @param args Arguments for the prompt
255
201
  */
256
202
  getPrompt({ name, args }: {
257
203
  name: string;
258
204
  args?: Record<string, any>;
259
205
  }): Promise<GetPromptResult>;
206
+ private hasSubscriptionInterest;
207
+ private subscriptionFilter;
208
+ /** Serializes stream replacements so concurrent mutations apply in order. */
209
+ private enqueueSubscriptionUpdate;
260
210
  /**
261
- * Register a handler to be called when the prompt list changes on the server.
262
- * Use this to refresh cached prompt lists in the client/UI if needed.
211
+ * Opens a `subscriptions/listen` stream for the current interest set, then closes the
212
+ * previous one so no notification is lost between filters. Resource subscriptions the
213
+ * server declines are an error; declined list-changed bits only mean the server has
214
+ * nothing to announce.
263
215
  */
264
- setPromptListChangedNotificationHandler(handler: () => void): void;
216
+ private replaceSubscriptionStream;
217
+ private closeSubscriptionStream;
218
+ /** Applies an interest change to the live stream when connected; otherwise connect() opens it. */
219
+ private applySubscriptionInterest;
265
220
  /**
266
- * Register a handler to be called when the tool list changes on the server.
267
- * Use this to re-fetch tools via `tools()` when notified.
221
+ * Subscribes to `notifications/resources/updated` for a resource. The subscription is
222
+ * carried on the client's single `subscriptions/listen` stream and survives reconnects.
268
223
  */
269
- setToolListChangedNotificationHandler(handler: () => void): void;
270
- setResourceUpdatedNotificationHandler(handler: (params: any) => void): void;
271
- setResourceListChangedNotificationHandler(handler: () => void): void;
272
- setElicitationRequestHandler(handler: ElicitationHandler): void;
224
+ subscribeResource(uri: string): Promise<void>;
225
+ unsubscribeResource(uri: string): Promise<void>;
226
+ private updateResourceSubscriptions;
227
+ setPromptListChangedNotificationHandler(handler: () => void): Promise<void>;
228
+ setToolListChangedNotificationHandler(handler: () => void): Promise<void>;
229
+ setResourceUpdatedNotificationHandler(handler: (params: {
230
+ uri: string;
231
+ }) => void): void;
232
+ setResourceListChangedNotificationHandler(handler: () => void): Promise<void>;
273
233
  setProgressNotificationHandler(handler: ProgressHandler): void;
234
+ private getJsonSchemaValidator;
274
235
  private convertInputSchema;
275
236
  /**
276
237
  * Wraps the output schema with a validator that always succeeds. The tool's execute wrapper
@@ -283,34 +244,20 @@ export declare class InternalMastraMCPClient extends MastraBase {
283
244
  private convertOutputSchema;
284
245
  /**
285
246
  * Returns the server's tool catalog as plain, serializable definitions.
286
- *
287
- * Unlike {@link tools}, this performs no schema conversion and creates no executable
288
- * wrappers, so the result can be cached and reused by other processes. Pass a definition
289
- * back to {@link toolFromDefinition} to rebuild the executable tool without rediscovery.
290
247
  */
291
248
  toolDefinitions(): Promise<Record<string, SerializableMCPToolDefinition>>;
292
- /**
293
- * Captures a `tools/list` entry plus the server metadata that is only reachable from a live
294
- * connection, so a hydrated tool is indistinguishable from a freshly discovered one.
295
- */
296
249
  private toSerializableDefinition;
297
250
  /**
298
251
  * Rebuilds an executable Mastra tool from a cached {@link SerializableMCPToolDefinition}.
299
- *
300
- * No connection is opened here. The client connects lazily, the first time the returned tool
301
- * is actually executed, which is what makes a cached catalog useful for cold starts.
252
+ * The client connects lazily on the first execution.
302
253
  */
303
254
  toolFromDefinition({ definition }: {
304
255
  definition: SerializableMCPToolDefinition;
305
256
  }): Tool<any, any, any, any>;
306
257
  tools(): Promise<Record<string, Tool<any, any, any, any>>>;
307
258
  /**
308
- * Single conversion path shared by live discovery and cached hydration.
309
- *
310
- * Keeping both callers on this one method is what guarantees the issue's requirement that
311
- * hydrated tools behave identically to discovered ones: strict-mode metadata, approval
312
- * policies, structured content, in-band tool errors, progress metadata, abort signals and
313
- * reconnect/retry all come from here rather than being reimplemented per call site.
259
+ * Single conversion path shared by live discovery and cached hydration, so hydrated
260
+ * tools behave identically to discovered ones.
314
261
  */
315
262
  private buildToolFromListEntry;
316
263
  private stampServerIdInMeta;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,KAAK,EAAmB,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAUhE,OAAO,KAAK,EAEV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAE3B,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAGV,kBAAkB,EAClB,eAAe,EAEf,8BAA8B,EAC9B,IAAI,EAEJ,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AASjB,YAAY,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,8BAA8B,EAC9B,IAAI,EACJ,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,SAAS,CAAC;AAQjB;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC;AAkD7D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,eAA2C,CAAC;AAE9E,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,eAAwC,CAAC;AAwBxE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAG9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGvF;AAiGD;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,UAAU;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAU;IACnC,OAAO,CAAC,sBAAsB,CAAC,CAAU;IACzC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAqD;IAClF,OAAO,CAAC,iBAAiB,CAAC,CAAa;IACvC,OAAO,CAAC,uBAAuB,CAAC,CAAa;IAC7C,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,OAAO,CAAC,qBAAqB,CAAkD;IAC/E,OAAO,CAAC,mBAAmB,CAAC,CAAa;IACzC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,2EAA2E;IAC3E,SAAgB,SAAS,EAAE,qBAAqB,CAAC;IACjD,sEAAsE;IACtE,SAAgB,OAAO,EAAE,mBAAmB,CAAC;IAC7C,mEAAmE;IACnE,SAAgB,WAAW,EAAE,wBAAwB,CAAC;IACtD,6DAA6D;IAC7D,SAAgB,QAAQ,EAAE,qBAAqB,CAAC;IAEhD;;OAEG;IACH,YAAY,EACV,IAAI,EACJ,OAAiB,EACjB,MAAM,EACN,YAAiB,EACjB,OAAsC,GACvC,EAAE,8BAA8B,EAgEhC;IAED;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAsBX,OAAO,CAAC,YAAY;IASpB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;;;;;;;;;;;;OAeG;IACG,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3C;IAED;;;;;;OAMG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO1C;IAED,OAAO,CAAC,aAAa;YAiBP,YAAY;YAkBZ,WAAW;IAmJzB;;;;;;;;;;;;OAYG;YACW,0BAA0B;IAyBxC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACH,OAAO,CAAC,aAAa;IASrB;;;;OAIG;IACH,IAAI,SAAS,IAAI,kBAAkB,GAAG,SAAS,CAE9C;IAED;;;;;;;;;;OAUG;IACG,UAAU,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzD;IAED,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,mBAAmB,CAAK;IAEhC;;;;;;;;;;OAUG;IACG,OAAO,qBAoFZ;IAED;;;;;;;;OAQG;IACH,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAKlC;IAED;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAK1B;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAElC;IAED,OAAO,CAAC,yBAAyB;IAI3B,UAAU,kBAqDf;IAED;;;;;;;;;;OAUG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAkDpC;YAEa,8BAA8B;IA4BtC,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAQlD;IAEK,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3D;IAEK,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAQzD;IAEK,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAQ3D;IAEK,qBAAqB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAQlE;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAQ9C;IAED;;;;OAIG;IACG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAMtG;IAED;;;OAGG;IACH,uCAAuC,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAKjE;IAED;;;OAGG;IACH,qCAAqC,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAK/D;IAED,qCAAqC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAK1E;IAED,yCAAyC,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAKnE;IAED,4BAA4B,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAuB9D;IAED,8BAA8B,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAK7D;IAED,OAAO,CAAC,kBAAkB;IAM1B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAU9E;IAED;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAmBhC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,6BAA6B,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CA2B1G;IAEK,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAiB/D;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAmO9B,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}