install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/canvas-api" ~/.claude/skills/majiayu000-claude-skill-registry-canvas-api && rm -rf "$T"
manifest:
skills/data/canvas-api/SKILL.mdsource content
Canvas API Connection Skill
Complete guide to connecting and using Canvas LMS API for Whitecliffe courses.
Quick Reference
| Item | Value |
|---|---|
| User ID | 2396 |
| User Name | Mohamed Abdul Latiff (Ariff) |
| Canvas URL | https://learn.mywhitecliffe.com |
| MCP Server | canvas-mcp-sse.ariff.dev |
Current Courses (2025)
| Course | ID | Code |
|---|---|---|
| Applied Project | 2366 | IT8107 |
| Cybersecurity Architecture | 2368 | IT8109 |
Connection Methods
Method 1: Canvas MCP (Recommended)
The Canvas MCP server is already configured and provides 12 tools:
Course Tools:
- List all enrolled coursesget_courses
- Get course modulesget_modules
Assignment Tools:
- List assignments for a courseget_assignments
- Next 7 days deadlinesget_upcoming_assignments
Grade Tools:
- Current grades for a courseget_grades
- Submission detailsget_submissions
Discussion Tools:
- List discussionsget_discussion_topics
- Course announcementsget_announcements
Quiz Tools:
- List quizzesget_quizzes
Example Usage
# Get all courses mcp__canvas-mcp__get_courses() # Get assignments for IT8107 mcp__canvas-mcp__get_assignments(course_id=2366) # Check grades mcp__canvas-mcp__get_grades(course_id=2366) # Get upcoming deadlines mcp__canvas-mcp__get_upcoming_assignments()
Method 2: Direct API
For custom integrations or when MCP is unavailable:
Base URL:
https://learn.mywhitecliffe.com/api/v1
Authentication:
# Store token securely (never commit!) export CANVAS_TOKEN="your-token-here" # API request curl -H "Authorization: Bearer $CANVAS_TOKEN" \ "https://learn.mywhitecliffe.com/api/v1/courses"
Common Endpoints:
| Endpoint | Description |
|---|---|
| List courses |
| Course assignments |
| Course grades |
| Course modules |
| Upcoming events |
Method 3: Python SDK
from canvasapi import Canvas API_URL = "https://learn.mywhitecliffe.com" API_KEY = os.environ.get("CANVAS_TOKEN") canvas = Canvas(API_URL, API_KEY) user = canvas.get_current_user() courses = user.get_courses(enrollment_state='active')
Setup Instructions
Adding Canvas MCP to Claude
Already configured in
mcp-config.json:
{ "mcpServers": { "canvas-mcp": { "type": "sse", "url": "https://canvas-mcp-sse.ariff.dev/sse" } } }
Getting API Token
- Log in to https://learn.mywhitecliffe.com
- Go to Account → Settings
- Scroll to "Approved Integrations"
- Click "+ New Access Token"
- Set expiry (recommended: end of semester)
- Copy token immediately (shown only once)
Storing Token Securely
macOS Keychain:
security add-generic-password -a "$USER" -s "canvas-api" -w "YOUR_TOKEN"
Environment variable:
# Add to ~/.zshrc export CANVAS_TOKEN="$(security find-generic-password -a "$USER" -s "canvas-api" -w)"
Important Notes
⚠️ Always verify with MCP tools - Don't assume course/assignment details
⚠️ Token security - Never commit tokens to git
⚠️ Rate limits - Canvas has API rate limits, batch requests when possible
⚠️ Course IDs change - Each semester has new course IDs
Troubleshooting
"Unauthorized" errors:
- Token expired - generate new one
- Token revoked - check Canvas settings
MCP not responding:
- Check https://canvas-mcp-sse.ariff.dev/health
- Verify mcp-config.json syntax
Missing courses:
- Check enrollment status
- Some courses may be unpublished