Skip to main content
Glama

My grades

get_my_grades
Read-only

Retrieve your current grade for each active Canvas course, plus assignment scores, points possible, and submission status; optionally limit results to one course by ID or name.

Instructions

Your current grade in each active Canvas course from the Canvas gradebook, with the assignments behind each grade: your score, the points possible and the submission status. Pass course_id as the Canvas course ID or as the course name to limit the grades and the breakdown to one course. Example: "What is my grade in each Canvas course and which assignments make it up?"

Input Schema

NameRequiredDescriptionDefault
course_idNoOptional, limit the grades and the breakdown to one course.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral value by disclosing the data source (Canvas gradebook), the scope restriction to active courses, and the exact payload components (score, points possible, submission status). It does not discuss behavior for courses with no graded assignments, but the gap is minor.

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 tight sentences: what is returned, how to scope it, and a representative query. Zero redundancy and the scope constraint is front-loaded before the optional-parameter detail.

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 one optional parameter, no output schema, and full schema coverage, the description supplies everything needed: data source, scope semantics, return shape, and a usage example. Nothing an agent needs to select or invoke the tool correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description exceeds that by clarifying that course_id accepts either a Canvas course ID or a course name — a format detail the schema's string|number union does not convey — and by restating that it narrows both the grades and the assignment breakdown.

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 — current grade per active Canvas course plus the assignments behind each grade (score, points possible, submission status). It is clearly distinct from data-oriented siblings like get_todo or get_missing_assignments, though it never explicitly contrasts with get_target_grade, which is the closest conceptual neighbor.

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?

The example question ("What is my grade in each Canvas course and which assignments make it up?") gives a concrete trigger context, and the course_id sentence explains the narrowing behavior. However, no when-not conditions or named alternatives are offered, so the agent must infer exclusion cases on its own.

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