Skip to main content
Glama
Fireiscoolsolo

Canvas LMS MCP – Remote Edition

List Courses

list_courses
Read-onlyIdempotent

Retrieve your active Canvas LMS courses with IDs, names, codes, terms, and current grades; use returned course_id values to call other tools. Set include_concluded to include finished courses.

Instructions

List the courses you are enrolled in with IDs, names, codes, term and your current grade. Read-only. Only active courses unless include_concluded is set. Start here to get course_id values for other tools.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of items to return. Smaller is faster.
include_gradesNoDefault true
include_concludedNoIf true, also include courses from finished terms.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.1.3
    • addedInput schema / properties / include_concluded / description
      Added value: +"If true, also include courses from finished terms."
    • changedInput schema / properties / limit / description
      Previous value: -"Max items to return"New value: +"Maximum number of items to return. Smaller is faster."
  2. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

'Read-only' merely restates readOnlyHint=true, but the default filtering behavior (concluded courses excluded unless opted in) and the fact that grades are returned are genuine additions beyond the annotations. It says nothing about permissions, pagination behavior, or how `limit` interacts with the result set, so the extra disclosure is modest.

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?

Three short sentences, each earning its place: what it returns, the read-only safety note, the default scope, and the entry-point routing hint. Front-loaded and zero filler.

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?

With no output schema, the description does the necessary work of enumerating returned fields, and it flags the concluded-course default. The one gap is pagination/limit behavior, which an agent calling a list endpoint would reasonably want stated.

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% with all three parameters documented, so the schema already carries parameter meaning; baseline is 3. The description only reinforces include_concluded and hints that include_grades defaults to on, adding no syntax or format detail beyond what's structured.

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

Purpose4/5

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

States a specific verb and resource ('List the courses you are enrolled in') and even enumerates the returned fields (IDs, names, codes, term, grade). It is clearly distinct from most siblings, though it never explains how it differs from the near-neighbors list_favorite_courses and list_my_enrollments.

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?

'Start here to get course_id values for other tools' gives concrete routing context, and 'Only active courses unless include_concluded is set' sets the default scope. There are no explicit when-not-to-use statements or named alternatives, which keeps it below a 5.

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