ludus-mcp
Version:
MCP server for managing Ludus cybersecurity training environments through natural language commands
64 lines • 1.83 kB
TypeScript
import { Logger } from '../utils/logger.js';
export interface LudusConfig {
adminUser: string;
connectionMethod: 'wireguard' | 'ssh-tunnel';
wireguardConfig?: string | undefined;
apiKey: string;
sshHost: string;
sshUser: string;
sshAuthMethod: 'password' | 'key';
sshPassword?: string | undefined;
sshKeyPath?: string | undefined;
sshKeyPassphrase?: string | undefined;
ludusUrl?: string;
verifySSL?: boolean;
}
export interface SetupResult {
success: boolean;
message: string;
config?: LudusConfig;
requiresRestart?: boolean;
}
export declare class InteractiveSetup {
private logger;
private rl;
constructor(logger: Logger);
/**
* Secure prompt for sensitive data (hides input)
*/
private securePrompt;
private prompt;
private checkWireGuardAvailable;
private checkWireGuardConnectivity;
private connectWireGuard;
private executeWireGuardCommand;
private connectWireGuardWindows;
/**
* Stop WireGuard tunnel on Windows
*/
private stopWireGuardWindows;
private connectWireGuardUnix;
private validateApiKey;
private testSshConnectivity;
private createSshTunnel;
private testTunnelConnectivity;
private getConfigFromEnvironment;
/**
* Try to retrieve credentials from keyring
*/
private getConfigFromKeyring;
/**
* Store credentials in keyring after successful validation
*/
private storeConfigInKeyring;
private promptForCredentials;
/**
* Main interactive setup flow
*/
runSetup(forceInteractive?: boolean): Promise<SetupResult>;
/**
* Check if setup is complete by verifying stored credentials
*/
static checkSetupComplete(): Promise<boolean>;
}
//# sourceMappingURL=interactiveSetup.d.ts.map