set_course_completion_criteria
Set a course's completion criteria: a criterion given replaces that kind's settings, one in remove goes, one not given stays; overall says whether all criteria or any one complete the course. Activities need completion tracking, roles the right to mark completion (get_course_completion_criteria's...
This record as markdown: /tools/falkenslab-moodle-mcp/set-course-completion-criteria.md
What set_course_completion_criteria does on Moodle
AI agents use set_course_completion_criteria to create or update resources in Moodle, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Moodle environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
date | string | — | Complete on this day |
self | boolean | — | |
grade | number | — | In the course total's points |
roles | object | — | |
remove | array | — | Criteria to take away |
unlock | boolean | — | Unlock locked criteria first, deleting everyone's course completion data |
courses | object | — | |
overall | string | — | |
courseId | integer | Yes | |
activities | object | — | |
unenrolment | boolean | — | |
enrolmentDays | integer | — | 1 to 30, 40 to 180 by tens, or 365 |
Parameters from the server's own tool schema.
Why set_course_completion_criteria is rated Medium
An AI agent can call set_course_completion_criteria faster than any human can review: one bad instruction and it creates or modifies resources in Moodle by the hundred, each call as confident as the last.
Risk signalsHigh parameter count (18 properties) · Bulk/mass operation — affects multiple targets
Attacks that exploit this kind of access
The rule that runs set_course_completion_criteria safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Moodle, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For set_course_completion_criteria, this is the rule to start with:
set_course_completion_criteria stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Moodle, apply this rule, and every set_course_completion_criteria call is checked against it from then on.
Questions about set_course_completion_criteria
Set a course's completion criteria: a criterion given replaces that kind's settings, one in remove goes, one not given stays; overall says whether all criteria or any one complete the course. Activities need completion tracking, roles the right to mark completion (get_course_completion_criteria's offered lists both). Once someone has met a criterion Moodle locks them: unlock deletes every participant's course completion data first (not their activity completion). Returns the criteria. Confirm with the person first, and twice with unlock. It is categorised as a Write tool in the Moodle MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
set_course_completion_criteria accepts 12 parameters: date, self, grade, roles, remove, unlock, courses, overall, courseId, activities, unenrolment, enrolmentDays. Required: courseId. The full parameter table on this page comes from the server's own tool schema.
Register the Moodle MCP server in PolicyLayer and add a rule for set_course_completion_criteria: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Moodle. Nothing to install.
set_course_completion_criteria is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the set_course_completion_criteria rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for set_course_completion_criteria. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
set_course_completion_criteria is provided by the Moodle MCP server (@falkenslab/moodle-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Moodle, and thousands of servers like it.
This server
Across the catalogue