Provides read-only access to Canvas LMS with 45 tools covering courses, assignments, submissions, modules, files, discussions, announcements, quizzes, rubrics, grades, planner items, groups, bookmarks, inbox messages, and notifications for student workflows.
Enables integration with Google NotebookLM through browser automation, allowing users to authenticate, list notebooks, upload course content as sources, and prepare study materials for AI-powered organization.
Canvas MCP Server
A Model Context Protocol (MCP) server providing read-only access to Canvas LMS for student workflows, with optional NotebookLM integration for study material organization.
Features
45 Tools covering Canvas LMS functionality
Read-only access - Safe for student use
Smart caching - Reduces API calls
Rate limiting - Respects Canvas API limits (~3000 req/hour)
NotebookLM integration - Upload course content for AI-powered study
Quick Start
1. Install Dependencies
2. Configure Environment
Required settings:
CANVAS_BASE_URL- Your Canvas instance URLCANVAS_API_TOKEN- Generate at Canvas > Account > Settings > New Access Token
3. Add to Claude Code
Add to your Claude Code MCP configuration (~/.claude/claude_desktop_config.json):
4. (Optional) Setup NotebookLM
For NotebookLM integration:
Then use notebooklm_auth_setup tool for interactive Google login.
Available Tools (45 total)
Phase 1: Core (5 tools)
Tool | Description |
| List enrolled courses |
| Get course details |
| List assignments (with bucket filtering) |
| Get assignment details |
| Get your submission for an assignment |
Phase 2: Content (16 tools)
Tool | Description |
| List course modules |
| Get module details |
| List items in a module |
| Get module completion progress |
| List files in a folder |
| Get file metadata |
| Search for files |
| List folders |
| Download file content |
| List discussions |
| Get discussion with replies |
| List announcements |
| Get planner items |
| Get todo items |
| Get upcoming events |
| Get missing assignments |
Phase 3: Assessment (8 tools)
Tool | Description |
| List rubrics in a course |
| Get rubric details |
| Get rubric for an assignment |
| List quizzes |
| Get quiz details |
| Get your quiz submission |
| List your groups |
| List group members |
Phase 4: User (11 tools)
Tool | Description |
| List your bookmarks |
| Create a bookmark |
| Delete a bookmark |
| List inbox messages |
| Get conversation details |
| Get unread message count |
| List notifications |
| Comprehensive dashboard view |
| Get your profile |
| Get grades across courses |
| View/clear cache |
Phase 5: NotebookLM (5 tools)
Tool | Description |
| Check Google auth status |
| Interactive Google login |
| List NotebookLM notebooks |
| Upload sources to notebook |
| Convert/split files for upload |
Authentication
Canvas API (Primary)
API Token: Required for all API calls
Generate at: Canvas > Account > Settings > New Access Token
Provides access to your enrolled courses, assignments, grades, etc.
Cookies (Secondary, Optional)
Only needed if file downloads return 403 errors
Export browser cookies using extensions like "Get cookies.txt"
Set
CANVAS_COOKIES_FILEin your environment
NotebookLM (Interactive)
Uses Playwright browser automation (no public API exists)
Run
notebooklm_auth_setuponce to save Google sessionSession persists in
src/python-bridge/state.json
Architecture
Rate Limits
Canvas API allows ~3000 requests per hour. This server implements:
Token bucket rate limiter (0.8 req/sec default)
Smart caching (5-30 min TTL per resource type)
Automatic retry with backoff on 429 responses
License
MIT
This server cannot be installed