This document provides a comprehensive overview of all tools available in the Canvas MCP Server, organized by audience and functionality.
These tools provide students with personal academic tracking and organization capabilities using Canvas API’s “self” endpoints.
get_my_upcoming_assignmentsGet 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_itemsGet 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_statusCheck your submission status across assignments.
Parameters:
course_identifier (optional): Specific course code or ID to filterExample:
"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.
get_my_course_gradesView 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.
get_my_peer_reviews_todoList peer reviews you need to complete.
Parameters:
course_identifier (optional): Filter by specific courseExample:
"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.
These tools provide instructors and TAs with course management, grading, analytics, and communication capabilities.
list_assignmentsList all assignments for a course.
Parameters:
course_identifier: Course code (e.g., “badm_350_120251_246794”) or IDExample:
"Show me all assignments in BADM 350"
"List assignments for my Spring 2025 course"
get_assignment_detailsGet detailed information about a specific assignment.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"Show me details for Assignment 3"
list_submissionsView student submissions for an assignment.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"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_analyticsGet comprehensive performance analytics for an assignment.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"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.
create_rubricCreate a new grading rubric.
Parameters:
course_identifier: Course code or IDtitle: Rubric titlecriteria: JSON array of rubric criteriaExample:
"Create a rubric for the final project with criteria for content, organization, and citations"
get_rubric_detailsView rubric criteria and point values.
Parameters:
course_identifier: Course code or IDrubric_id: Rubric IDExample:
"Show me the rubric for Assignment 4"
associate_rubricLink a rubric to an assignment.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDrubric_id: Rubric IDuse_for_grading: Boolean (true/false)grade_submission_with_rubricGrade a student submission using a rubric.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDuser_id: Student IDrubric_assessment: JSON with criterion ratingsbulk_grade_submissionsGrade multiple submissions efficiently with concurrent processing. Most efficient way for bulk grading!
IMPORTANT: This tool provides significant token savings by processing submissions in batches without loading all data into context.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDgrades: Dictionary mapping user IDs to grade information
{
"user_id": {
"rubric_assessment": {...}, // Optional: rubric-based grading
"grade": <number>, // Optional: simple grade
"comment": "<string>" // Optional: feedback comment
}
}
dry_run (optional): If true, analyze but don’t submit grades (default: false)max_concurrent (optional): Maximum concurrent grading operations (default: 5)rate_limit_delay (optional): Delay between batches in seconds (default: 1.0)Example Usage - Rubric Grading:
"Grade these 3 students using the rubric:
- User 9824: 100 points for criterion _8027 with comment 'Excellent work!'
- User 9825: 75 points for criterion _8027 with comment 'Good work'
- User 9826: 50 points for criterion _8027 with comment 'Needs improvement'"
Example Usage - Simple Grading:
"Grade these submissions with simple points:
- User 9824: 100 points, comment 'Perfect!'
- User 9825: 85 points, comment 'Very good'"
Returns: Summary of grading operation including total submissions, successfully graded, failed attempts, and any error details.
Notes:
dry_run=true to preview grades before applyingexecute_typescript tool with bulkGrade from the code execution APIget_student_analyticsMulti-dimensional student performance analysis.
Parameters:
course_identifier: Course code or IDstudent_id (optional): Specific student or all studentsExample:
"Show me student performance in BADM 350"
"Analyze Student_abc123's progress"
Returns: Assignment completion, grade trends, participation, and risk indicators.
list_peer_reviewsList all peer review assignments.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"Show me peer review assignments for Assignment 2"
get_peer_review_completion_analyticsAnalyze peer review completion rates.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"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_commentsExtract actual peer review comment text and metadata.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"Show me peer review comments for Assignment 3"
analyze_peer_review_qualityComprehensive quality analysis of peer review comments.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"Analyze the quality of peer reviews for Assignment 2"
Returns: Quality metrics including length, specificity, constructiveness, and patterns.
identify_problematic_peer_reviewsFlag low-quality peer reviews needing attention.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDExample:
"Which peer reviews need improvement?"
assign_peer_reviewManually assign a peer review.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDreviewer_id: Student who will reviewreviewee_id: Student being reviewedsend_conversationSend messages to students.
Parameters:
course_identifier: Course code or IDrecipients: User IDs (array)subject: Message subjectbody: Message contentExample:
"Message students who haven't submitted Assignment 3"
send_peer_review_remindersAutomated peer review reminder workflow.
Parameters:
course_identifier: Course code or IDassignment_id: Assignment IDuser_ids: Students to remind (array)custom_message (optional): Custom message templateExample:
"Send reminders to students who haven't completed peer reviews"
create_announcementPost course announcements.
Parameters:
course_identifier: Course code or IDtitle: Announcement titlemessage: Announcement contentExample:
"Create an announcement about tomorrow's exam"
create_discussion_topicStart a new discussion forum.
Parameters:
course_identifier: Course code or IDtitle: Discussion titlemessage: Initial post contentreply_to_discussion_entryRespond to student discussion posts.
Parameters:
course_identifier: Course code or IDtopic_id: Discussion topic IDentry_id: Specific post IDmessage: Your responseExample:
"Reply to John's post in the Week 5 discussion"
These tools work for both audiences, providing access to course content and information.
list_coursesList all enrolled courses.
Example:
"Show me my courses"
"What courses am I enrolled in?"
get_course_detailsGet detailed course information including syllabus.
Parameters:
course_identifier: Course code or IDExample:
"Show me the syllabus for BADM 350"
"What's the course description for my Marketing class?"
list_pagesList pages in a course.
Parameters:
course_identifier: Course code or IDsort (optional): Sort by title, created_at, or updated_atpublished (optional): Filter by published statusExample:
"Show me all pages in BADM 350"
"List published pages for my course"
get_page_contentRead the full content of a course page.
Parameters:
course_identifier: Course code or IDpage_url_or_id: Page URL or IDExample:
"Show me the Week 1 Overview page"
"Read the Course Policies page for HIST 202"
get_page_detailsGet detailed page metadata.
Parameters:
course_identifier: Course code or IDpage_url_or_id: Page URL or IDlist_announcementsView course announcements.
Parameters:
course_identifier: Course code or IDExample:
"Show me recent announcements"
"What are the latest announcements in BADM 350?"
list_discussion_topicsView discussion forums in a course.
Parameters:
course_identifier: Course code or IDonly_announcements (optional): Filter for announcements onlyExample:
"What discussions are active in my course?"
"Show me discussion topics for ENGL 101"
get_discussion_topic_detailsGet details about a specific discussion.
Parameters:
course_identifier: Course code or IDtopic_id: Discussion topic IDlist_discussion_entriesView posts in a discussion.
Parameters:
course_identifier: Course code or IDtopic_id: Discussion topic IDExample:
"Show me posts in the Week 5 discussion"
get_discussion_entry_detailsRead a specific discussion post.
Parameters:
course_identifier: Course code or IDtopic_id: Discussion topic IDentry_id: Post IDExample:
"Show me the first post in the introduction discussion"
post_discussion_entryCreate a new discussion post.
Parameters:
course_identifier: Course code or IDtopic_id: Discussion topic IDmessage: Post contentThese tools help developers discover, explore, and execute Canvas code execution API operations.
search_canvas_toolsSearch and discover available Canvas code execution API operations by keyword.
Parameters:
query (optional): Search term to filter tools. Empty string returns all tools. Examples: “grading”, “assignment”, “discussion”, “bulk”detail_level (optional): How much information to return. Default: “signatures”
"names": Just file paths (most efficient for quick lookups)"signatures": File paths + function signatures + descriptions (recommended)"full": Complete file contents (use sparingly for detailed inspection)Example:
"Search for grading tools in the code API"
"What bulk operations are available?"
"Show me all code API tools"
"Find discussion-related operations"
Returns: JSON with query, detail_level, count, and array of matching tools.
Usage Tips:
"") to list all available tools"signatures" detail level for most tasks (default)"names" when you just need a quick overview"full" only when you need to see complete implementation detailsExample Direct Usage:
// Search for grading-related tools with signatures
search_canvas_tools("grading", "signatures")
// List all available tools (names only)
search_canvas_tools("", "names")
// Get full implementation details for bulk operations
search_canvas_tools("bulk", "full")
list_code_api_modulesList all available TypeScript modules in the code execution API.
Parameters: None
Example:
"What TypeScript modules are available?"
"List all code API modules"
"Show me the available code execution operations"
Returns: Formatted list of all TypeScript files organized by category (grading, assignments, courses, discussions, etc.) with import paths.
Usage Tips:
execute_typescriptexecute_typescriptExecute TypeScript code in a Node.js environment with access to Canvas API credentials.
IMPORTANT: This tool enables 99.7% token savings for bulk operations by executing code locally rather than loading all data into Claude’s context!
Parameters:
code: TypeScript code to execute. Can import from ‘./canvas/*’ modules.timeout (optional): Maximum execution time in seconds (default: 120)Example:
"Grade all 90 Jupyter notebook submissions using bulk grading"
"Send reminders to all students who haven't submitted"
"Analyze discussion participation across all students"
Example Code:
import { bulkGrade } from './canvas/grading/bulkGrade.js';
await bulkGrade({
courseIdentifier: "60366",
assignmentId: "123",
gradingFunction: (submission) => {
// This runs locally - no token cost!
const notebook = submission.attachments?.find(
f => f.filename.endsWith('.ipynb')
);
if (!notebook) return null;
return {
points: 100,
rubricAssessment: { "_8027": { points: 100 } },
comment: "Great work!"
};
}
});
Returns: Combined stdout and stderr from execution, or error message if failed.
Security:
Token Efficiency:
Usage Tips:
search_canvas_tools or list_code_api_modules to discover available operationsENABLE_DATA_ANONYMIZATION=true in .env for FERPA compliancelocal_maps/ folder secure - never commit to version control