Skip to content

Commit 22dc521

Browse files
refactor(server,client)!: drop ServerTasksCapabilityWithRuntime/ClientTasksCapabilityWithRuntime; capabilities.tasks no longer accepts runtime store fields
1 parent 0107d6c commit 22dc521

2 files changed

Lines changed: 2 additions & 36 deletions

File tree

packages/client/src/client/client.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import type {
2929
Result,
3030
ServerCapabilities,
3131
SubscribeRequest,
32-
TaskManagerOptions,
3332
Tool,
3433
Transport,
3534
UnsubscribeRequest
@@ -137,19 +136,11 @@ export function getSupportedElicitationModes(capabilities: ClientCapabilities['e
137136
return { supportsFormMode, supportsUrlMode };
138137
}
139138

140-
/**
141-
* Extended tasks capability that includes runtime configuration (store, messageQueue).
142-
* The runtime-only fields are stripped before advertising capabilities to servers.
143-
*/
144-
export type ClientTasksCapabilityWithRuntime = NonNullable<ClientCapabilities['tasks']> & TaskManagerOptions;
145-
146139
export type ClientOptions = ProtocolOptions & {
147140
/**
148141
* Capabilities to advertise as being supported by this client.
149142
*/
150-
capabilities?: Omit<ClientCapabilities, 'tasks'> & {
151-
tasks?: ClientTasksCapabilityWithRuntime;
152-
};
143+
capabilities?: ClientCapabilities;
153144

154145
/**
155146
* JSON Schema validator for tool output validation.
@@ -245,14 +236,6 @@ export class Client extends Protocol<ClientContext> {
245236
this._jsonSchemaValidator = options?.jsonSchemaValidator ?? new DefaultJsonSchemaValidator();
246237
this._enforceStrictCapabilities = options?.enforceStrictCapabilities ?? false;
247238

248-
// Strip runtime-only fields from advertised capabilities
249-
if (options?.capabilities?.tasks) {
250-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
251-
const { taskStore, taskMessageQueue, defaultTaskPollInterval, maxTaskQueueSize, ...wireCapabilities } =
252-
options.capabilities.tasks;
253-
this._capabilities.tasks = wireCapabilities;
254-
}
255-
256239
// Store list changed config for setup after connection (when we know server capabilities)
257240
if (options?.listChanged) {
258241
this._pendingListChangedConfig = options.listChanged;

packages/server/src/server/server.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import type {
2828
Result,
2929
ServerCapabilities,
3030
ServerContext,
31-
TaskManagerOptions,
3231
ToolResultContent,
3332
ToolUseContent
3433
} from '@modelcontextprotocol/core';
@@ -54,19 +53,11 @@ import { DefaultJsonSchemaValidator } from '@modelcontextprotocol/server/_shims'
5453

5554
import { ExperimentalServerTasks } from '../experimental/tasks/server.js';
5655

57-
/**
58-
* Extended tasks capability that includes runtime configuration (store, messageQueue).
59-
* The runtime-only fields are stripped before advertising capabilities to clients.
60-
*/
61-
export type ServerTasksCapabilityWithRuntime = NonNullable<ServerCapabilities['tasks']> & TaskManagerOptions;
62-
6356
export type ServerOptions = ProtocolOptions & {
6457
/**
6558
* Capabilities to advertise as being supported by this server.
6659
*/
67-
capabilities?: Omit<ServerCapabilities, 'tasks'> & {
68-
tasks?: ServerTasksCapabilityWithRuntime;
69-
};
60+
capabilities?: ServerCapabilities;
7061

7162
/**
7263
* Optional instructions describing how to use the server and its features.
@@ -116,14 +107,6 @@ export class Server extends Protocol<ServerContext> {
116107
this._instructions = options?.instructions;
117108
this._jsonSchemaValidator = options?.jsonSchemaValidator ?? new DefaultJsonSchemaValidator();
118109

119-
// Strip runtime-only fields from advertised capabilities
120-
if (options?.capabilities?.tasks) {
121-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
122-
const { taskStore, taskMessageQueue, defaultTaskPollInterval, maxTaskQueueSize, ...wireCapabilities } =
123-
options.capabilities.tasks;
124-
this._capabilities.tasks = wireCapabilities;
125-
}
126-
127110
this.setRequestHandler('initialize', request => this._oninitialize(request));
128111
this.setNotificationHandler('notifications/initialized', () => this.oninitialized?.());
129112

0 commit comments

Comments
 (0)