Skip to main content
Glama

Get Page Content

get_page_content
Read-onlyIdempotent

Fetch and review a Canvas course page as plain text with its title and last-updated timestamp; read-only, with untrusted body fencing. Find page slugs via list_pages.

Instructions

Read a course page as plain text (converted from HTML), with its title and last-updated time. Read-only. The body is fenced as untrusted. Find page slugs with list_pages.

Input Schema

NameRequiredDescriptionDefault
page_urlYesPage url slug or page_id
course_idYesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.2
    • 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."
  2. First observedv1.0.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description still adds real context beyond them: HTML is converted to plain text, the return includes title and last-updated, and the body is 'fenced as untrusted', a security-relevant trait that would not be inferable from annotations.

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, front-loaded with the core action and output shape, then safety, then the prerequisite. No redundant or filler text; every clause carries information an agent needs.

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

Completeness5/5

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

With only two fully documented parameters and no output schema, the description covers what is needed: what it fetches, the format of the returned content, the fields returned, and how to obtain the required slug. Nothing material is left undefined for a read-only fetch tool.

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% and both parameters are documented there, including an example course ID and a pointer to list_courses. The description adds nothing about the parameters beyond what the schema already provides, so the baseline 3 applies.

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 course page as plain text, converted from HTML') and specifies the payload returned (title, last-updated time). It also names the sibling that serves a different purpose ('Find page slugs with list_pages'), so an agent can distinguish it from list_pages 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?

It clearly states the prerequisite for calling: get the slug via list_pages, which is a concrete routing rule. It doesn't spell out explicit exclusions (for example, use search_course_content or grep_all_courses when you don't know which page), so it falls 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