We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/schlpbch/aareguru-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""Rate limiting configuration for HTTP endpoints."""
from slowapi import Limiter
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded
from starlette.requests import Request
from starlette.responses import JSONResponse
import structlog
logger = structlog.get_logger(__name__)
# Create rate limiter instance
limiter = Limiter(
key_func=get_remote_address,
default_limits=["100/minute", "1000/hour"],
storage_uri="memory://",
)
def rate_limit_exceeded_handler(request: Request, exc: RateLimitExceeded) -> JSONResponse:
"""Custom handler for rate limit exceeded errors."""
logger.warning(
"Rate limit exceeded",
remote_addr=get_remote_address(request),
path=request.url.path,
)
return JSONResponse(
status_code=429,
content={
"error": "Rate limit exceeded",
"message": "Too many requests. Please try again later.",
"retry_after": exc.detail,
},
headers={"Retry-After": str(exc.detail)},
)