Skip to main content
Glama

Canvas MCP Server

README.md12.5 kB
# Canvas MCP Tools Documentation This document provides a comprehensive overview of all tools available in the Canvas MCP Server, organized by audience and functionality. ## Table of Contents - [Student Tools](#student-tools) - [Educator Tools](#educator-tools) - [Shared Tools](#shared-tools-both-students--educators) - [Tool Usage Guidelines](#tool-usage-guidelines) --- ## Student Tools These tools provide students with personal academic tracking and organization capabilities using Canvas API's "self" endpoints. ### Personal Organization #### `get_my_upcoming_assignments` Get your upcoming assignments across all enrolled courses. **Parameters:** - `days` (optional): Number of days to look ahead (default: 7) **Example:** ``` "What assignments do I have due this week?" "Show me what's due in the next 3 days" ``` **Returns:** List of assignments due within timeframe, sorted by due date, with submission status. --- #### `get_my_todo_items` Get your Canvas TODO list including assignments, quizzes, and discussions. **Example:** ``` "Show me my Canvas TODO list" "What do I need to do?" ``` **Returns:** All items requiring your attention with due dates and course information. --- #### `get_my_submission_status` Check your submission status across assignments. **Parameters:** - `course_identifier` (optional): Specific course code or ID to filter **Example:** ``` "Have I submitted everything?" "Show me my submission status for BADM 350" "What haven't I turned in yet?" ``` **Returns:** Submitted and missing assignments, with overdue items flagged. --- ### Academic Performance #### `get_my_course_grades` View your current grades across all enrolled courses. **Example:** ``` "What are my current grades?" "Show me how I'm doing in all my courses" ``` **Returns:** Current grade, percentage, and enrollment status for each course. --- ### Peer Review Management #### `get_my_peer_reviews_todo` List peer reviews you need to complete. **Parameters:** - `course_identifier` (optional): Filter by specific course **Example:** ``` "What peer reviews do I need to complete?" "Show me my pending peer reviews for ENGL 101" ``` **Returns:** Incomplete peer reviews with assignment and course information. --- ## Educator Tools These tools provide instructors and TAs with course management, grading, analytics, and communication capabilities. ### Assignment Management #### `list_assignments` List all assignments for a course. **Parameters:** - `course_identifier`: Course code (e.g., "badm_350_120251_246794") or ID **Example:** ``` "Show me all assignments in BADM 350" "List assignments for my Spring 2025 course" ``` --- #### `get_assignment_details` Get detailed information about a specific assignment. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Show me details for Assignment 3" ``` --- #### `list_submissions` View student submissions for an assignment. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Who has submitted Assignment 2 in BADM 350?" "Show me submissions for the latest assignment" ``` **Note:** Student data is anonymized if `ENABLE_DATA_ANONYMIZATION=true` in educator's `.env` file. --- #### `get_assignment_analytics` Get comprehensive performance analytics for an assignment. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Show me analytics for Assignment 3" "What's the submission rate for the final project?" ``` **Returns:** Submission statistics, grade distribution, completion rates, and performance metrics. --- ### Grading & Rubrics #### `create_rubric` Create a new grading rubric. **Parameters:** - `course_identifier`: Course code or ID - `title`: Rubric title - `criteria`: JSON array of rubric criteria **Example:** ``` "Create a rubric for the final project with criteria for content, organization, and citations" ``` --- #### `get_rubric_details` View rubric criteria and point values. **Parameters:** - `course_identifier`: Course code or ID - `rubric_id`: Rubric ID **Example:** ``` "Show me the rubric for Assignment 4" ``` --- #### `associate_rubric` Link a rubric to an assignment. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID - `rubric_id`: Rubric ID - `use_for_grading`: Boolean (true/false) --- #### `grade_submission_with_rubric` Grade a student submission using a rubric. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID - `user_id`: Student ID - `rubric_assessment`: JSON with criterion ratings --- ### Student Analytics #### `get_student_analytics` Multi-dimensional student performance analysis. **Parameters:** - `course_identifier`: Course code or ID - `student_id` (optional): Specific student or all students **Example:** ``` "Show me student performance in BADM 350" "Analyze Student_abc123's progress" ``` **Returns:** Assignment completion, grade trends, participation, and risk indicators. --- ### Peer Review Management #### `list_peer_reviews` List all peer review assignments. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Show me peer review assignments for Assignment 2" ``` --- #### `get_peer_review_completion_analytics` Analyze peer review completion rates. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "How many students completed peer reviews for Assignment 2?" "Show me peer review completion statistics" ``` **Returns:** Completion rates, incomplete reviews, and student-level breakdown. --- #### `get_peer_review_comments` Extract actual peer review comment text and metadata. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Show me peer review comments for Assignment 3" ``` --- #### `analyze_peer_review_quality` Comprehensive quality analysis of peer review comments. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Analyze the quality of peer reviews for Assignment 2" ``` **Returns:** Quality metrics including length, specificity, constructiveness, and patterns. --- #### `identify_problematic_peer_reviews` Flag low-quality peer reviews needing attention. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID **Example:** ``` "Which peer reviews need improvement?" ``` --- #### `assign_peer_review` Manually assign a peer review. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID - `reviewer_id`: Student who will review - `reviewee_id`: Student being reviewed --- ### Communication & Messaging #### `send_conversation` Send messages to students. **Parameters:** - `course_identifier`: Course code or ID - `recipients`: User IDs (array) - `subject`: Message subject - `body`: Message content **Example:** ``` "Message students who haven't submitted Assignment 3" ``` --- #### `send_peer_review_reminders` Automated peer review reminder workflow. **Parameters:** - `course_identifier`: Course code or ID - `assignment_id`: Assignment ID - `user_ids`: Students to remind (array) - `custom_message` (optional): Custom message template **Example:** ``` "Send reminders to students who haven't completed peer reviews" ``` --- #### `create_announcement` Post course announcements. **Parameters:** - `course_identifier`: Course code or ID - `title`: Announcement title - `message`: Announcement content **Example:** ``` "Create an announcement about tomorrow's exam" ``` --- ### Discussion Management #### `create_discussion_topic` Start a new discussion forum. **Parameters:** - `course_identifier`: Course code or ID - `title`: Discussion title - `message`: Initial post content --- #### `reply_to_discussion_entry` Respond to student discussion posts. **Parameters:** - `course_identifier`: Course code or ID - `topic_id`: Discussion topic ID - `entry_id`: Specific post ID - `message`: Your response **Example:** ``` "Reply to John's post in the Week 5 discussion" ``` --- ## Shared Tools (Both Students & Educators) These tools work for both audiences, providing access to course content and information. ### Course Management #### `list_courses` List all enrolled courses. **Example:** ``` "Show me my courses" "What courses am I enrolled in?" ``` --- #### `get_course_details` Get detailed course information including syllabus. **Parameters:** - `course_identifier`: Course code or ID **Example:** ``` "Show me the syllabus for BADM 350" "What's the course description for my Marketing class?" ``` --- ### Content Access #### `list_pages` List pages in a course. **Parameters:** - `course_identifier`: Course code or ID - `sort` (optional): Sort by title, created_at, or updated_at - `published` (optional): Filter by published status **Example:** ``` "Show me all pages in BADM 350" "List published pages for my course" ``` --- #### `get_page_content` Read the full content of a course page. **Parameters:** - `course_identifier`: Course code or ID - `page_url_or_id`: Page URL or ID **Example:** ``` "Show me the Week 1 Overview page" "Read the Course Policies page for HIST 202" ``` --- #### `get_page_details` Get detailed page metadata. **Parameters:** - `course_identifier`: Course code or ID - `page_url_or_id`: Page URL or ID --- ### Announcements #### `list_announcements` View course announcements. **Parameters:** - `course_identifier`: Course code or ID **Example:** ``` "Show me recent announcements" "What are the latest announcements in BADM 350?" ``` --- ### Discussions #### `list_discussion_topics` View discussion forums in a course. **Parameters:** - `course_identifier`: Course code or ID - `only_announcements` (optional): Filter for announcements only **Example:** ``` "What discussions are active in my course?" "Show me discussion topics for ENGL 101" ``` --- #### `get_discussion_topic_details` Get details about a specific discussion. **Parameters:** - `course_identifier`: Course code or ID - `topic_id`: Discussion topic ID --- #### `list_discussion_entries` View posts in a discussion. **Parameters:** - `course_identifier`: Course code or ID - `topic_id`: Discussion topic ID **Example:** ``` "Show me posts in the Week 5 discussion" ``` --- #### `get_discussion_entry_details` Read a specific discussion post. **Parameters:** - `course_identifier`: Course code or ID - `topic_id`: Discussion topic ID - `entry_id`: Post ID **Example:** ``` "Show me the first post in the introduction discussion" ``` --- #### `post_discussion_entry` Create a new discussion post. **Parameters:** - `course_identifier`: Course code or ID - `topic_id`: Discussion topic ID - `message`: Post content --- ## Tool Usage Guidelines ### For Students 1. **Be specific**: Use course codes when possible (e.g., "BADM 350" instead of "my business class") 2. **Combine queries**: "Show me my grades and what's due this week" 3. **Check regularly**: Use for daily planning and weekly organization 4. **No setup needed**: Student tools access only your data - no special configuration required ### For Educators 1. **Enable anonymization**: Set `ENABLE_DATA_ANONYMIZATION=true` in `.env` for FERPA compliance 2. **Use course codes**: Be specific about which course (e.g., "badm_350_120251_246794") 3. **Leverage automation**: Use messaging and reminder tools for routine communications 4. **Combine analytics**: Request multiple analytics in one query for comprehensive insights 5. **Protect mapping files**: Keep `local_maps/` folder secure - never commit to version control ### General Best Practices - **Ask follow-up questions**: Claude remembers context within a conversation - **Request summaries**: "Summarize..." for quick overviews - **Be conversational**: Natural language works better than rigid commands - **Check tool output**: Review the data Claude retrieves before taking action ## Need Help? - **Student Guide**: [STUDENT_GUIDE.md](../docs/STUDENT_GUIDE.md) - **Educator Guide**: [EDUCATOR_GUIDE.md](../docs/EDUCATOR_GUIDE.md) - **Main README**: [README.md](../README.md) - **Development Guide**: [CLAUDE.md](../docs/CLAUDE.md) - **GitHub Issues**: [Report issues](https://github.com/vishalsachdev/canvas-mcp/issues)

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/vishalsachdev/canvas-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server