Skip to main content
Glama

Get Outcome Contributing Scores

get_outcome_contributing_scores
Read-only

Get the assignment or quiz scores that contributed to one outcome_id's results for one or more students in a course, optionally restricted to assignment alignments only or including unpublished assignments.

Instructions

Get the assignment or quiz scores that contributed to one outcome_id's results for one or more students in a course, optionally restricted to assignment alignments only or including unpublished assignments. Use get_outcome_results instead for the final per-alignment outcome score rather than the scores that fed it, or get_outcome_alignments to list all alignments in the course (not scoped to this outcome) without their scores.

Input Schema

NameRequiredDescriptionDefault
user_idsNoOptional Canvas user IDs (pass large IDs as strings) or SIS user IDs prefixed with "sis_user_id:".
course_idYesThe Canvas course ID.
outcome_idYesThe Canvas outcome ID.
only_assignment_alignmentsNoLimit results to assignment alignments only.
show_unpublished_assignmentsNoInclude unpublished assignments in the contributing score results.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.18.15
    • 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 / outcome_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / outcome_id / type
      Removed value: -"number"
    • changedInput schema / properties / user_ids / description
      Previous value: -"Optional Canvas user IDs or SIS user IDs prefixed with \"sis_user_id:\"."New value: +"Optional Canvas user IDs (pass large IDs as strings) or SIS user IDs prefixed with \"sis_user_id:\"."
    • addedInput schema / properties / user_ids / items / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^sis_user_id:[\\s\\S]+$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / user_ids / items / type
      Removed value: -[
      -  "number",
      -  "string"
      -]
  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. Changed2 schema fields changedv1.18.8
    • removedInput schema / properties / user_ids / items / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / user_ids / items / type
      Added value: +[
      +  "number",
      +  "string"
      +]
  4. First observedv1.18.0

TDQS

A4.2/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 the safety profile is covered. The description adds useful data-scope context — that unpublished assignments can be included and that results can be narrowed to assignment alignments — but says nothing about return volume, pagination, or whether unpublished data requires elevated permissions. With annotations carrying the safety burden, this is an adequate but not rich disclosure.

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?

Two sentences, zero filler, with the core purpose and both filters front-loaded before the alternative-tool routing. The routing sentence is dense but every clause maps to a real sibling and a real decision point.

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?

There is no output schema, so the description is the only guide to what comes back — it conveys that the payload is the underlying contribution scores rather than aggregate outcome scores, which is the key distinction. It stops short of describing the return shape or pagination, a minor gap for a read-only tool with fully documented parameters.

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 effectively 100%, so course_id, outcome_id, user_ids, only_assignment_alignments and show_unpublished_assignments are already documented structurally. The description restates the two boolean filters in prose ('assignment alignments only or including unpublished assignments') and implies user_ids scoping via 'one or more students,' but adds no syntax or format detail beyond the schema. 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 (get) and a precisely bounded resource: the assignment/quiz scores that contributed to one outcome_id's results for specific students in a course. The wording 'scores that contributed to' distinguishes it from final outcome scores, so an agent can tell it apart from get_outcome_results and get_outcome_alignments without opening any schema.

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

Usage Guidelines5/5

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

Explicitly names two alternatives and the condition that selects each: get_outcome_results for the final per-alignment outcome score rather than the feeding scores, and get_outcome_alignments to list all course alignments (not scoped to this outcome) without scores. Nothing is left to inference.

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