npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@falkenslab/moodle-mcp

v0.7.0

Published

MCP server for AI agents to work in Moodle as you, through your own browser session: domain tools, students as aliases, limits only you can loosen

Downloads

1,117

Readme

moodle-mcp

Let an AI agent work in your Moodle courses as you, with your own login. Your students stay anonymous to the AI, and you decide what it can do.

npm MCP server Node.js 20+ Moodle 4.5 and 5.x License: MIT

📖 Documentation · 📖 Documentación en español

moodle-mcp is an MCP server that gives an AI agent such as Claude or Codex about 230 tools for Moodle: grade with your rubrics, build a quiz from your questions, answer the forum, see what's due this week. It works through a real browser on your computer, logged in as you, on any Moodle 4.5 or 5.x site.

✨ Why moodle-mcp

  • 🔐 Your login, never your password. You log in yourself, in a browser window it opens, with single sign-on and two-factor if your site uses them.
  • 🧩 Nothing to install in Moodle. No web service tokens, no administrator, no plugin: if you can log in, it works.
  • 🕶️ Students stay anonymous to the AI. The agent sees other people as aliases such as A-7KQ2XM; only you can turn one back into a name, on your computer.
  • 🎚️ You set the limits. Only a teacher's or a student's tools, read-only access, only course content, only the courses you give it: the agent can narrow them, never widen them.
  • ✋ It asks before changing things. Every tool that changes Moodle says so, and the agent is told to confirm with you first; for what can't be undone, moodle-mcp asks you itself, in your app.
  • 🌐 Several Moodle sites at once. Your school's and your university's, one active at a time, and course content copied between them.
  • 🤖 Any MCP app. Claude Code, Claude Desktop, Codex, agents built on agent-kit and others, on Windows, macOS and Linux.

🚀 Quick start

You need Node.js 20 or later. Add moodle-mcp to your AI app:

# Claude Code
claude mcp add moodle -- npx -y @falkenslab/moodle-mcp

# Codex
codex mcp add moodle -- npx -y @falkenslab/moodle-mcp

Then ask "List my Moodle courses": the first time, the agent asks for your Moodle's address and a browser window opens for you to log in. To make it yours (your role, your courses, your students' names), see the setup guides.

In Settings → Developer → Edit Config, add it to claude_desktop_config.json and restart Claude Desktop:

{
  "mcpServers": {
    "moodle": {
      "command": "npx",
      "args": ["-y", "@falkenslab/moodle-mcp"]
    }
  }
}

💬 What you can ask

👩‍🏫 As a teacher

  • "Which submissions to Task 3 still need grading? Propose a grade with the rubric, don't save anything yet."
  • "Create a hidden quiz in section 2 with these GIFT questions, one per page."
  • "Are there questions in the forum nobody has answered? Draft a short answer for each."
  • "Who hasn't completed the unit 4 notes? Send them a friendly reminder."
  • "Turn the unit 1 notes into a lesson, a question per page; a wrong answer goes back."
  • "Which questions of the review quiz should I fix, judging by its statistics?"
  • "Copy the unit 2 quiz from my school's Moodle to my university's."

🧑‍🎓 As a student

  • "What do I have due in the next two weeks, across my courses?"
  • "Make me a one-page study sheet from the unit 3 pages."
  • "What did I get wrong in my last quiz? Explain the right answers."

📸 See it at work

A real session: Claude Code finds the submission to grade, reads it, proposes a grade with the assignment's rubric and saves it once you agree. The student is A-8FT4A1 to the AI, never a name.

More sessions with Claude Code and Codex, and what they changed in Moodle, are in the use cases.

🧰 What's inside

| Area | For example | | --- | --- | | 📚 Courses and content | Pages, files, folders, labels and links with your images; books, lessons, wikis, glossaries and databases with their entries, feedback questions; sections; restrictions and completion | | 📝 Assignments and grading | Submissions, rubrics and marking guides (read and defined), extensions, the marking workflow | | ❓ Quizzes and questions | Question banks and their categories, every question type, GIFT and Moodle XML import (GIFT checked first) and export, quiz statistics, quiz layout, results, manual grading | | 📊 Gradebook and reports | The grader report, grade items and categories, CSV import, scales and letters, course and activity completion, choice and survey results, activity and participation reports, logs | | 👥 Participants and groups | Enrolments, roles, groups and groupings, made automatically or from CSV | | 💬 Forums and messages | Discussions, replies, ratings, workshops from submission to grades, notifications and private messages | | 🏅 Badges | Create them, set what earns them, award them by hand | | 📅 Calendar and to-dos | Events, deadlines, what's pending and what changed | | 🧑‍🎓 As a student | Quizzes, assignments, lessons, surveys, choices, H5P and SCORM | | 🧩 Advanced, on request | Course blocks, the content bank, BigBlueButton, competencies, notes about participants and external tools, with MOODLE_MCP_ADVANCED=true | | 🔄 Course life cycle | Copies, backups and restores, whole or in part, backups read and anonymized, and imports, within a site or between sites |

Every tool, with what it takes and what it gives, is in the tools reference.

📚 Documentation

🛠️ Developing

See Developing moodle-mcp for building, tests in Docker and the Moodle sandbox, and .minispec/ for the design decisions.

Made with 💖 by Falken's Lab Team