UNPKG

@rhofkens/mcp-quotes-server-claude-code

Version:

Model Context Protocol (MCP) server for managing and serving quotes

82 lines 2.38 kB
/** * Resilient Serper API Client * * Enhanced version of SerperClient with resilience patterns: * - Circuit breaker for fault tolerance * - Retry logic with exponential backoff * - Response caching with fallback * - Health monitoring */ import type { ISerperSearchResult } from '../types/quotes.js'; import { SerperClient } from './serperClient.js'; import type { ISerperConfig, ISerperSearchParams } from './serperClient.js'; /** * Resilient client configuration */ export interface ResilientSerperConfig extends ISerperConfig { enableCache?: boolean; enableCircuitBreaker?: boolean; enableRetry?: boolean; cacheTTL?: number; maxRetries?: number; } /** * Resilient Serper API Client */ export declare class ResilientSerperClient extends SerperClient { private apiCircuitBreaker; private cache; private retryWrapper; private resilientConfig; constructor(config?: ResilientSerperConfig); /** * Enhanced search with resilience patterns */ searchQuotes(params: ISerperSearchParams): Promise<ISerperSearchResult[]>; /** * Build enhanced quote search with caching awareness */ buildQuoteSearchQuery(person: string, topic?: string): string; /** * Get system health status */ getHealthStatus(): Promise<{ circuitBreaker: import("../utils/circuitBreaker.js").ICircuitBreakerStats; cache: Readonly<import("../utils/cache.js").ICacheStats>; config: { cacheEnabled: boolean | undefined; circuitBreakerEnabled: boolean | undefined; retryEnabled: boolean | undefined; }; }>; /** * Reset all resilience components */ reset(): void; /** * Generate cache key for search params */ private generateCacheKey; /** * Convert search results to quotes for caching */ private searchResultsToQuotes; /** * Convert cached quotes back to search results */ private quotesToSearchResults; /** * Get cached fallback data */ private getCachedFallback; /** * Pre-warm cache with related searches */ private prewarmCache; /** * Register health checks */ private registerHealthChecks; } export declare const resilientSerperClient: ResilientSerperClient; //# sourceMappingURL=resilientSerperClient.d.ts.map