Canvas MCP Server V2.0
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level for the server (e.g., debug). | |
| CANVAS_DOMAIN | Yes | Your Canvas instance domain (e.g., your_school.instructure.com). | |
| MCP_HTTP_HOST | No | Host for streamable-http transport. | 127.0.0.1 |
| MCP_HTTP_PATH | No | URL path for streamable-http transport. | /mcp |
| MCP_HTTP_PORT | No | Port for streamable-http transport. | 3000 |
| MCP_TRANSPORT | No | Transport mode selection: 'stdio' (best for Claude Desktop/Codex/Cursor) or 'streamable-http' (best for local HTTP/containers). | stdio |
| CANVAS_TIMEOUT | No | Timeout duration for Canvas API requests. | |
| CANVAS_API_TOKEN | Yes | Your Canvas API token, generated from Account -> Settings -> Approved Integrations -> + New Access Token. | |
| MCP_HTTP_STATEFUL | No | Whether the HTTP transport should be stateful. | true |
| MCP_HTTP_JSON_RESPONSE | No | Whether the HTTP transport should return JSON responses. | true |
| MCP_HTTP_ALLOWED_ORIGINS | No | Allowed origins for CORS in HTTP transport mode. |
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_health_checkB | Check the health and connectivity of the Canvas API |
| canvas_list_coursesC | List all courses for the current user |
| canvas_get_courseC | Get detailed information about a specific course |
| canvas_create_courseC | Create a new course in Canvas |
| canvas_update_courseC | Update an existing course in Canvas |
| canvas_list_assignmentsC | List assignments for a course |
| canvas_get_assignmentC | Get detailed information about a specific assignment |
| canvas_create_assignmentC | Create a new assignment in a Canvas course |
| canvas_update_assignmentC | Update an existing assignment |
| canvas_list_assignment_groupsC | List assignment groups for a course |
| canvas_get_submissionB | Get submission details for an assignment |
| canvas_submit_assignmentC | Submit work for an assignment |
| canvas_submit_gradeB | Submit a grade for a student's assignment (teacher only) |
| canvas_list_filesC | List files in a course or folder |
| canvas_get_fileC | Get information about a specific file |
| canvas_list_foldersC | List folders in a course |
| canvas_list_pagesC | List pages in a course |
| canvas_get_pageB | Get content of a specific page |
| canvas_list_calendar_eventsC | List calendar events |
| canvas_get_upcoming_assignmentsC | Get upcoming assignment due dates |
| canvas_get_dashboardC | Get user's dashboard information |
| canvas_get_dashboard_cardsB | Get dashboard course cards |
| canvas_get_course_gradesC | Get grades for a course |
| canvas_get_user_gradesB | Get all grades for the current user |
| canvas_get_user_profileB | Get current user's profile |
| canvas_update_user_profileC | Update current user's profile |
| canvas_enroll_userC | Enroll a user in a course |
| canvas_list_modulesC | List all modules in a course |
| canvas_get_moduleC | Get details of a specific module |
| canvas_list_module_itemsC | List all items in a module |
| canvas_get_module_itemB | Get details of a specific module item |
| canvas_mark_module_item_completeC | Mark a module item as complete |
| canvas_list_discussion_topicsC | List all discussion topics in a course |
| canvas_get_discussion_topicC | Get details of a specific discussion topic |
| canvas_post_to_discussionC | Post a message to a discussion topic |
| canvas_list_announcementsC | List all announcements in a course |
| canvas_list_quizzesC | List all quizzes in a course |
| canvas_get_quizC | Get details of a specific quiz |
| canvas_create_quizC | Create a new quiz in a course |
| canvas_start_quiz_attemptC | Start a new quiz attempt |
| canvas_list_rubricsC | List rubrics for a course |
| canvas_get_rubricC | Get details of a specific rubric |
| canvas_list_conversationsB | List user's conversations |
| canvas_get_conversationB | Get details of a specific conversation |
| canvas_create_conversationC | Create a new conversation |
| canvas_list_notificationsB | List user's notifications |
| canvas_get_syllabusC | Get course syllabus |
| canvas_get_accountC | Get account details |
| canvas_list_account_coursesC | List courses for an account |
| canvas_list_account_usersC | List users for an account |
| canvas_create_userC | Create a new user in an account |
| canvas_list_sub_accountsC | List sub-accounts for an account |
| canvas_get_account_reportsC | List available reports for an account |
| canvas_create_account_reportC | Generate a report for an account |
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
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/DMontgomery40/mcp-canvas-lms'
If you have feedback or need assistance with the MCP directory API, please join our Discord server