UNPKG

rapidapi-mcp-server

Version:

MCP server for discovering and assessing APIs from RapidAPI marketplace

38 lines (37 loc) 1.62 kB
// Rate Limiting Configuration for Ethical Usage // This module defines human-like timing patterns for respectful API interactions // Human-like interaction timing patterns export const ETHICAL_RATE_LIMITS = { // 3-8 second delays between requests (human reading/decision time) requestDelayMin: 3000, requestDelayMax: 8000, // Page interaction timing pageLoadWait: 2000, // Wait for page to fully load antiDetectionDelay: 2000, // Base delay + random 0-3s for anti-detection // Error handling with exponential backoff retryBaseDelay: 5000, // Start with 5 second delay retryMaxAttempts: 3, // Maximum retry attempts // Usage limits for respectful behavior maxDailyRequests: 100, // Reasonable limit for API discovery maxConcurrentRequests: 1 // Always sequential, never concurrent }; // Generate human-like random delay export function getRandomDelay(min, max) { return min + Math.random() * (max - min); } // Calculate exponential backoff delay export function getRetryDelay(attempt, baseDelay) { return baseDelay * Math.pow(2, attempt - 1); } // Log request timing for audit purposes export function logRequestTiming(action, url, delay) { const timestamp = new Date().toISOString(); console.error(`[${timestamp}] ${action}: ${url}${delay ? ` (delayed ${Math.round(delay / 1000)}s)` : ''}`); } // Validate request against rate limits export function validateRequestRate(requestCount, config) { if (requestCount >= config.maxDailyRequests) { throw new Error(`Daily request limit of ${config.maxDailyRequests} exceeded`); } return true; }