@mcp-ts/sdk 1.0.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/LICENSE +21 -0
- package/README.md +297 -0
- package/dist/adapters/agui-adapter.d.mts +119 -0
- package/dist/adapters/agui-adapter.d.ts +119 -0
- package/dist/adapters/agui-adapter.js +109 -0
- package/dist/adapters/agui-adapter.js.map +1 -0
- package/dist/adapters/agui-adapter.mjs +107 -0
- package/dist/adapters/agui-adapter.mjs.map +1 -0
- package/dist/adapters/agui-middleware.d.mts +171 -0
- package/dist/adapters/agui-middleware.d.ts +171 -0
- package/dist/adapters/agui-middleware.js +429 -0
- package/dist/adapters/agui-middleware.js.map +1 -0
- package/dist/adapters/agui-middleware.mjs +417 -0
- package/dist/adapters/agui-middleware.mjs.map +1 -0
- package/dist/adapters/ai-adapter.d.mts +38 -0
- package/dist/adapters/ai-adapter.d.ts +38 -0
- package/dist/adapters/ai-adapter.js +82 -0
- package/dist/adapters/ai-adapter.js.map +1 -0
- package/dist/adapters/ai-adapter.mjs +80 -0
- package/dist/adapters/ai-adapter.mjs.map +1 -0
- package/dist/adapters/langchain-adapter.d.mts +46 -0
- package/dist/adapters/langchain-adapter.d.ts +46 -0
- package/dist/adapters/langchain-adapter.js +102 -0
- package/dist/adapters/langchain-adapter.js.map +1 -0
- package/dist/adapters/langchain-adapter.mjs +100 -0
- package/dist/adapters/langchain-adapter.mjs.map +1 -0
- package/dist/adapters/mastra-adapter.d.mts +49 -0
- package/dist/adapters/mastra-adapter.d.ts +49 -0
- package/dist/adapters/mastra-adapter.js +95 -0
- package/dist/adapters/mastra-adapter.js.map +1 -0
- package/dist/adapters/mastra-adapter.mjs +93 -0
- package/dist/adapters/mastra-adapter.mjs.map +1 -0
- package/dist/client/index.d.mts +119 -0
- package/dist/client/index.d.ts +119 -0
- package/dist/client/index.js +225 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/index.mjs +223 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/client/react.d.mts +151 -0
- package/dist/client/react.d.ts +151 -0
- package/dist/client/react.js +492 -0
- package/dist/client/react.js.map +1 -0
- package/dist/client/react.mjs +489 -0
- package/dist/client/react.mjs.map +1 -0
- package/dist/client/vue.d.mts +157 -0
- package/dist/client/vue.d.ts +157 -0
- package/dist/client/vue.js +474 -0
- package/dist/client/vue.js.map +1 -0
- package/dist/client/vue.mjs +471 -0
- package/dist/client/vue.mjs.map +1 -0
- package/dist/events-BP6WyRNh.d.mts +110 -0
- package/dist/events-BP6WyRNh.d.ts +110 -0
- package/dist/index.d.mts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +2784 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2723 -0
- package/dist/index.mjs.map +1 -0
- package/dist/multi-session-client-BOFgPypS.d.ts +389 -0
- package/dist/multi-session-client-DMF3ED2O.d.mts +389 -0
- package/dist/server/index.d.mts +269 -0
- package/dist/server/index.d.ts +269 -0
- package/dist/server/index.js +2444 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +2414 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/shared/index.d.mts +24 -0
- package/dist/shared/index.d.ts +24 -0
- package/dist/shared/index.js +223 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/index.mjs +190 -0
- package/dist/shared/index.mjs.map +1 -0
- package/dist/types-SbDlA2VX.d.mts +153 -0
- package/dist/types-SbDlA2VX.d.ts +153 -0
- package/dist/utils-0qmYrqoa.d.mts +92 -0
- package/dist/utils-0qmYrqoa.d.ts +92 -0
- package/package.json +165 -0
- package/src/adapters/agui-adapter.ts +210 -0
- package/src/adapters/agui-middleware.ts +512 -0
- package/src/adapters/ai-adapter.ts +115 -0
- package/src/adapters/langchain-adapter.ts +127 -0
- package/src/adapters/mastra-adapter.ts +126 -0
- package/src/client/core/sse-client.ts +340 -0
- package/src/client/index.ts +26 -0
- package/src/client/react/index.ts +10 -0
- package/src/client/react/useMcp.ts +558 -0
- package/src/client/vue/index.ts +10 -0
- package/src/client/vue/useMcp.ts +542 -0
- package/src/index.ts +11 -0
- package/src/server/handlers/nextjs-handler.ts +216 -0
- package/src/server/handlers/sse-handler.ts +699 -0
- package/src/server/index.ts +57 -0
- package/src/server/mcp/multi-session-client.ts +132 -0
- package/src/server/mcp/oauth-client.ts +1168 -0
- package/src/server/mcp/storage-oauth-provider.ts +239 -0
- package/src/server/storage/file-backend.ts +169 -0
- package/src/server/storage/index.ts +115 -0
- package/src/server/storage/memory-backend.ts +132 -0
- package/src/server/storage/redis-backend.ts +210 -0
- package/src/server/storage/redis.ts +160 -0
- package/src/server/storage/types.ts +109 -0
- package/src/shared/constants.ts +29 -0
- package/src/shared/errors.ts +133 -0
- package/src/shared/events.ts +166 -0
- package/src/shared/index.ts +70 -0
- package/src/shared/types.ts +274 -0
- package/src/shared/utils.ts +16 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple event emitter pattern for MCP connection events
|
|
3
|
+
* Inspired by Cloudflare's agents pattern but adapted for serverless
|
|
4
|
+
*/
|
|
5
|
+
type Disposable = {
|
|
6
|
+
dispose(): void;
|
|
7
|
+
};
|
|
8
|
+
type Event<T> = (listener: (event: T) => void) => Disposable;
|
|
9
|
+
/**
|
|
10
|
+
* Event emitter class for type-safe event handling
|
|
11
|
+
* Similar to Cloudflare's Emitter but simplified for our use case
|
|
12
|
+
*/
|
|
13
|
+
declare class Emitter<T> {
|
|
14
|
+
private listeners;
|
|
15
|
+
/**
|
|
16
|
+
* Subscribe to events
|
|
17
|
+
* @param listener - Callback function to handle events
|
|
18
|
+
* @returns Disposable to unsubscribe
|
|
19
|
+
*/
|
|
20
|
+
get event(): Event<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Fire an event to all listeners
|
|
23
|
+
* @param event - Event data to emit
|
|
24
|
+
*/
|
|
25
|
+
fire(event: T): void;
|
|
26
|
+
/**
|
|
27
|
+
* Clear all listeners
|
|
28
|
+
*/
|
|
29
|
+
dispose(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Get number of active listeners
|
|
32
|
+
*/
|
|
33
|
+
get listenerCount(): number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Connection state types matching your existing ConnectionStatus
|
|
37
|
+
* Extended with more granular states for better observability
|
|
38
|
+
*/
|
|
39
|
+
type McpConnectionState = 'DISCONNECTED' | 'CONNECTING' | 'AUTHENTICATING' | 'AUTHENTICATED' | 'DISCOVERING' | 'CONNECTED' | 'READY' | 'VALIDATING' | 'RECONNECTING' | 'INITIALIZING' | 'FAILED';
|
|
40
|
+
/**
|
|
41
|
+
* MCP Connection Event Types
|
|
42
|
+
* Discriminated union for type-safe event handling
|
|
43
|
+
*/
|
|
44
|
+
type McpConnectionEvent = {
|
|
45
|
+
type: 'state_changed';
|
|
46
|
+
sessionId: string;
|
|
47
|
+
serverId: string;
|
|
48
|
+
serverName: string;
|
|
49
|
+
state: McpConnectionState;
|
|
50
|
+
previousState: McpConnectionState;
|
|
51
|
+
timestamp: number;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'tools_discovered';
|
|
54
|
+
sessionId: string;
|
|
55
|
+
serverId: string;
|
|
56
|
+
toolCount: number;
|
|
57
|
+
tools: any[];
|
|
58
|
+
timestamp: number;
|
|
59
|
+
} | {
|
|
60
|
+
type: 'auth_required';
|
|
61
|
+
sessionId: string;
|
|
62
|
+
serverId: string;
|
|
63
|
+
authUrl: string;
|
|
64
|
+
timestamp: number;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'error';
|
|
67
|
+
sessionId: string;
|
|
68
|
+
serverId: string;
|
|
69
|
+
error: string;
|
|
70
|
+
errorType: 'connection' | 'auth' | 'validation' | 'unknown';
|
|
71
|
+
timestamp: number;
|
|
72
|
+
} | {
|
|
73
|
+
type: 'disconnected';
|
|
74
|
+
sessionId: string;
|
|
75
|
+
serverId: string;
|
|
76
|
+
reason?: string;
|
|
77
|
+
timestamp: number;
|
|
78
|
+
} | {
|
|
79
|
+
type: 'progress';
|
|
80
|
+
sessionId: string;
|
|
81
|
+
serverId: string;
|
|
82
|
+
message: string;
|
|
83
|
+
timestamp: number;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Observability event for debugging and monitoring
|
|
87
|
+
*/
|
|
88
|
+
interface McpObservabilityEvent {
|
|
89
|
+
type?: string;
|
|
90
|
+
level?: 'debug' | 'info' | 'warn' | 'error';
|
|
91
|
+
message?: string;
|
|
92
|
+
displayMessage?: string;
|
|
93
|
+
sessionId?: string;
|
|
94
|
+
serverId?: string;
|
|
95
|
+
payload?: Record<string, any>;
|
|
96
|
+
metadata?: Record<string, any>;
|
|
97
|
+
timestamp: number;
|
|
98
|
+
id?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* DisposableStore for managing multiple disposables
|
|
102
|
+
* Useful for cleanup in React hooks
|
|
103
|
+
*/
|
|
104
|
+
declare class DisposableStore {
|
|
105
|
+
private disposables;
|
|
106
|
+
add(disposable: Disposable): void;
|
|
107
|
+
dispose(): void;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export { type Disposable as D, Emitter as E, type McpConnectionEvent as M, DisposableStore as a, type Event as b, type McpConnectionState as c, type McpObservabilityEvent as d };
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { M as MCPClient, a as MultiSessionClient, S as StorageOAuthClientProvider } from './multi-session-client-DMF3ED2O.mjs';
|
|
2
|
+
export { A as AuthenticationError, C as ConfigurationError, a as ConnectionError, I as InvalidStateError, M as McpError, N as NotConnectedError, R as RpcErrorCode, b as RpcErrorCodes, S as SessionNotFoundError, c as SessionValidationError, T as ToolExecutionError, U as UnauthorizedError, s as sanitizeServerLabel } from './utils-0qmYrqoa.mjs';
|
|
3
|
+
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, StorageBackend, createNextMcpHandler, createSSEHandler, storage } from './server/index.mjs';
|
|
4
|
+
export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, M as McpConnectionEvent, c as McpConnectionState, d as McpObservabilityEvent } from './events-BP6WyRNh.mjs';
|
|
5
|
+
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, L as ListPromptsResult, l as ListResourcesResult, m as ListToolsResponse, n as ListToolsRpcResult, M as McpRpcMethod, o as McpRpcParams, p as McpRpcRequest, q as McpRpcResponse, R as ReadResourceParams, r as RestoreSessionResult, S as SessionInfo, s as SessionListResult, t as SessionParams, T as ToolInfo, u as TransportType, v as isCallToolSuccess, w as isConnectAuthRequired, x as isConnectError, y as isConnectSuccess, z as isListToolsSuccess } from './types-SbDlA2VX.mjs';
|
|
6
|
+
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
7
|
+
export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
+
export { SSEClient, SSEClientOptions } from './client/index.mjs';
|
|
9
|
+
export { DEFAULT_CLIENT_NAME, DEFAULT_CLIENT_URI, DEFAULT_HEARTBEAT_INTERVAL_MS, DEFAULT_LOGO_URI, DEFAULT_POLICY_URI, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, REDIS_KEY_PREFIX, SESSION_TTL_SECONDS, SOFTWARE_ID, SOFTWARE_VERSION, STATE_EXPIRATION_MS, TOKEN_EXPIRY_BUFFER_MS } from './shared/index.mjs';
|
|
10
|
+
import '@modelcontextprotocol/sdk/client/auth.js';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { M as MCPClient, a as MultiSessionClient, S as StorageOAuthClientProvider } from './multi-session-client-BOFgPypS.js';
|
|
2
|
+
export { A as AuthenticationError, C as ConfigurationError, a as ConnectionError, I as InvalidStateError, M as McpError, N as NotConnectedError, R as RpcErrorCode, b as RpcErrorCodes, S as SessionNotFoundError, c as SessionValidationError, T as ToolExecutionError, U as UnauthorizedError, s as sanitizeServerLabel } from './utils-0qmYrqoa.js';
|
|
3
|
+
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, StorageBackend, createNextMcpHandler, createSSEHandler, storage } from './server/index.js';
|
|
4
|
+
export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, M as McpConnectionEvent, c as McpConnectionState, d as McpObservabilityEvent } from './events-BP6WyRNh.js';
|
|
5
|
+
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, L as ListPromptsResult, l as ListResourcesResult, m as ListToolsResponse, n as ListToolsRpcResult, M as McpRpcMethod, o as McpRpcParams, p as McpRpcRequest, q as McpRpcResponse, R as ReadResourceParams, r as RestoreSessionResult, S as SessionInfo, s as SessionListResult, t as SessionParams, T as ToolInfo, u as TransportType, v as isCallToolSuccess, w as isConnectAuthRequired, x as isConnectError, y as isConnectSuccess, z as isListToolsSuccess } from './types-SbDlA2VX.js';
|
|
6
|
+
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
7
|
+
export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
+
export { SSEClient, SSEClientOptions } from './client/index.js';
|
|
9
|
+
export { DEFAULT_CLIENT_NAME, DEFAULT_CLIENT_URI, DEFAULT_HEARTBEAT_INTERVAL_MS, DEFAULT_LOGO_URI, DEFAULT_POLICY_URI, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, REDIS_KEY_PREFIX, SESSION_TTL_SECONDS, SOFTWARE_ID, SOFTWARE_VERSION, STATE_EXPIRATION_MS, TOKEN_EXPIRY_BUFFER_MS } from './shared/index.js';
|
|
10
|
+
import '@modelcontextprotocol/sdk/client/auth.js';
|