11#!/usr/bin/env node
22
3- import { initializeDataLayer , getDataLayer } from '@vue-skuilder/db' ;
3+ import { initializeDataLayer , getDataLayer , initializeTuiLogging } from '@vue-skuilder/db' ;
44import { MCPServer } from '@vue-skuilder/mcp' ;
55import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' ;
66
7+ initializeTuiLogging ( ) ;
8+
79async function main ( ) {
810 try {
911 // Get course ID from command line arguments
@@ -13,18 +15,22 @@ async function main() {
1315 console . error ( 'Example: node mcp-server.js 2aeb8315ef78f3e89ca386992d00825b' ) ;
1416 process . exit ( 1 ) ;
1517 }
18+ const port = process . argv [ 3 ] ? parseInt ( process . argv [ 3 ] , 10 ) : 5984 ;
1619
1720 console . error ( 'Starting Vue-Skuilder MCP Server...' ) ;
1821 console . error ( `Using course: ${ courseId } ` ) ;
1922
2023 // Get CouchDB configuration from environment variables
24+ // MCP server runs in a headless Node.js environment, so we skip user DB initialization
2125 const couchdbConfig = {
2226 type : 'couch' as const ,
2327 options : {
24- COUCHDB_SERVER_URL : process . env . COUCHDB_SERVER_URL || ' localhost:5985' ,
28+ COUCHDB_SERVER_URL : process . env . COUCHDB_SERVER_URL || ` localhost:${ port } ` ,
2529 COUCHDB_SERVER_PROTOCOL : process . env . COUCHDB_SERVER_PROTOCOL || 'http' ,
26- COUCHDB_USERNAME : process . env . COUCHDB_USERNAME || 'admin' ,
27- COUCHDB_PASSWORD : process . env . COUCHDB_PASSWORD || 'password' ,
30+ COUCHDB_USERNAME : 'admin' ,
31+ COUCHDB_PASSWORD : 'password' ,
32+ COURSE_IDS : [ courseId ] , // Limit to specific course
33+ localStoragePrefix : 'mcp-server' ,
2834 } ,
2935 } ;
3036
@@ -34,11 +40,7 @@ async function main() {
3440
3541 // Initialize data layer and get course DB
3642 await initializeDataLayer ( couchdbConfig ) ;
37-
38- const dataLayer = getDataLayer ( ) ;
39- await dataLayer . initialize ( ) ;
40-
41- const courseDB = dataLayer . getCourseDB ( courseId ) ;
43+ const courseDB = getDataLayer ( ) . getCourseDB ( courseId ) ;
4244
4345 // Create and start MCP server
4446 const server = new MCPServer ( courseDB , {
@@ -63,5 +65,5 @@ async function main() {
6365
6466main ( ) . catch ( ( error ) => {
6567 console . error ( 'Unhandled error:' , error ) ;
66- process . exit ( 1 ) ;
68+ // process.exit(1);
6769} ) ;
0 commit comments