diff --git a/packages/core-internal/src/types/spec.types.2026-07-28.ts b/packages/core-internal/src/types/spec.types.2026-07-28.ts index a8ec4f8077..f4430b850f 100644 --- a/packages/core-internal/src/types/spec.types.2026-07-28.ts +++ b/packages/core-internal/src/types/spec.types.2026-07-28.ts @@ -3,7 +3,7 @@ * * Source: https://github.com/modelcontextprotocol/modelcontextprotocol * Pulled from: https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/main/schema/draft/schema.ts - * Last updated from commit: f68d864a813754e188c6df52dcc5772a12f96c63 + * Last updated from commit: 71e306956a4959c9655e5036be215d41986596e6 * * DO NOT EDIT THIS FILE MANUALLY. Changes will be overwritten by automated updates. * To update this file, run: pnpm run fetch:spec-types 2026-07-28 @@ -82,12 +82,19 @@ export interface RequestMetaObject extends MetaObject { */ 'io.modelcontextprotocol/protocolVersion': string; /** - * Identifies the client software making the request. Required. + * Identifies the client software making the request. Clients SHOULD + * include this field on every request unless specifically configured not + * to do so. * * The {@link Implementation} schema requires `name` and `version`; other * fields are optional. + * + * The value is self-reported by the client and is not verified by the + * protocol. It is intended for display, logging, and debugging. Servers + * SHOULD NOT use it to change their behavior, and SHOULD NOT rely on it for + * security decisions. */ - 'io.modelcontextprotocol/clientInfo': Implementation; + 'io.modelcontextprotocol/clientInfo'?: Implementation; /** * The client's capabilities for this specific request. Required. * @@ -133,6 +140,30 @@ export interface NotificationMetaObject extends MetaObject { 'io.modelcontextprotocol/subscriptionId'?: RequestId; } +/** + * Extends {@link MetaObject} with additional result-specific fields. All key naming rules from `MetaObject` apply. + * + * @see {@link MetaObject} for key naming rules and reserved prefixes. + * @see [General fields: `_meta`](/specification/draft/basic/index#meta) for more details. + * @category Common Types + */ +export interface ResultMetaObject extends MetaObject { + /** + * Identifies the server software producing the response. Servers SHOULD + * include this field on every response unless specifically configured not + * to do so. + * + * The {@link Implementation} schema requires `name` and `version`; other + * fields are optional. + * + * The value is self-reported by the server and is not verified by the + * protocol. It is intended for display, logging, and debugging. Clients + * SHOULD NOT use it to change their behavior, and SHOULD NOT rely on it for + * security decisions. + */ + 'io.modelcontextprotocol/serverInfo'?: Implementation; +} + /** * A progress token, used to associate progress notifications with the original request. * @@ -197,7 +228,7 @@ export type ResultType = 'complete' | 'input_required' | string; * @category Common Types */ export interface Result { - _meta?: MetaObject; + _meta?: ResultMetaObject; /** * Indicates the type of the result, which allows the client to determine * how to parse the result object. @@ -650,10 +681,6 @@ export interface DiscoverResult extends CacheableResult { * The capabilities of the server. */ capabilities: ServerCapabilities; - /** - * Information about the server software implementation. - */ - serverInfo: Implementation; /** * Natural-language guidance describing the server and its features. * @@ -1284,13 +1311,13 @@ export interface SubscriptionsListenRequest extends JSONRPCRequest { } /** - * Extends {@link MetaObject} with the subscription-stream identifier carried by a + * Extends {@link ResultMetaObject} with the subscription-stream identifier carried by a * {@link SubscriptionsListenResult}. All key naming rules from `MetaObject` apply. * * @see {@link MetaObject} for key naming rules and reserved prefixes. * @category `subscriptions/listen` */ -export interface SubscriptionsListenResultMeta extends MetaObject { +export interface SubscriptionsListenResultMeta extends ResultMetaObject { /** * Identifies the subscription stream this response closes, so the client can * correlate it with the originating subscription — mirroring the same key on @@ -1333,10 +1360,16 @@ export interface SubscriptionsAcknowledgedNotificationParams extends Notificatio } /** - * Sent by the server as the first message on a - * {@link SubscriptionsListenRequest | subscriptions/listen} stream to acknowledge - * that the subscription has been established and to report which notification - * types it agreed to honor. + * Sent by the server to acknowledge that a + * {@link SubscriptionsListenRequest | subscriptions/listen} subscription has been + * established and to report which notification types it agreed to honor. + * + * This notification MUST be the first message the server sends carrying the + * subscription's ID in `io.modelcontextprotocol/subscriptionId`. The server MUST + * NOT send any notification on the subscription before acknowledging it. On + * stdio, where every subscription shares one channel, this ordering is defined + * per subscription ID and not per channel: messages belonging to other + * subscriptions MAY be interleaved before it. * * @example Listen acknowledged * {@includeCode ./examples/SubscriptionsAcknowledgedNotification/listen-acknowledged.json}