Canvas Morning Check logo

Canvas Morning Check

Community
vishalsachdev
canvas-morning-check

Educator morning course health check for Canvas LMS. Shows submission rates, struggling students, grade distribution, and upcoming deadlines. Trigger phrases include "morning check", "course status", "how are my students", or any start-of-day teaching review.

Overview

Publishervishalsachdev
Repositorycanvas-mcp
Skill namecanvas-morning-check
Stars
305
Forks
99
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by vishalsachdev on GitHub. Read the source before you install it.

Installation

Install the Canvas Morning Check AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-morning-check
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git /tmp/canvas-mcp
mkdir -p .claude/skills
cp -r /tmp/canvas-mcp/skills/canvas-morning-check .claude/skills/canvas-morning-check
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Canvas Morning Check in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Canvas Morning Check on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Canvas Morning Check is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Canvas Morning Check

A comprehensive course health check for educators using Canvas LMS. Run it at the start of a teaching day or week to surface submission gaps, students who need support, and upcoming deadlines -- then take action directly from the results.

Prerequisites

  • Canvas MCP server must be running and connected to the agent's MCP client.
  • The authenticated user must have an educator or instructor role in the target Canvas course(s).
  • FERPA-conscious handling: Set ENABLE_DATA_ANONYMIZATION=true in the Canvas MCP server environment to anonymize supported student identity fields in output. When enabled, names render as Student_xxxxxxxx hashes. This control does not by itself establish compliance.

Steps

1. Identify Target Course(s)

Ask the user which course(s) to check. Accept a course code, Canvas ID, or "all" to iterate through every active course.

If the user does not specify, prompt:

Which course would you like to check? (Or say "all" for all active courses.)

Use the list_courses MCP tool if you need to look up available courses.

2. Collect Recent Submission Data

For each target course:

  1. Call list_assignments to find assignments with a due date in the past 7 days.
  2. For each recent assignment, call get_assignment_analytics to collect:
    • Submission rate (submitted / enrolled)
    • Average, high, and low scores
    • Late submission count

3. Identify Struggling Students

Call list_submissions to retrieve student submission records, then flag students based on these thresholds:

UrgencyCriteria
CriticalMissing 3+ assignments in the past 2 weeks, or average grade below 60%
Needs attentionMissing 2 assignments, or average grade 60--70%, or 3+ late submissions
On trackAll submissions current, grade above 70%

Use get_student_analytics for deeper per-student analysis when the user requests it.

4. Check Upcoming Deadlines

Call list_assignments filtered to the next 7 days. For each upcoming assignment, surface:

  • Assignment name
  • Due date and time
  • Point value
  • Current submission count (if submissions have started)

5. Generate the Status Report

Present results in a structured format:

## Course Status: [Course Name]

### Submission Overview
| Assignment | Due Date | Submitted | Rate | Avg Score |
|------------|----------|-----------|------|-----------|
| Quiz 3     | Feb 24   | 28/32     | 88%  | 85.2      |
| Essay 2    | Feb 26   | 25/32     | 78%  | --        |

### Students Needing Support
**Critical (3+ missing):**
- Student_a8f7e23 (missing: Quiz 3, Essay 2, HW 5)

**Needs Attention (2 missing):**
- Student_c9b21f8 (missing: Essay 2, HW 5)
- Student_d3e45f1 (missing: Quiz 3, Essay 2)

### Upcoming This Week
- **Mar 3:** Final Project (100 pts) - 5 submitted so far
- **Mar 5:** Discussion 8 (20 pts)

### Suggested Actions
1. Send reminder to 3 students with critical status
2. Review Essay 2 submissions (78% rate, below average)
3. Post announcement about Final Project deadline

6. Offer Follow-up Actions

After presenting the report, offer actionable next steps:

Would you like me to:

  1. Draft and send a message to struggling students (uses send_conversation)
  2. Send reminders about upcoming deadlines (uses send_conversation; multiple recipients are a preview + confirmation call)
  3. Get detailed analytics for a specific assignment (uses get_assignment_analytics)
  4. Check another course

If the user selects option 1, use the send_conversation MCP tool to message the identified students directly through Canvas.

MCP Tools Used

ToolPurpose
list_coursesDiscover active courses
list_assignmentsFind recent and upcoming assignments
get_assignment_analyticsSubmission rates and score statistics
list_submissionsPer-student submission records
get_student_analyticsDetailed per-student performance data
send_conversationMessage students through Canvas inbox

Example

User: "Morning check for CS 101"

Agent: Runs the workflow above, outputs the status report.

User: "Send a reminder to students missing Quiz 3"

Agent: Calls send_conversation to message the identified students with a reminder.

Notes

  • When anonymization is enabled, maintain a local mapping of anonymous IDs so follow-up actions (messaging, grading) still target the correct students.
  • This skill works best as a weekly routine -- Monday mornings are ideal.
  • Pairs well with the canvas-week-plan skill for student-facing planning.

Frequently asked questions

What does the Canvas Morning Check AI skill do?

Educator morning course health check for Canvas LMS. Shows submission rates, struggling students, grade distribution, and upcoming deadlines. Trigger phrases include "morning check", "course status", "how are my students", or any start-of-day teaching review.

Why use Canvas Morning Check on TypingMind?

Because you install it once and use it with any model. Canvas Morning Check is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Canvas Morning Check in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-morning-check. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Canvas Morning Check?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Canvas Morning Check?

As many as you like. As long as a model supports skills, you can use Canvas Morning Check with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Canvas Morning Check AI skill free?

Yes. It is published on GitHub by vishalsachdev under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇