Skip to main content
Glama

Bucket Feature Flags MCP Server

Official
by reflagcom
rateLimiter.ts763 B
import { Logger } from "./logger"; const oneMinute = 60 * 1000; export default class RateLimiter { private eventsByKey: Record<string, number[]> = {}; constructor( private eventsPerMinute: number, private logger: Logger, ) {} public rateLimited<R>(key: string, func: () => R): R | undefined { const now = Date.now(); if (!this.eventsByKey[key]) { this.eventsByKey[key] = []; } const events = this.eventsByKey[key]; while (events.length && now - events[0] > oneMinute) { events.shift(); } const limitExceeded = events.length >= this.eventsPerMinute; if (limitExceeded) { this.logger.debug("Rate limit exceeded", { key }); return; } events.push(now); return func(); } }

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/reflagcom/bucket-javascript-sdk'

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