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\RateLimitResultAttempt to consume tokens from the rate limit bucket.
Parameters
| Name | Type | Description |
|---|---|---|
| $key | string | Unique key for rate limiting (e.g., "mcp:user123:tool_name") |
| $cost | int | Number of tokens to consume (default: 1) |
| $windowSeconds | int | Time window in seconds (default: 60) |
| $maxTokens | int | Maximum tokens allowed in window (default: 100) |
RateLimiterInterface::getUsage()
abstract public function getUsage(string $key): intGet current usage for a key without consuming.
Parameters
| Name | Type | Description |
|---|---|---|
| $key | string |
RateLimiterInterface::reset()
abstract public function reset(string $key): voidReset rate limit for a key.
Parameters
| Name | Type | Description |
|---|---|---|
| $key | string |