Moodle-MCP
Capped at 70: core tools not tested (only setup or self-check calls passed); the tests add up to 100. Why scores are capped
Test points add up to 100; the score is capped at 70 until a tool call passes. Not a quality or security rating. Methodology
Test points before the cap (100/100)
- Install20/20
- Handshake30/30
- Maintenance25/25
- Docs15/15
- License10/10
Git-only (pinned)
Git-only (pinned): installed from GitHub commit 1546a7009b0111c1a48ee5f736e89772ec08dd5c (git clone https://github.com/Faixiang/Moodle-MCP && git -C Moodle-MCP checkout <sha> && python3 Moodle-MCP/server.py), install scripts off. Initialize and tools/list worked (10 tools). Stand-alone Python script (stdlib only, no dependencies), run with python3. Real calls (no credentials): moodle_setup_guide returned the token setup guide and moodle_config_status returned the configuration self-check (no token configured). The Moodle data tools (courses, assignments, files) were not called: they need a Moodle web-service token. The default site URL in the code is moodle.sfu.edu.hk. Not listed on Glama when tested. Score capped at 70 (setup and self-check calls do not count as a tested tool): only the setup guide and config self-check passed; core tools not tested (they need a Moodle token).
Tool-call test (2026-11-09, direct MCP stdio client, no LLM): self-check only. 2 of 2 calls passed; both are setup/self-check tools. Moodle data tools not called (need a Moodle token). Setup/self-check calls only: core tools not tested. Evidence: local test run, Nov 9, 2026.
Transport (tested 2026-11-09): stdio
Tested commit: 1546a70 · tested 2026-11-09
Token cost (estimate): approx. 942 tokens, cl100k estimate (10 tools, measured 2026-11-11, SHA 1546a7009b0111c1a48ee5f736e89772ec08dd5c). This is an estimate from our testing of the tool names, descriptions and input schemas, counted with cl100k_base.
Permissions: 4 read, 0 write (state-changing), 6 unclassified · Auth: API key · Rate limit: unknown · Pricing unit: unknown
Auth: API key. Rate limit: unknown. Pricing unit: unknown.
moodle_config_status— readmoodle_course_files— unclassifiedmoodle_download_week— unclassifiedmoodle_list_courses— readmoodle_pending_assignments— unclassifiedmoodle_quiz_status— readmoodle_recent_updates— unclassifiedmoodle_setup_guide— unclassifiedmoodle_site_info— readmoodle_weekly_digest— unclassified
listing-flags calls_need_key or auth_kind
Score 70/100 · Tools 10 · Token cost approx. 942 tokens · Compare · Last tested 2026-11-09 · Version tested 1546a7009b0111c1a48ee5f736e89772ec08dd5c · Package moodle-mcp · Repo Faixiang/Moodle-MCP
Summary: Moodle-MCP completed an MCP handshake without credentials and exposed 10 tools.
Evidence summary
- Handshake
- pass
- Tools listed
- 10
- Context cost
- approx. 942 tokens, cl100k estimate (10 tools, measured 2026-11-11, SHA 1546a7009b0111c1a48ee5f736e89772ec08dd5c; an estimate) ranking · add up your servers' context cost
- API key
- Connects without a key; tool calls need one
- Tested
- 2026-11-09
Test results
| Test | Result | Points | Evidence |
|---|---|---|---|
| install | pass | 20 | git clone https://github.com/Faixiang/Moodle-MCP && git -C Moodle-MCP checkout 1546a7009b0111c1a48ee5f736e89772ec08dd5c && python3 Moodle-MCP/server.py (git install pinned to commit 1546a7009b0111c1a48ee5f736e89772ec08dd5c, Node 20 / Python venv, Linux, scrubbed env) succeeded in 0s; installed package resolves to the pinned SHA (1546a7009b0111c1a48ee5f736e89772ec08dd5c). |
| handshake | pass | 30 | MCP initialize + tools/list over stdio succeeded with no credentials; 10 tools listed in 0.0s. |
| maintenance | pass | 25 | Pinned commit 1546a70 dated 2026-11-01 (https://api.github.com/repos/Faixiang/Moodle-MCP/commits/1546a7009b0111c1a48ee5f736e89772ec08dd5c), 7 days before test; 204 GitHub stars. |
| docs | pass | 15 | README over 3,000 chars; install instructions present; mcpServers config example present. Check of the package's own README (README.md at pinned commit 1546a70 (raw.githubusercontent.com)). |
| license | pass | 10 | MIT (OSI-approved). |
Local-model readiness
Token cost (estimate): approx. 942 tokens, cl100k estimate for 10 tools · about 11% of an 8k context. This is an estimate from our testing (counted with cl100k_base).
Small-model friendly (schema heuristic, not a model result): unknown.
Not tested
Small-model task runs: Not yet tested.
What we tested and what we didn't
Tested on 2026-11-09
- Install from the registry
- We connected with no credentials and asked for its tool list: it listed 10 tools (Method details: MCP
initializethentools/list) - Maintenance signals (last push, archived/deprecated status)
- Docs (README length, install and config example)
- License (OSI-approved or not)
- Token cost (estimate)
Not tested
- Security: not audited (no code review, no permission or data-flow analysis)
- Real tasks (no functional task runs yet)
- Behaviour with real credentials or a real account
- Performance, rate limits or load
- Correctness of results beyond the listed tasks
Methodology: how we test. A high score means it installs and responds, not that giving it access to your data carries no risk.
Known security issues
Checked on 2026-11-10 for version 1546a7009b0111c1a48ee5f736e89772ec08dd5c against GitHub repository advisories. Scope: the package itself; dependencies not scanned.
No published advisories found in OSV and GitHub advisories for github.com/Faixiang/Moodle-MCP 1546a7009b0111c1a48ee5f736e89772ec08dd5c as of 2026-11-10. This is not a security audit.
Monthly roundup: MCP security issues, October 2026.
Tool list changes
Unchanged since the previous snapshot (latest 2026-11-11).
Snapshot hash (fingerprint of the tool list)
8d4cd04cc13d: SHA-256 of the canonical tool names, descriptions and input schemas. If it changes, the tool list changed.
Raw test record (JSON)
{
"name": "moodle-mcp",
"version": "1546a7009b0111c1a48ee5f736e89772ec08dd5c",
"registry": "git",
"status": "working",
"tested": "2026-11-09",
"tools_count": 10,
"deprecated": false,
"archived": false,
"tests": {
"install": [
"pass",
20,
"`git clone https://github.com/Faixiang/Moodle-MCP && git -C Moodle-MCP checkout 1546a7009b0111c1a48ee5f736e89772ec08dd5c && python3 Moodle-MCP/server.py` (git install pinned to commit 1546a7009b0111c1a48ee5f736e89772ec08dd5c, Node 20 / Python venv, Linux, scrubbed env) succeeded in 0s; installed package resolves to the pinned SHA (1546a7009b0111c1a48ee5f736e89772ec08dd5c)."
],
"handshake": [
"pass",
30,
"MCP `initialize` + `tools/list` over stdio succeeded with no credentials; 10 tools listed in 0.0s."
],
"maintenance": [
"pass",
25,
"Pinned commit 1546a70 dated 2026-11-01 (https://api.github.com/repos/Faixiang/Moodle-MCP/commits/1546a7009b0111c1a48ee5f736e89772ec08dd5c), 7 days before test; 204 GitHub stars."
],
"docs": [
"pass",
15,
"README over 3,000 chars; install instructions present; `mcpServers` config example present. Check of the package's own README (README.md at pinned commit 1546a70 (raw.githubusercontent.com))."
],
"license": [
"pass",
10,
"MIT (OSI-approved)."
]
}
}Install
git clone https://github.com/Faixiang/Moodle-MCP && git -C Moodle-MCP checkout 1546a7009b0111c1a48ee5f736e89772ec08dd5c && python3 Moodle-MCP/server.py
Tools listed
moodle_config_status, moodle_course_files, moodle_download_week, moodle_list_courses, moodle_pending_assignments, moodle_quiz_status, moodle_recent_updates, moodle_setup_guide, moodle_site_info, moodle_weekly_digest
Tool history: captured Nov 11, 2026. All tool history.
Quick config
{
"mcpServers": {
"moodle-mcp": {
"command": "python3",
"args": [
"/abs/path/Moodle-MCP/server.py"
]
}
}
}Add to config Opens the config generator with this server selected.
Setup
- Install. Run
git clone https://github.com/Faixiang/Moodle-MCP && git -C Moodle-MCP checkout 1546a7009b0111c1a48ee5f736e89772ec08dd5c && python3 Moodle-MCP/server.py(git install pinned to commit 1546a7009b0111c1a48ee5f736e89772ec08dd5c). This is the exact command we ran on 2026-11-09. - Configure. Add the mcpServers entry below to your MCP client config.
- Verify. Restart the client and check that tools/list returns tools (10 in our test).
{
"mcpServers": {
"moodle-mcp": {
"command": "python3",
"args": [
"/abs/path/Moodle-MCP/server.py"
]
}
}
}Test history
- 2026-11-09: New
Related: Troubleshooting: Protocol version mismatch (HTTP 400)
FAQ
Is Moodle-MCP deprecated?
No. moodle-mcp was not deprecated or archived when we last tested it on 2026-11-09.
What replaces Moodle-MCP?
Nothing; Moodle-MCP is not deprecated as of 2026-11-09.
Does Moodle-MCP need an API key?
It connects and lists 10 tools without a key, but its Moodle data tools need a Moodle web-service token, so we called only the setup and config self-check tools (our test, 2026-11-09).
Embed the badge
Every tested server gets a free embeddable badge. It shows the current score and test date and expires after 90 days. Testing is free; payment never changes a score.