UNPKG

@toolprint/hypertool-mcp

Version:

HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers

80 lines • 3.63 kB
/** * CLI command for getting MCP server details */ import { Command } from "commander"; import { MCPServerManager } from "../index.js"; import { output } from "../../utils/output.js"; import { theme } from "../../utils/theme.js"; export function createGetCommand() { const get = new Command("get"); get .description("Get details of a specific MCP server") .argument("<name>", "Server name") .option("--json", "Output in JSON format") .action(async (name, options) => { try { const manager = new MCPServerManager(); await manager.initialize(); const server = await manager.getServer(name); if (!server) { output.error(`❌ Server '${name}' not found`); process.exit(1); } if (options.json) { // JSON output output.log(JSON.stringify(server, null, 2)); } else { // Formatted output output.displayHeader(`MCP Server: ${server.name}`); output.displaySpaceBuffer(1); // Basic info output.info(`${theme.label("Type:")} ${theme.value(server.config.type)}`); // Transport-specific info if (server.config.type === "stdio") { output.info(`${theme.label("Command:")} ${theme.value(server.config.command || "N/A")}`); if (server.config.args && server.config.args.length > 0) { output.info(`${theme.label("Arguments:")} ${theme.value(JSON.stringify(server.config.args))}`); } } else { output.info(`${theme.label("URL:")} ${theme.value(server.config.url || "N/A")}`); } // Environment variables if (server.config.env && Object.keys(server.config.env).length > 0) { output.displaySpaceBuffer(1); output.info(theme.label("Environment Variables:")); for (const [key, value] of Object.entries(server.config.env)) { output.info(` ${theme.subtle(key)}=${theme.value(value)}`); } } // Headers (for HTTP/SSE) if (server.config.headers && Object.keys(server.config.headers).length > 0) { output.displaySpaceBuffer(1); output.info(theme.label("Headers:")); for (const [key, value] of Object.entries(server.config.headers)) { output.info(` ${theme.subtle(key)}: ${theme.value(value)}`); } } // Metadata if (server.metadata) { output.displaySpaceBuffer(1); output.info(theme.label("Metadata:")); output.info(` ${theme.subtle("Source:")} ${theme.value(server.metadata.app)}`); output.info(` ${theme.subtle("Imported:")} ${theme.value(server.metadata.importedAt)}`); if (server.metadata.addedManually) { output.info(` ${theme.subtle("Added:")} ${theme.value("Manually")}`); } } } } catch (error) { output.error("❌ Failed to get MCP server:"); output.error(error instanceof Error ? error.message : String(error)); process.exit(1); } }); return get; } //# sourceMappingURL=get.js.map