Borrowing it
Nothing to install: this file belongs to stojandev/moodle-downloader-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/stojandev/moodle-downloader-mcp/main/.grok/skills/moodle-agent/SKILL.mdgit clone --depth 1 https://github.com/stojandev/moodle-downloader-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/stojandev/moodle-downloader-mcp/moodle-agent)<a href="https://agentmods.dev/skills/stojandev/moodle-downloader-mcp/moodle-agent"><img src="https://agentmods.dev/badge/skills/stojandev/moodle-downloader-mcp/moodle-agent/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/stojandev/moodle-downloader-mcp/moodle-agent"><img src="https://agentmods.dev/badge/skills/stojandev/moodle-downloader-mcp/moodle-agent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00104 | $0.00986 |
| Opus 5 | $0.00052 | $0.00493 |
| Sonnet 5 | $0.00021 | $0.00197 |
| Haiku 4.5 | $0.00010 | $0.00099 |
Grade A, and why
moodle-agent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
moodle-agent — agent runbook
You may be unfamiliar with this project. Follow this skill end-to-end.
Agent entry: README.agents.md · full: docs/AGENT_GUIDE.md · wiki: docs/WIKI.md
Goal: user says “download my Moodle stuff” → you run the CLI; only ask for credentials if auth is missing. After download, build LLM wiki so later sessions stay cheap.
Universal rules (read this)
- No default school. Always get the Moodle base URL from the user.
- Username format is school-specific (email, student id, LDAP, index number, …).
Never invent a format. Ask: “What do you type on the login page?” - Password is never stored — only a webservice token.
- Multi-site: separate profiles via
init --name <profile>.
1) Binary / MCP
CLI: moodle-agent (after pip install -e . / venv)
MCP: moodle-agent-mcp (optional stdio server)
Prefer MCP tools when connected. Fallback: CLI with --json.
If binary missing: python -m venv .venv && pip install -e .
2) Hard rules
- Always
--jsonwhen parsing. stdout = JSON, stderr = progress. - Exit:
0ok,1fail,2bad usage. - Never print password/token. Never hang on interactive prompts.
- Shell
$in password → single quotes. - After materials exist: prefer
_wiki/over re-reading every binary every session. - Personal use only.
3) Auth gate
moodle-agent setup --json
moodle-agent config --json
moodle-agent whoami --json
If not authenticated → ask once for:
- Moodle URL (e.g.
https://moodle.example.edu) - Username (as on their portal)
- Password or webservice token
Optional (no password):
moodle-agent probe --url "https://moodle.example.edu" --json
Init:
export MOODLE_URL="https://moodle.example.edu"
export MOODLE_USER="..."
export MOODLE_PASS='...'
moodle-agent init --out ./courses --force --json
# options: --name profile --name-style preserve|latinica|ascii
# --course-dir-style fullname|fullname_id|classic
# --username-hint "use university email"
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 112 lines · 104 tokens per session scan A 7cb1406ceff6
moodle-agent is a skill published in the GitHub repository stojandev/moodle-downloader-mcp (0 stars, last pushed 1mo ago), licensed MIT. It adds 104 tokens to every session and 986 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
gws-classroom
Google Classroom: Manage classes, rosters, and coursework.
get-rep-call-feedback
Use when the user wants evidence-backed coaching for one rep's calls, especially by comparing the rep with peer examples to identify repeatable best practices, specific upgrade moments, and practical next-call language.
recipe-create-classroom-course
Create a Google Classroom course and invite students.
tutorial
Interactive tutorial teaching Ouroboros hands-on.
learn-everything
Turn an uploaded PDF, paper, book chapter, document, URL, or user-provided topic into a structured, interactive learning course. Use when the user wants to learn, study, understand, master, review, or practice a subject chapter by chapter; asks for a tutorial or curriculum from source material; wants exercises…
printing-press-retro
Use when the user asks to retro, run a retrospective, file findings, or improve the Printing Press after a printed-CLI run. Trigger phrases: "retro", "retrospective", "what went wrong", "improve the press", "post-mortem", "lessons learned", "what can we improve", "file a retro", "submit findings". Do not use for…