Skip to main content
Glama

Get Outcome Alignments

get_outcome_alignments
Read-only

Get outcome alignments for a course, optionally filtered to a specific student or assignment.

Instructions

Get outcome alignments for a course, optionally filtered to a specific student or assignment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYesThe Canvas course ID.
student_idNoOptional Canvas user ID of the student to filter alignments by.
assignment_idNoOptional Canvas assignment ID to filter alignments by.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.18.15
    • addedInput schema / properties / assignment_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / assignment_id / type
      Removed value: -"number"
    • addedInput schema / properties / course_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / course_id / type
      Removed value: -"number"
    • addedInput schema / properties / student_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / student_id / type
      Removed value: -"number"
  2. Changed1 schema field changedv1.18.11
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. First observedv1.18.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and reachability are covered and the bar is lower. The description adds only that filtering is optional by student or assignment; it does not disclose return shape, pagination, or whether results are limited to courses the caller can access, which is the kind of added context that would push this higher.

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?

A single front-loaded sentence with the resource first and the optional scope second; there is no filler, hedging, or repetition of the schema.

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

Completeness3/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 carries the burden of explaining what is returned, and it does not — an agent cannot tell what an alignment record contains or how it relates to outcome results. It is minimally adequate: the input contract is fully covered by schema plus this sentence, but the output side is unexplained.

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% — all three parameters (course_id, student_id, assignment_id) carry their own Canvas-ID descriptions. The description merely restates the two optional filters and adds no format, default, or interaction semantics beyond the schema, so the baseline of 3 applies.

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 ("Get outcome alignments") and scopes it to a course with optional filters, which is clear on its own. However, in a very crowded outcome-tool family (get_outcome_results, get_outcome_rollups, get_outcome_mastery_distribution, get_outcome_contributing_scores), it offers no differentiation about what an "alignment" is versus a result or rollup, so the agent can't confidently pick this one over its siblings.

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?

The phrase "optionally filtered to a specific student or assignment" implies the filtering use case, so the basic invocation context is inferable. But there is no explicit statement of when to choose this over get_outcome_results or get_outcome_rollups, and no prerequisites or exclusions are given.

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