UNPKG

@aurracloud/mcp-cli

Version:

A command-line tool to install, manage, and setup MCP (Model Context Protocol) servers with Docker support

197 lines 7.4 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const install_1 = require("./commands/install"); const uninstall_1 = require("./commands/uninstall"); const info_1 = require("./commands/info"); const upgrade_1 = require("./commands/upgrade"); const list_1 = require("./commands/list"); const list_cloud_1 = require("./commands/list-cloud"); const login_1 = require("./commands/login"); const logout_1 = require("./commands/logout"); const logger_1 = require("./utils/logger"); const dotenv_1 = __importDefault(require("dotenv")); // Load environment variables from .env file dotenv_1.default.config(); // Setup CLI program commander_1.program .name('mcp') .description(` ███╗ ███╗ ██████╗██████╗ ████╗ ████║██╔════╝██╔══██╗ ██╔████╔██║██║ ██████╔╝ ██║╚██╔╝██║██║ ██╔═══╝ ██║ ╚═╝ ██║╚██████╗██║ ╚═╝ ╚═╝ ╚═════╝╚═╝ By aurracloud.com CLI to install and setup MCP servers `) .version('1.0.0') .option('-v, --verbose', 'Enable verbose output') .option('-d, --debug', 'Enable debug output') .option('-q, --quiet', 'Suppress all output except errors'); // Register commands commander_1.program .command('install <package>') .description('Install and setup an MCP server') .requiredOption('-c, --client <client>', 'Client to install for (cursor, claude)') .option('-d, --direct', 'Run the MCP server directly on host (potentially unsafe)') .option('-j, --json', 'Output installation result in JSON format') .option('-a, --args <args...>', 'Configuration arguments in key=value format (for JSON mode)') .action((packageName, options) => { // Set logger mode based on global options (JSON mode overrides to quiet) const globalOpts = commander_1.program.opts(); if (options.json) { (0, logger_1.setLoggerMode)('quiet'); } else if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, install_1.installCommand)({ ...options, package: packageName }); }); commander_1.program .command('uninstall <package>') .description('Uninstall an MCP server') .requiredOption('-c, --client <client>', 'Client to uninstall from (cursor, claude)') .action((packageName, options) => { // Set logger mode based on global options const globalOpts = commander_1.program.opts(); if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, uninstall_1.uninstallCommand)({ ...options, package: packageName }); }); commander_1.program .command('list') .description('List all installed MCP servers for a client') .requiredOption('-c, --client <client>', 'Client to list servers for (cursor, claude)') .action((options) => { // Set logger mode based on global options const globalOpts = commander_1.program.opts(); if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, list_1.listCommand)(options); }); commander_1.program .command('list-cloud') .description('List all available cloud SSE tools from aurracloud.com') .option('-j, --json', 'Output information in JSON format') .action((options) => { // Set logger mode based on global options (JSON mode overrides to quiet) const globalOpts = commander_1.program.opts(); if (options.json) { (0, logger_1.setLoggerMode)('quiet'); } else if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, list_cloud_1.listCloudCommand)(options); }); commander_1.program .command('info <package>') .description('Get comprehensive information about a package from integrated registries') .option('-j, --json', 'Output information in JSON format') .action((packageName, options) => { // Set logger mode based on global options (JSON mode overrides to quiet) const globalOpts = commander_1.program.opts(); if (options.json) { (0, logger_1.setLoggerMode)('quiet'); } else if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, info_1.infoCommand)({ ...options, package: packageName }); }); commander_1.program .command('upgrade') .description('Upgrade mcp-cli to the latest version') .action((options) => { // Set logger mode based on global options const globalOpts = commander_1.program.opts(); if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, upgrade_1.upgradeCommand)(options); }); commander_1.program .command('login') .description('Authenticate with the MCP registry to enable cloud installation') .option('-r, --registry <url>', 'Registry URL to authenticate with', 'https://aurracloud.com') .action((options) => { // Set logger mode based on global options const globalOpts = commander_1.program.opts(); if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, login_1.loginCommand)({ registry: options.registry || 'https://aurracloud.com' }); }); commander_1.program .command('logout') .description('Remove authentication credentials for the MCP registry') .option('-r, --registry <url>', 'Registry URL to logout from') .action((options) => { // Set logger mode based on global options const globalOpts = commander_1.program.opts(); if (globalOpts.debug) { (0, logger_1.setLoggerMode)('debug'); } else if (globalOpts.verbose) { (0, logger_1.setLoggerMode)('verbose'); } else if (globalOpts.quiet) { (0, logger_1.setLoggerMode)('quiet'); } (0, logout_1.logoutCommand)(options); }); // Parse arguments and execute commander_1.program.parse(); //# sourceMappingURL=index.js.map