/** * Custom MCP Registry Client * Connects to our custom registry at api.mcps.portel.dev */ export interface CustomRegistryMCP { id: string; name: string; displayName: string; description: string; version: string; author: { name: string; }; repository: { url: string; source: string; }; homepage?: string; keywords: string[]; license: string; installCommand: string; runtimeHint: string; transport: { type: string; }; createdAt: string; updatedAt: string; verified: boolean; stats: { downloads: number; stars: number; upvotes: number; downvotes: number; views: number; score: number; }; _meta?: any; } export interface CustomRegistrySearchOptions { /** Search query */ q?: string; /** Sort by: downloads, stars, name, recent */ sort?: 'downloads' | 'stars' | 'name' | 'recent'; /** Category filter */ category?: string; /** Only verified MCPs */ verified?: boolean; /** Maximum results */ limit?: number; } export interface CustomRegistryStats { totalMCPs: number; totalVotes: number; totalUsers: number; totalTags: number; verifiedMCPs: number; totalDownloads: number; } export declare class CustomRegistryClient { private baseURL; private cache; private readonly CACHE_TTL; /** * Search for MCPs in the custom registry */ search(options?: CustomRegistrySearchOptions): Promise; /** * Get trending MCPs */ getTrending(limit?: number): Promise; /** * Get specific MCP by ID */ getMCP(id: string): Promise; /** * Get registry statistics */ getStats(): Promise; /** * Vote on an MCP */ vote(id: string, vote: 'up' | 'down'): Promise; /** * Search and format for user selection */ searchForSelection(query: string, limit?: number): Promise>; private getFromCache; private setCache; clearCache(): void; } //# sourceMappingURL=custom-registry-client.d.ts.map