Query Moodle LMS data through natural language. Attach your agent to your LMS data.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Moodle MCP Server Aql.
list_coursesFull course catalog with category drill-down
get_courseDetail view for any course
list_course_usersEnrolled users with roles and access data (now supports course name search with interactive selection)
list_assignmentsAll assignments with due dates
list_categoriesFull hierarchy with exact parent resolution
get_site_infoInstance overview β site name, version, course count
Ask your Moodle instance anything. Get structured answers in seconds.
moodle-mcp-server is an open-source MCP (Model Context Protocol) server that connects AI agents directly to Moodle's Web Services API. It is the Moodle connector behind CSMediaPro's broader Agentic Query Layer (AQL) work.
Instead of learning report builders, writing SQL, or exporting CSVs, you ask questions in plain English β the AI agent queries your LMS and returns structured data.
Project home: https://csmediapro.com/products/moodle-mcp-server
npm package: https://www.npmjs.com/package/moodle-mcp-server-aql
MCP Registry: io.github.csmediapro/moodle-mcp-server-aql
Most users launch the server through an MCP client such as Claude Desktop:
User field display settings are generated per Moodle instance and stored locally at
packages/server/data/user-field-schema.json. This file is intentionally ignored by git
because it can include site-specific custom profile fields.
After connecting to a Moodle site, run the refresh_user_field_schema tool once to
discover available standard and custom user fields. A minimal example shape is included
at packages/server/data/user-field-schema.example.json.
The user-directory plugin stores a normalized full-user cache with custom profile
fields flattened into top-level keys such as school. Once that cache exists,
list_users can filter cached users in memory, and summarize_user_directory_field
can return cached distinct values and counts. For example, "show unique schools" or
"show schools and number of users assigned to each one" summarizes the cached
school field without another Moodle fetch.
The core owns two different server identity fields:
server.id β stable machine identity, for example mcp_8f3k2q9xserver.name β human-facing display labelIf server.id is missing, the core generates one once and persists it to the resolved config file before startup continues.
Environment overrides:
MOODLE_MCP_CONFIG or MOODLE_MCP_SERVER_CONFIG β choose the config file pathSERVER_ID β explicit server.id overrideSERVER_NAME β explicit server.name overrideSERVER_VERSION β explicit server.version overrideIf server.id is missing and the resolved config path is not writable, startup fails deliberately.
The client will auto-detect your Moodle instance and present a chat interface where you can ask questions in plain English.
moodle-mcp-server needs an AI model to power the natural-language interface. You bring the model β the moodle-mcp-server core and reference client support any MCP-compatible provider.
Running a local model keeps all data on your own hardware β nothing leaves your network. Modern quantized models run well on consumer GPUs and even CPU-only setups.
Performance: A quantized 24B model on a single RTX 3090 delivers ~1.5-second responses after the first query β faster than most cloud APIs once the system is initialized.
Then point the reference client at http://localhost:11434 (Ollama's default).
Point the reference client at http://localhost:8080/v1.
| Model | Size | Best For | Hardware |
|---|---|---|---|
| Gemma 3 12B | ~7 GB VRAM | Fast tool calls, straightforward queries | Single consumer GPU |
| Qwen 3 14B | ~8.5 GB VRAM | Complex reasoning, multi-tool chains | Single consumer GPU |
| Devstral 24B Q4 | ~14.5 GB VRAM | Maximum capability, 60K context | RTX 3090 / 4090 |
Anthropic (Claude):
Select "Anthropic" in the reference client's provider dropdown. Claude Sonnet offers the most reliable tool-calling behavior.
OpenAI (GPT):
Select "OpenAI" in the provider dropdown. GPT-4o performs well on structured queries.
Ollama Cloud:
Uses the same API as local Ollama, hosted at https://ollama.com/v1. Good middle ground β faster than local cold starts, more private than big cloud providers.
Claude Desktop connects to the moodle-mcp-server core directly over stdio β no reference client needed.
Add to your Claude Desktop config (claude_desktop_config.json):
Restart Claude Desktop. The server's tools will appear in Claude's tool list β ask questions directly.
| Tool | Description |
|---|---|
list_courses | Full course catalog with category drill-down |
get_course | Detail view for any course |
list_course_users | Enrolled users with roles and access data (now supports course name search with interactive selection) |
list_assignments | All assignments with due dates |
list_categories | Full hierarchy with exact parent resolution |
get_site_info | Instance overview β site name, version, course count |
get_user | Detail view for a Moodle user |
list_user_courses | Courses for a specific user |
search_users | User search by standard Moodle identity fields |
search_courses_by_name | Search for courses by name with partial matching and interactive selection |
dist/index.js β runs as a subprocess, used by Claude Desktop and similar clientsThe OSS core intentionally ships with stdio only. Any network-facing wrapper, remote supervision, or premium plugin attachment belongs in a separate commercial node agent or wrapper.
AGPL v3 β see LICENSE.
This means you can:
moodle-mcp-server core for free, in any environmentYou cannot:
moodle-mcp-server core as a closed-source competing commercial productMoodle is a trademark of Moodle Pty Ltd. moodle-mcp-server is an independent CSMediaPro project and is not affiliated with, endorsed by, sponsored by, or officially connected to Moodle Pty Ltd or the Moodle project. The name is used descriptively to identify compatibility with Moodle LMS.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/moodle-mcp-server-aql)<a href="https://allmcps.com/mcp/moodle-mcp-server-aql"><img src="https://allmcps.com/api/badge/moodle-mcp-server-aql?style=directory" alt="Moodle MCP Server Aql on AllMCPs" /></a>