switch to optional Transport.setProtocolVersion

This commit is contained in:
Olivier Chafik 2025-06-13 13:36:04 +01:00
commit 33257f14d4
No known key found for this signature in database
3 changed files with 22 additions and 17 deletions

View file

@ -166,7 +166,9 @@ export class Client<
this._serverCapabilities = result.capabilities;
this._serverVersion = result.serverInfo;
// HTTP transports must set the protocol version in each header after initialization.
transport.protocolVersion = result.protocolVersion;
if (transport.setProtocolVersion) {
transport.setProtocolVersion(result.protocolVersion);
}
this._instructions = result.instructions;

View file

@ -62,7 +62,7 @@ export class SSEClientTransport implements Transport {
private _eventSourceInit?: EventSourceInit;
private _requestInit?: RequestInit;
private _authProvider?: OAuthClientProvider;
protocolVersion?: string;
private _protocolVersion?: string;
onclose?: () => void;
onerror?: (error: Error) => void;
@ -109,8 +109,8 @@ export class SSEClientTransport implements Transport {
headers["Authorization"] = `Bearer ${tokens.access_token}`;
}
}
if (this.protocolVersion) {
headers["mcp-protocol-version"] = this.protocolVersion;
if (this._protocolVersion) {
headers["mcp-protocol-version"] = this._protocolVersion;
}
return headers;
@ -255,4 +255,8 @@ export class SSEClientTransport implements Transport {
throw error;
}
}
setProtocolVersion(version: string): void {
this._protocolVersion = version;
}
}

View file

@ -124,7 +124,7 @@ export class StreamableHTTPClientTransport implements Transport {
private _authProvider?: OAuthClientProvider;
private _sessionId?: string;
private _reconnectionOptions: StreamableHTTPReconnectionOptions;
protocolVersion?: string;
private _protocolVersion?: string;
onclose?: () => void;
onerror?: (error: Error) => void;
@ -174,8 +174,8 @@ export class StreamableHTTPClientTransport implements Transport {
if (this._sessionId) {
headers["mcp-session-id"] = this._sessionId;
}
if (this.protocolVersion) {
headers["mcp-protocol-version"] = this.protocolVersion;
if (this._protocolVersion) {
headers["mcp-protocol-version"] = this._protocolVersion;
}
return new Headers(
@ -520,4 +520,11 @@ export class StreamableHTTPClientTransport implements Transport {
throw error;
}
}
setProtocolVersion(version: string): void {
this._protocolVersion = version;
}
get protocolVersion(): string | undefined {
return this._protocolVersion;
}
}