Skip to main content
Glama

canvas_course_home

Read-only

Open a Canvas course's Home view and navigation tabs to resolve front-page content and locate modules, assignments, or syllabus routes without guessing endpoint paths.

Instructions

Open a course's actual Home view and server-provided navigation tabs.

Resolves front-page content or a route to modules/assignments/syllabus, preserves hidden/external tabs, and reports browser-required views. Follow returned open objects; do not guess endpoint paths.

Input Schema

NameRequiredDescriptionDefault
refreshNo
course_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.12.0

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: hidden and external tabs are preserved, and some views are reported as browser-required, which warns the agent that certain results cannot be rendered server-side. The instruction not to guess endpoint paths is a useful behavioral constraint on follow-up calls.

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?

Three short sentences, front-loaded with the core action, with no filler. Minor ambiguity remains in the undefined phrase 'returned open objects', which assumes context the description never establishes, but the overall density is good.

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?

An output schema exists, so return values need no prose, and annotations cover the safety profile. The description adequately explains the resolution behavior and the browser-required caveat for a read-only navigation tool; the only substantive gap is the unexplained refresh parameter.

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

Parameters2/5

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

Schema description coverage is 0%, so both parameters (course_id and refresh) are undocumented in the schema, and the description does not mention either one. It never explains that course_id identifies the target course or what refresh does (e.g., bypass a cached Home view), leaving the agent to guess at a parameter that materially affects behavior.

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?

The description names a specific verb and resource: opening a course's Home view plus the server-provided navigation tabs, and it clarifies that it resolves front-page content or a route into modules/assignments/syllabus. That is far more concrete than a sibling like get_course, though it never explicitly says how it differs from canvas_browse_course or get_course, so the differentiation is inferential rather than stated.

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

Usage Guidelines3/5

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

It gives a clear usage rule for the result ('Follow returned open objects; do not guess endpoint paths'), which is genuinely actionable. However, it never states when to reach for this tool versus get_course, canvas_browse_course, or canvas_open_item, so the agent must infer the selection criteria from the sibling list.

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