Canvas MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_BASE_URL | Yes | Your Canvas instance URL (e.g., https://your-school.instructure.com) | |
| CANVAS_API_TOKEN | Yes | Canvas API token (generate at Canvas > Account > Settings > New Access Token) | |
| CANVAS_COOKIES_FILE | No | Optional. Path to cookies file (only needed if file downloads return 403 errors). Export browser cookies using extensions like 'Get cookies.txt' |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_course_listA | List all courses for the current user. Returns active courses by default. Use this to:
|
| canvas_course_getB | Get detailed information about a specific course. Returns:
|
| canvas_assignment_listA | List assignments in a course with optional filtering. Bucket filters:
Use this to:
|
| canvas_assignment_getC | Get detailed information about a specific assignment. Returns:
|
| canvas_get_my_submissionC | Get your submission for a specific assignment. Returns:
|
| canvas_module_listA | List all modules in a course with their items and completion status. Modules organize course content into logical sections. Each module can contain:
Use this to:
|
| canvas_module_getB | Get detailed information about a specific module. Returns:
|
| canvas_module_itemsA | List all items within a specific module. Returns detailed information about each item:
|
| canvas_module_progressC | Get your progress through course modules. Returns:
|
| canvas_file_listA | List all files in a course. Returns:
Use this to:
|
| canvas_file_getC | Get detailed information about a specific file. Returns:
|
| canvas_file_searchC | Search for files in a course by name. Returns files matching the search term. Useful for finding specific documents. |
| canvas_folder_listB | List all folders in a course. Returns folder hierarchy:
Use this to navigate the file structure. |
| canvas_file_downloadA | Download a file from Canvas. NOTE: Requires browser cookies to be configured. Canvas blocks file downloads with API tokens only. Returns:
|
| canvas_discussion_listA | List all discussion topics in a course. Returns:
Use this to:
|
| canvas_discussion_getB | Get a specific discussion with all replies. Returns:
Use this to read and understand a discussion. |
| canvas_announcement_listB | List announcements across courses. Returns:
Use this to stay updated on course announcements. |
| canvas_planner_itemsA | Get planner items - your upcoming assignments, quizzes, discussions, and events. Returns:
This is the best tool for:
|
| canvas_todo_listB | Get your TODO list items that need attention. Returns items needing action:
Use this for a quick view of what needs immediate attention. |
| canvas_upcoming_eventsB | Get upcoming calendar events. Returns:
Different from planner in that it shows calendar-based view. |
| canvas_missing_submissionsB | Get all missing submissions across courses. Returns:
Critical for finding overdue work! |
| canvas_rubric_listA | List all rubrics in a course. Rubrics define grading criteria for assignments. Returns:
Use this to:
|
| canvas_rubric_getB | Get detailed rubric with all criteria and ratings. Returns:
Essential for understanding how work will be graded. |
| canvas_rubric_for_assignmentA | Get the rubric attached to a specific assignment. Directly retrieves the grading criteria for an assignment. More convenient than finding rubric ID separately. |
| canvas_quiz_listA | List all quizzes in a course. Returns:
Use this to:
|
| canvas_quiz_getA | Get detailed information about a specific quiz. Returns:
Note: Cannot retrieve actual quiz questions via API. |
| canvas_quiz_submissionC | Get your submission/attempt for a quiz. Returns:
Use to check your quiz results. |
| canvas_group_listA | List all groups you are a member of. Returns:
Groups are used for:
|
| canvas_group_membersB | List members of a specific group. Returns:
Use to see who is in your group for collaboration. |
| canvas_bookmark_listA | List all your Canvas bookmarks. Bookmarks provide quick access to frequently used pages. Returns:
|
| canvas_bookmark_createB | Create a new bookmark. Add a quick-access link to any Canvas page. Requires:
|
| canvas_bookmark_deleteC | Delete a bookmark. Remove a bookmark from your list. |
| canvas_inbox_listA | List your Canvas inbox conversations. Returns:
Use to check messages from instructors and classmates. |
| canvas_inbox_getA | Get a specific conversation with all messages. Returns:
|
| canvas_inbox_unread_countA | Get count of unread messages. Quick check for new messages without loading full inbox. |
| canvas_notification_listB | List account notifications/announcements. Returns system-wide announcements from your institution:
|
| canvas_dashboardB | Get a comprehensive dashboard view of your Canvas activity. Aggregates:
This is the best starting point for a study session. |
| canvas_profileB | Get your Canvas user profile. Returns:
|
| canvas_grades_overviewB | Get an overview of your grades across all courses. Returns:
|
| canvas_cache_statusB | Get cache status and statistics. Shows:
|
| notebooklm_auth_checkA | Check NotebookLM authentication status. Returns whether a valid Google authentication session exists. If not authenticated, you'll need to run notebooklm_auth_setup. |
| notebooklm_auth_setupA | Setup NotebookLM authentication. IMPORTANT: This requires manual interaction!
This only needs to be done once (session persists). |
| notebooklm_list_notebooksA | List all notebooks in NotebookLM. Requires authentication (run notebooklm_auth_setup first if needed). Returns a list of notebook titles. |
| notebooklm_upload_sourcesA | Upload sources to a NotebookLM notebook. Uploads website URLs or files to a specified notebook. Creates the notebook if it doesn't exist. Source types:
Example sources: [ {"type": "website", "value": "https://example.com/article"}, {"type": "file", "value": "/path/to/document.pdf"} ] Limits: ~500KB per source, 50-300 sources per notebook. |
| notebooklm_prepare_contentA | Prepare content for NotebookLM upload. Converts and splits content to meet NotebookLM requirements:
Returns paths to prepared files ready for upload. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Shigakuresama/canvas-mcp-developer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server