@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
56 lines • 2.43 kB
JavaScript
/**
* List Extensions Command
*/
import { Command } from "commander";
import { ExtensionManager } from "../../extensions/index.js";
export function extensionsList() {
return new Command("list")
.description("List all available extensions with their status")
.option("--config <path>", "Path to configuration file")
.option("--extensions-dir <path>", "Path to extensions directory")
.option("--verbose", "Show detailed information")
.action(async (options) => {
try {
const extensionManager = new ExtensionManager(options.config, options.extensionsDir);
await extensionManager.initialize();
const extensions = extensionManager.listExtensions();
if (extensions.length === 0) {
console.log("No extensions found.");
return;
}
console.log("Extensions:");
console.log();
for (const ext of extensions) {
const status = ext.enabled ? (ext.valid ? "✓" : "✗") : "○";
const statusText = ext.enabled
? ext.valid
? "[enabled]"
: "[disabled - invalid]"
: "[disabled]";
console.log(`${status} ${ext.name} ${statusText} - v${ext.version}`);
if (ext.description) {
console.log(` ${ext.description}`);
}
if (options.verbose || !ext.valid) {
if (ext.errors.length > 0) {
console.log(` Errors: ${ext.errors.join(", ")}`);
}
if (ext.warnings.length > 0) {
console.log(` Warnings: ${ext.warnings.join(", ")}`);
}
}
console.log();
}
// Summary
const enabled = extensions.filter((e) => e.enabled && e.valid).length;
const disabled = extensions.filter((e) => !e.enabled).length;
const invalid = extensions.filter((e) => e.enabled && !e.valid).length;
console.log(`Summary: ${enabled} enabled, ${disabled} disabled, ${invalid} invalid`);
}
catch (error) {
console.error(`Failed to list extensions: ${error.message}`);
process.exit(1);
}
});
}
//# sourceMappingURL=list.js.map