Skip to main content
Documentation

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;
  • sourcemcp for an external assistant, chat for 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

WhereLimit
Panel AI chat10 messages per minute, per user
Tool round-trips8 per chat message
Plugin ↔ panel endpointsRate-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.