SkillAgentSearch skills...

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-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

78/100

Supported Platforms

Claude Code
Claude Desktop
Cursor

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.

Substance
29/30
Structure
20/20
Description
15/15
Adoption
4/20
Freshness
11/15

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.

SkillScoreStarsUpdatedFormat
moodle-mcp (this skill)by SaadRahman0178104mo agoMCP Server
Agent-Reachby Panniantong10099.0k3d agoCLAUDE.md
headroomby headroomlabs-ai10075.9k1d agoCLAUDE.md
CowAgentby zhayujie10047.5ktodayCLAUDE.md
Scraplingby D4Vinci10088.5ktodayMCP 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.

moodle-mcp

Model Context Protocol server for Moodle development. Plug into Claude Desktop, Cursor, Continue, Cline, or any MCP-capable assistant — get live moodledev.io documentation lookups right in your editor.

License: MIT Python 3.10+ MCP

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 bitmask
  • lookup_hook(name) — Hooks API 4.4+ listener signatures
  • validate_version_php(path) — local lint
  • lookup_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:

  1. Implementing the backend in src/moodle_mcp/<your_module>.py.
  2. Registering the tool in src/moodle_mcp/server.py.
  3. 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

View on GitHub
GitHub Stars10
CategoryProject
Updated4mo ago
Forks1

Languages

Python

Trust signals

95/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 info