@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
JavaScript
;
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