Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bruchris/canvas-lms-mcp --skill canvas-outcome-trackergit clone --depth 1 https://github.com/bruchris/canvas-lms-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bruchris/canvas-lms-mcp/canvas-outcome-tracker)<a href="https://agentmods.dev/skills/bruchris/canvas-lms-mcp/canvas-outcome-tracker"><img src="https://agentmods.dev/badge/skills/bruchris/canvas-lms-mcp/canvas-outcome-tracker/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bruchris/canvas-lms-mcp/canvas-outcome-tracker"><img src="https://agentmods.dev/badge/skills/bruchris/canvas-lms-mcp/canvas-outcome-tracker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00082 | $0.00993 |
| Opus 5 | $0.00041 | $0.00496 |
| Sonnet 5 | $0.00016 | $0.00199 |
| Haiku 4.5 | $0.00008 | $0.00099 |
Grade A, and why
canvas-outcome-tracker scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Canvas Outcome Tracker
Surface learning outcome mastery data across a course — by outcome, by student, or by group — to support program assessment and accreditation reporting.
Prerequisites
- Canvas MCP server must be running and connected.
- You must have instructor or admin role in the target course.
- The course must have outcomes aligned to assignments (contact your Canvas admin if outcomes are not visible).
Steps
1. Identify the Target Course
Ask the user which course to analyse. Accept a course name, code, or Canvas ID.
If unclear, call list_courses to let them select.
2. Load the Outcome Structure
Call get_root_outcome_group to get the top-level outcome group for the course. Then call list_outcome_groups to retrieve all outcome groups in the course.
For each group, call list_outcome_group_outcomes to enumerate the individual outcomes. Build a flat list:
- Outcome ID
- Outcome title
- Mastery points threshold
Ask the user if they want to focus on a specific outcome group or review all outcomes.
3. Choose Report Type
Offer three modes:
| Mode | Description |
|---|---|
| Class overview | Mastery distribution for all outcomes at once |
| Per-student rollup | Which outcomes each student has or hasn't mastered |
| Single outcome deep-dive | All students' results for one outcome |
4A. Class Overview — Mastery Distribution
For each outcome, call get_outcome_mastery_distribution with the course ID and outcome ID. This returns the count of students at each mastery level (exceeds / meets / approaching / not yet).
Summarise as a ranked table, lowest mastery first:
Outcome Mastery Distribution — [Course Name]
LOWEST MASTERY (action needed)
• "Critical Analysis" — 38% not yet mastered (19/50 students)
• "APA Citation" — 24% not yet mastered (12/50 students)
MEETING EXPECTATIONS
• "Thesis Construction" — 82% mastered
• "Research Synthesis" — 79% mastered
4B. Per-Student Rollup
Call get_outcome_rollups with the course ID. This returns each student's rolled-up mastery status per outcome.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 112 lines · 82 tokens per session scan A 159f471f7a33
canvas-outcome-tracker is a skill published in the GitHub repository bruchris/canvas-lms-mcp (5 stars, last pushed today), licensed MIT. It adds 82 tokens to every session and 993 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
education-expert
Expert-level education technology, learning management systems, and ed-tech platforms. Use when the user mentions edtech, lms, e learning, or assessment, or when the task involves Educational Technology or Standards.
emil-design-eng
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague…
apple-design
Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading)…
add-landing-template
Add a new org landing-page template to the ClassroomIO monorepo. Use when the user asks to "create/add a new landing template", "add a new template like X to the org landing pages", "build a new theme for the org landing page", or hands over a design reference (image, URL, prototype) for a new landing visual style.
animation-vocabulary
Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and…