fastmcp.server.middleware.rate_limiting

Rate limiting middleware for protecting FastMCP servers from abuse.

Classes

RateLimitError

Error raised when rate limit is exceeded.

TokenBucketRateLimiter

Token bucket implementation for rate limiting. Methods:

consume

consume(self, tokens: int = 1) -> bool
Try to consume tokens from the bucket. Args:
  • tokens: Number of tokens to consume
Returns:
  • True if tokens were available and consumed, False otherwise

SlidingWindowRateLimiter

Sliding window rate limiter implementation. Methods:

is_allowed

is_allowed(self) -> bool
Check if a request is allowed.

RateLimitingMiddleware

Middleware that implements rate limiting to prevent server abuse. Uses a token bucket algorithm by default, allowing for burst traffic while maintaining a sustainable long-term rate. Methods:

on_request

on_request(self, context: MiddlewareContext, call_next: CallNext) -> Any
Apply rate limiting to requests.

SlidingWindowRateLimitingMiddleware

Middleware that implements sliding window rate limiting. Uses a sliding window approach which provides more precise rate limiting but uses more memory to track individual request timestamps. Methods:

on_request

on_request(self, context: MiddlewareContext, call_next: CallNext) -> Any
Apply sliding window rate limiting to requests.