@nitrostack/core 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.
Files changed (239) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +80 -0
  3. package/dist/auth/api-key.d.ts +118 -0
  4. package/dist/auth/api-key.d.ts.map +1 -0
  5. package/dist/auth/api-key.js +168 -0
  6. package/dist/auth/api-key.js.map +1 -0
  7. package/dist/auth/client.d.ts +151 -0
  8. package/dist/auth/client.d.ts.map +1 -0
  9. package/dist/auth/client.js +330 -0
  10. package/dist/auth/client.js.map +1 -0
  11. package/dist/auth/index.d.ts +31 -0
  12. package/dist/auth/index.d.ts.map +1 -0
  13. package/dist/auth/index.js +46 -0
  14. package/dist/auth/index.js.map +1 -0
  15. package/dist/auth/middleware.d.ts +95 -0
  16. package/dist/auth/middleware.d.ts.map +1 -0
  17. package/dist/auth/middleware.js +260 -0
  18. package/dist/auth/middleware.js.map +1 -0
  19. package/dist/auth/pkce.d.ts +53 -0
  20. package/dist/auth/pkce.d.ts.map +1 -0
  21. package/dist/auth/pkce.js +105 -0
  22. package/dist/auth/pkce.js.map +1 -0
  23. package/dist/auth/quick-setup.d.ts +94 -0
  24. package/dist/auth/quick-setup.d.ts.map +1 -0
  25. package/dist/auth/quick-setup.js +210 -0
  26. package/dist/auth/quick-setup.js.map +1 -0
  27. package/dist/auth/secure-secret.d.ts +136 -0
  28. package/dist/auth/secure-secret.d.ts.map +1 -0
  29. package/dist/auth/secure-secret.js +182 -0
  30. package/dist/auth/secure-secret.js.map +1 -0
  31. package/dist/auth/server-integration.d.ts +97 -0
  32. package/dist/auth/server-integration.d.ts.map +1 -0
  33. package/dist/auth/server-integration.js +182 -0
  34. package/dist/auth/server-integration.js.map +1 -0
  35. package/dist/auth/server-metadata.d.ts +51 -0
  36. package/dist/auth/server-metadata.d.ts.map +1 -0
  37. package/dist/auth/server-metadata.js +106 -0
  38. package/dist/auth/server-metadata.js.map +1 -0
  39. package/dist/auth/simple-jwt.d.ts +174 -0
  40. package/dist/auth/simple-jwt.d.ts.map +1 -0
  41. package/dist/auth/simple-jwt.js +162 -0
  42. package/dist/auth/simple-jwt.js.map +1 -0
  43. package/dist/auth/token-store.d.ts +104 -0
  44. package/dist/auth/token-store.d.ts.map +1 -0
  45. package/dist/auth/token-store.js +205 -0
  46. package/dist/auth/token-store.js.map +1 -0
  47. package/dist/auth/token-validation.d.ts +59 -0
  48. package/dist/auth/token-validation.d.ts.map +1 -0
  49. package/dist/auth/token-validation.js +241 -0
  50. package/dist/auth/token-validation.js.map +1 -0
  51. package/dist/auth/types.d.ts +215 -0
  52. package/dist/auth/types.d.ts.map +1 -0
  53. package/dist/auth/types.js +6 -0
  54. package/dist/auth/types.js.map +1 -0
  55. package/dist/core/apikey-module.d.ts +69 -0
  56. package/dist/core/apikey-module.d.ts.map +1 -0
  57. package/dist/core/apikey-module.js +114 -0
  58. package/dist/core/apikey-module.js.map +1 -0
  59. package/dist/core/app-decorator.d.ts +59 -0
  60. package/dist/core/app-decorator.d.ts.map +1 -0
  61. package/dist/core/app-decorator.js +322 -0
  62. package/dist/core/app-decorator.js.map +1 -0
  63. package/dist/core/builders.d.ts +50 -0
  64. package/dist/core/builders.d.ts.map +1 -0
  65. package/dist/core/builders.js +139 -0
  66. package/dist/core/builders.js.map +1 -0
  67. package/dist/core/component.d.ts +111 -0
  68. package/dist/core/component.d.ts.map +1 -0
  69. package/dist/core/component.js +228 -0
  70. package/dist/core/component.js.map +1 -0
  71. package/dist/core/config-module.d.ts +62 -0
  72. package/dist/core/config-module.d.ts.map +1 -0
  73. package/dist/core/config-module.js +94 -0
  74. package/dist/core/config-module.js.map +1 -0
  75. package/dist/core/decorators/cache.decorator.d.ts +61 -0
  76. package/dist/core/decorators/cache.decorator.d.ts.map +1 -0
  77. package/dist/core/decorators/cache.decorator.js +115 -0
  78. package/dist/core/decorators/cache.decorator.js.map +1 -0
  79. package/dist/core/decorators/health-check.decorator.d.ts +80 -0
  80. package/dist/core/decorators/health-check.decorator.d.ts.map +1 -0
  81. package/dist/core/decorators/health-check.decorator.js +153 -0
  82. package/dist/core/decorators/health-check.decorator.js.map +1 -0
  83. package/dist/core/decorators/rate-limit.decorator.d.ts +63 -0
  84. package/dist/core/decorators/rate-limit.decorator.d.ts.map +1 -0
  85. package/dist/core/decorators/rate-limit.decorator.js +129 -0
  86. package/dist/core/decorators/rate-limit.decorator.js.map +1 -0
  87. package/dist/core/decorators.d.ts +190 -0
  88. package/dist/core/decorators.d.ts.map +1 -0
  89. package/dist/core/decorators.js +170 -0
  90. package/dist/core/decorators.js.map +1 -0
  91. package/dist/core/di/container.d.ts +64 -0
  92. package/dist/core/di/container.d.ts.map +1 -0
  93. package/dist/core/di/container.js +105 -0
  94. package/dist/core/di/container.js.map +1 -0
  95. package/dist/core/di/injectable.decorator.d.ts +62 -0
  96. package/dist/core/di/injectable.decorator.d.ts.map +1 -0
  97. package/dist/core/di/injectable.decorator.js +66 -0
  98. package/dist/core/di/injectable.decorator.js.map +1 -0
  99. package/dist/core/errors.d.ts +54 -0
  100. package/dist/core/errors.d.ts.map +1 -0
  101. package/dist/core/errors.js +87 -0
  102. package/dist/core/errors.js.map +1 -0
  103. package/dist/core/events/event-emitter.d.ts +50 -0
  104. package/dist/core/events/event-emitter.d.ts.map +1 -0
  105. package/dist/core/events/event-emitter.js +94 -0
  106. package/dist/core/events/event-emitter.js.map +1 -0
  107. package/dist/core/events/event.decorator.d.ts +48 -0
  108. package/dist/core/events/event.decorator.d.ts.map +1 -0
  109. package/dist/core/events/event.decorator.js +72 -0
  110. package/dist/core/events/event.decorator.js.map +1 -0
  111. package/dist/core/events/log-emitter.d.ts +14 -0
  112. package/dist/core/events/log-emitter.d.ts.map +1 -0
  113. package/dist/core/events/log-emitter.js +20 -0
  114. package/dist/core/events/log-emitter.js.map +1 -0
  115. package/dist/core/filters/exception-filter.decorator.d.ts +40 -0
  116. package/dist/core/filters/exception-filter.decorator.d.ts.map +1 -0
  117. package/dist/core/filters/exception-filter.decorator.js +54 -0
  118. package/dist/core/filters/exception-filter.decorator.js.map +1 -0
  119. package/dist/core/filters/exception-filter.interface.d.ts +39 -0
  120. package/dist/core/filters/exception-filter.interface.d.ts.map +1 -0
  121. package/dist/core/filters/exception-filter.interface.js +2 -0
  122. package/dist/core/filters/exception-filter.interface.js.map +1 -0
  123. package/dist/core/guards/apikey.guard.d.ts +22 -0
  124. package/dist/core/guards/apikey.guard.d.ts.map +1 -0
  125. package/dist/core/guards/apikey.guard.js +11 -0
  126. package/dist/core/guards/apikey.guard.js.map +1 -0
  127. package/dist/core/guards/guard.interface.d.ts +18 -0
  128. package/dist/core/guards/guard.interface.d.ts.map +1 -0
  129. package/dist/core/guards/guard.interface.js +2 -0
  130. package/dist/core/guards/guard.interface.js.map +1 -0
  131. package/dist/core/guards/jwt.guard.d.ts +18 -0
  132. package/dist/core/guards/jwt.guard.d.ts.map +1 -0
  133. package/dist/core/guards/jwt.guard.js +2 -0
  134. package/dist/core/guards/jwt.guard.js.map +1 -0
  135. package/dist/core/guards/oauth.guard.d.ts +35 -0
  136. package/dist/core/guards/oauth.guard.d.ts.map +1 -0
  137. package/dist/core/guards/oauth.guard.js +2 -0
  138. package/dist/core/guards/oauth.guard.js.map +1 -0
  139. package/dist/core/guards/use-guards.decorator.d.ts +25 -0
  140. package/dist/core/guards/use-guards.decorator.d.ts.map +1 -0
  141. package/dist/core/guards/use-guards.decorator.js +32 -0
  142. package/dist/core/guards/use-guards.decorator.js.map +1 -0
  143. package/dist/core/health/health-checks.resource.d.ts +14 -0
  144. package/dist/core/health/health-checks.resource.d.ts.map +1 -0
  145. package/dist/core/health/health-checks.resource.js +29 -0
  146. package/dist/core/health/health-checks.resource.js.map +1 -0
  147. package/dist/core/index.d.ts +57 -0
  148. package/dist/core/index.d.ts.map +1 -0
  149. package/dist/core/index.js +59 -0
  150. package/dist/core/index.js.map +1 -0
  151. package/dist/core/interceptors/interceptor.decorator.d.ts +37 -0
  152. package/dist/core/interceptors/interceptor.decorator.d.ts.map +1 -0
  153. package/dist/core/interceptors/interceptor.decorator.js +51 -0
  154. package/dist/core/interceptors/interceptor.decorator.js.map +1 -0
  155. package/dist/core/interceptors/interceptor.interface.d.ts +31 -0
  156. package/dist/core/interceptors/interceptor.interface.d.ts.map +1 -0
  157. package/dist/core/interceptors/interceptor.interface.js +2 -0
  158. package/dist/core/interceptors/interceptor.interface.js.map +1 -0
  159. package/dist/core/jwt-module.d.ts +51 -0
  160. package/dist/core/jwt-module.d.ts.map +1 -0
  161. package/dist/core/jwt-module.js +52 -0
  162. package/dist/core/jwt-module.js.map +1 -0
  163. package/dist/core/logger.d.ts +18 -0
  164. package/dist/core/logger.d.ts.map +1 -0
  165. package/dist/core/logger.js +53 -0
  166. package/dist/core/logger.js.map +1 -0
  167. package/dist/core/middleware/middleware.decorator.d.ts +39 -0
  168. package/dist/core/middleware/middleware.decorator.d.ts.map +1 -0
  169. package/dist/core/middleware/middleware.decorator.js +53 -0
  170. package/dist/core/middleware/middleware.decorator.js.map +1 -0
  171. package/dist/core/middleware/middleware.interface.d.ts +29 -0
  172. package/dist/core/middleware/middleware.interface.d.ts.map +1 -0
  173. package/dist/core/middleware/middleware.interface.js +2 -0
  174. package/dist/core/middleware/middleware.interface.js.map +1 -0
  175. package/dist/core/module.d.ts +93 -0
  176. package/dist/core/module.d.ts.map +1 -0
  177. package/dist/core/module.js +87 -0
  178. package/dist/core/module.js.map +1 -0
  179. package/dist/core/oauth-module.d.ts +123 -0
  180. package/dist/core/oauth-module.d.ts.map +1 -0
  181. package/dist/core/oauth-module.js +324 -0
  182. package/dist/core/oauth-module.js.map +1 -0
  183. package/dist/core/pipes/pipe.decorator.d.ts +64 -0
  184. package/dist/core/pipes/pipe.decorator.d.ts.map +1 -0
  185. package/dist/core/pipes/pipe.decorator.js +85 -0
  186. package/dist/core/pipes/pipe.decorator.js.map +1 -0
  187. package/dist/core/pipes/pipe.interface.d.ts +41 -0
  188. package/dist/core/pipes/pipe.interface.d.ts.map +1 -0
  189. package/dist/core/pipes/pipe.interface.js +2 -0
  190. package/dist/core/pipes/pipe.interface.js.map +1 -0
  191. package/dist/core/prompt.d.ts +46 -0
  192. package/dist/core/prompt.d.ts.map +1 -0
  193. package/dist/core/prompt.js +76 -0
  194. package/dist/core/prompt.js.map +1 -0
  195. package/dist/core/resource.d.ts +47 -0
  196. package/dist/core/resource.d.ts.map +1 -0
  197. package/dist/core/resource.js +90 -0
  198. package/dist/core/resource.js.map +1 -0
  199. package/dist/core/server.d.ts +129 -0
  200. package/dist/core/server.d.ts.map +1 -0
  201. package/dist/core/server.js +617 -0
  202. package/dist/core/server.js.map +1 -0
  203. package/dist/core/tool.d.ts +108 -0
  204. package/dist/core/tool.d.ts.map +1 -0
  205. package/dist/core/tool.js +241 -0
  206. package/dist/core/tool.js.map +1 -0
  207. package/dist/core/transports/discovery-http-server.d.ts +19 -0
  208. package/dist/core/transports/discovery-http-server.d.ts.map +1 -0
  209. package/dist/core/transports/discovery-http-server.js +54 -0
  210. package/dist/core/transports/discovery-http-server.js.map +1 -0
  211. package/dist/core/transports/http-server.d.ts +108 -0
  212. package/dist/core/transports/http-server.d.ts.map +1 -0
  213. package/dist/core/transports/http-server.js +293 -0
  214. package/dist/core/transports/http-server.js.map +1 -0
  215. package/dist/core/transports/streamable-http.d.ts +177 -0
  216. package/dist/core/transports/streamable-http.d.ts.map +1 -0
  217. package/dist/core/transports/streamable-http.js +1287 -0
  218. package/dist/core/transports/streamable-http.js.map +1 -0
  219. package/dist/core/types.d.ts +195 -0
  220. package/dist/core/types.d.ts.map +1 -0
  221. package/dist/core/types.js +2 -0
  222. package/dist/core/types.js.map +1 -0
  223. package/dist/core/widgets/widget-examples.resource.d.ts +17 -0
  224. package/dist/core/widgets/widget-examples.resource.d.ts.map +1 -0
  225. package/dist/core/widgets/widget-examples.resource.js +28 -0
  226. package/dist/core/widgets/widget-examples.resource.js.map +1 -0
  227. package/dist/core/widgets/widget-registry.d.ts +56 -0
  228. package/dist/core/widgets/widget-registry.d.ts.map +1 -0
  229. package/dist/core/widgets/widget-registry.js +75 -0
  230. package/dist/core/widgets/widget-registry.js.map +1 -0
  231. package/dist/testing/index.d.ts +103 -0
  232. package/dist/testing/index.d.ts.map +1 -0
  233. package/dist/testing/index.js +161 -0
  234. package/dist/testing/index.js.map +1 -0
  235. package/dist/ui-next/index.d.ts +31 -0
  236. package/dist/ui-next/index.d.ts.map +1 -0
  237. package/dist/ui-next/index.js +687 -0
  238. package/dist/ui-next/index.js.map +1 -0
  239. package/package.json +89 -0
@@ -0,0 +1,293 @@
1
+ /**
2
+ * HTTP Server Transport for MCP
3
+ *
4
+ * Implements HTTP transport with Server-Sent Events (SSE) for bidirectional communication.
5
+ * Required for OAuth 2.1 authentication as per MCP specification.
6
+ *
7
+ * This transport:
8
+ * - Exposes MCP over HTTP endpoints
9
+ * - Provides OAuth 2.1 metadata endpoints (RFC 9728)
10
+ * - Uses SSE for server-to-client messages
11
+ * - Uses POST for client-to-server messages
12
+ */
13
+ import express from 'express';
14
+ /**
15
+ * HTTP Server Transport
16
+ *
17
+ * Implements MCP protocol over HTTP with SSE for real-time communication.
18
+ * Compatible with OAuth 2.1 authentication.
19
+ */
20
+ export class HttpServerTransport {
21
+ app;
22
+ server = null;
23
+ sseClients = new Map();
24
+ messageHandler;
25
+ closeHandler;
26
+ errorHandler;
27
+ options;
28
+ constructor(options = {}) {
29
+ this.options = {
30
+ port: options.port || 3000,
31
+ host: options.host || '0.0.0.0',
32
+ basePath: options.basePath || '/mcp',
33
+ oauth: options.oauth,
34
+ };
35
+ this.app = options.app || express();
36
+ this.setupRoutes();
37
+ }
38
+ /**
39
+ * Setup HTTP routes for MCP protocol
40
+ */
41
+ setupRoutes() {
42
+ const basePath = this.options.basePath;
43
+ // Enable CORS
44
+ this.app.use((req, res, next) => {
45
+ res.header('Access-Control-Allow-Origin', '*');
46
+ res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
47
+ res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
48
+ if (req.method === 'OPTIONS') {
49
+ res.sendStatus(200);
50
+ }
51
+ else {
52
+ next();
53
+ }
54
+ });
55
+ // JSON parsing
56
+ this.app.use(express.json());
57
+ // SSE endpoint for server-to-client messages
58
+ this.app.get(`${basePath}/sse`, (req, res) => {
59
+ this.handleSSE(req, res);
60
+ });
61
+ // POST endpoint for client-to-server messages
62
+ this.app.post(`${basePath}/message`, async (req, res) => {
63
+ await this.handleMessage(req, res);
64
+ });
65
+ // OAuth 2.1 Protected Resource Metadata (RFC 9728)
66
+ if (this.options.oauth) {
67
+ this.app.get('/.well-known/oauth-protected-resource', (req, res) => {
68
+ this.handleProtectedResourceMetadata(req, res);
69
+ });
70
+ }
71
+ // Root info endpoint
72
+ this.app.get(basePath, (req, res) => {
73
+ res.json({
74
+ name: 'NitroStack MCP Server',
75
+ version: '1.0.0',
76
+ transport: 'HTTP',
77
+ status: 'running',
78
+ endpoints: {
79
+ sse: `${basePath}/sse`,
80
+ message: `${basePath}/message`,
81
+ health: `${basePath}/health`,
82
+ },
83
+ docs: 'https://github.com/nitrostack/nitrostack',
84
+ });
85
+ });
86
+ // Health check
87
+ this.app.get(`${basePath}/health`, (req, res) => {
88
+ res.json({
89
+ status: 'ok',
90
+ transport: 'http',
91
+ uptime: process.uptime(),
92
+ timestamp: new Date().toISOString(),
93
+ });
94
+ });
95
+ }
96
+ /**
97
+ * Handle SSE connection for server-to-client messages
98
+ */
99
+ handleSSE(req, res) {
100
+ const clientId = req.query.clientId || `client_${Date.now()}`;
101
+ // Setup SSE
102
+ res.writeHead(200, {
103
+ 'Content-Type': 'text/event-stream',
104
+ 'Cache-Control': 'no-cache',
105
+ 'Connection': 'keep-alive',
106
+ });
107
+ // Store client
108
+ this.sseClients.set(clientId, res);
109
+ // Send initial connection event
110
+ res.write(`data: ${JSON.stringify({ type: 'connected', clientId })}\n\n`);
111
+ // Handle client disconnect
112
+ req.on('close', () => {
113
+ this.sseClients.delete(clientId);
114
+ });
115
+ }
116
+ /**
117
+ * Handle incoming message from client
118
+ */
119
+ async handleMessage(req, res) {
120
+ try {
121
+ const message = req.body;
122
+ if (!message || !message.jsonrpc) {
123
+ res.status(400).json({ error: 'Invalid JSON-RPC message' });
124
+ return;
125
+ }
126
+ // Pass to message handler
127
+ if (this.messageHandler) {
128
+ await this.messageHandler(message);
129
+ }
130
+ res.json({ status: 'received' });
131
+ }
132
+ catch (error) {
133
+ console.error('Error handling message:', error);
134
+ res.status(500).json({ error: error instanceof Error ? error.message : String(error) });
135
+ }
136
+ }
137
+ /**
138
+ * Handle OAuth Protected Resource Metadata request (RFC 9728)
139
+ */
140
+ handleProtectedResourceMetadata(req, res) {
141
+ if (!this.options.oauth) {
142
+ res.status(404).json({ error: 'OAuth not configured' });
143
+ return;
144
+ }
145
+ const metadata = {
146
+ resource: this.options.oauth.resourceUri,
147
+ authorization_servers: this.options.oauth.authorizationServers,
148
+ ...(this.options.oauth.scopesSupported && {
149
+ scopes_supported: this.options.oauth.scopesSupported,
150
+ }),
151
+ };
152
+ res.json(metadata);
153
+ }
154
+ /**
155
+ * Start the HTTP server
156
+ */
157
+ async start() {
158
+ // Close existing server if any
159
+ if (this.server) {
160
+ await this.close();
161
+ }
162
+ return new Promise((resolve, reject) => {
163
+ // Set up error handler BEFORE calling listen
164
+ const errorHandler = (error) => {
165
+ console.error(`❌ Failed to start HTTP server: ${error.message}`);
166
+ this.server = null;
167
+ reject(error);
168
+ };
169
+ try {
170
+ const server = this.app.listen(this.options.port, this.options.host);
171
+ // Register error handler immediately
172
+ server.once('error', errorHandler);
173
+ // Success handler
174
+ server.once('listening', () => {
175
+ // Remove error handler since we're now listening
176
+ server.removeListener('error', errorHandler);
177
+ // Set up permanent error handler for runtime errors
178
+ server.on('error', (error) => {
179
+ if (this.errorHandler) {
180
+ this.errorHandler(error);
181
+ }
182
+ else {
183
+ console.error('HTTP server error:', error);
184
+ }
185
+ });
186
+ this.server = server;
187
+ console.error(`🌐 HTTP MCP Server listening on http://${this.options.host}:${this.options.port}${this.options.basePath}`);
188
+ if (this.options.oauth) {
189
+ console.error(`🔐 OAuth 2.1 enabled`);
190
+ console.error(` Resource URI: ${this.options.oauth.resourceUri}`);
191
+ console.error(` Auth Servers: ${this.options.oauth.authorizationServers.join(', ')}`);
192
+ console.error(` Metadata: http://${this.options.host}:${this.options.port}/.well-known/oauth-protected-resource`);
193
+ }
194
+ resolve();
195
+ });
196
+ }
197
+ catch (error) {
198
+ reject(error);
199
+ }
200
+ });
201
+ }
202
+ /**
203
+ * Send message to client(s)
204
+ */
205
+ async send(message) {
206
+ const data = `data: ${JSON.stringify(message)}\n\n`;
207
+ // Send to all connected SSE clients
208
+ for (const [clientId, res] of this.sseClients) {
209
+ try {
210
+ res.write(data);
211
+ }
212
+ catch (error) {
213
+ console.error(`Error sending to client ${clientId}:`, error);
214
+ this.sseClients.delete(clientId);
215
+ }
216
+ }
217
+ }
218
+ /**
219
+ * Close the transport
220
+ */
221
+ async close() {
222
+ // Close all SSE connections
223
+ for (const [clientId, res] of this.sseClients) {
224
+ try {
225
+ res.end();
226
+ }
227
+ catch (error) {
228
+ // Ignore errors on close
229
+ }
230
+ }
231
+ this.sseClients.clear();
232
+ // Close HTTP server
233
+ if (this.server) {
234
+ return new Promise((resolve) => {
235
+ const server = this.server;
236
+ this.server = null; // Clear reference immediately
237
+ // Force close all connections
238
+ server.closeAllConnections?.(); // Available in Node 18+
239
+ server.close((err) => {
240
+ if (err) {
241
+ console.error('HTTP server close error (ignoring):', err.message);
242
+ }
243
+ else {
244
+ console.error('🔌 HTTP MCP Server closed');
245
+ }
246
+ // Small delay to ensure port is fully released
247
+ setTimeout(() => {
248
+ if (this.closeHandler) {
249
+ this.closeHandler();
250
+ }
251
+ resolve();
252
+ }, 100);
253
+ });
254
+ });
255
+ }
256
+ if (this.closeHandler) {
257
+ this.closeHandler();
258
+ }
259
+ }
260
+ /**
261
+ * Set message handler
262
+ */
263
+ set onmessage(handler) {
264
+ this.messageHandler = handler;
265
+ }
266
+ /**
267
+ * Set close handler
268
+ */
269
+ set onclose(handler) {
270
+ this.closeHandler = handler;
271
+ }
272
+ /**
273
+ * Set error handler
274
+ */
275
+ set onerror(handler) {
276
+ this.errorHandler = handler;
277
+ }
278
+ /**
279
+ * Get the Express app (for adding custom routes)
280
+ */
281
+ getApp() {
282
+ return this.app;
283
+ }
284
+ /**
285
+ * Register a custom route handler (compatible with DiscoveryHttpServer interface)
286
+ * @param path - The route path
287
+ * @param handler - The request handler (Node.js http.RequestListener format)
288
+ */
289
+ on(path, handler) {
290
+ this.app.get(path, handler);
291
+ }
292
+ }
293
+ //# sourceMappingURL=http-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../../src/core/transports/http-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Streamable HTTP Transport for MCP
3
+ *
4
+ * Implements the MCP Streamable HTTP transport specification (2025-06-18).
5
+ * https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http
6
+ *
7
+ * Features:
8
+ * - Single MCP endpoint supporting both POST and GET
9
+ * - POST for sending messages to server
10
+ * - GET for SSE streams from server
11
+ * - Session management with Mcp-Session-Id header
12
+ * - Resumability support with Last-Event-ID
13
+ * - Multiple concurrent client connections
14
+ * - Protocol version header support
15
+ */
16
+ import { Express, Request, Response } from 'express';
17
+ import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
18
+ import { JSONRPCMessage, Tool as McpTool } from '@modelcontextprotocol/sdk/types.js';
19
+ export interface StreamableHttpTransportOptions {
20
+ /**
21
+ * Port to listen on (default: 3000)
22
+ */
23
+ port?: number;
24
+ /**
25
+ * Host to bind to (default: 'localhost' for security)
26
+ */
27
+ host?: string;
28
+ /**
29
+ * MCP endpoint path (default: '/mcp')
30
+ */
31
+ endpoint?: string;
32
+ /**
33
+ * Enable session management (default: true)
34
+ */
35
+ enableSessions?: boolean;
36
+ /**
37
+ * Session timeout in ms (default: 30 minutes)
38
+ */
39
+ sessionTimeout?: number;
40
+ /**
41
+ * Custom Express app (optional)
42
+ */
43
+ app?: Express;
44
+ /**
45
+ * Enable CORS (default: false for security)
46
+ */
47
+ enableCors?: boolean;
48
+ }
49
+ /**
50
+ * Streamable HTTP Transport
51
+ * Implements MCP Streamable HTTP specification
52
+ */
53
+ export declare class StreamableHttpTransport implements Transport {
54
+ private app;
55
+ private server;
56
+ private sessions;
57
+ private activeStreams;
58
+ private messageHandler?;
59
+ private closeHandler?;
60
+ private errorHandler?;
61
+ private options;
62
+ private sessionCleanupInterval?;
63
+ private getToolsCallback?;
64
+ private serverConfig?;
65
+ private logoBase64?;
66
+ constructor(options?: StreamableHttpTransportOptions);
67
+ /**
68
+ * Load logo image as base64 for embedding in documentation page
69
+ */
70
+ private loadLogo;
71
+ /**
72
+ * Setup Express middleware
73
+ */
74
+ private setupMiddleware;
75
+ /**
76
+ * Setup MCP endpoint routes
77
+ */
78
+ private setupRoutes;
79
+ /**
80
+ * Handle POST requests (client sending messages to server)
81
+ */
82
+ private handlePost;
83
+ /**
84
+ * Handle GET requests (client opening SSE stream)
85
+ */
86
+ private handleGet;
87
+ /**
88
+ * Handle DELETE requests (session termination)
89
+ */
90
+ private handleDelete;
91
+ /**
92
+ * Start SSE stream for a request
93
+ */
94
+ private startSSEStream;
95
+ /**
96
+ * Send message to client(s)
97
+ */
98
+ send(message: JSONRPCMessage): Promise<void>;
99
+ /**
100
+ * Send message to a specific stream
101
+ */
102
+ private sendToStream;
103
+ /**
104
+ * Send response to the stream that made the request
105
+ */
106
+ private sendToRequestStream;
107
+ /**
108
+ * Send message to a sessionless stream
109
+ */
110
+ private sendToStreamSessionless;
111
+ /**
112
+ * Replay messages for resumability
113
+ */
114
+ private replayMessages;
115
+ /**
116
+ * Start the HTTP server
117
+ */
118
+ start(): Promise<void>;
119
+ /**
120
+ * Register additional HTTP routes
121
+ * Allows modules (like OAuthModule) to add custom endpoints
122
+ */
123
+ on(path: string, handler: (req: Request, res: Response) => void): void;
124
+ /**
125
+ * Close the transport
126
+ */
127
+ close(): Promise<void>;
128
+ /**
129
+ * Set message handler
130
+ */
131
+ set onmessage(handler: (message: JSONRPCMessage) => Promise<void>);
132
+ /**
133
+ * Set close handler
134
+ */
135
+ set onclose(handler: () => void);
136
+ /**
137
+ * Set error handler
138
+ */
139
+ set onerror(handler: (error: Error) => void);
140
+ /**
141
+ * Start session cleanup interval
142
+ */
143
+ private startSessionCleanup;
144
+ /**
145
+ * Helper methods
146
+ */
147
+ private generateSessionId;
148
+ private getMessageType;
149
+ private isResponse;
150
+ private isInitializeRequest;
151
+ private isLocalhost;
152
+ /**
153
+ * Get the Express app (for adding custom routes)
154
+ */
155
+ getApp(): Express;
156
+ /**
157
+ * Set callback to get tools list for documentation page
158
+ */
159
+ setToolsCallback(callback: () => Promise<McpTool[]>): void;
160
+ /**
161
+ * Set server configuration for documentation page
162
+ */
163
+ setServerConfig(config: {
164
+ name: string;
165
+ version: string;
166
+ description?: string;
167
+ }): void;
168
+ /**
169
+ * Generate HTML documentation page
170
+ */
171
+ private generateDocumentationPage;
172
+ /**
173
+ * Escape HTML to prevent XSS
174
+ */
175
+ private escapeHtml;
176
+ }
177
+ //# sourceMappingURL=streamable-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/streamable-http.ts"],"names":[],"mappings":"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"}