@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.
- package/dist/adapters/agui-adapter.d.mts +2 -2
- package/dist/adapters/agui-adapter.d.ts +2 -2
- package/dist/adapters/agui-middleware.d.mts +2 -2
- package/dist/adapters/agui-middleware.d.ts +2 -2
- package/dist/adapters/ai-adapter.d.mts +2 -2
- package/dist/adapters/ai-adapter.d.ts +2 -2
- package/dist/adapters/langchain-adapter.d.mts +2 -2
- package/dist/adapters/langchain-adapter.d.ts +2 -2
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/react.d.mts +4 -4
- package/dist/client/react.d.ts +4 -4
- package/dist/client/vue.d.mts +4 -4
- package/dist/client/vue.d.ts +4 -4
- package/dist/{index-GfC_eNEv.d.ts → index-DhA-OEAe.d.ts} +1 -1
- package/dist/{index-DcYfpY3H.d.mts → index-bFL4ZF2N.d.mts} +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -2
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.d.mts +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +12 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +12 -2
- package/dist/server/index.mjs.map +1 -1
- package/dist/shared/index.d.mts +4 -4
- package/dist/shared/index.d.ts +4 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs.map +1 -1
- package/dist/{tool-router-_O2tIwf7.d.mts → tool-router-BVaV1udm.d.mts} +1 -1
- package/dist/{tool-router-Bn9R0KWr.d.ts → tool-router-Dh2804tM.d.ts} +1 -1
- package/dist/{types-CfCoIsWI.d.mts → types-rIuN1CQi.d.mts} +1 -0
- package/dist/{types-CfCoIsWI.d.ts → types-rIuN1CQi.d.ts} +1 -0
- package/package.json +1 -1
- package/src/server/handlers/sse-handler.ts +12 -0
- package/src/server/mcp/oauth-client.ts +6 -2
- 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-
|
|
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-
|
|
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.
|
package/package.json
CHANGED
|
@@ -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
|
};
|