Skip to main content
Glama

Agent Construct

by batteryshark
rate_limiter.py1.35 kB
""" Rate limiting utility for MCP tools """ from datetime import datetime import threading from collections import deque import time class RateLimiter: def __init__(self, max_requests: int, time_window_seconds: int): """ Initialize a rate limiter. Args: max_requests: Maximum number of requests allowed in the time window time_window_seconds: Time window in seconds """ self.max_requests = max_requests self.time_window_seconds = time_window_seconds self.requests = deque() self.lock = threading.Lock() def can_make_request(self) -> bool: """Check if a request can be made within the rate limit.""" now = datetime.now() with self.lock: # Remove old requests while self.requests and (now - self.requests[0]).total_seconds() > self.time_window_seconds: self.requests.popleft() # Check if we can make a new request if len(self.requests) < self.max_requests: self.requests.append(now) return True return False def wait_for_slot(self): """Block until a request slot is available.""" while not self.can_make_request(): time.sleep(1) # Wait 1 second before checking again

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/batteryshark/agent_construct'

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