@@ -8,7 +8,8 @@ import { fileURLToPath } from 'url';
88
99import { ConnectorManager } from './connectors/manager.js' ;
1010import { ConnectorRegistry } from './connectors/interface.js' ;
11- import { resolveDSN , resolveTransport , resolvePort } from './config/env.js' ;
11+ import { resolveDSN , resolveTransport , resolvePort , isDemoMode } from './config/env.js' ;
12+ import { getSqliteInMemorySetupSql } from './config/demo-loader.js' ;
1213import { registerResources } from './resources/index.js' ;
1314import { registerTools } from './tools/index.js' ;
1415import { registerPrompts } from './prompts/index.js' ;
@@ -28,7 +29,9 @@ export const SERVER_VERSION = packageJson.version;
2829/**
2930 * Generate ASCII art banner with version information
3031 */
31- export function generateBanner ( version : string ) : string {
32+ export function generateBanner ( version : string , isDemo : boolean = false ) : string {
33+ const demoText = isDemo ? " [DEMO MODE]" : "" ;
34+
3235 return `
3336 _____ ____ _ _ _
3437| __ \\| _ \\| | | | | |
@@ -37,7 +40,7 @@ export function generateBanner(version: string): string {
3740| |__| | |_) | | | | |_| | |_) |
3841|_____/|____/|_| |_|\\__,_|_.__/
3942
40- v${ version } - Universal Database MCP Server
43+ v${ version } ${ demoText } - Universal Database MCP Server
4144` ;
4245}
4346
@@ -59,9 +62,10 @@ export async function main(): Promise<void> {
5962ERROR: Database connection string (DSN) is required.
6063Please provide the DSN in one of these ways (in order of priority):
6164
62- 1. Command line argument: --dsn="your-connection-string"
63- 2. Environment variable: export DSN="your-connection-string"
64- 3. .env file: DSN=your-connection-string
65+ 1. Use demo mode: --demo (uses in-memory SQLite with sample employee database)
66+ 2. Command line argument: --dsn="your-connection-string"
67+ 3. Environment variable: export DSN="your-connection-string"
68+ 4. .env file: DSN=your-connection-string
6569
6670Example formats:
6771${ sampleFormats }
@@ -86,15 +90,23 @@ See documentation for more details on configuring database connections.
8690 const connectorManager = new ConnectorManager ( ) ;
8791 console . error ( `Connecting with DSN: ${ dsnData . dsn } ` ) ;
8892 console . error ( `DSN source: ${ dsnData . source } ` ) ;
89- await connectorManager . connectWithDSN ( dsnData . dsn ) ;
93+
94+ // If in demo mode, load the employee database
95+ if ( dsnData . isDemo ) {
96+ console . error ( 'Running in demo mode with sample employee database' ) ;
97+ const initScript = getSqliteInMemorySetupSql ( ) ;
98+ await connectorManager . connectWithDSN ( dsnData . dsn , initScript ) ;
99+ } else {
100+ await connectorManager . connectWithDSN ( dsnData . dsn ) ;
101+ }
90102
91103 // Resolve transport type
92104 const transportData = resolveTransport ( ) ;
93105 console . error ( `Using transport: ${ transportData . type } ` ) ;
94106 console . error ( `Transport source: ${ transportData . source } ` ) ;
95107
96108 // Print ASCII art banner with version and slogan
97- console . error ( generateBanner ( SERVER_VERSION ) ) ;
109+ console . error ( generateBanner ( SERVER_VERSION , dsnData . isDemo ) ) ;
98110
99111 // Set up transport based on type
100112 if ( transportData . type === 'sse' ) {
0 commit comments