canvas-mcp

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

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:

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:

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:

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:

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:

Example:

"Show me details for Assignment 3"

list_submissions

View student submissions for an assignment.

Parameters:

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:

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:

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:

Example:

"Show me the rubric for Assignment 4"

associate_rubric

Link a rubric to an assignment.

Parameters:


grade_submission_with_rubric

Grade a student submission using a rubric.

Parameters:


bulk_grade_submissions

Grade 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:

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:


Student Analytics

get_student_analytics

Multi-dimensional student performance analysis.

Parameters:

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:

Example:

"Show me peer review assignments for Assignment 2"

get_peer_review_completion_analytics

Analyze peer review completion rates.

Parameters:

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:

Example:

"Show me peer review comments for Assignment 3"

analyze_peer_review_quality

Comprehensive quality analysis of peer review comments.

Parameters:

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:

Example:

"Which peer reviews need improvement?"

assign_peer_review

Manually assign a peer review.

Parameters:


Communication & Messaging

send_conversation

Send messages to students.

Parameters:

Example:

"Message students who haven't submitted Assignment 3"

send_peer_review_reminders

Automated peer review reminder workflow.

Parameters:

Example:

"Send reminders to students who haven't completed peer reviews"

create_announcement

Post course announcements.

Parameters:

Example:

"Create an announcement about tomorrow's exam"

Discussion Management

create_discussion_topic

Start a new discussion forum.

Parameters:


reply_to_discussion_entry

Respond to student discussion posts.

Parameters:

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:

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:

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:

Example:

"Show me the Week 1 Overview page"
"Read the Course Policies page for HIST 202"

get_page_details

Get detailed page metadata.

Parameters:


Announcements

list_announcements

View course announcements.

Parameters:

Example:

"Show me recent announcements"
"What are the latest announcements in BADM 350?"

Discussions

list_discussion_topics

View discussion forums in a course.

Parameters:

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:


list_discussion_entries

View posts in a discussion.

Parameters:

Example:

"Show me posts in the Week 5 discussion"

get_discussion_entry_details

Read a specific discussion post.

Parameters:

Example:

"Show me the first post in the introduction discussion"

post_discussion_entry

Create a new discussion post.

Parameters:


Developer Tools

These tools help developers discover, explore, and execute Canvas code execution API operations.

Tool Discovery

search_canvas_tools

Search and discover available Canvas code execution API operations by keyword.

Parameters:

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:

Example 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_modules

List 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:


Code Execution

execute_typescript

Execute 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:

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:


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

Need Help?