Nitro for Moodle admins

Nitro is one Moodle plugin, local_nitro. It turns Moodle itself into the MCP server that a teacher’s AI assistant connects to, with Moodle’s own login and no service in between.

Install

  1. Copy the plugin to local/nitro (on Moodle 5.1 and later, public/local/nitro) and run the Moodle upgrade.
  2. Add the web server rule for the root OAuth discovery URLs and make sure the Authorization header reaches PHP. The settings page has a Discovery check that shows what is missing.
  3. Switch on Enable nitro. The plugin is installed switched off.
  4. Grant local/nitro:use to the teachers who should have it.
  5. The teacher adds https://<your-moodle>/local/nitro/mcp.php as a custom connector in Claude and logs in with their Moodle account.

The installation guide has the Apache and nginx rules, every setting and a troubleshooting table. It takes about 30 minutes, most of it on the web server rule.

local_nitrosandbox, in the same repository, only builds the courses of our trial Moodle. Do not install it on an institutional Moodle.

Who may use it

Nitro adds one capability, local/nitro:use. It is an entry gate, and no role has it by default. You grant it at site, category or course level, for example to a “Nitro user” role for a few pilot teachers, or to the Teacher role in one faculty’s category.

Every tool also checks the capability the same action needs in the Moodle web interface. A teacher can do through Claude exactly what they can do in the browser, and no more.

Requirements

  • Moodle 5.0 or later.
  • HTTPS. AI clients refuse plain HTTP.
  • Access to the web server configuration, for the discovery rule.
  • Cron running every few minutes.
  • Outgoing mail, if you keep the feedback tool on.

Where the data goes

  • Data travels directly between your Moodle and the AI client the teacher uses. It does not pass through GoSchool.
  • Whatever Moodle returns to Claude, Anthropic processes, as with anything else the teacher shares with Claude.
  • The one exception is the feedback tool. It mails the teacher’s own text, the site name and URL and the version numbers to the feedback address (by default the Nitro team at GoSchool), and only after the teacher approves the exact text. You can change the address or switch the tool off.
  • Messages, announcements and grades first return a preview. The server runs them only when the call is repeated with a confirmation token.
  • Every tool call is logged as the Moodle event AI tool called, with user, course and tool, without the content.
  • Teachers see and revoke their connections on their profile. Enable nitro is the kill switch: when it is off, every request is refused and existing tokens stop working.

On our trial Moodle, GoSchool runs the Moodle, which is why it only holds fictitious students.

Compared with Moodle’s built-in AI

Moodle’s AI generates and summarises text and images inside the editor, with the provider you pick. Nitro works across a course from a conversation: it reads submissions and last logins, writes pages, assignments and quizzes, and sends messages and grades after the teacher approves them. The two work side by side.

Moodle’s core web services can read a course but cannot create a page, an assignment, a question or a quiz. Nitro adds those as its own functions.

Status

Version 0.1.0, alpha. The trial Moodle at moodle.goschool.ai is open to teachers. The source code, the specifications and the decisions behind them are public.

Planning a pilot at your institution? Talk to us.