Skip to content
docsv0.2.0

RateLimiterInterface

Interface for rate limiters.

RateLimiterInterface::consume()

abstract public function consume(string $key, int $cost = 1, int $windowSeconds = 60, int $maxTokens = 100): Milpa\ToolRuntime\RateLimiting\RateLimitResult

Attempt to consume tokens from the rate limit bucket.

Parameters

Parameters of consume()
NameTypeDescription
$keystringUnique key for rate limiting (e.g., "mcp:user123:tool_name")
$costintNumber of tokens to consume (default: 1)
$windowSecondsintTime window in seconds (default: 60)
$maxTokensintMaximum tokens allowed in window (default: 100)

RateLimiterInterface::getUsage()

abstract public function getUsage(string $key): int

Get current usage for a key without consuming.

Parameters

Parameters of getUsage()
NameTypeDescription
$keystring

RateLimiterInterface::reset()

abstract public function reset(string $key): void

Reset rate limit for a key.

Parameters

Parameters of reset()
NameTypeDescription
$keystring