/** * Client Registry for Auto-Import * * Maps MCP clients to their configuration locations and import strategies. * Supports expansion to multiple clients (Claude Desktop, Cursor, Cline, Enconvo, etc.) */ export type ConfigFormat = 'json' | 'toml'; export interface ClientPaths { darwin?: string; win32?: string; linux?: string; } export interface ClientDefinition { /** Human-readable client name */ displayName: string; /** Config file paths for different platforms */ configPaths: ClientPaths; /** Configuration file format */ configFormat: ConfigFormat; /** Optional: Extensions/plugins directory (for .dxt-like bundles) */ extensionsDir?: ClientPaths; /** Optional: Path to MCP servers config within main config file */ mcpServersPath?: string; /** Optional: Bundled runtime paths (Node.js, Python) */ bundledRuntimes?: { node?: ClientPaths; python?: ClientPaths; }; /** Optional: Settings path in config for runtime preferences */ runtimeSettingsPath?: string; } /** * Registry of known MCP clients * * Client IDs should match the `clientInfo.name` from MCP initialize request. * The getClientDefinition() function handles normalization (lowercase, no spaces/dashes). * * Adding a new client: * 1. Add entry to this registry with config paths and format * 2. If client uses custom format, add parser in client-importer.ts * 3. Auto-import will work automatically via tryAutoImportFromClient() * * Expected clientInfo.name values: * - Claude Desktop sends: "claude-desktop" or "Claude Desktop" * - Perplexity sends: "perplexity" or "Perplexity" * - Cursor sends: "cursor" or "Cursor" * - etc. */ export declare const CLIENT_REGISTRY: Record; /** * Get client definition by client name (from clientInfo.name) */ export declare function getClientDefinition(clientName: string): ClientDefinition | null; /** * Resolve platform-specific path */ export declare function resolvePlatformPath(paths: ClientPaths): string | null; /** * Get config path for client on current platform */ export declare function getClientConfigPath(clientName: string): string | null; /** * Get extensions directory for client on current platform */ export declare function getClientExtensionsDir(clientName: string): string | null; /** * Check if client supports extensions (.dxt bundles) */ export declare function clientSupportsExtensions(clientName: string): boolean; /** * List all registered client names */ export declare function listRegisteredClients(): string[]; /** * Get bundled runtime path for a client */ export declare function getBundledRuntimePath(clientName: string, runtime: 'node' | 'python'): string | null; /** * Check if client has "use built-in runtime" setting enabled * Returns null if setting not found, true/false if found */ export declare function shouldUseBuiltInRuntime(clientName: string, clientConfig: any): boolean | null; //# sourceMappingURL=client-registry.d.ts.map