@rhofkens/mcp-quotes-server-claude-code
Version:
Model Context Protocol (MCP) server for managing and serving quotes
82 lines • 2.38 kB
TypeScript
/**
* 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