# import_groups

Create groups from a local CSV file, as Moodle's "Import groups" does: a groupname column, and optionally description, enrolmentkey, groupidnumber, groupingname (made when missing) and enablemessaging. Moodle creates the groups without members. Returns the new groups and Moodle's messages for the rows it skipped. Changes the course: confirm with the person first.

Agent View of the PolicyLayer registry record for `import_groups`. HTML page: https://policylayer.com/tools/falkenslab-moodle-mcp/import-groups

## Facts

- Tool: `import_groups`
- 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: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 3 (2 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `file` | string | yes | An absolute local path to the CSV |
| `courseId` | integer | yes |  |
| `delimiter` | string | no |  |

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": "import_groups",
    "arguments": {
      "file": "<file>",
      "courseId": 0
    }
  }
}
```

## Why import_groups is rated Medium

An AI agent can call import_groups 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 signals: Accepts file system path (file)

## Use case

AI agents use import_groups 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.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "import_groups": {
      "limits": [
        {
          "counter": "import_groups_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## 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
- `reset_course` — Destructive — https://policylayer.com/tools/falkenslab-moodle-mcp/reset-course.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
- …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
