# reset_course

Reset a course as Moodle's reset form does: delete only what's named in delete (submissions, attempts, posts, grades… in every activity that has them), unenrol the people with unenrolRoles, move the start date (and the activities' dates with it), and set any other field of the form by name. Nothing is deleted unless named. Can't be undone: confirm every item with the person first. Returns Moodle's report.

Agent View of the PolicyLayer registry record for `reset_course`. HTML page: https://policylayer.com/tools/falkenslab-moodle-mcp/reset-course

## Facts

- Tool: `reset_course`
- Server: Moodle (`@falkenslab/moodle-mcp`) — https://policylayer.com/tools/falkenslab-moodle-mcp.md
- Install: `npx -y @falkenslab/moodle-mcp`
- Homepage: https://www.npmjs.com/package/@falkenslab/moodle-mcp
- Risk category: Destructive (Critical risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 5 (1 required)
- Recommended policy verdict: Hidden

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `start` | string | no | The new start date, ISO 8601 |
| `delete` | object | no |  |
| `fields` | object | no | Any other field of the reset form, by name |
| `courseId` | integer | yes |  |
| `unenrolRoles` | array | no | Role ids whose people are unenrolled |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "reset_course",
    "arguments": {
      "courseId": 0
    }
  }
}
```

## Why reset_course is rated Critical

An AI agent that decides to call reset_course doesn't hesitate, doesn't double-check, and doesn't stop at one. Whatever it removes from Moodle is gone. There is no undo for destructive operations.

Risk signals: High parameter count (16 properties)

## Use case

AI agents call reset_course to permanently remove resources in Moodle, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.

## Recommended policy (PolicyLayer)

Verdict: **Hidden**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Moodle:

```json
{
  "version": "1",
  "default": "deny",
  "hide": [
    "reset_course"
  ]
}
```

## Other tools on Moodle (232)

- `delete_activity` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-activity.md
- `delete_book_chapter` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-book-chapter.md
- `delete_database_entry` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-database-entry.md
- `delete_database_field` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-database-field.md
- `delete_event` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-event.md
- `delete_feedback_item` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-feedback-item.md
- `delete_feedback_template` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-feedback-template.md
- `delete_glossary_entry` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-glossary-entry.md
- `delete_grade_category` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-grade-category.md
- `delete_grade_item` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-grade-item.md
- `delete_group` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-group.md
- `delete_grouping` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-grouping.md
- `delete_lesson_page` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-lesson-page.md
- `delete_post` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-post.md
- `delete_question_category` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-question-category.md
- `delete_questions` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-questions.md
- `delete_section` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-section.md
- `delete_workshop_example` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/delete-workshop-example.md
- `override_workshop_grade` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/override-workshop-grade.md
- `remove_quiz_slot` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/remove-quiz-slot.md
- `remove_site` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/remove-site.md
- `remove_workshop_reviewer` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/remove-workshop-reviewer.md
- `unenrol_user` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/unenrol-user.md
- `browser_navigate` — Execute — https://policylayer.com/tools/falkenslab-moodle-mcp/browser-navigate.md
- `browser_wait` — Execute — https://policylayer.com/tools/falkenslab-moodle-mcp/browser-wait.md
- `enrol_users` — Execute — https://policylayer.com/tools/falkenslab-moodle-mcp/enrol-users.md
- `grade_forum_user` — Execute — https://policylayer.com/tools/falkenslab-moodle-mcp/grade-forum-user.md
- `rate` — Execute — https://policylayer.com/tools/falkenslab-moodle-mcp/rate.md
- `start_quiz_attempt` — Execute — https://policylayer.com/tools/falkenslab-moodle-mcp/start-quiz-attempt.md
- `answer_lesson_page` — Read — https://policylayer.com/tools/falkenslab-moodle-mcp/answer-lesson-page.md
- …and 202 more: https://policylayer.com/tools/falkenslab-moodle-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=falkenslab-moodle-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/falkenslab-moodle-mcp
