nitrostack 1.0.18 → 1.0.20

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 (32) hide show
  1. package/ARCHITECTURE.md +302 -0
  2. package/dist/cli/commands/build.js +1 -1
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/start.js +3 -3
  5. package/dist/cli/commands/start.js.map +1 -1
  6. package/dist/cli/mcp-dev-wrapper.js +60 -12
  7. package/dist/cli/mcp-dev-wrapper.js.map +1 -1
  8. package/dist/core/events/log-emitter.d.ts +8 -0
  9. package/dist/core/events/log-emitter.d.ts.map +1 -0
  10. package/dist/core/events/log-emitter.js +20 -0
  11. package/dist/core/events/log-emitter.js.map +1 -0
  12. package/dist/core/logger.d.ts.map +1 -1
  13. package/dist/core/logger.js +3 -1
  14. package/dist/core/logger.js.map +1 -1
  15. package/dist/core/server.d.ts.map +1 -1
  16. package/dist/core/server.js +58 -14
  17. package/dist/core/server.js.map +1 -1
  18. package/dist/core/transports/streamable-http.d.ts +145 -0
  19. package/dist/core/transports/streamable-http.d.ts.map +1 -0
  20. package/dist/core/transports/streamable-http.js +691 -0
  21. package/dist/core/transports/streamable-http.js.map +1 -0
  22. package/package.json +2 -2
  23. package/src/studio/app/settings/page.tsx +8 -79
  24. package/src/studio/components/Sidebar.tsx +1 -1
  25. package/templates/typescript-auth/src/index.ts +27 -13
  26. package/templates/typescript-auth-api-key/src/index.ts +29 -14
  27. package/templates/typescript-auth-api-key/src/widgets/next.config.js +9 -1
  28. package/templates/typescript-oauth/src/index.ts +30 -9
  29. package/templates/typescript-oauth/src/widgets/next.config.js +9 -1
  30. package/templates/typescript-starter/src/index.ts +28 -4
  31. package/templates/typescript-starter/src/widgets/next.config.js +9 -1
  32. package/src/studio/package-lock.json +0 -3129
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../../../src/core/transports/streamable-http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nitrostack",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "description": "NitroStack - Build powerful MCP servers with TypeScript",
5
5
  "type": "module",
6
6
  "main": "dist/core/index.js",
@@ -34,7 +34,7 @@
34
34
  }
35
35
  },
36
36
  "scripts": {
37
- "build": "tsc",
37
+ "build": "tsc && chmod +x dist/cli/index.js",
38
38
  "dev": "tsc --watch",
39
39
  "test": "jest",
40
40
  "prepublishOnly": "npm run build"
@@ -5,8 +5,6 @@ import { Settings as SettingsIcon, Wifi, CheckCircle, AlertCircle } from 'lucide
5
5
 
6
6
  export default function SettingsPage() {
7
7
  const [transport, setTransport] = useState<'stdio' | 'http'>('stdio');
8
- const [httpUrl, setHttpUrl] = useState('http://localhost:3002');
9
- const [httpBasePath, setHttpBasePath] = useState('/mcp');
10
8
  const [connecting, setConnecting] = useState(false);
11
9
  const [connectionStatus, setConnectionStatus] = useState<'idle' | 'success' | 'error'>('idle');
12
10
  const [errorMessage, setErrorMessage] = useState('');
@@ -14,12 +12,8 @@ export default function SettingsPage() {
14
12
  useEffect(() => {
15
13
  // Load saved settings from localStorage
16
14
  const savedTransport = localStorage.getItem('mcp_transport');
17
- const savedHttpUrl = localStorage.getItem('mcp_http_url');
18
- const savedHttpBasePath = localStorage.getItem('mcp_http_base_path');
19
15
 
20
16
  if (savedTransport) setTransport(savedTransport as 'stdio' | 'http');
21
- if (savedHttpUrl) setHttpUrl(savedHttpUrl);
22
- if (savedHttpBasePath) setHttpBasePath(savedHttpBasePath);
23
17
  }, []);
24
18
 
25
19
  const handleSaveSettings = async () => {
@@ -30,10 +24,6 @@ export default function SettingsPage() {
30
24
  try {
31
25
  // Save settings to localStorage
32
26
  localStorage.setItem('mcp_transport', transport);
33
- if (transport === 'http') {
34
- localStorage.setItem('mcp_http_url', httpUrl);
35
- localStorage.setItem('mcp_http_base_path', httpBasePath);
36
- }
37
27
 
38
28
  // Try to reconnect with new settings
39
29
  const response = await fetch('/api/init', {
@@ -41,8 +31,6 @@ export default function SettingsPage() {
41
31
  headers: { 'Content-Type': 'application/json' },
42
32
  body: JSON.stringify({
43
33
  transport,
44
- baseUrl: httpUrl,
45
- basePath: httpBasePath,
46
34
  }),
47
35
  });
48
36
 
@@ -93,15 +81,11 @@ export default function SettingsPage() {
93
81
  </label>
94
82
  <div className="grid grid-cols-2 gap-4">
95
83
  <button
96
- onClick={() => setTransport('stdio')}
97
- className={`p-4 rounded-lg border-2 transition-all text-left ${
98
- transport === 'stdio'
99
- ? 'border-primary bg-primary/10'
100
- : 'border-border hover:border-primary/50'
101
- }`}
84
+ disabled
85
+ className={`p-4 rounded-lg border-2 transition-all text-left border-primary bg-primary/10`}
102
86
  >
103
87
  <div className="flex items-center gap-3 mb-2">
104
- <div className={`w-3 h-3 rounded-full ${transport === 'stdio' ? 'bg-primary' : 'bg-muted'}`} />
88
+ <div className={`w-3 h-3 rounded-full bg-primary`} />
105
89
  <h3 className="font-semibold text-foreground">STDIO</h3>
106
90
  </div>
107
91
  <p className="text-sm text-muted-foreground">
@@ -110,15 +94,11 @@ export default function SettingsPage() {
110
94
  </button>
111
95
 
112
96
  <button
113
- onClick={() => setTransport('http')}
114
- className={`p-4 rounded-lg border-2 transition-all text-left ${
115
- transport === 'http'
116
- ? 'border-primary bg-primary/10'
117
- : 'border-border hover:border-primary/50'
118
- }`}
97
+ disabled
98
+ className={`p-4 rounded-lg border-2 transition-all text-left border-border hover:border-primary/50`}
119
99
  >
120
100
  <div className="flex items-center gap-3 mb-2">
121
- <div className={`w-3 h-3 rounded-full ${transport === 'http' ? 'bg-primary' : 'bg-muted'}`} />
101
+ <div className={`w-3 h-3 rounded-full bg-muted`} />
122
102
  <h3 className="font-semibold text-foreground">HTTP</h3>
123
103
  </div>
124
104
  <p className="text-sm text-muted-foreground">
@@ -128,43 +108,6 @@ export default function SettingsPage() {
128
108
  </div>
129
109
  </div>
130
110
 
131
- {/* HTTP Configuration (shown only when HTTP is selected) */}
132
- {transport === 'http' && (
133
- <div className="space-y-4 mb-6 p-4 bg-muted/30 rounded-lg border border-border">
134
- <div>
135
- <label className="block text-sm font-medium text-foreground mb-2">
136
- Server URL
137
- </label>
138
- <input
139
- type="text"
140
- value={httpUrl}
141
- onChange={(e) => setHttpUrl(e.target.value)}
142
- placeholder="http://localhost:3002"
143
- className="input"
144
- />
145
- <p className="text-xs text-muted-foreground mt-1">
146
- The base URL of your MCP HTTP server (default: port 3002)
147
- </p>
148
- </div>
149
-
150
- <div>
151
- <label className="block text-sm font-medium text-foreground mb-2">
152
- Base Path
153
- </label>
154
- <input
155
- type="text"
156
- value={httpBasePath}
157
- onChange={(e) => setHttpBasePath(e.target.value)}
158
- placeholder="/mcp"
159
- className="input"
160
- />
161
- <p className="text-xs text-muted-foreground mt-1">
162
- The base path for MCP endpoints
163
- </p>
164
- </div>
165
- </div>
166
- )}
167
-
168
111
  {/* Port Allocation Info */}
169
112
  <div className="mb-6 p-4 bg-blue-500/10 rounded-lg border border-blue-500/20">
170
113
  <h4 className="font-semibold text-foreground mb-2">Port Allocation</h4>
@@ -191,23 +134,9 @@ export default function SettingsPage() {
191
134
  <div>
192
135
  <h4 className="font-semibold text-foreground mb-1">Transport Information</h4>
193
136
  <p className="text-sm text-muted-foreground mb-2">
194
- {transport === 'stdio' ? (
195
- <>
196
- <strong>STDIO</strong> (Default): Studio spawns the MCP server as a child process and communicates
197
- via standard input/output. The MCP server still runs dual transport (STDIO + HTTP on port 3002).
198
- </>
199
- ) : (
200
- <>
201
- <strong>HTTP</strong>: Studio connects to the running MCP HTTP server on port 3002.
202
- Use this when you want to inspect an already-running server or connect remotely.
203
- </>
204
- )}
137
+ <strong>STDIO</strong> (Default): Studio spawns the MCP server as a child process and communicates
138
+ via standard input/output. The MCP server still runs dual transport (STDIO + HTTP on port 3002).
205
139
  </p>
206
- {transport === 'http' && (
207
- <p className="text-xs text-amber-600 dark:text-amber-500">
208
- ⚠️ Make sure your MCP server is running with <code>npm run dev</code> or <code>npm start</code>
209
- </p>
210
- )}
211
140
  </div>
212
141
  </div>
213
142
  </div>
@@ -167,7 +167,7 @@ export function Sidebar() {
167
167
  <div className="flex items-center justify-between text-[10px]">
168
168
  <span className="font-medium text-muted-foreground">Transport:</span>
169
169
  <span className="font-bold text-primary uppercase">
170
- {typeof localStorage !== 'undefined' ? localStorage.getItem('mcp_transport') || 'STDIO' : 'STDIO'}
170
+ STDIO
171
171
  </span>
172
172
  </div>
173
173
  </div>
@@ -3,6 +3,10 @@
3
3
  *
4
4
  * Main entry point for the MCP server.
5
5
  * Uses the new @McpApp decorator pattern for clean, NestJS-style architecture.
6
+ *
7
+ * Transport Configuration:
8
+ * - Development (NODE_ENV=development): STDIO only
9
+ * - Production (NODE_ENV=production): Dual transport (STDIO + HTTP SSE)
6
10
  */
7
11
 
8
12
  import { McpApplicationFactory } from 'nitrostack';
@@ -12,22 +16,32 @@ import { AppModule } from './app.module.js';
12
16
  * Bootstrap the application
13
17
  */
14
18
  async function bootstrap() {
15
- // Create and start the MCP server from AppModule
19
+ // Create the MCP server from AppModule
16
20
  const server = await McpApplicationFactory.create(AppModule);
17
21
 
18
- // Start the server with dual transport (STDIO + HTTP)
19
- // This allows both direct stdio connections and HTTP-based connections
20
- // Note: Studio runs on 3000, Widgets on 3001, so MCP HTTP uses 3002
21
- const port = parseInt(process.env.PORT || '3002');
22
- await server.start('dual', {
23
- port,
24
- host: '0.0.0.0',
25
- basePath: '/mcp',
26
- });
22
+ // Determine transport based on environment
23
+ const isDevelopment = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;
27
24
 
28
- console.error(`\n🚀 Server started successfully (DUAL: STDIO + HTTP)`);
29
- console.error(`📡 MCP Protocol: STDIO (for direct connections)`);
30
- console.error(`🌐 HTTP Server: http://0.0.0.0:${port}/mcp`);
25
+ if (isDevelopment) {
26
+ // Development: STDIO only (for local testing with MCP Inspector, Claude Desktop)
27
+ await server.start('stdio');
28
+ console.error('🚀 Server running in DEVELOPMENT mode (STDIO only)');
29
+ } else {
30
+ // Production: Dual transport (STDIO + HTTP SSE)
31
+ const port = parseInt(process.env.PORT || '3002');
32
+ const host = process.env.HOST || '0.0.0.0';
33
+
34
+ await server.start('dual', {
35
+ port,
36
+ host,
37
+ endpoint: '/mcp',
38
+ enableCors: process.env.ENABLE_CORS !== 'false', // Enable by default, disable with ENABLE_CORS=false
39
+ });
40
+
41
+ console.error('🚀 Server running in PRODUCTION mode (DUAL)');
42
+ console.error(` 📡 STDIO: Ready for direct connections`);
43
+ console.error(` 🌐 HTTP SSE: http://${host}:${port}/mcp`);
44
+ }
31
45
  }
32
46
 
33
47
  // Start the application
@@ -13,6 +13,10 @@ import { AppModule } from './app.module.js';
13
13
  * - Easy integration with NitroStack Studio
14
14
  * - Environment-based key management
15
15
  *
16
+ * Transport Configuration:
17
+ * - Development (NODE_ENV=development): STDIO only
18
+ * - Production (NODE_ENV=production): Dual transport (STDIO + HTTP SSE)
19
+ *
16
20
  * Test API Keys (provided in .env):
17
21
  * - sk_test_public_demo_key_12345
18
22
  * - sk_test_admin_demo_key_67890
@@ -30,20 +34,32 @@ async function bootstrap() {
30
34
  console.error(' - Protected tools require valid API key');
31
35
  console.error(' - Public tools accessible without authentication\n');
32
36
 
33
- // Start the MCP server with dual transport (STDIO + HTTP)
34
- // Note: Studio runs on 3000, Widgets on 3001, so MCP HTTP uses 3002
35
- const port = parseInt(process.env.PORT || '3002');
36
- await app.start('dual', {
37
- port,
38
- host: '0.0.0.0',
39
- basePath: '/mcp',
40
- });
37
+ // Determine transport based on environment
38
+ const isDevelopment = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;
41
39
 
42
- console.error('🚀 Server started successfully (DUAL: STDIO + HTTP)!');
43
- console.error(`📡 MCP Protocol: STDIO (for direct connections)`);
44
- console.error(`🌐 HTTP Server: http://0.0.0.0:${port}/mcp`);
45
- console.error(' Open NitroStack Studio to test the server');
46
- console.error(' Set your API key in Studio Auth → API Key section\n');
40
+ if (isDevelopment) {
41
+ // Development: STDIO only (for local testing)
42
+ await app.start('stdio');
43
+ console.error('🚀 Server running in DEVELOPMENT mode (STDIO only)');
44
+ console.error(' Use MCP Inspector or Claude Desktop for testing\n');
45
+ } else {
46
+ // Production: Dual transport (STDIO + HTTP SSE)
47
+ const port = parseInt(process.env.PORT || '3002');
48
+ const host = process.env.HOST || '0.0.0.0';
49
+
50
+ await app.start('dual', {
51
+ port,
52
+ host,
53
+ endpoint: '/mcp',
54
+ enableCors: process.env.ENABLE_CORS !== 'false', // Enable by default, disable with ENABLE_CORS=false
55
+ });
56
+
57
+ console.error('🚀 Server running in PRODUCTION mode (DUAL)');
58
+ console.error(` 📡 STDIO: Ready for direct connections`);
59
+ console.error(` 🌐 HTTP SSE: http://${host}:${port}/mcp`);
60
+ console.error(' Open NitroStack Studio to test the server');
61
+ console.error(' Set your API key in Studio → Auth → API Key section\n');
62
+ }
47
63
 
48
64
  } catch (error) {
49
65
  console.error('❌ Failed to start server:', error);
@@ -52,4 +68,3 @@ async function bootstrap() {
52
68
  }
53
69
 
54
70
  bootstrap();
55
-
@@ -3,6 +3,15 @@ const nextConfig = {
3
3
  reactStrictMode: true,
4
4
  transpilePackages: ['nitrostack'],
5
5
 
6
+ // Static export for production builds
7
+ ...(process.env.NODE_ENV === 'production' && {
8
+ output: 'export',
9
+ distDir: 'out',
10
+ images: {
11
+ unoptimized: true,
12
+ },
13
+ }),
14
+
6
15
  // Development optimizations to prevent cache corruption
7
16
  ...(process.env.NODE_ENV === 'development' && {
8
17
  // Use memory cache instead of filesystem cache in dev to avoid stale chunks
@@ -34,4 +43,3 @@ const nextConfig = {
34
43
  };
35
44
 
36
45
  export default nextConfig;
37
-
@@ -25,6 +25,10 @@ import { AppModule } from './app.module.js';
25
25
  * - Okta
26
26
  * - Keycloak
27
27
  * - Any RFC-compliant OAuth 2.1 provider
28
+ *
29
+ * Transport Configuration:
30
+ * - Development (NODE_ENV=development): STDIO only
31
+ * - Production (NODE_ENV=production): Dual transport (STDIO + HTTP SSE)
28
32
  */
29
33
 
30
34
  async function bootstrap() {
@@ -52,15 +56,33 @@ async function bootstrap() {
52
56
  console.error(` Scopes: read, write, admin`);
53
57
  console.error(` Audience: ${process.env.TOKEN_AUDIENCE || process.env.RESOURCE_URI}\n`);
54
58
 
55
- // Start the MCP server with HTTP transport (auto-configured by OAuthModule)
56
- const transportType = (app as any)._transportType || 'stdio';
57
- const transportOptions = (app as any)._transportOptions;
58
-
59
- await app.start(transportType, transportOptions);
59
+ // Determine transport based on environment
60
+ const isDevelopment = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;
60
61
 
61
- console.error('🚀 Server started successfully!');
62
- console.error(' Open NitroStack Studio to test OAuth 2.1 flow');
63
- console.error(' Configure OAuth in Studio → Auth → OAuth 2.1 tab\n');
62
+ if (isDevelopment) {
63
+ // Development: STDIO only (for local testing)
64
+ await app.start('stdio');
65
+ console.error('🚀 Server running in DEVELOPMENT mode (STDIO only)');
66
+ console.error(' Use MCP Inspector for testing OAuth flows\n');
67
+ } else {
68
+ // Production: Dual transport (STDIO + HTTP SSE)
69
+ // OAuth servers typically need HTTP transport for token validation
70
+ const port = parseInt(process.env.PORT || '3002');
71
+ const host = process.env.HOST || '0.0.0.0';
72
+
73
+ await app.start('dual', {
74
+ port,
75
+ host,
76
+ endpoint: '/mcp',
77
+ enableCors: process.env.ENABLE_CORS !== 'false', // Enable by default, disable with ENABLE_CORS=false
78
+ });
79
+
80
+ console.error('🚀 Server running in PRODUCTION mode (DUAL)');
81
+ console.error(` 📡 STDIO: Ready for direct connections`);
82
+ console.error(` 🌐 HTTP SSE: http://${host}:${port}/mcp`);
83
+ console.error(' Open NitroStack Studio to test OAuth 2.1 flow');
84
+ console.error(' Configure OAuth in Studio → Auth → OAuth 2.1 tab\n');
85
+ }
64
86
 
65
87
  } catch (error) {
66
88
  console.error('❌ Failed to start server:', error);
@@ -71,4 +93,3 @@ async function bootstrap() {
71
93
  }
72
94
 
73
95
  bootstrap();
74
-
@@ -3,6 +3,15 @@ const nextConfig = {
3
3
  reactStrictMode: true,
4
4
  transpilePackages: ['nitrostack'],
5
5
 
6
+ // Static export for production builds
7
+ ...(process.env.NODE_ENV === 'production' && {
8
+ output: 'export',
9
+ distDir: 'out',
10
+ images: {
11
+ unoptimized: true,
12
+ },
13
+ }),
14
+
6
15
  // Development optimizations to prevent cache corruption
7
16
  ...(process.env.NODE_ENV === 'development' && {
8
17
  // Use memory cache instead of filesystem cache in dev to avoid stale chunks
@@ -34,4 +43,3 @@ const nextConfig = {
34
43
  };
35
44
 
36
45
  export default nextConfig;
37
-
@@ -3,6 +3,10 @@
3
3
  *
4
4
  * Main entry point for the MCP server.
5
5
  * Uses the @McpApp decorator pattern for clean, NestJS-style architecture.
6
+ *
7
+ * Transport Configuration:
8
+ * - Development (NODE_ENV=development): STDIO only
9
+ * - Production (NODE_ENV=production): Dual transport (STDIO + HTTP SSE)
6
10
  */
7
11
 
8
12
  import { McpApplicationFactory } from 'nitrostack';
@@ -12,11 +16,32 @@ import { AppModule } from './app.module.js';
12
16
  * Bootstrap the application
13
17
  */
14
18
  async function bootstrap() {
15
- // Create and start the MCP server from AppModule
19
+ // Create the MCP server from AppModule
16
20
  const server = await McpApplicationFactory.create(AppModule);
17
21
 
18
- // Start the server
19
- await server.start();
22
+ // Determine transport based on environment
23
+ const isDevelopment = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV;
24
+
25
+ if (isDevelopment) {
26
+ // Development: STDIO only (for local testing with MCP Inspector, Claude Desktop)
27
+ await server.start('stdio');
28
+ console.error('🚀 Server running in DEVELOPMENT mode (STDIO only)');
29
+ } else {
30
+ // Production: Dual transport (STDIO + HTTP SSE)
31
+ const port = parseInt(process.env.PORT || '3000');
32
+ const host = process.env.HOST || 'localhost';
33
+
34
+ await server.start('dual', {
35
+ port,
36
+ host,
37
+ endpoint: '/mcp',
38
+ enableCors: process.env.ENABLE_CORS !== 'false', // Enable by default, disable with ENABLE_CORS=false
39
+ });
40
+
41
+ console.error('🚀 Server running in PRODUCTION mode (DUAL)');
42
+ console.error(` 📡 STDIO: Ready for direct connections`);
43
+ console.error(` 🌐 HTTP SSE: http://${host}:${port}/mcp`);
44
+ }
20
45
  }
21
46
 
22
47
  // Start the application
@@ -24,4 +49,3 @@ bootstrap().catch((error) => {
24
49
  console.error('❌ Failed to start server:', error);
25
50
  process.exit(1);
26
51
  });
27
-
@@ -3,6 +3,15 @@ const nextConfig = {
3
3
  reactStrictMode: true,
4
4
  transpilePackages: ['nitrostack'],
5
5
 
6
+ // Static export for production builds
7
+ ...(process.env.NODE_ENV === 'production' && {
8
+ output: 'export',
9
+ distDir: 'out',
10
+ images: {
11
+ unoptimized: true,
12
+ },
13
+ }),
14
+
6
15
  // Development optimizations to prevent cache corruption
7
16
  ...(process.env.NODE_ENV === 'development' && {
8
17
  // Use memory cache instead of filesystem cache in dev to avoid stale chunks
@@ -34,4 +43,3 @@ const nextConfig = {
34
43
  };
35
44
 
36
45
  export default nextConfig;
37
-