Skip to main content
Glama
grovesjosephn

Pokemon MCP Server

rate-limiter.ts1.14 kB
export interface RateLimiterStats { requestCount: number; averageInterval: number; } export class RateLimiter { private lastRequestTime = 0; private requestCount = 0; private readonly minInterval: number; private readonly maxRequestsPerMinute: number; constructor(requestsPerMinute = 100) { this.maxRequestsPerMinute = requestsPerMinute; this.minInterval = 60000 / requestsPerMinute; // ms between requests } async waitForSlot(): Promise<void> { const now = Date.now(); const timeSinceLastRequest = now - this.lastRequestTime; if (timeSinceLastRequest < this.minInterval) { const waitTime = this.minInterval - timeSinceLastRequest; await new Promise((resolve) => setTimeout(resolve, waitTime)); } this.lastRequestTime = Date.now(); this.requestCount++; } getStats(): RateLimiterStats { return { requestCount: this.requestCount, averageInterval: this.requestCount > 1 ? (Date.now() - this.lastRequestTime) / this.requestCount : 0, }; } reset(): void { this.lastRequestTime = 0; this.requestCount = 0; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/grovesjosephn/pokemcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server