@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
143 lines • 4.41 kB
TypeScript
/**
* Unified Configuration Manager for HyperTool MCP
*
* This module provides centralized configuration management for integrating
* HyperTool with multiple MCP client applications.
*
* TODO: Full Profile Management System
* - Implement profile creation, switching, and deletion
* - Add profile-specific configuration storage
* - Support workspace/project-specific profiles
* - Add profile inheritance and merging
* - Implement profile templates and presets
*/
import { EnvironmentConfig } from "../config/environment.js";
export declare class ConfigurationManager {
private basePath;
private registry;
private backupManager;
private fs;
/**
* Get current working directory (for testing support)
*/
private getCurrentWorkingDirectory;
constructor(basePath?: string);
/**
* Create a ConfigurationManager from environment config
*/
static fromEnvironment(envConfig?: EnvironmentConfig): ConfigurationManager;
/**
* Initialize the configuration manager and directory structure
*/
initialize(): Promise<void>;
/**
* Discover and import configurations from all enabled applications
*/
discoverAndImport(): Promise<{
imported: string[];
importedDetails: Array<{
appId: string;
configPath: string;
}>;
failed: string[];
backup: string;
}>;
/**
* Import configuration from a specific application
*/
private importFromApplication;
/**
* Import configuration from a specific application with path information
*/
private importFromApplicationWithPath;
/**
* Save the merged MCP configuration to database or file based on feature flag
*/
private saveMergedConfig;
/**
* Calculate checksum for a server configuration
*/
private calculateChecksum;
/**
* Save app-specific MCP configuration to database or file based on feature flag
*/
private saveAppConfig;
/**
* Update the main configuration in database
*/
private updateMainConfig;
/**
* Generate default toolsets for each application
*/
private generateDefaultToolsets;
/**
* Link HyperTool configuration to specified applications
*/
linkApplications(appConfigs: Array<{
appId: string;
appName?: string;
configType: "global" | "per-app";
perAppInit?: "empty" | "copy" | "import";
}> | string[]): Promise<{
linked: string[];
failed: string[];
}>;
/**
* Initialize per-app configuration
*/
private initializePerAppConfig;
/**
* Link HyperTool configuration to a specific application
*/
private linkApplication;
/**
* Create a backup of all current configurations
*/
createBackup(): Promise<import("./types/index.js").BackupResult>;
/**
* List available backups
*/
listBackups(): Promise<import("./types/index.js").BackupListItem[]>;
/**
* Get a specific backup by ID
*/
getBackup(backupId: string): Promise<import("./types/index.js").BackupListItem | null>;
/**
* Restore from a specific backup
*/
restoreBackup(backupId: string, options?: {
applications?: string[];
}): Promise<import("./types/index.js").RestoreResult>;
/**
* Delete a backup by ID
*/
deleteBackup(backupId: string): Promise<import("./types/index.js").DeleteResult>;
/**
* Unlink HyperTool from specified applications
*/
unlinkApplications(appIds: string[], options?: {
restore?: boolean;
backupId?: string;
}): Promise<{
unlinked: string[];
failed: string[];
restoredWithHypertool?: string[];
}>;
/**
* Check if app config has hypertool and remove it while preserving other servers
*/
private checkAndRemoveHypertoolFromApp;
/**
* Remove HyperTool from a specific application without restoration
*/
private removeHypertoolFromApp;
/**
* Check if we're running in development mode
*/
private isInDevelopmentMode;
}
export * from "./types/index.js";
export { AppRegistry } from "./apps/registry.js";
export { BackupManager } from "./backup/manager.js";
export { TransformerRegistry, StandardTransformer, } from "./transformers/base.js";
//# sourceMappingURL=index.d.ts.map