Rate limiting¶
| Setting | Requests per user per minute (local_mcp/ratelimit) |
| Default | 60 |
| Disable | Set it to 0 |
| Maximum value applied | 10000 |
| Applies to | Each Moodle user (not each client) |
| Window | Fixed one-minute windows, aligned to the clock minute |
Over the limit, the response is HTTP 429 with JSON-RPC error -32005 and a Retry-After header
with the seconds left in the current minute.
Counters live in the local_mcp_ratelimit table. The daily cleanup task deletes rows older than one day.
Dynamic client registration and client-metadata fetches have their own separate rate limit.