Complete guide to connecting and using Canvas LMS API for Whitecliffe courses.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Complete guide to connecting and using Canvas LMS API for Whitecliffe courses.
| Item | Value |
|---|---|
| User ID | 2396 |
| User Name | Mohamed Abdul Latiff (Ariff) |
| Canvas URL | https://learn.mywhitecliffe.com |
| MCP Server | canvas-mcp-sse.ariff.dev |
| Course | ID | Code |
|---|---|---|
| Applied Project | 2366 | IT8107 |
| Cybersecurity Architecture | 2368 | IT8109 |
The Canvas MCP server is already configured and provides 12 tools:
Course Tools:
get_courses - List all enrolled coursesget_modules - Get course modulesAssignment Tools:
get_assignments - List assignments for a courseget_upcoming_assignments - Next 7 days deadlinesGrade Tools:
get_grades - Current grades for a courseget_submissions - Submission detailsDiscussion Tools:
get_discussion_topics - List discussionsget_announcements - Course announcementsQuiz Tools:
get_quizzes - List quizzes# 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()
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 |
|---|---|
/courses | List courses |
/courses/:id/assignments | Course assignments |
/courses/:id/grades | Course grades |
/courses/:id/modules | Course modules |
/users/self/upcoming_events | Upcoming events |
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')
Already configured in mcp-config.json:
{
"mcpServers": {
"canvas-mcp": {
"type": "sse",
"url": "https://canvas-mcp-sse.ariff.dev/sse"
}
}
}
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)"
⚠️ 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
"Unauthorized" errors:
MCP not responding:
Missing courses: