Agent skill

Canvas Course Builder

by vishalsachdev in vishalsachdev/canvas-mcp

Scaffold complete Canvas LMS course structures from specs, templates, or existing courses.

MITAuto-check passed

Install Canvas Course Builder

skills CLI
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-course-builder -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vishalsachdev/canvas-mcp canvas-course-builder --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/canvas-course-builder .claude/skills/canvas-course-builder && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
canvas-course-builder
GitHub stars
284
Token cost
~1.7k tokens
SKILL.md length
633 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Scaffold complete Canvas LMS course structures from specs, templates, or existing courses.

  • Works in 6 steps: Determine Mode and Gather Input → Generate Structure Preview → User Approves or Modifies → …
  • Asked to build a course
  • SKILL.md covers Prerequisites, Modes, Steps and MCP Tools Used, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Canvas Course Builder is an agent skill from vishalsachdev/canvas-mcp. Scaffold complete Canvas LMS course structures from specs, templates, or existing courses. Creates modules, pages, assignments, and discussions in bulk. Use when asked to "build a course", "scaffold modules", "create course structure", "set up a new course", or "copy course structure".

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Canvas LMS MCP server — up to 102 tools and 8 agent skills for students & educators. Works with Claude, Cursor, Codex, and 40+ agents. The licence is MIT.

When your agent uses it

  • Asked to build a course
  • Scaffold modules
  • Create course structure
  • Set up a new course

Example prompts

  • “build a course”
  • “scaffold modules”
  • “create course structure”
  • “/canvas-course-builder”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Determine Mode and Gather Input
  2. Generate Structure Preview
  3. User Approves or Modifies
  4. Execute Creation
  5. Report Results
  6. Save as Template (Optional)

What it can do on your machine

Read from SKILL.md and the folder at commit eeeb479. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Canvas Course Builder loads about 1.7k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 633 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vishalsachdev/canvas-mcp at commit eeeb479, republished under its MIT licence (© vishalsachdev). 633 words, ~1,735 tokens.

Download SKILL.mdSave it as .claude/skills/canvas-course-builder/SKILL.md (or your agent's skills folder).
name
canvas-course-builder
description
Scaffold complete Canvas LMS course structures from specs, templates, or existing courses. Creates modules, pages, assignments, and discussions in bulk. Use when asked to "build a course", "scaffold modules", "create course structure", "set up a new course", or "copy course structure".

Canvas Course Builder

Build complete Canvas course structures from a natural language description, a JSON template, or by cloning an existing course. Creates modules with pages, assignments, discussions, and proper organization in one workflow.

Prerequisites

  • Canvas MCP server must be running and connected.
  • Authenticated user must have instructor or designer role in the target course.
  • Target course must already exist in Canvas (this skill populates it, does not create the course itself).

Modes

This skill operates in three modes:

Mode 1: Build from Spec (default)

The user describes the course structure in natural language or provides a structured spec.

Mode 2: Build from Template

Load a saved JSON template to scaffold a course.

Mode 3: Clone from Existing Course

Read the structure of Course A and replicate it into Course B.

Steps

1. Determine Mode and Gather Input

Ask the user how they want to build:

How would you like to build the course structure?

  1. Describe it -- Tell me the structure (e.g., "15 weeks, each with an overview page, assignment, and discussion")
  2. From template -- Load a saved template file
  3. Clone another course -- Copy structure from an existing course

For Mode 1 (Spec): Ask for:

  • Target course (code or ID)
  • Number of modules/weeks/units
  • Module naming pattern (e.g., "Week N: [Topic]")
  • Standard items per module (overview page, assignment, discussion, etc.)
  • Any module-specific variations (midterm week, final project, etc.)

For Mode 2 (Template): Ask for the template file path. Parse the JSON template.

For Mode 3 (Clone): Ask for:

  • Source course (code or ID)
  • Target course (code or ID)
  • Call get_course_structure(source_course) to read the full structure
2. Generate Structure Preview

Build a preview of what will be created and present it to the user:

## Course Build Plan: [Course Name]

### Structure: 15 modules x 4 items each = 60 items total

| Module | Page | Assignment | Discussion | SubHeader |
|--------|------|------------|------------|-----------|
| Week 1: Introduction | Overview | HW 1 (10 pts) | Week 1 Forum | Materials |
| Week 2: Fundamentals | Overview | HW 2 (10 pts) | Week 2 Forum | Materials |
| ... | ... | ... | ... | ... |
| Week 14: Review | Overview | -- | Review Forum | Materials |
| Week 15: Final | Overview | Final Project (100 pts) | -- | Materials |

### Items to create:
- 15 modules
- 15 overview pages
- 14 assignments
- 14 discussion topics
- 15 subheaders
- Total: 73 Canvas objects

Shall I proceed?
3. User Approves or Modifies

Wait for explicit approval. The user may:

  • Approve as-is
  • Request modifications (add/remove items, change naming, adjust points)
  • Cancel

Do NOT proceed without approval.

4. Execute Creation

Create items in dependency order:

  1. Modules first: Call create_module with published=false for each module (modules default to published)
  2. Pages: Call create_page with published=false for each overview page (pages default to published)
  3. Assignments: Call create_assignment for each assignment (unpublished)
  4. Discussions: Call create_discussion_topic for each forum
  5. Module items: Call add_module_item to link each created item to its module

Track progress and report as you go:

Creating modules... 15/15 done
Creating pages... 15/15 done
Creating assignments... 14/14 done
Creating discussions... 14/14 done
Linking items to modules... 58/58 done

If any creation fails, log the error and continue with remaining items.

Show full SKILL.md (238 more words)Show less
5. Report Results
## Build Complete: [Course Name]

### Created:
- 15 modules
- 15 overview pages
- 14 assignments
- 14 discussion topics
- 58 module items linked

### Failed (0):
None

### Next Steps:
- All items created **unpublished** -- publish when ready
- Add content to overview pages
- Set due dates on assignments
- Run `/canvas-course-qc` to verify structure
6. Save as Template (Optional)

After building, offer to save the structure as a reusable template:

Would you like to save this structure as a template for future courses?

If yes, call get_course_structure(target_course) and save the output as a JSON file.

MCP Tools Used

ToolPurpose
list_coursesFind available courses
get_course_structureRead source course for cloning; verify after build
create_moduleCreate each module
create_pageCreate overview/content pages
create_assignmentCreate assignments
create_discussion_topicCreate discussion forums
add_module_itemLink items to modules
update_modulePublish modules when ready

Template Format

Templates are JSON files with this structure:

json
{
  "template_name": "Standard 15-Week Semester",
  "modules": [
    {
      "name_pattern": "Week {n}: {topic}",
      "items": [
        {"type": "SubHeader", "title_pattern": "Week {n} Materials"},
        {"type": "Page", "title_pattern": "Week {n} Overview"},
        {"type": "Assignment", "title_pattern": "HW {n}", "points": 10},
        {"type": "Discussion", "title_pattern": "Week {n} Discussion"}
      ]
    }
  ],
  "special_modules": [
    {"position": 8, "name": "Midterm Review", "items": [{"type": "Page", "title": "Midterm Study Guide"}]},
    {"position": 15, "name": "Final Project", "items": [{"type": "Assignment", "title": "Final Project", "points": 100}]}
  ]
}

Example

User: "Build a 15-week structure for BADM 350 with a weekly overview page, homework, and discussion"

Agent: Generates preview, asks for approval, creates 60+ items.

User: "Clone the structure from CS 101 into CS 102"

Agent: Reads CS 101 structure, generates preview for CS 102, asks approval, creates matching structure.

Notes

  • Modules and pages are unpublished only when published=false is passed (both default to published). create_assignment defaults to unpublished. create_discussion_topic always publishes on creation; if students must not see a discussion yet, schedule it with delayed_post_at instead of creating it now.
  • Content is not copied when cloning -- only structure (module names, item types, organization).
  • To copy content (not just structure) between courses, use create_content_migration (preview + confirmation token) and poll get_content_migration_status; per-page copy via get_page_content + create_page suits a few pages.
  • Run canvas-course-qc after building to verify the structure is complete and consistent.

© vishalsachdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/canvas-course-builder of vishalsachdev/canvas-mcp.

Open the folder on GitHubat commit eeeb479

Compare with similar skills

Canvas Course Builder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Canvas Course Builder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Canvas Course Builder this skillvishalsachdev/canvas-mcp284—~1.7kAutomated safety check: PassMIT
Spec Writergarrytan/gstack136k—~14kAutomated safety check: NotesMIT
Canvasopenclaw/openclaw392k—~263Automated safety check: PassMIT
Canva Designerasgeirtj/system_prompts_leaks69k—~2.1kAutomated safety check: PassCC0-1.0
Scaffoldingdotnet/efcore15k—~165Automated safety check: PassMIT
Scaffold Elementremotion-dev/remotion62k—~202Automated safety check: PassCustom licence

Similar skills

  • Spec Writer

    garrytan/gstack

    Converts a vague idea into a precise, executable spec in five phases, files it as an issue and can start an agent on it in a fresh worktree.

    136k GitHub stars~14k tokensUpdated today
    DevelopmentAuto-check: notes
  • Canvas

    openclaw/openclaw

    Present hosted widget documents on a connected macOS panel and control panel visibility or navigation.

    392k GitHub stars~263 tokensUpdated today
    Auto-check passed
  • Canva Designer

    asgeirtj/system_prompts_leaks

    Creates and edits Canva designs, generates images and works with brand kits through the canva CLI and Canva's official MCP server, from decks to social posts.

    69k GitHub stars~2.1k tokensUpdated today
    Media & CreativeAuto-check passed
  • Scaffolding

    dotnet/efcore

    Official

    Implementation details for EF Core scaffolding (reverse engineering).

    15k GitHub stars~165 tokensUpdated today
    SecurityAuto-check passed
  • Scaffold Element

    remotion-dev/remotion

    Official

    Scaffold a new Remotion Element for development in the docs Remotion Studio.

    62k GitHub stars~202 tokensUpdated today
    Media & CreativeAuto-check passed
  • Argument Structure Scaffold Generator

    GarethManning/education-agent-skills

    Generate argument structure scaffolds using Toulmin, PEEL, or CER frameworks for a specific claim or question.

    835 GitHub stars~5.4k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from vishalsachdev/canvas-mcp

All 8 skills in this repo
  • Canvas Accessibility Auditor

    vishalsachdev/canvas-mcp

    Accessibility audit and remediation for Canvas LMS courses. An agent skill from vishalsachdev/canvas-mcp.

    284 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Canvas Course Qc

    vishalsachdev/canvas-mcp

    Learning designer quality check for Canvas LMS courses. An agent skill from vishalsachdev/canvas-mcp.

    284 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Canvas Discussion Facilitator

    vishalsachdev/canvas-mcp

    Discussion forum facilitator for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.

    284 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Canvas Morning Check

    vishalsachdev/canvas-mcp

    Educator morning course health check for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.

    284 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Canvas Peer Review Manager

    vishalsachdev/canvas-mcp

    Educator peer review management for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.

    284 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Canvas Week Plan

    vishalsachdev/canvas-mcp

    Student weekly assignment planner for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.

    284 GitHub stars~1.2k tokensUpdated today
    Auto-check passed

Questions about Canvas Course Builder

What does Canvas Course Builder do?

Scaffold complete Canvas LMS course structures from specs, templates, or existing courses. Canvas Course Builder is an agent skill from vishalsachdev/canvas-mcp. Scaffold complete Canvas LMS course structures from specs, templates, or existing courses.

When should I use Canvas Course Builder?

Canvas Course Builder fits situations like: asked to build a course; scaffold modules; create course structure; set up a new course.

How do I install Canvas Course Builder in Claude Code?

Run `npx skills add vishalsachdev/canvas-mcp --skill canvas-course-builder -a claude-code`. Or copy the skill folder (skills/canvas-course-builder in vishalsachdev/canvas-mcp) into .claude/skills/canvas-course-builder in your project. Claude Code loads it when a task matches its description.

How do I install Canvas Course Builder in Codex?

Run `npx skills add vishalsachdev/canvas-mcp --skill canvas-course-builder -a codex`. Or copy the skill folder (skills/canvas-course-builder in vishalsachdev/canvas-mcp) into .agents/skills/canvas-course-builder in your project. Codex loads it when a task matches its description.

Can I use Canvas Course Builder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vishalsachdev/canvas-mcp --skill canvas-course-builder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/canvas-course-builder, .gemini/skills/canvas-course-builder, .github/skills/canvas-course-builder and .opencode/skills/canvas-course-builder in your project.

What does Canvas Course Builder need to run?

SKILL.md names no scripts, command-line tools or credentials: Canvas Course Builder is instructions for the agent only.

Does Canvas Course Builder access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Canvas Course Builder safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Canvas Course Builder use?

Canvas Course Builder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Canvas Course Builder use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Canvas Course Builder?

Skills that share tags, products or a category with Canvas Course Builder: Spec Writer (garrytan/gstack, 136k stars), Canvas (openclaw/openclaw, 392k stars), Canva Designer (asgeirtj/system_prompts_leaks, 69k stars) and Scaffolding (dotnet/efcore, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Canvas Course Builder?

vishalsachdev (a GitHub user) maintains it in vishalsachdev/canvas-mcp, which has 284 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.

Source: vishalsachdev/canvas-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.