@mcp-ts/sdk 1.3.6 → 1.3.9
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 -21
- package/README.md +398 -404
- package/dist/adapters/agui-adapter.d.mts +1 -1
- package/dist/adapters/agui-adapter.d.ts +1 -1
- package/dist/adapters/agui-adapter.js +2 -2
- package/dist/adapters/agui-adapter.js.map +1 -1
- package/dist/adapters/agui-adapter.mjs +2 -2
- package/dist/adapters/agui-adapter.mjs.map +1 -1
- package/dist/adapters/agui-middleware.d.mts +1 -1
- package/dist/adapters/agui-middleware.d.ts +1 -1
- 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 +1 -1
- package/dist/adapters/ai-adapter.d.ts +1 -1
- package/dist/adapters/ai-adapter.js +1 -1
- package/dist/adapters/ai-adapter.js.map +1 -1
- package/dist/adapters/ai-adapter.mjs +1 -1
- package/dist/adapters/ai-adapter.mjs.map +1 -1
- package/dist/adapters/langchain-adapter.d.mts +1 -1
- package/dist/adapters/langchain-adapter.d.ts +1 -1
- package/dist/adapters/langchain-adapter.js +1 -1
- package/dist/adapters/langchain-adapter.js.map +1 -1
- package/dist/adapters/langchain-adapter.mjs +1 -1
- package/dist/adapters/langchain-adapter.mjs.map +1 -1
- package/dist/adapters/mastra-adapter.d.mts +1 -1
- package/dist/adapters/mastra-adapter.d.ts +1 -1
- package/dist/adapters/mastra-adapter.js +1 -1
- package/dist/adapters/mastra-adapter.js.map +1 -1
- package/dist/adapters/mastra-adapter.mjs +1 -1
- package/dist/adapters/mastra-adapter.mjs.map +1 -1
- package/dist/bin/mcp-ts.js +0 -0
- package/dist/bin/mcp-ts.js.map +1 -1
- package/dist/bin/mcp-ts.mjs +0 -0
- package/dist/bin/mcp-ts.mjs.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs.map +1 -1
- package/dist/client/react.d.mts +2 -2
- package/dist/client/react.d.ts +2 -2
- package/dist/client/react.js +25 -2
- package/dist/client/react.js.map +1 -1
- package/dist/client/react.mjs +26 -3
- package/dist/client/react.mjs.map +1 -1
- package/dist/client/vue.js.map +1 -1
- package/dist/client/vue.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +134 -71
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +134 -71
- package/dist/index.mjs.map +1 -1
- package/dist/{multi-session-client-BYLarghq.d.ts → multi-session-client-CHE8QpVE.d.ts} +75 -5
- package/dist/{multi-session-client-CzhMkE0k.d.mts → multi-session-client-CQsRbxYI.d.mts} +75 -5
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +134 -71
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +134 -71
- package/dist/server/index.mjs.map +1 -1
- package/dist/shared/index.js +10 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +10 -2
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +185 -185
- package/src/adapters/agui-adapter.ts +222 -222
- package/src/adapters/agui-middleware.ts +382 -382
- package/src/adapters/ai-adapter.ts +115 -115
- package/src/adapters/langchain-adapter.ts +127 -127
- package/src/adapters/mastra-adapter.ts +126 -126
- package/src/bin/mcp-ts.ts +102 -102
- package/src/client/core/app-host.ts +417 -417
- package/src/client/core/sse-client.ts +371 -371
- package/src/client/core/types.ts +31 -31
- package/src/client/index.ts +27 -27
- package/src/client/react/index.ts +16 -16
- package/src/client/react/use-app-host.ts +73 -73
- package/src/client/react/use-mcp-apps.tsx +247 -214
- package/src/client/react/use-mcp.ts +641 -641
- package/src/client/vue/index.ts +10 -10
- package/src/client/vue/use-mcp.ts +617 -617
- package/src/index.ts +11 -11
- package/src/server/handlers/nextjs-handler.ts +204 -204
- package/src/server/handlers/sse-handler.ts +631 -631
- package/src/server/index.ts +57 -57
- package/src/server/mcp/multi-session-client.ts +228 -132
- package/src/server/mcp/oauth-client.ts +1188 -1188
- package/src/server/mcp/storage-oauth-provider.ts +272 -272
- package/src/server/storage/file-backend.ts +157 -170
- package/src/server/storage/index.ts +176 -175
- package/src/server/storage/memory-backend.ts +123 -136
- package/src/server/storage/redis-backend.ts +276 -289
- package/src/server/storage/redis.ts +160 -160
- package/src/server/storage/sqlite-backend.ts +182 -186
- package/src/server/storage/supabase-backend.ts +228 -227
- package/src/server/storage/types.ts +116 -116
- package/src/shared/constants.ts +29 -29
- package/src/shared/errors.ts +133 -133
- package/src/shared/event-routing.ts +28 -28
- package/src/shared/events.ts +180 -180
- package/src/shared/index.ts +75 -75
- package/src/shared/tool-utils.ts +61 -61
- package/src/shared/types.ts +282 -282
- package/src/shared/utils.ts +38 -16
- package/supabase/migrations/20260330195700_install_mcp_sessions.sql +84 -84
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
-- Create the mcp_sessions table
|
|
2
|
-
CREATE TABLE IF NOT EXISTS public.mcp_sessions (
|
|
3
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
4
|
-
session_id TEXT NOT NULL UNIQUE,
|
|
5
|
-
user_id TEXT NOT NULL, -- Will store the Next.js user's ID or identity
|
|
6
|
-
server_id TEXT,
|
|
7
|
-
server_name TEXT,
|
|
8
|
-
server_url TEXT NOT NULL,
|
|
9
|
-
transport_type TEXT NOT NULL,
|
|
10
|
-
callback_url TEXT NOT NULL,
|
|
11
|
-
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
12
|
-
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
13
|
-
expires_at TIMESTAMPTZ NOT NULL,
|
|
14
|
-
active BOOLEAN DEFAULT false,
|
|
15
|
-
identity TEXT NOT NULL,
|
|
16
|
-
headers JSONB,
|
|
17
|
-
client_information JSONB,
|
|
18
|
-
tokens JSONB,
|
|
19
|
-
code_verifier TEXT,
|
|
20
|
-
client_id TEXT
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
-- Add an index on identity and user_id for faster lookups
|
|
24
|
-
CREATE INDEX IF NOT EXISTS idx_mcp_sessions_identity ON public.mcp_sessions(identity);
|
|
25
|
-
CREATE INDEX IF NOT EXISTS idx_mcp_sessions_user_id ON public.mcp_sessions(user_id);
|
|
26
|
-
-- Add an index on expires_at to speed up the cleanup job
|
|
27
|
-
CREATE INDEX IF NOT EXISTS idx_mcp_sessions_expires_at ON public.mcp_sessions(expires_at);
|
|
28
|
-
|
|
29
|
-
-- Trigger to automatically update the 'updated_at' column
|
|
30
|
-
CREATE OR REPLACE FUNCTION public.set_current_timestamp_updated_at()
|
|
31
|
-
RETURNS TRIGGER AS $$
|
|
32
|
-
BEGIN
|
|
33
|
-
NEW.updated_at = now();
|
|
34
|
-
RETURN NEW;
|
|
35
|
-
END;
|
|
36
|
-
$$ LANGUAGE plpgsql;
|
|
37
|
-
|
|
38
|
-
DROP TRIGGER IF EXISTS trg_mcp_sessions_updated_at ON public.mcp_sessions;
|
|
39
|
-
CREATE TRIGGER trg_mcp_sessions_updated_at
|
|
40
|
-
BEFORE UPDATE ON public.mcp_sessions
|
|
41
|
-
FOR EACH ROW
|
|
42
|
-
EXECUTE FUNCTION public.set_current_timestamp_updated_at();
|
|
43
|
-
|
|
44
|
-
-- Enable Row Level Security (RLS)
|
|
45
|
-
ALTER TABLE public.mcp_sessions ENABLE ROW LEVEL SECURITY;
|
|
46
|
-
|
|
47
|
-
-- Policy 1: Users can read their own sessions
|
|
48
|
-
CREATE POLICY "Users can view their own sessions"
|
|
49
|
-
ON public.mcp_sessions
|
|
50
|
-
FOR SELECT
|
|
51
|
-
TO authenticated
|
|
52
|
-
USING (
|
|
53
|
-
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
-- Policy 2: Users can insert their own sessions
|
|
57
|
-
CREATE POLICY "Users can insert their own sessions"
|
|
58
|
-
ON public.mcp_sessions
|
|
59
|
-
FOR INSERT
|
|
60
|
-
TO authenticated
|
|
61
|
-
WITH CHECK (
|
|
62
|
-
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
-- Policy 3: Users can update their own sessions
|
|
66
|
-
CREATE POLICY "Users can update their own sessions"
|
|
67
|
-
ON public.mcp_sessions
|
|
68
|
-
FOR UPDATE
|
|
69
|
-
TO authenticated
|
|
70
|
-
USING (
|
|
71
|
-
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
72
|
-
)
|
|
73
|
-
WITH CHECK (
|
|
74
|
-
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
-- Policy 4: Users can delete their own sessions
|
|
78
|
-
CREATE POLICY "Users can delete their own sessions"
|
|
79
|
-
ON public.mcp_sessions
|
|
80
|
-
FOR DELETE
|
|
81
|
-
TO authenticated
|
|
82
|
-
USING (
|
|
83
|
-
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
84
|
-
);
|
|
1
|
+
-- Create the mcp_sessions table
|
|
2
|
+
CREATE TABLE IF NOT EXISTS public.mcp_sessions (
|
|
3
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
4
|
+
session_id TEXT NOT NULL UNIQUE,
|
|
5
|
+
user_id TEXT NOT NULL, -- Will store the Next.js user's ID or identity
|
|
6
|
+
server_id TEXT,
|
|
7
|
+
server_name TEXT,
|
|
8
|
+
server_url TEXT NOT NULL,
|
|
9
|
+
transport_type TEXT NOT NULL,
|
|
10
|
+
callback_url TEXT NOT NULL,
|
|
11
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
12
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
13
|
+
expires_at TIMESTAMPTZ NOT NULL,
|
|
14
|
+
active BOOLEAN DEFAULT false,
|
|
15
|
+
identity TEXT NOT NULL,
|
|
16
|
+
headers JSONB,
|
|
17
|
+
client_information JSONB,
|
|
18
|
+
tokens JSONB,
|
|
19
|
+
code_verifier TEXT,
|
|
20
|
+
client_id TEXT
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
-- Add an index on identity and user_id for faster lookups
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_mcp_sessions_identity ON public.mcp_sessions(identity);
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_mcp_sessions_user_id ON public.mcp_sessions(user_id);
|
|
26
|
+
-- Add an index on expires_at to speed up the cleanup job
|
|
27
|
+
CREATE INDEX IF NOT EXISTS idx_mcp_sessions_expires_at ON public.mcp_sessions(expires_at);
|
|
28
|
+
|
|
29
|
+
-- Trigger to automatically update the 'updated_at' column
|
|
30
|
+
CREATE OR REPLACE FUNCTION public.set_current_timestamp_updated_at()
|
|
31
|
+
RETURNS TRIGGER AS $$
|
|
32
|
+
BEGIN
|
|
33
|
+
NEW.updated_at = now();
|
|
34
|
+
RETURN NEW;
|
|
35
|
+
END;
|
|
36
|
+
$$ LANGUAGE plpgsql;
|
|
37
|
+
|
|
38
|
+
DROP TRIGGER IF EXISTS trg_mcp_sessions_updated_at ON public.mcp_sessions;
|
|
39
|
+
CREATE TRIGGER trg_mcp_sessions_updated_at
|
|
40
|
+
BEFORE UPDATE ON public.mcp_sessions
|
|
41
|
+
FOR EACH ROW
|
|
42
|
+
EXECUTE FUNCTION public.set_current_timestamp_updated_at();
|
|
43
|
+
|
|
44
|
+
-- Enable Row Level Security (RLS)
|
|
45
|
+
ALTER TABLE public.mcp_sessions ENABLE ROW LEVEL SECURITY;
|
|
46
|
+
|
|
47
|
+
-- Policy 1: Users can read their own sessions
|
|
48
|
+
CREATE POLICY "Users can view their own sessions"
|
|
49
|
+
ON public.mcp_sessions
|
|
50
|
+
FOR SELECT
|
|
51
|
+
TO authenticated
|
|
52
|
+
USING (
|
|
53
|
+
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
-- Policy 2: Users can insert their own sessions
|
|
57
|
+
CREATE POLICY "Users can insert their own sessions"
|
|
58
|
+
ON public.mcp_sessions
|
|
59
|
+
FOR INSERT
|
|
60
|
+
TO authenticated
|
|
61
|
+
WITH CHECK (
|
|
62
|
+
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
-- Policy 3: Users can update their own sessions
|
|
66
|
+
CREATE POLICY "Users can update their own sessions"
|
|
67
|
+
ON public.mcp_sessions
|
|
68
|
+
FOR UPDATE
|
|
69
|
+
TO authenticated
|
|
70
|
+
USING (
|
|
71
|
+
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
72
|
+
)
|
|
73
|
+
WITH CHECK (
|
|
74
|
+
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
-- Policy 4: Users can delete their own sessions
|
|
78
|
+
CREATE POLICY "Users can delete their own sessions"
|
|
79
|
+
ON public.mcp_sessions
|
|
80
|
+
FOR DELETE
|
|
81
|
+
TO authenticated
|
|
82
|
+
USING (
|
|
83
|
+
auth.uid()::text = user_id OR auth.uid()::text = identity
|
|
84
|
+
);
|