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."""
import structlog
from slowapi import Limiter
from slowapi.errors import RateLimitExceeded
from slowapi.util import get_remote_address
from starlette.requests import Request
from starlette.responses import JSONResponse
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)},
)