Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 47 additions & 14 deletions packages/core-internal/src/types/spec.types.2026-07-28.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.
*
Expand Down Expand Up @@ -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.
*
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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.
*
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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}
Expand Down