Skip to main content
Glama
Fireiscoolsolo

Canvas LMS MCP – Remote Edition

Download All Course Files

download_all_course_files

Downloads every accessible file in a Canvas course to local disk, up to a max_files limit, without changing anything in Canvas. Use it to bulk-save course materials; for a single file, use download_file.

Instructions

Download every file you can access in a course to local disk, up to max_files (default 50). Writes local files only; nothing changes in Canvas. Can take many requests and a lot of disk space; use download_file for one file.

Input Schema

NameRequiredDescriptionDefault
dest_dirNoLocal folder to save into. Defaults to the server's download folder (CANVAS_DOWNLOAD_DIR).
course_idYesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
max_filesNoDefault 50
content_typesNoOptional MIME types to include, e.g. ["application/pdf"]. Omit for every file.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.1.3
    • addedInput schema / properties / content_types / description
      Added value: +"Optional MIME types to include, e.g. [\"application/pdf\"]. Omit for every file."
    • changedInput schema / properties / course_id / description
      Previous value: -"Canvas course ID"New value: +"Canvas course ID, a numeric string such as \"12345\". Get it from list_courses."
    • addedInput schema / properties / dest_dir / description
      Added value: +"Local folder to save into. Defaults to the server's download folder (CANVAS_DOWNLOAD_DIR)."
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, which would otherwise leave an agent unsure whether this mutates Canvas; the description pre-empts that by stating "Writes local files only; nothing changes in Canvas," resolving the apparent tension and matching destructiveHint=false. It adds cost/rate context ("many requests and a lot of disk space") that no annotation carries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the primary action and scope up front and the safety/cost caveats immediately after. Every clause carries information the agent needs before calling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a bulk-download tool the description covers scope, cost, side effects, and the cheaper alternative, which is enough to call it safely. It omits what the response contains (counts, saved paths), a minor gap given there is no output schema, though local file paths are predictable from dest_dir.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so dest_dir, course_id, content_types, and max_files are already documented in structured form; the description adds nothing beyond restating the max_files default of 50. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Download every file you can access in a course") with an explicit scope cap ("up to max_files"). It also names the sibling tool it is not (download_file) so the agent can distinguish bulk vs single-file access without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"use download_file for one file" gives an explicit alternative with the condition that selects it, and the cost warning ("can take many requests and a lot of disk space") signals when to hesitate. It does not mention content_types filtering or list_course_files as a cheaper discovery step, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools