moodle_download_file
Download a Moodle course file by its opaque fileId (from moodle_list_resources). Returns text for text/JSON/XML files; returns the raw bytes as an embedded resource for binary formats like PDFs, DOCX, images. The server fetches the file — you never need to fetch Moodle URLs directly.
This record as markdown: /tools/1alexandrer-moodle-mcp/moodle-download-file.md
What moodle_download_file does on Moodle
AI agents call moodle_download_file to retrieve information from Moodle without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
Why moodle_download_file is rated Low
This tool retrieves and returns course files without modifying, creating, or deleting any data. It is a pure read operation that fetches existing files from a Moodle server. The blast radius is minimal—an agent could potentially read sensitive course materials, but this is a standard LMS access pattern and does not affect data integrity or enable destructive actions.
From the tool's definition Tool description states it 'Download[s] a Moodle course file' and 'Returns text for text/JSON/XML files; returns the raw bytes as an embedded resource for binary formats'.
Attacks that exploit this kind of access
The rule that runs moodle_download_file safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Moodle, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For moodle_download_file, this is the rule to start with:
moodle_download_file is read-only, so it stays allowed. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Moodle, apply this rule, and every moodle_download_file call is checked against it from then on.
Questions about moodle_download_file
Download a Moodle course file by its opaque fileId (from moodle_list_resources). Returns text for text/JSON/XML files; returns the raw bytes as an embedded resource for binary formats like PDFs, DOCX, images. The server fetches the file — you never need to fetch Moodle URLs directly. It is categorised as a Read tool in the Moodle MCP Server, which means it retrieves data without modifying state.
Register the Moodle MCP server in PolicyLayer and add a rule for moodle_download_file: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Moodle. Nothing to install.
moodle_download_file is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the moodle_download_file rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for moodle_download_file. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
moodle_download_file is provided by the Moodle MCP server (1alexandrer/moodle-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Moodle, and thousands of servers like it.
This server
Across the catalogue