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. |
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_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
- 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/DMontgomery40/mcp-canvas-lms'
If you have feedback or need assistance with the MCP directory API, please join our Discord server