@mcp-ts/sdk 2.4.4 → 2.5.0
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 +3 -3
- package/dist/adapters/agui-adapter.d.ts +3 -3
- package/dist/adapters/agui-adapter.js.map +1 -1
- package/dist/adapters/agui-adapter.mjs.map +1 -1
- package/dist/adapters/agui-middleware.d.mts +3 -3
- package/dist/adapters/agui-middleware.d.ts +3 -3
- package/dist/adapters/agui-middleware.js.map +1 -1
- package/dist/adapters/agui-middleware.mjs.map +1 -1
- package/dist/adapters/ai-adapter.d.mts +3 -3
- package/dist/adapters/ai-adapter.d.ts +3 -3
- package/dist/adapters/ai-adapter.js.map +1 -1
- package/dist/adapters/ai-adapter.mjs.map +1 -1
- package/dist/adapters/langchain-adapter.d.mts +3 -3
- package/dist/adapters/langchain-adapter.d.ts +3 -3
- package/dist/adapters/langchain-adapter.js +2 -2
- package/dist/adapters/langchain-adapter.js.map +1 -1
- package/dist/adapters/langchain-adapter.mjs +2 -2
- package/dist/adapters/langchain-adapter.mjs.map +1 -1
- package/dist/adapters/mastra-adapter.d.mts +2 -2
- package/dist/adapters/mastra-adapter.d.ts +2 -2
- package/dist/adapters/mastra-adapter.js +2 -2
- package/dist/adapters/mastra-adapter.js.map +1 -1
- package/dist/adapters/mastra-adapter.mjs +2 -2
- package/dist/adapters/mastra-adapter.mjs.map +1 -1
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +6 -0
- package/dist/client/index.mjs.map +1 -1
- package/dist/client/react.d.mts +15 -4
- package/dist/client/react.d.ts +15 -4
- package/dist/client/react.js +36 -6
- package/dist/client/react.js.map +1 -1
- package/dist/client/react.mjs +36 -6
- package/dist/client/react.mjs.map +1 -1
- package/dist/client/vue.d.mts +4 -4
- package/dist/client/vue.d.ts +4 -4
- package/dist/client/vue.js +6 -0
- package/dist/client/vue.js.map +1 -1
- package/dist/client/vue.mjs +6 -0
- package/dist/client/vue.mjs.map +1 -1
- package/dist/{index-CkM3p0eE.d.mts → index-CTURVnom.d.mts} +5 -1
- package/dist/{index-CZk2gu2E.d.ts → index-sVcqrhf7.d.ts} +5 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +374 -130
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +370 -130
- package/dist/index.mjs.map +1 -1
- package/dist/{multi-session-client-ChQrBZhF.d.mts → multi-session-client-CSPSHHla.d.ts} +14 -2
- package/dist/{multi-session-client-QOOPdEVp.d.ts → multi-session-client-DMZGVABI.d.mts} +14 -2
- package/dist/server/index.d.mts +13 -4
- package/dist/server/index.d.ts +13 -4
- package/dist/server/index.js +368 -130
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +364 -130
- 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 +2 -6
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +2 -6
- package/dist/shared/index.mjs.map +1 -1
- package/dist/{tool-router-DQ-HrD7W.d.ts → tool-router-CS9l0w4a.d.ts} +1 -1
- package/dist/{tool-router-CGs3IDOJ.d.mts → tool-router-CVLBaCwH.d.mts} +1 -1
- package/dist/{types-Bf-7GOLW.d.mts → types-DK_NGWd4.d.mts} +37 -3
- package/dist/{types-Bf-7GOLW.d.ts → types-DK_NGWd4.d.ts} +37 -3
- package/migrations/neon/20260513010000_install_mcp_sessions.sql +1 -0
- package/migrations/supabase/20260330195700_install_mcp_sessions.sql +1 -0
- package/package.json +1 -1
- package/src/adapters/agui-adapter.ts +6 -2
- package/src/adapters/ai-adapter.ts +3 -1
- package/src/adapters/langchain-adapter.ts +5 -3
- package/src/adapters/mastra-adapter.ts +5 -3
- package/src/client/core/sse-client.ts +17 -0
- package/src/client/react/use-mcp.ts +63 -0
- package/src/server/handlers/sse-handler.ts +117 -10
- package/src/server/mcp/multi-session-client.ts +7 -3
- package/src/server/mcp/oauth-client.ts +78 -55
- package/src/server/mcp/tool-policy-gateway.ts +90 -0
- package/src/server/storage/index.ts +1 -1
- package/src/server/storage/neon-backend.ts +65 -60
- package/src/server/storage/session-lifecycle.ts +5 -0
- package/src/server/storage/supabase-backend.ts +27 -15
- package/src/server/storage/tool-policy.ts +89 -0
- package/src/server/storage/types.ts +11 -0
- package/src/shared/types.ts +48 -1
- package/src/shared/utils.ts +16 -14
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider } from './types-
|
|
1
|
+
import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider, T as ToolClient } from './types-DK_NGWd4.js';
|
|
2
2
|
import { ListToolsResult, CallToolResult, ListPromptsResult, GetPromptResult, ListResourcesResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
|
|
4
4
|
import { OAuthClientMetadata, OAuthClientInformationMixed, OAuthClientInformationFull, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
@@ -222,6 +222,11 @@ declare class MCPClient {
|
|
|
222
222
|
* @param authCode - Authorization code received from OAuth callback
|
|
223
223
|
*/
|
|
224
224
|
finishAuth(authCode: string, state?: string): Promise<void>;
|
|
225
|
+
/**
|
|
226
|
+
* Lists all available tools from the connected MCP server without emitting discovery events.
|
|
227
|
+
* Gateways use this to apply policy before publishing tools to agents or UI state.
|
|
228
|
+
*/
|
|
229
|
+
fetchTools(): Promise<ListToolsResult>;
|
|
225
230
|
/**
|
|
226
231
|
* Lists all available tools from the connected MCP server
|
|
227
232
|
* @returns List of tools with their schemas and descriptions
|
|
@@ -345,6 +350,12 @@ interface OAuthState {
|
|
|
345
350
|
createdAt: number;
|
|
346
351
|
}
|
|
347
352
|
type SessionStatus = 'pending' | 'active';
|
|
353
|
+
type ToolPolicyMode = 'all' | 'allowlist' | 'denylist';
|
|
354
|
+
interface ToolPolicy {
|
|
355
|
+
mode: ToolPolicyMode;
|
|
356
|
+
toolIds: string[];
|
|
357
|
+
updatedAt: number;
|
|
358
|
+
}
|
|
348
359
|
interface Session {
|
|
349
360
|
sessionId: string;
|
|
350
361
|
serverId?: string;
|
|
@@ -368,6 +379,7 @@ interface Session {
|
|
|
368
379
|
* - active: restorable session after successful connection/auth completion
|
|
369
380
|
*/
|
|
370
381
|
status?: SessionStatus;
|
|
382
|
+
toolPolicy?: ToolPolicy;
|
|
371
383
|
}
|
|
372
384
|
interface SessionCredentials {
|
|
373
385
|
sessionId: string;
|
|
@@ -543,7 +555,7 @@ declare class MultiSessionClient implements ToolClientProvider {
|
|
|
543
555
|
* Use this to enumerate available tools across all connected servers,
|
|
544
556
|
* or to route a tool call to the right client by `serverId`.
|
|
545
557
|
*/
|
|
546
|
-
getClients():
|
|
558
|
+
getClients(): ToolClient[];
|
|
547
559
|
/**
|
|
548
560
|
* Removes and disconnects a single session by ID.
|
|
549
561
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider } from './types-
|
|
1
|
+
import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider, T as ToolClient } from './types-DK_NGWd4.mjs';
|
|
2
2
|
import { ListToolsResult, CallToolResult, ListPromptsResult, GetPromptResult, ListResourcesResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
|
|
4
4
|
import { OAuthClientMetadata, OAuthClientInformationMixed, OAuthClientInformationFull, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
@@ -222,6 +222,11 @@ declare class MCPClient {
|
|
|
222
222
|
* @param authCode - Authorization code received from OAuth callback
|
|
223
223
|
*/
|
|
224
224
|
finishAuth(authCode: string, state?: string): Promise<void>;
|
|
225
|
+
/**
|
|
226
|
+
* Lists all available tools from the connected MCP server without emitting discovery events.
|
|
227
|
+
* Gateways use this to apply policy before publishing tools to agents or UI state.
|
|
228
|
+
*/
|
|
229
|
+
fetchTools(): Promise<ListToolsResult>;
|
|
225
230
|
/**
|
|
226
231
|
* Lists all available tools from the connected MCP server
|
|
227
232
|
* @returns List of tools with their schemas and descriptions
|
|
@@ -345,6 +350,12 @@ interface OAuthState {
|
|
|
345
350
|
createdAt: number;
|
|
346
351
|
}
|
|
347
352
|
type SessionStatus = 'pending' | 'active';
|
|
353
|
+
type ToolPolicyMode = 'all' | 'allowlist' | 'denylist';
|
|
354
|
+
interface ToolPolicy {
|
|
355
|
+
mode: ToolPolicyMode;
|
|
356
|
+
toolIds: string[];
|
|
357
|
+
updatedAt: number;
|
|
358
|
+
}
|
|
348
359
|
interface Session {
|
|
349
360
|
sessionId: string;
|
|
350
361
|
serverId?: string;
|
|
@@ -368,6 +379,7 @@ interface Session {
|
|
|
368
379
|
* - active: restorable session after successful connection/auth completion
|
|
369
380
|
*/
|
|
370
381
|
status?: SessionStatus;
|
|
382
|
+
toolPolicy?: ToolPolicy;
|
|
371
383
|
}
|
|
372
384
|
interface SessionCredentials {
|
|
373
385
|
sessionId: string;
|
|
@@ -543,7 +555,7 @@ declare class MultiSessionClient implements ToolClientProvider {
|
|
|
543
555
|
* Use this to enumerate available tools across all connected servers,
|
|
544
556
|
* or to route a tool call to the right client by `serverId`.
|
|
545
557
|
*/
|
|
546
|
-
getClients():
|
|
558
|
+
getClients(): ToolClient[];
|
|
547
559
|
/**
|
|
548
560
|
* Removes and disconnects a single session by ID.
|
|
549
561
|
*
|
package/dist/server/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-
|
|
2
|
-
export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-
|
|
1
|
+
import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-DMZGVABI.mjs';
|
|
2
|
+
export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-DMZGVABI.mjs';
|
|
3
3
|
export { U as UnauthorizedError, s as sanitizeServerLabel } from '../utils-DELRKQPU.mjs';
|
|
4
|
-
import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-
|
|
5
|
-
export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-
|
|
4
|
+
import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-DK_NGWd4.mjs';
|
|
5
|
+
export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-DK_NGWd4.mjs';
|
|
6
6
|
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
7
7
|
export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import '@modelcontextprotocol/sdk/client/auth.js';
|
|
@@ -87,10 +87,19 @@ declare class SSEConnectionManager {
|
|
|
87
87
|
* Get an existing client or create and connect a new one for the session.
|
|
88
88
|
*/
|
|
89
89
|
private getOrCreateClient;
|
|
90
|
+
private listPolicyFilteredTools;
|
|
90
91
|
/**
|
|
91
92
|
* List tools from a session
|
|
92
93
|
*/
|
|
93
94
|
private listTools;
|
|
95
|
+
/**
|
|
96
|
+
* Get all raw tools with effective access state for management UI.
|
|
97
|
+
*/
|
|
98
|
+
private getToolPolicy;
|
|
99
|
+
/**
|
|
100
|
+
* Update per-session tool access policy.
|
|
101
|
+
*/
|
|
102
|
+
private setToolPolicy;
|
|
94
103
|
/**
|
|
95
104
|
* Call a tool on the MCP server
|
|
96
105
|
*/
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-
|
|
2
|
-
export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-
|
|
1
|
+
import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-CSPSHHla.js';
|
|
2
|
+
export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-CSPSHHla.js';
|
|
3
3
|
export { U as UnauthorizedError, s as sanitizeServerLabel } from '../utils-DELRKQPU.js';
|
|
4
|
-
import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-
|
|
5
|
-
export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-
|
|
4
|
+
import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-DK_NGWd4.js';
|
|
5
|
+
export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-DK_NGWd4.js';
|
|
6
6
|
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
7
7
|
export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import '@modelcontextprotocol/sdk/client/auth.js';
|
|
@@ -87,10 +87,19 @@ declare class SSEConnectionManager {
|
|
|
87
87
|
* Get an existing client or create and connect a new one for the session.
|
|
88
88
|
*/
|
|
89
89
|
private getOrCreateClient;
|
|
90
|
+
private listPolicyFilteredTools;
|
|
90
91
|
/**
|
|
91
92
|
* List tools from a session
|
|
92
93
|
*/
|
|
93
94
|
private listTools;
|
|
95
|
+
/**
|
|
96
|
+
* Get all raw tools with effective access state for management UI.
|
|
97
|
+
*/
|
|
98
|
+
private getToolPolicy;
|
|
99
|
+
/**
|
|
100
|
+
* Update per-session tool access policy.
|
|
101
|
+
*/
|
|
102
|
+
private setToolPolicy;
|
|
94
103
|
/**
|
|
95
104
|
* Call a tool on the MCP server
|
|
96
105
|
*/
|