Skip to main content
Glama
cli.tsโ€ข4.48 kB
#!/usr/bin/env node /** * CastPlan Automation - Universal CLI * * Cross-platform command-line interface with universal package manager support, * intelligent environment detection, and comprehensive configuration management. */ import { Command } from 'commander'; import { ConfigurationManager } from './config/ConfigurationManager.js'; import { PackageManagerDetector } from './config/PackageManagerDetector.js'; import { promises as fs } from 'fs'; import path from 'path'; import os from 'os'; import winston from 'winston'; const program = new Command(); // Package information const packageJson = JSON.parse( await fs.readFile(new URL('../package.json', import.meta.url), 'utf-8') ); program .name('castplan-mcp') .description('CastPlan Automation - Universal MCP Server') .version(packageJson.version); // Initialize logger const logger = winston.createLogger({ level: 'info', format: winston.format.simple(), transports: [new winston.transports.Console()] }); /** * Initialize command - Set up MCP server configuration */ program .command('init') .description('Initialize CastPlan Automation MCP server') .option('--server-name <name>', 'Name for the MCP server configuration', 'castplan-mcp') .option('--global', 'Use global installation') .option('--dry-run', 'Preview changes without making them') .action(async (options) => { try { console.log('๐Ÿš€ Initializing CastPlan Automation MCP Server'); const configManager = new ConfigurationManager({ logger, projectRoot: process.cwd() }); // Initialize configuration console.log('๐Ÿ”ง Generating configuration...'); const config = await configManager.initialize(); console.log('โœ… Configuration initialized successfully!'); if (options.dryRun) { console.log('\nConfiguration Summary:'); console.log(configManager.getConfigurationSummary()); return; } // Generate MCP configuration files console.log('๐Ÿ“„ Generating MCP configuration files...'); const mcpConfigs = await configManager.generateMCPConfigFiles({ serverName: options.serverName, global: options.global }); console.log(`โœ… Generated ${mcpConfigs.length} MCP configuration files`); console.log('โœจ CastPlan Automation MCP Server initialized successfully!'); } catch (error) { console.error('โŒ Initialization failed:', error); process.exit(1); } }); /** * Health check command */ program .command('health') .description('Check system health and configuration') .action(async () => { try { console.log('๐Ÿฅ CastPlan Automation - Health Check'); console.log('================================'); // Check Node.js version console.log(`๐Ÿ“ฆ Node.js: ${process.version}`); console.log(`๐Ÿ–ฅ๏ธ Platform: ${os.platform()} ${os.arch()}`); // Check package managers const detector = new PackageManagerDetector(); const managers = await detector.detectAvailableManagers(); console.log(`โš™๏ธ Available managers: ${managers.managers.filter(m => m.available).map(m => m.name).join(', ')}`); console.log('โœ… System is healthy!'); } catch (error) { console.error('โŒ Health check failed:', error); process.exit(1); } }); /** * Configuration status command */ program .command('status') .description('Show current configuration status') .action(async () => { try { const configManager = new ConfigurationManager({ logger, projectRoot: process.cwd() }); const config = await configManager.initialize(); console.log('๐Ÿ“Š Configuration Status'); console.log('======================='); console.log(configManager.getConfigurationSummary()); } catch (error) { console.error('โŒ Status check failed:', error); process.exit(1); } }); /** * Version information */ program .command('version') .description('Show version information') .action(() => { console.log(`CastPlan Automation v${packageJson.version}`); console.log(`Node.js ${process.version}`); console.log(`Platform: ${os.platform()} ${os.arch()}`); }); // Parse command line arguments program.parse(process.argv); // Show help if no command provided if (!process.argv.slice(2).length) { program.outputHelp(); }

Latest Blog Posts

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/Ghostseller/CastPlan_mcp'

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