@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
225 lines • 4.91 kB
TypeScript
/**
* Core types for the unified configuration management system
*/
/**
* Platform-specific application configuration
*/
export interface PlatformConfig {
configPath: string;
format: "standard" | "custom";
transformer?: string;
}
/**
* Application detection configuration
*/
export interface DetectionConfig {
type: "file" | "directory" | "project-local" | "command";
path?: string;
indicator?: string;
command?: string;
}
/**
* Application definition in the registry
*/
export interface ApplicationDefinition {
name: string;
enabled: boolean;
platforms: {
darwin?: PlatformConfig;
linux?: PlatformConfig;
win32?: PlatformConfig;
all?: PlatformConfig;
};
detection: DetectionConfig;
defaultToolset?: string[];
}
/**
* Application registry structure
*/
export interface ApplicationRegistry {
version: string;
applications: Record<string, ApplicationDefinition>;
}
/**
* Backup metadata structure
*/
export interface BackupMetadata {
version: string;
timestamp: string;
hypertool_version: string;
applications: Record<string, {
source_path: string;
format: string;
servers_count: number;
}>;
total_servers: number;
system_info: {
platform: NodeJS.Platform;
arch: string;
node_version: string;
};
database?: {
servers_count: number;
groups_count: number;
sources_count: number;
export_files: string[];
};
}
/**
* Result type for backup operations
*/
export interface BackupResult {
success: boolean;
backupId?: string;
backupPath?: string;
metadata?: BackupMetadata;
error?: string;
}
/**
* Result type for restore operations
*/
export interface RestoreResult {
success: boolean;
restored: string[];
failed: string[];
error?: string;
}
/**
* Result type for delete operations
*/
export interface DeleteResult {
success: boolean;
error?: string;
}
/**
* Backup list item
*/
export interface BackupListItem {
id: string;
timestamp: string;
metadata: BackupMetadata;
path?: string;
}
/**
* Configuration transformer interface
*/
export interface ConfigTransformer {
/**
* Convert from app-specific format to standard MCP format
*/
toStandard(appConfig: any): MCPConfig;
/**
* Convert from standard MCP format to app-specific format
*/
fromStandard(standardConfig: MCPConfig, existingConfig?: any): any;
/**
* Validate app-specific configuration format
*/
validate(config: any): ValidationResult;
}
/**
* Standard MCP configuration format
*/
export interface MCPConfig {
mcpServers: Record<string, MCPServerConfig>;
_metadata?: {
sources?: Record<string, {
app: string;
importedAt: string;
}>;
};
}
/**
* Individual MCP server configuration
*/
export interface MCPServerConfig {
type: "stdio" | "http" | "websocket" | "sse";
command?: string;
url?: string;
args?: string[];
env?: Record<string, string>;
[key: string]: any;
}
/**
* Validation result for configuration transformers
*/
export interface ValidationResult {
valid: boolean;
errors?: string[];
warnings?: string[];
}
/**
* Application configuration in config.json
*/
export interface ApplicationConfig {
configPath: string;
lastSync: string;
format: string;
mcpConfig?: string;
linkedProfiles?: string[];
}
/**
* Main configuration file structure
*/
export interface MainConfig {
version: string;
lastBackup?: string;
applications: Record<string, ApplicationConfig>;
preferences?: {
defaultApp?: string;
defaultProfile?: string;
};
}
/**
* Toolset definition
*/
export interface Toolset {
name: string;
description: string;
tools: Array<{
namespacedName: string;
refId: string;
}>;
metadata?: {
autoGenerated?: boolean;
sourceApp?: string;
createdAt?: string;
};
}
/**
* Preferences configuration
*/
export interface PreferencesConfig {
toolsets: Record<string, Toolset>;
appDefaults?: Record<string, string>;
version?: string;
}
/**
* Profile configuration for workspace/project support
*/
export interface ProfileConfig {
id: string;
appId: string;
name: string;
description?: string;
mcpConfig: string;
toolsets?: string[];
createdAt: string;
lastModified: string;
}
/**
* Per-application MCP configuration
*/
export interface AppMCPConfig extends MCPConfig {
_metadata?: {
app: string;
profile?: string;
importedAt: string;
lastModified: string;
sources?: Record<string, {
app: string;
importedAt: string;
}>;
};
}
//# sourceMappingURL=index.d.ts.map