Usage & limits
The usage view
Organization → Moodle → Usage shows what has actually been called, aggregated per day by:
- key — which credential made the calls;
- tool — which Moodle function or plugin action ran;
- source —
mcpfor an external assistant,chatfor the panel's chat; - calls and errors — volume and how much of it failed.
It's the fastest way to answer "is anything using this key?" before revoking it, and to spot an assistant looping on a call that keeps failing.
Each key also carries a last used timestamp in the keys list.
Rate limits
| Where | Limit |
|---|---|
| Panel AI chat | 10 messages per minute, per user |
| Tool round-trips | 8 per chat message |
| Plugin ↔ panel endpoints | Rate-limited per license |
Your Moodle's own limits still apply on top: web-service throttling, PHP execution time and memory are your server's, not ours.
Call limits
Every Moodle call goes through a hardened client with a request timeout and a streaming response-size cap, so a single call can neither hang the assistant nor pull an unbounded response. A request that trips those limits comes back as an error the assistant can retry more narrowly — usually by asking for one course instead of all of them.
File downloads into Moodle are capped at 512 MiB, and transfer URLs expire after 30 minutes. See Uploading files.
What is and isn't recorded
Recorded: which tool ran, under which key, from which source, on which day, and whether it errored. That's what the aggregates are built from.
Not recorded in the usage view: the contents of your courses, your students' data, or the arguments of each call. The panel is a broker — your Moodle stays the system of record.
Credits
Chat consumption is metered separately in credits. MCP calls from external assistants don't consume credits: the assistant's own provider bills you for the model, and MoodleMCP only brokers the tool calls.