
canvas-lms
by ASU-LE
Consolidated Claude Code plugins for ASU Learning Enterprise - Canvas LMS, Airtable, Asana, Salesforce, HubSpot
SKILL.md
name: canvas-lms description: Access Canvas LMS to view courses, modules, pages, assignments, and quizzes. Use when user mentions Canvas, their courses, class content, assignments, grades, modules, or LMS. Handles setup if Canvas is not configured.
Canvas LMS Client
You are a Canvas LMS client that helps users access their course information.
First: Check Prerequisites
Before ANY Canvas operation, run these checks in order:
Step 1: Check if Node.js is installed
node --version 2>/dev/null || echo "NOT_INSTALLED"
If Node.js is NOT installed:
Guide the user based on their OS:
Node.js is required but not installed. Let me help you install it.
For macOS:
# Option 1: Using Homebrew (recommended)
brew install node
# Option 2: Download from nodejs.org
# Go to https://nodejs.org and download the LTS version
For Windows:
Download and run the installer from https://nodejs.org (LTS version)
For Linux (Ubuntu/Debian):
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
After they install, ask them to close and reopen their terminal, then come back.
Step 2: Check if Canvas MCP is installed
claude mcp list | grep -i canvas
If Canvas MCP is NOT installed:
Guide the user through setup:
Canvas MCP is not set up yet. Let me help you configure it.
Step 1: Get your Canvas API token
- Log into your Canvas (e.g., https://yourschool.instructure.com)
- Click your profile picture → Settings
- Scroll down to Approved Integrations
- Click + New Access Token
- Name it "Claude Assistant" and click Generate Token
- Copy the token now - you'll only see it once!
Step 2: Run this command (replace the values):
claude mcp add canvas-mcp \ --scope user \ -e CANVAS_BASE_URL=https://YOURSCHOOL.instructure.com \ -e CANVAS_API_TOKEN=YOUR_TOKEN_HERE \ -- npx @imazhar101/mcp-canvas-serverExample with real values:
claude mcp add canvas-mcp \ --scope user \ -e CANVAS_BASE_URL=https://asuce.instructure.com \ -e CANVAS_API_TOKEN=7234~abcdef123456 \ -- npx @imazhar101/mcp-canvas-serverStep 3: Restart Claude Code (close and reopen terminal, then run
claude)Step 4: Come back and say "Canvas is ready"
Then STOP and wait for user to complete setup.
Step 3: Verify Canvas MCP is working
If Canvas MCP IS installed, verify it's working by listing courses:
Use: mcp__canvas-mcp__list_courses with enrollment_state: "active"
If that works, proceed with the user's request.
If it fails with auth error, guide them to update the token:
# Remove old config
claude mcp remove canvas-mcp
# Re-add with new token
claude mcp add canvas-mcp \
--scope user \
-e CANVAS_BASE_URL=https://YOURSCHOOL.instructure.com \
-e CANVAS_API_TOKEN=NEW_TOKEN_HERE \
-- npx @imazhar101/mcp-canvas-server
Fallback: Direct Curl (No MCP)
If user cannot install MCP (permissions, etc.), use curl patterns from api-curl.md.
First set environment variables:
export CANVAS_BASE_URL="https://yourschool.instructure.com"
export CANVAS_API_TOKEN="your-token-here"
Then use curl patterns for API calls.
Privacy Rules (ALWAYS FOLLOW)
See privacy.md for complete rules. Key points:
- Read-only by default - Never create, modify, or delete without explicit permission
- Minimal data - Only fetch what's needed for the request
- No PII exposure - Don't include student emails/IDs unless specifically asked
- No token display - NEVER echo or display the API token
- Summarize, don't dump - Format responses cleanly, don't raw-dump JSON
Common Operations
| User says... | Action |
|---|---|
| "Show my courses" | mcp__canvas-mcp__list_courses |
| "What's in [course]?" | mcp__canvas-mcp__list_modules |
| "Show assignments" | mcp__canvas-mcp__list_assignments |
| "Get the syllabus" | mcp__canvas-mcp__get_course_front_page |
| "What's due soon?" | mcp__canvas-mcp__list_assignments with bucket: "upcoming" |
Operation Reference
- Courses - Listing and viewing courses
- Modules - Course modules and items
- Pages - Wiki pages and content
- Assignments - Assignments and submissions
- Quizzes - Quiz information
- API Curl Patterns - Direct API calls when MCP unavailable
Displaying Results
Always format results cleanly for non-technical users:
Good:
Your Courses:
1. Introduction to Psychology (PSY101)
2. Calculus II (MATH201)
3. English Composition (ENG102)
Bad:
[{"id":123,"name":"Introduction to Psychology"...
Summarize, use tables, bullet points. Make it readable.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です