@nitrostack/core 1.0.3 → 1.0.8

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 (56) hide show
  1. package/README.md +42 -83
  2. package/dist/core/app-mode.d.ts +54 -0
  3. package/dist/core/app-mode.d.ts.map +1 -0
  4. package/dist/core/app-mode.js +67 -0
  5. package/dist/core/app-mode.js.map +1 -0
  6. package/dist/core/builders.d.ts +2 -2
  7. package/dist/core/builders.d.ts.map +1 -1
  8. package/dist/core/builders.js +10 -5
  9. package/dist/core/builders.js.map +1 -1
  10. package/dist/core/component.d.ts +1 -0
  11. package/dist/core/component.d.ts.map +1 -1
  12. package/dist/core/component.js +16 -4
  13. package/dist/core/component.js.map +1 -1
  14. package/dist/core/decorators.d.ts +36 -7
  15. package/dist/core/decorators.d.ts.map +1 -1
  16. package/dist/core/decorators.js +29 -7
  17. package/dist/core/decorators.js.map +1 -1
  18. package/dist/core/index.d.ts +1 -1
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/core/logger.d.ts.map +1 -1
  22. package/dist/core/logger.js +2 -1
  23. package/dist/core/logger.js.map +1 -1
  24. package/dist/core/resource.d.ts +9 -1
  25. package/dist/core/resource.d.ts.map +1 -1
  26. package/dist/core/resource.js +19 -0
  27. package/dist/core/resource.js.map +1 -1
  28. package/dist/core/server.d.ts +17 -2
  29. package/dist/core/server.d.ts.map +1 -1
  30. package/dist/core/server.js +195 -53
  31. package/dist/core/server.js.map +1 -1
  32. package/dist/core/tool.d.ts +5 -0
  33. package/dist/core/tool.d.ts.map +1 -1
  34. package/dist/core/tool.js +51 -21
  35. package/dist/core/tool.js.map +1 -1
  36. package/dist/core/widget-bundle-paths.d.ts +5 -0
  37. package/dist/core/widget-bundle-paths.d.ts.map +1 -0
  38. package/dist/core/widget-bundle-paths.js +25 -0
  39. package/dist/core/widget-bundle-paths.js.map +1 -0
  40. package/dist/core/widget-html-mime.d.ts +7 -0
  41. package/dist/core/widget-html-mime.d.ts.map +1 -0
  42. package/dist/core/widget-html-mime.js +7 -0
  43. package/dist/core/widget-html-mime.js.map +1 -0
  44. package/dist/core/widget-mcp-meta.d.ts +18 -0
  45. package/dist/core/widget-mcp-meta.d.ts.map +1 -0
  46. package/dist/core/widget-mcp-meta.js +92 -0
  47. package/dist/core/widget-mcp-meta.js.map +1 -0
  48. package/dist/core/widget-mime.d.ts +29 -0
  49. package/dist/core/widget-mime.d.ts.map +1 -0
  50. package/dist/core/widget-mime.js +41 -0
  51. package/dist/core/widget-mime.js.map +1 -0
  52. package/dist/ui-next/index.d.ts +3 -0
  53. package/dist/ui-next/index.d.ts.map +1 -1
  54. package/dist/ui-next/index.js +4 -1
  55. package/dist/ui-next/index.js.map +1 -1
  56. package/package.json +4 -1
@@ -1,9 +1,12 @@
1
1
  import { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
3
4
  import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ListResourceTemplatesRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
5
  import { ResourceTemplate, createResource } from './resource.js';
6
+ import { buildResourceReadContentsMeta } from './widget-mcp-meta.js';
7
+ import { getWidgetMimeType, isMcpAppMode, isOpenAiMode, getAppMode } from './app-mode.js';
5
8
  import { createLogger } from './logger.js';
6
- import { ToolExecutionError, ValidationError, ResourceNotFoundError } from './errors.js';
9
+ import { ToolExecutionError, ValidationError, ResourceNotFoundError, PromptNotFoundError } from './errors.js';
7
10
  import { v4 as uuidv4 } from 'uuid';
8
11
  import { isModule, getModuleMetadata } from './module.js';
9
12
  import { buildController } from './builders.js';
@@ -33,6 +36,10 @@ export class NitroStackServer {
33
36
  _transportType;
34
37
  /** HTTP transport instance (when using http or dual mode) */
35
38
  _httpTransport;
39
+ /** SDK legacy HTTP+SSE routes (GET /sse + POST /mcp/messages) attached once per Express app */
40
+ _legacySseRoutesAttached = false;
41
+ /** Active sessions for @modelcontextprotocol/sdk SSEServerTransport clients */
42
+ legacySdkSseSessions = new Map();
36
43
  /** Task manager for MCP Tasks support */
37
44
  taskManager;
38
45
  constructor(config) {
@@ -58,29 +65,109 @@ export class NitroStackServer {
58
65
  this.mcpServer = new McpServer({
59
66
  name: this.config.name,
60
67
  version: this.config.version,
61
- }, {
62
- capabilities: {
63
- tools: {
64
- listChanged: true,
65
- },
66
- resources: {
67
- subscribe: true,
68
- listChanged: true,
69
- },
70
- prompts: {
71
- listChanged: true,
72
- },
73
- // Declare task capabilities
74
- tasks: {
75
- list: {},
76
- cancel: {},
77
- requests: {
78
- tools: { call: {} },
79
- },
68
+ }, NitroStackServer.mcpServerOptions);
69
+ this.setupHandlersOn(this.mcpServer);
70
+ }
71
+ /** Shared MCP server constructor options (main + per legacy SSE session) */
72
+ static mcpServerOptions = {
73
+ capabilities: {
74
+ tools: {
75
+ listChanged: true,
76
+ },
77
+ resources: {
78
+ subscribe: true,
79
+ listChanged: true,
80
+ },
81
+ prompts: {
82
+ listChanged: true,
83
+ },
84
+ tasks: {
85
+ list: {},
86
+ cancel: {},
87
+ requests: {
88
+ tools: { call: {} },
80
89
  },
81
90
  },
91
+ },
92
+ };
93
+ /**
94
+ * SDK-compatible legacy HTTP+SSE: GET /sse (SSEServerTransport) and POST /mcp/messages?sessionId=.
95
+ * Streamable HTTP stays on GET/POST /mcp.
96
+ */
97
+ attachLegacySdkSseRoutes(app) {
98
+ if (this._legacySseRoutesAttached) {
99
+ return;
100
+ }
101
+ this._legacySseRoutesAttached = true;
102
+ const LEGACY_SSE_PATH = '/sse';
103
+ const LEGACY_MESSAGES_PATH = '/mcp/messages';
104
+ app.get(LEGACY_SSE_PATH, async (req, res) => {
105
+ try {
106
+ const sessionMcp = new McpServer({
107
+ name: this.config.name,
108
+ version: this.config.version,
109
+ }, NitroStackServer.mcpServerOptions);
110
+ this.setupHandlersOn(sessionMcp);
111
+ const transport = new SSEServerTransport(LEGACY_MESSAGES_PATH, res);
112
+ const sessionId = transport.sessionId;
113
+ this.legacySdkSseSessions.set(sessionId, { server: sessionMcp, transport });
114
+ let closing = false;
115
+ transport.onclose = async () => {
116
+ if (closing) {
117
+ return;
118
+ }
119
+ closing = true;
120
+ this.legacySdkSseSessions.delete(sessionId);
121
+ try {
122
+ await sessionMcp.close();
123
+ }
124
+ catch {
125
+ // ignore
126
+ }
127
+ };
128
+ transport.onerror = (err) => {
129
+ this.logger.error('Legacy SDK SSE transport error', {
130
+ error: err instanceof Error ? err.message : String(err),
131
+ });
132
+ };
133
+ await sessionMcp.connect(transport);
134
+ }
135
+ catch (error) {
136
+ const message = error instanceof Error ? error.message : String(error);
137
+ this.logger.error('Failed to start legacy SDK SSE session', { error: message });
138
+ if (!res.headersSent) {
139
+ res.status(500).end('Failed to establish SSE connection');
140
+ }
141
+ }
142
+ });
143
+ app.post(LEGACY_MESSAGES_PATH, async (req, res) => {
144
+ const sessionId = typeof req.query.sessionId === 'string' ? req.query.sessionId : undefined;
145
+ if (!sessionId) {
146
+ res.status(400).send('Missing sessionId query parameter');
147
+ return;
148
+ }
149
+ const session = this.legacySdkSseSessions.get(sessionId);
150
+ if (!session) {
151
+ res.status(404).send('Unknown session');
152
+ return;
153
+ }
154
+ try {
155
+ await session.transport.handlePostMessage(req, res, req.body);
156
+ }
157
+ catch (error) {
158
+ this.logger.error('Legacy SDK SSE POST failed', {
159
+ error: error instanceof Error ? error.message : String(error),
160
+ });
161
+ if (!res.headersSent) {
162
+ res.status(500).end('Failed to process message');
163
+ }
164
+ }
82
165
  });
83
- this.setupHandlers();
166
+ }
167
+ attachLegacySdkSseIfNeeded(transport) {
168
+ if (typeof transport.getApp === 'function') {
169
+ this.attachLegacySdkSseRoutes(transport.getApp());
170
+ }
84
171
  }
85
172
  /**
86
173
  * Add a tool to the server
@@ -111,7 +198,7 @@ export class NitroStackServer {
111
198
  uri: component.getResourceUri(),
112
199
  name: component.name,
113
200
  description: component.description || `UI component for ${component.name}`,
114
- mimeType: 'text/html',
201
+ mimeType: getWidgetMimeType(),
115
202
  handler: async (uri, context) => {
116
203
  context.logger.info(`Serving component: ${uri}`);
117
204
  // In production, serve the bundled HTML file if available
@@ -152,11 +239,9 @@ export class NitroStackServer {
152
239
  };
153
240
  },
154
241
  });
155
- // Add resource metadata - use type assertion for internal property
156
242
  const metadata = component.getResourceMetadata();
157
243
  if (metadata && Object.keys(metadata).length > 0) {
158
- const resourceWithMetadata = resource;
159
- resourceWithMetadata.metadata = metadata;
244
+ resource.attachWidgetReadMeta(metadata);
160
245
  }
161
246
  // Register resource
162
247
  this.resource(resource);
@@ -335,11 +420,11 @@ export class NitroStackServer {
335
420
  };
336
421
  }
337
422
  /**
338
- * Setup MCP protocol handlers
423
+ * Register MCP protocol handlers on the given server instance (main or per legacy SSE session).
339
424
  */
340
- setupHandlers() {
425
+ setupHandlersOn(mcp) {
341
426
  // List tools
342
- this.mcpServer.setRequestHandler(ListToolsRequestSchema, async () => {
427
+ mcp.setRequestHandler(ListToolsRequestSchema, async () => {
343
428
  this.logger.debug('Listing tools');
344
429
  const tools = await Promise.all(Array.from(this.tools.values()).map((tool) => tool.toMcpTool()));
345
430
  return {
@@ -347,7 +432,7 @@ export class NitroStackServer {
347
432
  };
348
433
  });
349
434
  // Call tool
350
- this.mcpServer.setRequestHandler(CallToolRequestSchema, async (request) => {
435
+ mcp.setRequestHandler(CallToolRequestSchema, async (request) => {
351
436
  const { name, arguments: args } = request.params;
352
437
  const tool = this.tools.get(name);
353
438
  if (!tool) {
@@ -418,9 +503,24 @@ export class NitroStackServer {
418
503
  const transformedData = await component.transformData(result, context);
419
504
  response.structuredContent = transformedData;
420
505
  // 2. Get _meta (for widget state, hidden from model)
421
- const widgetMeta = await component.getWidgetMeta(result, context);
422
- if (widgetMeta) {
423
- response._meta = widgetMeta;
506
+ const widgetMeta = (await component.getWidgetMeta(result, context)) || {};
507
+ response._meta = widgetMeta;
508
+ // 3. Add mode-specific metadata
509
+ const meta = response._meta;
510
+ if (isMcpAppMode()) {
511
+ // MCP Apps mode: Always ensure _meta.ui.resourceUri is present
512
+ if (!meta.ui) {
513
+ meta.ui = { resourceUri: component.getResourceUri() };
514
+ }
515
+ else if (typeof meta.ui === 'object' && meta.ui !== null && !('resourceUri' in meta.ui)) {
516
+ meta.ui.resourceUri = component.getResourceUri();
517
+ }
518
+ }
519
+ if (isOpenAiMode()) {
520
+ // OpenAI mode: Always ensure _meta['openai/outputTemplate'] is present
521
+ if (!meta['openai/outputTemplate']) {
522
+ meta['openai/outputTemplate'] = component.getResourceUri();
523
+ }
424
524
  }
425
525
  context.logger.info(`Tool response includes structured content for component: ${component.id}`);
426
526
  }
@@ -448,7 +548,7 @@ export class NitroStackServer {
448
548
  // MCP Tasks: tasks/get
449
549
  // Returns current task status. Blocks until terminal if needed.
450
550
  // ----------------------------------------------------------------
451
- this.registerCustomHandler('tasks/get', async (params) => {
551
+ this.registerCustomHandler(mcp, 'tasks/get', async (params) => {
452
552
  const { taskId } = params;
453
553
  if (!taskId) {
454
554
  throw { code: -32602, message: 'Invalid params: taskId is required' };
@@ -468,7 +568,7 @@ export class NitroStackServer {
468
568
  // Blocks until the task is in a terminal state, then returns the
469
569
  // underlying tool call result or error.
470
570
  // ----------------------------------------------------------------
471
- this.registerCustomHandler('tasks/result', async (params) => {
571
+ this.registerCustomHandler(mcp, 'tasks/result', async (params) => {
472
572
  const { taskId } = params;
473
573
  if (!taskId) {
474
574
  throw { code: -32602, message: 'Invalid params: taskId is required' };
@@ -504,7 +604,7 @@ export class NitroStackServer {
504
604
  // MCP Tasks: tasks/list
505
605
  // Lists tasks with cursor-based pagination.
506
606
  // ----------------------------------------------------------------
507
- this.registerCustomHandler('tasks/list', async (params) => {
607
+ this.registerCustomHandler(mcp, 'tasks/list', async (params) => {
508
608
  const { cursor } = (params || {});
509
609
  try {
510
610
  return this.taskManager.listTasks(cursor);
@@ -521,7 +621,7 @@ export class NitroStackServer {
521
621
  // MCP Tasks: tasks/cancel
522
622
  // Cancels an active task.
523
623
  // ----------------------------------------------------------------
524
- this.registerCustomHandler('tasks/cancel', async (params) => {
624
+ this.registerCustomHandler(mcp, 'tasks/cancel', async (params) => {
525
625
  const { taskId } = params;
526
626
  if (!taskId) {
527
627
  throw { code: -32602, message: 'Invalid params: taskId is required' };
@@ -540,14 +640,14 @@ export class NitroStackServer {
540
640
  }
541
641
  });
542
642
  // List resources
543
- this.mcpServer.setRequestHandler(ListResourcesRequestSchema, async () => {
643
+ mcp.setRequestHandler(ListResourcesRequestSchema, async () => {
544
644
  this.logger.debug('Listing resources');
545
645
  return {
546
646
  resources: Array.from(this.resources.values()).map((resource) => resource.toMcpResource()),
547
647
  };
548
648
  });
549
649
  // Read resource
550
- this.mcpServer.setRequestHandler(ReadResourceRequestSchema, async (request) => {
650
+ mcp.setRequestHandler(ReadResourceRequestSchema, async (request) => {
551
651
  const { uri } = request.params;
552
652
  let resource = this.resources.get(uri);
553
653
  // If not found as a static resource, check templates
@@ -593,6 +693,7 @@ export class NitroStackServer {
593
693
  mimeType: resource.mimeType || 'application/json',
594
694
  text: JSON.stringify(content.data, null, 2),
595
695
  };
696
+ break;
596
697
  default:
597
698
  // Fallback: if content doesn't match ResourceContent shape, treat as JSON
598
699
  responseContent = {
@@ -601,6 +702,10 @@ export class NitroStackServer {
601
702
  text: JSON.stringify(content, null, 2),
602
703
  };
603
704
  }
705
+ const contentsMeta = buildResourceReadContentsMeta(resource.getWidgetReadMeta());
706
+ if (contentsMeta) {
707
+ responseContent._meta = contentsMeta;
708
+ }
604
709
  this.stats.resourceReads++;
605
710
  return {
606
711
  contents: [responseContent],
@@ -613,14 +718,14 @@ export class NitroStackServer {
613
718
  }
614
719
  });
615
720
  // List resource templates (RFC 6570 URI templates)
616
- this.mcpServer.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
721
+ mcp.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
617
722
  this.logger.debug('Listing resource templates');
618
723
  return {
619
724
  resourceTemplates: Array.from(this.resourceTemplates.values()).map((template) => template.toMcpResourceTemplate()),
620
725
  };
621
726
  });
622
727
  // Subscribe to resource updates
623
- this.mcpServer.setRequestHandler(SubscribeRequestSchema, async (request) => {
728
+ mcp.setRequestHandler(SubscribeRequestSchema, async (request) => {
624
729
  const { uri } = request.params;
625
730
  const resource = this.resources.get(uri);
626
731
  if (!resource) {
@@ -633,7 +738,7 @@ export class NitroStackServer {
633
738
  return {};
634
739
  });
635
740
  // Unsubscribe from resource updates
636
- this.mcpServer.setRequestHandler(UnsubscribeRequestSchema, async (request) => {
741
+ mcp.setRequestHandler(UnsubscribeRequestSchema, async (request) => {
637
742
  const { uri } = request.params;
638
743
  const resource = this.resources.get(uri);
639
744
  if (!resource) {
@@ -644,18 +749,18 @@ export class NitroStackServer {
644
749
  return {};
645
750
  });
646
751
  // List prompts
647
- this.mcpServer.setRequestHandler(ListPromptsRequestSchema, async () => {
752
+ mcp.setRequestHandler(ListPromptsRequestSchema, async () => {
648
753
  this.logger.debug('Listing prompts');
649
754
  return {
650
755
  prompts: Array.from(this.prompts.values()).map((prompt) => prompt.toMcpPrompt()),
651
756
  };
652
757
  });
653
758
  // Get prompt
654
- this.mcpServer.setRequestHandler(GetPromptRequestSchema, async (request) => {
759
+ mcp.setRequestHandler(GetPromptRequestSchema, async (request) => {
655
760
  const { name, arguments: args } = request.params;
656
761
  const prompt = this.prompts.get(name);
657
762
  if (!prompt) {
658
- throw new Error(`Prompt not found: ${name}`);
763
+ throw new PromptNotFoundError(name);
659
764
  }
660
765
  const context = this.createContext();
661
766
  try {
@@ -683,7 +788,7 @@ export class NitroStackServer {
683
788
  }
684
789
  });
685
790
  // Error handler
686
- this.mcpServer.onerror = (error) => {
791
+ mcp.onerror = (error) => {
687
792
  const errorMessage = error instanceof Error ? error.message : String(error);
688
793
  this.logger.error('MCP Server error', { error: errorMessage });
689
794
  this.stats.errors++;
@@ -708,7 +813,7 @@ export class NitroStackServer {
708
813
  // Use explicit transport if set, otherwise infer from NODE_ENV
709
814
  const transportType = explicitTransport || (isDevelopment ? 'stdio' : 'dual');
710
815
  this._transportType = transportType;
711
- console.error(`[DEBUG] NitroStackServer.start(): NODE_ENV=${process.env.NODE_ENV}, MCP_TRANSPORT_TYPE=${explicitTransport}, transportType=${transportType}`);
816
+ this.logger.debug(`NitroStackServer.start(): NODE_ENV=${process.env.NODE_ENV}, MCP_TRANSPORT_TYPE=${explicitTransport}, transportType=${transportType}`);
712
817
  // Call onModuleInit for all modules
713
818
  for (const moduleClass of this.modules) {
714
819
  const moduleInstance = DIContainer.getInstance().resolve(moduleClass);
@@ -740,6 +845,7 @@ export class NitroStackServer {
740
845
  version: this.config.version,
741
846
  description: this.config.description,
742
847
  });
848
+ this.attachLegacySdkSseIfNeeded(httpTransport);
743
849
  await httpTransport.start();
744
850
  // Store HTTP transport reference BEFORE modules start
745
851
  // This allows OAuthModule to register discovery endpoints
@@ -793,6 +899,7 @@ export class NitroStackServer {
793
899
  enableSessions: false, // Disable sessions for simpler backward compat
794
900
  enableCors: transportOptions?.enableCors !== false, // Enable CORS by default for web clients
795
901
  });
902
+ this.attachLegacySdkSseIfNeeded(httpTransport);
796
903
  await httpTransport.start();
797
904
  this._httpTransport = httpTransport;
798
905
  }
@@ -835,8 +942,10 @@ export class NitroStackServer {
835
942
  const stdioTransport = new StdioServerTransport();
836
943
  await this.mcpServer.connect(stdioTransport);
837
944
  this.logger.info(`${this.config.name} started successfully (DUAL MODE)`);
945
+ this.logger.info(`✨ Mode: ${getAppMode().toUpperCase()} (via NITROSTACK_APP_MODE)`);
838
946
  this.logger.info(`📡 STDIO: Ready for direct MCP connections`);
839
- this.logger.info(`🌐 HTTP SSE: http://${transportOptions?.host || 'localhost'}:${transportOptions?.port || 3000}${transportOptions?.endpoint || '/mcp'}`);
947
+ this.logger.info(`🌐 Streamable HTTP: http://${transportOptions?.host || 'localhost'}:${transportOptions?.port || 3000}${transportOptions?.endpoint || '/mcp'}`);
948
+ this.logger.info(`🌐 Legacy SDK SSE: http://${transportOptions?.host || 'localhost'}:${transportOptions?.port || 3000}/sse`);
840
949
  }
841
950
  else if (transportType === 'http') {
842
951
  // HTTP-only transport (Streamable HTTP with SSE)
@@ -861,6 +970,7 @@ export class NitroStackServer {
861
970
  version: this.config.version,
862
971
  description: this.config.description,
863
972
  });
973
+ this.attachLegacySdkSseIfNeeded(transport);
864
974
  // Start HTTP server first
865
975
  await transport.start();
866
976
  httpTransport = transport;
@@ -869,12 +979,16 @@ export class NitroStackServer {
869
979
  // Then connect MCP server
870
980
  await this.mcpServer.connect(httpTransport);
871
981
  this.logger.info(`${this.config.name} started successfully (HTTP SSE transport)`);
982
+ this.logger.info(`✨ Mode: ${getAppMode().toUpperCase()} (via NITROSTACK_APP_MODE)`);
983
+ this.logger.info(`🌐 Streamable HTTP: http://${transportOptions?.host || 'localhost'}:${transportOptions?.port || 3000}${transportOptions?.endpoint || '/mcp'}`);
984
+ this.logger.info(`🌐 Legacy SDK SSE: http://${transportOptions?.host || 'localhost'}:${transportOptions?.port || 3000}/sse`);
872
985
  }
873
986
  else {
874
987
  // STDIO-only transport (default)
875
988
  const transport = new StdioServerTransport();
876
989
  await this.mcpServer.connect(transport);
877
990
  this.logger.info(`${this.config.name} started successfully (STDIO transport)`);
991
+ this.logger.info(`✨ Mode: ${getAppMode().toUpperCase()} (via NITROSTACK_APP_MODE)`);
878
992
  }
879
993
  }
880
994
  catch (error) {
@@ -904,9 +1018,22 @@ export class NitroStackServer {
904
1018
  const component = tool.getComponent();
905
1019
  const transformedData = await component.transformData(result, context);
906
1020
  response.structuredContent = transformedData;
907
- const widgetMeta = await component.getWidgetMeta(result, context);
908
- if (widgetMeta) {
909
- response._meta = widgetMeta;
1021
+ response._meta = (await component.getWidgetMeta(result, context)) || {};
1022
+ const meta = response._meta;
1023
+ if (isMcpAppMode()) {
1024
+ // MCP Apps mode: Always ensure _meta.ui.resourceUri is present
1025
+ if (!meta.ui) {
1026
+ meta.ui = { resourceUri: component.getResourceUri() };
1027
+ }
1028
+ else if (typeof meta.ui === 'object' && meta.ui !== null && !('resourceUri' in meta.ui)) {
1029
+ meta.ui.resourceUri = component.getResourceUri();
1030
+ }
1031
+ }
1032
+ if (isOpenAiMode()) {
1033
+ // OpenAI mode: Always ensure _meta['openai/outputTemplate'] is present
1034
+ if (!meta['openai/outputTemplate']) {
1035
+ meta['openai/outputTemplate'] = component.getResourceUri();
1036
+ }
910
1037
  }
911
1038
  }
912
1039
  this.taskManager.completeTask(taskId, response);
@@ -933,11 +1060,10 @@ export class NitroStackServer {
933
1060
  * The MCP SDK's setRequestHandler only works with pre-defined schemas,
934
1061
  * so we hook into the transport-level message handling.
935
1062
  */
936
- registerCustomHandler(method, handler) {
1063
+ registerCustomHandler(mcp, method, handler) {
937
1064
  // Store handler for use in message routing (dual/HTTP mode)
938
1065
  this._customHandlers.set(method, handler);
939
- // For stdio mode: hook into mcp server's internal dispatch
940
- const mcpServerInternal = this.mcpServer;
1066
+ const mcpServerInternal = mcp;
941
1067
  if (mcpServerInternal._requestHandlers) {
942
1068
  mcpServerInternal._requestHandlers.set(method, async (req) => {
943
1069
  return handler(req.params || {});
@@ -986,6 +1112,22 @@ export class NitroStackServer {
986
1112
  }
987
1113
  // Destroy task manager (stops cleanup interval)
988
1114
  this.taskManager.destroy();
1115
+ for (const { server: sessionMcp, transport: legacyTransport } of this.legacySdkSseSessions.values()) {
1116
+ try {
1117
+ await legacyTransport.close();
1118
+ }
1119
+ catch {
1120
+ // ignore
1121
+ }
1122
+ try {
1123
+ await sessionMcp.close();
1124
+ }
1125
+ catch {
1126
+ // ignore
1127
+ }
1128
+ }
1129
+ this.legacySdkSseSessions.clear();
1130
+ this._legacySseRoutesAttached = false;
989
1131
  // Close HTTP transport if running in dual mode
990
1132
  if (this._httpTransport) {
991
1133
  await this._httpTransport.close();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}