moodle-mcp
Model Context Protocol server giving AI assistants live access to moodledev.io docs, Hooks API, capabilities, XMLDB, and the Moodle Jira tracker.
Install / Use
claude mcp add SaadRahman01 -- npx -y github:SaadRahman01/moodle-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Project & Program ManagementSupported Platforms
Our assessment of moodle-mcp
moodle-mcp scores 78/100 on our quality scale, 65th of 78 Project & Program Management skills we index.
Its MCP Server is 6.0 KB long, well organised into 20 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 95/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
moodle-mcp compared with similar skills
All 4 of these similar skills score higher than moodle-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| moodle-mcp (this skill)by SaadRahman01 | 78 | 10 | 4mo ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 99.0k | 3d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.9k | 1d ago | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.5k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 88.5k | today | MCP Server |
Frequently asked questions
- How do I install moodle-mcp?
- Run
claude mcp add SaadRahman01 -- npx -y github:SaadRahman01/moodle-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does moodle-mcp work with?
- It is written for Claude Code, Claude Desktop and Cursor, as a MCP Server file. Other agents that read the same format can often use it too.
- Is moodle-mcp safe to use?
- It is MIT-licensed and scores 95/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is moodle-mcp still maintained?
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubmoodle-mcp
Model Context Protocol server for Moodle development. Plug into Claude Desktop, Cursor, Continue, Cline, or any MCP-capable assistant — get live
moodledev.iodocumentation lookups right in your editor.
Companion to claude-moodle-dev — that plugin teaches AI assistants the Moodle conventions; this server gives them live access to the canonical docs.
What you get
Ten MCP tools, hardened to survive site redesigns:
| Tool | Purpose |
|------|---------|
| search_moodle_docs(query, limit=5, offset=0, version?) | Search moodledev.io. Synonym expansion, quoted-phrase boost, BM25 + trigram-cosine rerank, pagination, optional version filter (4.4, 4.5, …). Optional Algolia DocSearch fast-path. |
| fetch_moodle_page(url) | Pull a single page in full — body text + headings. Rejects off-host URLs, non-http schemes, and path traversal. |
| get_hooks_api_listeners() | Surface the core Hooks API index + detected hook classes. |
| get_capability_docs(component?) | Access API lookup with a RISK_* quick-reference card; optional component scope. |
| lookup_db_xmldb(query) | Focused XMLDB / database schema search. |
| list_plugin_types() | Table of every Moodle plugin type with one-line hints + docs URL. |
| get_version_info() | Current Moodle versions parsed from /general/releases. |
| search_tracker(query, limit=5, affects_version?, fix_version?) | Issue search against tracker.moodle.org (Jira), now with version filters. |
| list_ws_functions() | List Moodle Web Services functions available to the configured instance token. Requires MOODLE_URL + MOODLE_TOKEN. |
| call_ws_function(function, args) | Invoke a Moodle WS function against a real instance. SSRF-guarded, function-name allowlisted, refuses private/loopback hosts unless explicitly overridden. |
Plus MCP resources (moodle://docs/apis/... for one-click page reads), prompts (moodle-plugin-skeleton, moodle-capability-review, moodle-hooks-migration, explain-capability, find-endpoint, explain-plugin-type, xmldb-upgrade, diagnose-mdl), tool annotations (readOnlyHint, destructiveHint) for client safety, and progress notifications during multi-fetch searches.
No API keys required for docs. Pulls the public sitemap, caches it on disk (~/.cache/moodle-mcp/), scores against your query, fetches top pages concurrently with retry + conditional GET + Retry-After header respect.
Optional environment variables
| Variable | Purpose |
|----------|---------|
| MOODLE_URL | Base URL of a real Moodle instance (https). Enables WS tools. |
| MOODLE_TOKEN | WS token for that instance. |
| MOODLE_WS_ALLOW_INSECURE | Set to 1 to permit http:// or private/loopback hosts (local dev only). |
| MOODLE_DOCS_ALGOLIA_APP_ID | Algolia DocSearch app ID. Enables higher-precision recall over sitemap BM25. |
| MOODLE_DOCS_ALGOLIA_API_KEY | Algolia public search key. |
| MOODLE_DOCS_ALGOLIA_INDEX | Index name (default: moodledev). |
CLI
moodle-mcp --version
moodle-mcp --check # diagnostic: fetch sitemap + sample page, exit
moodle-mcp --log-level DEBUG
Docker
docker build -t moodle-mcp .
docker run --rm -i moodle-mcp
Install
From PyPI (once published)
pipx install moodle-mcp
From source
git clone https://github.com/SaadRahman01/moodle-mcp
cd moodle-mcp
pipx install .
Wire it up to your assistant
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"moodle": {
"command": "moodle-mcp"
}
}
}
Restart Claude Desktop. Ask: "Search the Moodle docs for how to add a capability."
Claude Code
claude mcp add moodle moodle-mcp
Cursor
~/.cursor/mcp.json:
{
"mcpServers": {
"moodle": { "command": "moodle-mcp" }
}
}
Continue.dev
~/.continue/config.yaml:
mcpServers:
- name: moodle
command: moodle-mcp
Cline / Windsurf / any MCP client
Spawn moodle-mcp as a stdio MCP server. No extra arguments required.
How it works
query
│
▼
┌─────────────────────────────────────────┐
│ fetch sitemap.xml (cached per session)│
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ score URLs by slug-token overlap │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ fetch top N pages → extract main text │
└─────────────────────────────────────────┘
│
▼
markdown bundle (title, URL, excerpt)
No external search index. No API key. The only network dependency is https://moodledev.io being reachable.
Roadmap
lookup_capability(name)— resolve capability → metadata + risk bitmasklookup_hook(name)— Hooks API 4.4+ listener signaturesvalidate_version_php(path)— local lintlookup_db_field(table, column)— XMLDB metadata- Algolia DocSearch fast-path (when available)
Vote / request: open an issue.
Development
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
ruff check .
Contributing
PRs welcome. Add a new tool by:
- Implementing the backend in
src/moodle_mcp/<your_module>.py. - Registering the tool in
src/moodle_mcp/server.py. - Adding tests in
tests/.
License
MIT.
Credits
Built by Saad Rahman. Companion of claude-moodle-dev. Powered by the Model Context Protocol and the Moodle Developer Documentation.
Related Skills
Agent-Reach
99.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.5kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
88.5k🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
