@mcp-ts/sdk 1.6.0 → 1.6.1

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 (40) hide show
  1. package/dist/adapters/agui-adapter.d.mts +2 -2
  2. package/dist/adapters/agui-adapter.d.ts +2 -2
  3. package/dist/adapters/agui-middleware.d.mts +2 -2
  4. package/dist/adapters/agui-middleware.d.ts +2 -2
  5. package/dist/adapters/ai-adapter.d.mts +2 -2
  6. package/dist/adapters/ai-adapter.d.ts +2 -2
  7. package/dist/adapters/langchain-adapter.d.mts +2 -2
  8. package/dist/adapters/langchain-adapter.d.ts +2 -2
  9. package/dist/client/index.d.mts +2 -2
  10. package/dist/client/index.d.ts +2 -2
  11. package/dist/client/react.d.mts +4 -4
  12. package/dist/client/react.d.ts +4 -4
  13. package/dist/client/vue.d.mts +4 -4
  14. package/dist/client/vue.d.ts +4 -4
  15. package/dist/{index-GfC_eNEv.d.ts → index-DhA-OEAe.d.ts} +1 -1
  16. package/dist/{index-DcYfpY3H.d.mts → index-bFL4ZF2N.d.mts} +1 -1
  17. package/dist/index.d.mts +3 -3
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.js +12 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +12 -2
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/server/index.d.mts +2 -2
  24. package/dist/server/index.d.ts +2 -2
  25. package/dist/server/index.js +12 -2
  26. package/dist/server/index.js.map +1 -1
  27. package/dist/server/index.mjs +12 -2
  28. package/dist/server/index.mjs.map +1 -1
  29. package/dist/shared/index.d.mts +4 -4
  30. package/dist/shared/index.d.ts +4 -4
  31. package/dist/shared/index.js.map +1 -1
  32. package/dist/shared/index.mjs.map +1 -1
  33. package/dist/{tool-router-_O2tIwf7.d.mts → tool-router-BVaV1udm.d.mts} +1 -1
  34. package/dist/{tool-router-Bn9R0KWr.d.ts → tool-router-Dh2804tM.d.ts} +1 -1
  35. package/dist/{types-CfCoIsWI.d.mts → types-rIuN1CQi.d.mts} +1 -0
  36. package/dist/{types-CfCoIsWI.d.ts → types-rIuN1CQi.d.ts} +1 -0
  37. package/package.json +1 -1
  38. package/src/server/handlers/sse-handler.ts +12 -0
  39. package/src/server/mcp/oauth-client.ts +6 -2
  40. package/src/shared/types.ts +1 -0
@@ -1,5 +1,5 @@
1
1
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
- import { u as ToolClientProvider, T as ToolClient } from './types-CfCoIsWI.mjs';
2
+ import { u as ToolClientProvider, T as ToolClient } from './types-rIuN1CQi.mjs';
3
3
 
4
4
  /**
5
5
  * SchemaCompressor — Utilities for reducing tool schema token overhead.
@@ -1,5 +1,5 @@
1
1
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
- import { u as ToolClientProvider, T as ToolClient } from './types-CfCoIsWI.js';
2
+ import { u as ToolClientProvider, T as ToolClient } from './types-rIuN1CQi.js';
3
3
 
4
4
  /**
5
5
  * SchemaCompressor — Utilities for reducing tool schema token overhead.
@@ -102,6 +102,7 @@ interface ConnectParams {
102
102
  serverUrl: string;
103
103
  callbackUrl: string;
104
104
  transportType?: TransportType;
105
+ headers?: Record<string, string>;
105
106
  }
106
107
  interface DisconnectParams {
107
108
  sessionId: string;
@@ -102,6 +102,7 @@ interface ConnectParams {
102
102
  serverUrl: string;
103
103
  callbackUrl: string;
104
104
  transportType?: TransportType;
105
+ headers?: Record<string, string>;
105
106
  }
106
107
  interface DisconnectParams {
107
108
  sessionId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-ts/sdk",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -73,6 +73,16 @@ export interface SSEHandlerOptions {
73
73
 
74
74
  const DEFAULT_HEARTBEAT_INTERVAL = 30000;
75
75
 
76
+ function normalizeHeaders(headers?: Record<string, string>): Record<string, string> | undefined {
77
+ if (!headers || typeof headers !== 'object') return undefined;
78
+
79
+ const entries = Object.entries(headers)
80
+ .map(([key, value]) => [key.trim(), String(value).trim()] as const)
81
+ .filter(([key, value]) => key.length > 0 && value.length > 0);
82
+
83
+ return entries.length > 0 ? Object.fromEntries(entries) : undefined;
84
+ }
85
+
76
86
  // ============================================
77
87
  // SSEConnectionManager Class
78
88
  // ============================================
@@ -238,6 +248,7 @@ export class SSEConnectionManager {
238
248
  */
239
249
  private async connect(params: ConnectParams): Promise<ConnectResult> {
240
250
  const { serverName, serverUrl, callbackUrl, transportType } = params;
251
+ const headers = normalizeHeaders(params.headers);
241
252
 
242
253
  // Normalize serverId to max 12 chars to keep tool names under 64 chars (DeepSeek/OpenAI limits)
243
254
  // Tool name format: tool_<serverId>_<toolName> - with 12 char serverId leaves 46 chars for tool name
@@ -280,6 +291,7 @@ export class SSEConnectionManager {
280
291
  serverUrl,
281
292
  callbackUrl,
282
293
  transportType,
294
+ headers,
283
295
  ...clientMetadata, // Spread client metadata (clientName, clientUri, logoUri, policyUri)
284
296
  });
285
297
 
@@ -238,9 +238,11 @@ export class MCPClient {
238
238
  }
239
239
 
240
240
  const baseUrl = new URL(this.serverUrl);
241
+ const hasAuthorizationHeader = Object.keys(this.headers || {})
242
+ .some((key) => key.toLowerCase() === 'authorization');
241
243
  const transportOptions = {
242
- authProvider: this.oauthProvider!,
243
- ...(this.headers && { headers: this.headers }),
244
+ ...(!hasAuthorizationHeader && { authProvider: this.oauthProvider! }),
245
+ ...(this.headers && { requestInit: { headers: this.headers } }),
244
246
  /**
245
247
  * Custom fetch implementation to handle connection timeouts.
246
248
  * Observation: SDK 1.24.0+ connections may hang indefinitely in some environments.
@@ -359,6 +361,7 @@ export class MCPClient {
359
361
  serverUrl: this.serverUrl,
360
362
  callbackUrl: this.callbackUrl,
361
363
  transportType: this.transportType || 'streamable_http',
364
+ headers: this.headers,
362
365
  createdAt: this.createdAt,
363
366
  active: false,
364
367
  }, Math.floor(STATE_EXPIRATION_MS / 1000)); // Short TTL until connection succeeds
@@ -388,6 +391,7 @@ export class MCPClient {
388
391
  serverUrl: this.serverUrl,
389
392
  callbackUrl: this.callbackUrl,
390
393
  transportType: (this.transportType || 'streamable_http') as TransportType,
394
+ headers: this.headers,
391
395
  createdAt: this.createdAt || Date.now(),
392
396
  active,
393
397
  };
@@ -204,6 +204,7 @@ export interface ConnectParams {
204
204
  serverUrl: string;
205
205
  callbackUrl: string;
206
206
  transportType?: TransportType;
207
+ headers?: Record<string, string>;
207
208
  }
208
209
 
209
210
  export interface DisconnectParams {