Skip to main content
Glama

MCP Vibe Coding Knowledge Graph

by sascodiego
index-minimal.js3.88 kB
#!/usr/bin/env node import { program } from 'commander'; import chalk from 'chalk'; program .name('mcp-vibe-coding') .description('MCP server for Vibe Coding with Knowledge Graph integration using Kuzu') .version('1.0.0'); program .command('backup <output>') .description('Create a backup of the Knowledge Graph') .option('-c, --config <path>', 'config file path') .option('-d, --description <text>', 'backup description') .option('--validate', 'validate backup after creation', true) .action(async (output, options) => { try { console.log(chalk.blue(`💾 Creating backup: ${output}`)); // Dynamic import to avoid early loading issues const { config } = await import('./src/utils/config.js'); const { BackupManager } = await import('./src/utils/backupManager.js'); // Load configuration const cfg = config.load(options.config); // Initialize backup manager const backupManager = new BackupManager({ backupDirectory: require('path').dirname(output) || '.kg-context/backups', validateBackups: options.validate }); // Setup progress reporting backupManager.on('backupStarted', () => { console.log(chalk.cyan('📦 Exporting database tables...')); }); backupManager.on('backupCompleted', (data) => { console.log(chalk.green(`✅ Backup completed successfully!`)); console.log(chalk.cyan(` File: ${data.backupPath}`)); console.log(chalk.cyan(` Duration: ${data.duration}ms`)); console.log(chalk.cyan(` Tables: ${Object.keys(data.metadata.tables || {}).length}`)); }); // Initialize and create backup await backupManager.initialize(cfg.kuzu); await backupManager.createBackup(output, { description: options.description }); await backupManager.close(); } catch (error) { console.error(chalk.red('❌ Backup failed:'), error.message); process.exit(1); } }); program .command('clean') .description('Clean up temporary files and reset database') .option('--force', 'skip confirmation prompt') .option('--temp-only', 'only clean temporary files, keep database') .action(async (options) => { try { console.log(chalk.blue('🧹 Starting cleanup...')); if (!options.force) { console.log(chalk.yellow('⚠️ This will delete Knowledge Graph data!')); console.log(chalk.yellow('Use --force to skip this confirmation')); return; } // Simple cleanup implementation const fs = await import('fs/promises'); const path = await import('path'); const { glob } = await import('glob'); let cleanedItems = 0; // Clean temporary files const tempDirs = [ '.kg-context/temp', '.kg-context/cache' ]; for (const tempDir of tempDirs) { try { const files = await glob(path.join(tempDir, '*')); for (const file of files) { if (!file.endsWith('.gitkeep')) { await fs.rm(file, { recursive: true, force: true }); console.log(chalk.gray(` Removed: ${path.relative(process.cwd(), file)}`)); cleanedItems++; } } } catch (error) { // Directory might not exist, ignore error } } console.log(chalk.green(`✅ Cleanup completed! Removed ${cleanedItems} items.`)); } catch (error) { console.error(chalk.red('❌ Cleanup failed:'), error.message); process.exit(1); } }); // Show help if no command provided if (process.argv.length <= 2) { program.help(); } program.parse();

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sascodiego/KGsMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server