Skip to main content
Glama

get_course_page

Read a Canvas course page and its linked readings, or list course pages when no title is given. Specify a course and optional page title or URL slug to retrieve text and file links.

Instructions

Read a Canvas Page, such as a lecture page with its readings. Without page, list the course's pages (module pages first; many courses hide the Pages list from students).

Args: course: Course id, code (e.g. "7.36") or name fragment page: Piece of the page title (e.g. "L15") or its url slug account: School account to use (defaults to the active account)

Returns the page text plus its file links, each with section (the label it sits under on the page, e.g. "Main Papers" or "Additional reading") and hidden (true when the link has no visible text).

Input Schema

NameRequiredDescriptionDefault
pageNo
courseYes
accountNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden and does reasonably well: it identifies the operation as a read, describes listing order (module pages first), discloses the student-visibility caveat that explains empty results, and describes the return payload (page text plus file links tagged with `section` and `hidden`). It omits auth/account-switching mechanics and any failure modes beyond the hidden-list caveat.

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

Conciseness4/5

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

Front-loaded with the core action and mode switch, then a compact Args block and a one-line Returns block. Every sentence carries information; only minor waste is the slightly redundant restatement of return values already covered by the output schema.

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 3-parameter tool with no annotations, the description covers all parameters, both operating modes, list ordering, and visibility caveats. Since an output schema exists, the return description is optional garnish rather than a gap; only account/error handling is left implicit.

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

Parameters5/5

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

Schema description coverage is 0%, yet the Args block fully compensates: `course` accepts an id, code like "7.36", or name fragment; `page` accepts a title fragment like "L15" or a url slug; `account` defaults to the active account. These are exactly the disambiguations an agent needs and none exist in the schema.

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 ("Read a Canvas Page, such as a lecture page with its readings") and explicitly defines a second mode ("Without `page`, list the course's pages"). The distinction from file-oriented siblings like list_course_files and get_deadlines is evident from the object being read.

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?

Gives an explicit condition that switches behavior: omit `page` to list, supply `page` to read. It also warns that many courses hide the Pages list from students, which tells the agent to expect empty listings. It stops short of naming sibling tools as alternatives or saying when to prefer list_course_files.

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