@mcp-ts/sdk 1.3.7 → 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.
Files changed (61) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +398 -404
  3. package/dist/adapters/agui-middleware.js.map +1 -1
  4. package/dist/adapters/agui-middleware.mjs.map +1 -1
  5. package/dist/bin/mcp-ts.js +0 -0
  6. package/dist/bin/mcp-ts.js.map +1 -1
  7. package/dist/bin/mcp-ts.mjs +0 -0
  8. package/dist/bin/mcp-ts.mjs.map +1 -1
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/client/index.mjs.map +1 -1
  11. package/dist/client/react.d.mts +2 -2
  12. package/dist/client/react.d.ts +2 -2
  13. package/dist/client/react.js +25 -2
  14. package/dist/client/react.js.map +1 -1
  15. package/dist/client/react.mjs +26 -3
  16. package/dist/client/react.mjs.map +1 -1
  17. package/dist/client/vue.js.map +1 -1
  18. package/dist/client/vue.mjs.map +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/server/index.js.map +1 -1
  22. package/dist/server/index.mjs.map +1 -1
  23. package/dist/shared/index.js.map +1 -1
  24. package/dist/shared/index.mjs.map +1 -1
  25. package/package.json +185 -185
  26. package/src/adapters/agui-middleware.ts +382 -382
  27. package/src/bin/mcp-ts.ts +102 -102
  28. package/src/client/core/app-host.ts +417 -417
  29. package/src/client/core/sse-client.ts +371 -371
  30. package/src/client/core/types.ts +31 -31
  31. package/src/client/index.ts +27 -27
  32. package/src/client/react/index.ts +16 -16
  33. package/src/client/react/use-app-host.ts +73 -73
  34. package/src/client/react/use-mcp-apps.tsx +247 -214
  35. package/src/client/react/use-mcp.ts +641 -641
  36. package/src/client/vue/index.ts +10 -10
  37. package/src/client/vue/use-mcp.ts +617 -617
  38. package/src/index.ts +11 -11
  39. package/src/server/handlers/nextjs-handler.ts +204 -204
  40. package/src/server/handlers/sse-handler.ts +631 -631
  41. package/src/server/index.ts +57 -57
  42. package/src/server/mcp/multi-session-client.ts +228 -228
  43. package/src/server/mcp/oauth-client.ts +1188 -1188
  44. package/src/server/mcp/storage-oauth-provider.ts +272 -272
  45. package/src/server/storage/file-backend.ts +157 -157
  46. package/src/server/storage/index.ts +176 -176
  47. package/src/server/storage/memory-backend.ts +123 -123
  48. package/src/server/storage/redis-backend.ts +276 -276
  49. package/src/server/storage/redis.ts +160 -160
  50. package/src/server/storage/sqlite-backend.ts +182 -182
  51. package/src/server/storage/supabase-backend.ts +228 -228
  52. package/src/server/storage/types.ts +116 -116
  53. package/src/shared/constants.ts +29 -29
  54. package/src/shared/errors.ts +133 -133
  55. package/src/shared/event-routing.ts +28 -28
  56. package/src/shared/events.ts +180 -180
  57. package/src/shared/index.ts +75 -75
  58. package/src/shared/tool-utils.ts +61 -61
  59. package/src/shared/types.ts +282 -282
  60. package/src/shared/utils.ts +38 -38
  61. 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
+ );