| list_coursesC | List courses for the authenticated user. |
| get_course_detailsB | Get detailed information about a specific course. Args:
course_identifier: Course code or Canvas ID
|
| get_course_content_overviewA | Get a comprehensive overview of course content including pages, modules, and syllabus. Args:
course_identifier: Course code or Canvas ID
include_pages: Include pages information (default: True)
include_modules: Include modules and their items (default: True)
include_syllabus: Include syllabus content (default: True)
|
| list_pagesA | List pages for a specific course. Args:
course_identifier: Course code or Canvas ID
sort: Sort by 'title', 'created_at', or 'updated_at'
order: 'asc' or 'desc'
search_term: Filter pages containing this term
published: Filter by published status (None for all)
|
| get_page_contentA | Get the full content body of a specific page. Args:
course_identifier: Course code or Canvas ID
page_url_or_id: Page URL slug or page ID
|
| get_page_detailsA | Get detailed information about a specific page. Args:
course_identifier: Course code or Canvas ID
page_url_or_id: Page URL slug or page ID
|
| get_front_pageA | Get the front page content for a course. Args:
course_identifier: Course code or Canvas ID
|
| list_module_itemsA | List items within a specific module, including pages. Args:
course_identifier: Course code or Canvas ID
module_id: The module ID
include_content_details: Include additional content details (default: True)
|
| list_assignmentsA | List assignments for a specific course. Args:
course_identifier: Course code or Canvas ID
|
| get_assignment_detailsB | Get detailed information about a specific assignment. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
|
| list_discussion_topicsB | List discussion topics for a specific course. Args:
course_identifier: Course code or Canvas ID
include_announcements: Include announcements in the list (default: False)
|
| get_discussion_topic_detailsA | Get detailed information about a specific discussion topic. Args:
course_identifier: Course code or Canvas ID
topic_id: Discussion topic ID
|
| list_discussion_entriesA | List discussion entries (posts) for a specific discussion topic with optional full content and replies. Args:
course_identifier: Course code or Canvas ID
topic_id: Discussion topic ID
include_full_content: Fetch full content for each entry (default: False)
include_replies: Fetch replies for each entry (default: False)
|
| get_discussion_entry_detailsA | Get detailed information about a specific discussion entry including all its replies. Args:
course_identifier: Course code or Canvas ID
topic_id: Discussion topic ID
entry_id: Discussion entry ID
include_replies: Fetch and include replies (default: True)
|
| get_discussion_with_repliesA | Enhanced function to get discussion entries with optional reply fetching. Args:
course_identifier: Course code or Canvas ID
topic_id: Discussion topic ID
include_replies: Fetch detailed replies for all entries (default: False)
|
| post_discussion_entryB | Post a new top-level entry to a discussion topic. Args:
course_identifier: Course code or Canvas ID
topic_id: Discussion topic ID
message: Entry message content
|
| reply_to_discussion_entryC | Reply to a student's discussion entry/comment. Args:
course_identifier: Course code or Canvas ID
topic_id: Discussion topic ID
entry_id: Discussion entry ID to reply to
message: Reply message content
|
| list_modulesA | List all modules in a course. Args:
course_identifier: Course code or Canvas ID
include_items: Include summary of items in each module
search_term: Filter modules by name
|
| get_course_structureA | Get the full module and item structure for a course in a single call. Args:
course_identifier: Course code or Canvas ID
include_unpublished: Include unpublished modules and items (default: True)
|
| download_course_fileA | Download a file from a Canvas course to the local filesystem. Use list_course_files or list_module_items to find file IDs.
Args:
course_identifier: Course code or Canvas ID
file_id: Canvas file ID
save_directory: Local directory to save to (default: system temp dir, must exist)
|
| read_course_fileA | Read a file from a Canvas course and return its content as base64. Unlike download_course_file which saves to the server's local filesystem,
this tool returns the file content directly in the response. This is useful
when the MCP server runs on a different machine than the client.
Use list_course_files or list_module_items to find file IDs.
Args:
course_identifier: Course code or Canvas ID
file_id: Canvas file ID
max_size_mb: Maximum file size in MB to read (default: 25). Clamped server-side to
READ_FILE_MAX_SIZE_MB (default 100). Files larger than the effective limit are
rejected to avoid excessive memory usage.
|
| list_course_filesA | List files in a Canvas course with optional search. Args:
course_identifier: Course code or Canvas ID
search_term: Filter files by name
sort: Sort field: name, size, created_at, updated_at, content_type (default: updated_at)
order: "asc" or "desc" (default: desc)
|
| list_conversationsB | List conversations for the current user.
Args:
scope: "unread", "starred", "sent", "archived", or "all"
filter_ids: Conversation IDs to filter by
filter_mode: "and" or "or" for filter_ids
include_participants: Include participant info
include_all_ids: Include all participant IDs
|
| get_conversation_detailsA | Get detailed conversation information with messages.
Args:
conversation_id: Conversation ID
auto_mark_read: Mark as read when viewed
include_messages: Include all messages
|
| get_unread_countA | Get number of unread conversations. |
| mark_conversations_readB | Mark multiple conversations as read.
Args:
conversation_ids: List of conversation IDs to mark as read
|
| search_canvas_toolsA | Search available Canvas code API tools by keyword.
Args:
query: Search term to filter tools (empty = all)
detail_level: "names" (paths only), "signatures" (recommended), or "full" (complete file contents)
|
| get_my_upcoming_assignmentsB | Get your upcoming assignments across all courses. Args:
days: Number of days to look ahead (default: 7)
|
| get_my_submission_statusA | Get your submission status for assignments. Args:
course_identifier: Course code or Canvas ID (omit for all courses)
|
| get_my_course_gradesA | Get your current grades across all enrolled courses. |
| get_my_todo_itemsA | Get your Canvas TODO list. |
| get_my_peer_reviews_todoA | Get peer reviews you need to complete. Args:
course_identifier: Course code or Canvas ID (omit for all courses)
|
| assign_peer_reviewB | Manually assign a peer review to a student for a specific assignment. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
reviewer_id: User ID of the student who will review
reviewee_id: User ID of the student whose submission will be reviewed
|
| list_peer_reviewsB | List all peer review assignments for a specific assignment. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
|
| list_submissionsB | List submissions for a specific assignment. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
|
| get_assignment_analyticsB | Get detailed analytics about student performance on a specific assignment. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
|
| create_assignmentB | Create a new assignment in a course. Args:
course_identifier: Course code or Canvas ID
name: Assignment name/title
description: HTML description
submission_types: Comma-separated types (online_text_entry, online_url, online_upload, discussion_topic, none, on_paper, external_tool)
due_at: Due date in ISO 8601 format
unlock_at: Available date in ISO 8601 format
lock_at: Lock date in ISO 8601 format
points_possible: Maximum points
grading_type: One of: points, letter_grade, pass_fail, percent, not_graded
published: Whether to publish immediately (default: False)
assignment_group_id: Assignment group ID
peer_reviews: Enable peer reviews
automatic_peer_reviews: Auto-assign peer reviews
allowed_extensions: Comma-separated file extensions (e.g., "pdf,docx,txt")
|
| update_assignmentA | Update an existing assignment in a course. Args:
course_identifier: Course code or Canvas ID
assignment_id: Assignment ID to update
name: New assignment name/title
description: New HTML description
submission_types: Comma-separated types (online_text_entry, online_url, online_upload, discussion_topic, none, on_paper, external_tool)
due_at: New due date in ISO 8601 format
unlock_at: New available date in ISO 8601 format
lock_at: New lock date in ISO 8601 format
points_possible: New maximum points
grading_type: One of: points, letter_grade, pass_fail, percent, not_graded
published: Whether to publish the assignment
assignment_group_id: Assignment group ID to move to
peer_reviews: Enable peer reviews
automatic_peer_reviews: Auto-assign peer reviews
allowed_extensions: Comma-separated file extensions (e.g., "pdf,docx,txt")
|
| bulk_grade_submissionsA | Grade multiple submissions efficiently with concurrent processing. Supports both rubric-based and simple point-based grading in batches.
Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
grades: Dict mapping user_id to {rubric_assessment?, grade?, comment?}
dry_run: If True, validate without submitting (default: False)
max_concurrent: Max concurrent grading operations (default: 5)
rate_limit_delay: Delay between batches in seconds (default: 1.0)
|
| create_discussion_topicB | Create a new discussion topic for a course. Args:
course_identifier: Course code or Canvas ID
title: Discussion topic title
message: Discussion topic body content
delayed_post_at: ISO 8601 datetime to schedule posting
lock_at: ISO 8601 datetime to auto-lock the discussion
require_initial_post: Students must post before seeing others (default: False)
pinned: Pin this discussion topic (default: False)
|
| list_announcementsA | List announcements for a specific course. Args:
course_identifier: Course code or Canvas ID
|
| create_announcementB | Create a new announcement for a course with optional scheduling. Args:
course_identifier: Course code or Canvas ID
title: Announcement title
message: Announcement body content
delayed_post_at: ISO 8601 datetime to schedule posting
lock_at: ISO 8601 datetime to auto-lock the announcement
|
| delete_announcementA | Delete an announcement from a Canvas course. Permanent — Canvas may retain a recycle-bin copy depending on admin settings.
Args:
course_identifier: Course code or Canvas ID
announcement_id: Announcement ID to delete
|
| bulk_delete_announcementsA | Delete multiple announcements from a Canvas course. Permanent — Canvas may retain a recycle-bin copy depending on admin settings.
Args:
course_identifier: Course code or Canvas ID
announcement_ids: List of announcement IDs to delete
stop_on_error: Stop on first error; if False, continue with remaining (default: False)
limit: Max number of announcements to delete in one call (default: 25). Ignored when dry_run=True, so large batches can be previewed safely.
dry_run: Fetch titles and report what would be deleted without deleting (default: False)
|
| delete_announcement_with_confirmationA | Delete an announcement with optional safety checks. Permanent — Canvas may retain a recycle-bin copy depending on admin settings.
Args:
course_identifier: Course code or Canvas ID
announcement_id: Announcement ID to delete
require_title_match: Only delete if title matches this string exactly
dry_run: Verify but don't actually delete (default: False)
|
| delete_announcements_by_criteriaA | Delete announcements matching specific criteria. Permanent — Canvas may retain a recycle-bin copy depending on admin settings.
Args:
course_identifier: Course code or Canvas ID
criteria: Dict with keys: title_contains, older_than (ISO), newer_than (ISO), title_regex
limit: Max number of announcements to delete (safety limit)
dry_run: Show what would be deleted without deleting (default: True)
|
| create_moduleB | Create a new module in a course. Args:
course_identifier: Course code or Canvas ID
name: Module name
position: Position in module list (1-indexed)
unlock_at: Unlock date/time (ISO 8601)
require_sequential_progress: Students must complete items in order
prerequisite_module_ids: Comma-separated module IDs that must be completed first
published: Whether the module is published (default: True)
|
| update_moduleA | Update an existing module's settings. Args:
course_identifier: Course code or Canvas ID
module_id: Module ID to update
name: New module name
position: New position in module list
unlock_at: New unlock date/time (ISO 8601), or empty string to remove
require_sequential_progress: Students must complete items in order
prerequisite_module_ids: Comma-separated prerequisite module IDs, or empty to clear
published: Whether the module is published
|
| delete_moduleA | Delete a module from a course. IMPORTANT: Permanently removes the module and its item associations. The actual content (pages, assignments, etc.) is NOT deleted, only the module organization.
Args:
course_identifier: Course code or Canvas ID
module_id: Module ID to delete
|
| add_module_itemA | Add an item to a module. IMPORTANT: content_id required for File, Discussion, Assignment, Quiz, ExternalTool. page_url required for Page. title required for SubHeader, ExternalUrl.
Args:
course_identifier: Course code or Canvas ID
module_id: Target module ID
item_type: One of: File, Page, Discussion, Assignment, Quiz, SubHeader, ExternalUrl, ExternalTool
content_id: Canvas ID of the content (required for File, Discussion, Assignment, Quiz, ExternalTool)
title: Item title (required for SubHeader, ExternalUrl; optional for others)
position: Position within module (1-indexed)
indent: Indentation level (0-4)
page_url: URL slug of the page (required for Page type)
external_url: URL for ExternalUrl items
new_tab: Open external links in new tab (default: False)
completion_requirement_type: One of: must_view, must_submit, must_contribute, min_score, must_mark_done
completion_requirement_min_score: Minimum score (only for min_score type)
|
| update_module_itemB | Update an existing module item. Args:
course_identifier: Course code or Canvas ID
module_id: Module ID containing the item
item_id: Item ID to update
title: New item title
position: New position within module
indent: New indentation level (0-4)
external_url: New URL (ExternalUrl items only)
new_tab: Open external links in new tab
completion_requirement_type: New completion type, or empty string to remove
completion_requirement_min_score: Minimum score (for min_score type)
published: Whether the item is published
move_to_module_id: Move item to a different module
|
| delete_module_itemA | Remove an item from a module. IMPORTANT: Only unlinks the item from the module. The actual content (page, assignment, etc.) is NOT deleted.
Args:
course_identifier: Course code or Canvas ID
module_id: Module ID containing the item
item_id: Item ID to remove
|
| upload_course_fileA | Upload a file to Canvas course storage. Uploads a local file to a Canvas course. The returned file ID can be used with
add_module_item (item_type='File') or send_conversation (attachment_ids).
Args:
course_identifier: Course code or Canvas ID
file_path: Absolute path to the local file to upload
folder_path: Canvas folder path (default: "course files" root)
display_name: Override the filename shown in Canvas
on_duplicate: "rename" (default) or "overwrite"
|
| update_page_settingsA | Update settings for an existing page (without changing content). Args:
course_identifier: Course code or Canvas ID
page_url_or_id: Page URL slug or page ID
published: True to publish, False to unpublish
front_page: True to make this the course front page
editing_roles: One of: teachers, students, members, public
notify_of_update: True to notify users of the update
IMPORTANT: The front page cannot be unpublished. First set another page as front page.
|
| bulk_update_pagesA | Update settings for multiple pages at once. Args:
course_identifier: Course code or Canvas ID
page_urls: Comma-separated list of page URL slugs
published: True to publish all, False to unpublish all
editing_roles: One of: teachers, students, members, public
notify_of_update: True to notify users of updates
IMPORTANT: front_page is not supported in bulk updates.
|
| create_pageB | Create a new page in a Canvas course. Args:
course_identifier: Course code or Canvas ID
title: Page title
body: HTML content for the page
published: Whether to publish (default: True)
front_page: Whether to set as front page (default: False)
editing_roles: Who can edit (default: "teachers")
|
| edit_page_contentC | Edit the content of a specific page. Args:
course_identifier: Course code or Canvas ID
page_url_or_id: Page URL slug or page ID
new_content: New HTML content for the page
title: Optional new title for the page
|
| delete_pageA | Delete a page from a Canvas course. Permanent — Canvas may retain a recycle-bin copy depending on admin settings.
Args:
course_identifier: Course code or Canvas ID
page_url_or_id: Page URL slug or page ID to delete
require_title_match: Safety check — only delete if page title matches exactly
|
| get_rubricA | Get detailed rubric criteria, ratings, and points. Accepts either rubric_id or assignment_id (at least one required).
If both provided, uses rubric_id (more specific).
Args:
course_identifier: Course code or Canvas ID
rubric_id: Canvas rubric ID (direct lookup)
assignment_id: Canvas assignment ID (get rubric attached to assignment)
|
| get_rubric_assessmentB | Get rubric assessment scores for a specific submission. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
user_id: Canvas user ID of the student
|
| grade_with_rubricA | Submit grades using rubric criteria. IMPORTANT: Criterion IDs often start with underscore (e.g., "_8027").
Use get_rubric to find criterion/rating IDs.
The rubric must be attached to the assignment and configured for grading (use_for_grading=true).
Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
user_id: Canvas user ID of the student
rubric_assessment: Dict mapping criterion_id to {points (required), rating_id?, comments?}
comment: Optional overall comment for the submission
|
| list_rubricsA | List all rubrics in a specific course with optional detailed criteria. Args:
course_identifier: Course code or Canvas ID
include_criteria: Include detailed criteria and ratings (default: True)
|
| create_rubricA | Create a new rubric in a course, optionally associating it with an assignment. Uses bracket-notation form-data encoding required by the Canvas rubric API.
The ``criteria`` parameter is a JSON string mapping arbitrary criterion keys to
objects with the following fields:
- ``description`` (required): Short criterion label shown in the rubric grid
- ``points`` (required): Maximum points for this criterion (non-negative number)
- ``long_description`` (optional): Detailed criterion description
- ``ratings`` (optional): List (or object) of rating levels, each with:
- ``description`` (required): Rating label (e.g. "Excellent")
- ``points`` (required): Points for this rating (non-negative number)
- ``long_description`` (optional): Detailed rating description
Example ``criteria`` JSON::
{
"c1": {
"description": "Content Quality",
"points": 10,
"ratings": [
{"description": "Excellent", "points": 10},
{"description": "Satisfactory", "points": 7},
{"description": "Needs Work", "points": 3}
]
},
"c2": {
"description": "Grammar",
"points": 5,
"ratings": [
{"description": "No errors", "points": 5},
{"description": "Minor errors", "points": 3}
]
}
}
Args:
course_identifier: Course code or Canvas ID
title: Rubric title
criteria: JSON string defining rubric criteria (see docstring above)
assignment_id: Optional assignment ID to immediately associate the rubric with
use_for_grading: When associating with an assignment, use rubric for grade
calculation (default: False)
reusable: Make rubric reusable across courses (default: False)
free_form_criterion_comments: Allow free-form comments per criterion
instead of rating selection (default: False)
|
| associate_rubricB | Associate an existing rubric with an assignment. Args:
course_identifier: Course code or Canvas ID
rubric_id: ID of the rubric to associate
assignment_id: ID of the assignment to associate with
use_for_grading: Use rubric for grade calculation (default: False)
purpose: Association purpose: grading, bookmark (default: grading)
|
| get_peer_review_assignmentsA | Get peer review assignment mapping showing who reviews whom with completion status. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
include_names: Include student names
include_submission_details: Include submission metadata
|
| get_peer_review_completion_analyticsA | Get peer review completion analytics with student-level breakdown and summary stats. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
include_student_details: Include per-student breakdown
group_by_status: Group students by completion status
|
| generate_peer_review_reportA | Generate peer review completion report with summary, analytics, and follow-up recommendations. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
report_format: Output format (markdown, csv, json)
include_executive_summary: Include executive summary
include_student_details: Include student details
include_action_items: Include action items
include_timeline_analysis: Include timeline analysis
save_to_file: Save report to local file
filename: Custom filename for saved report
|
| get_peer_review_followup_listA | Get prioritized list of students needing follow-up on peer review completion. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
priority_filter: Filter by priority (urgent, medium, low, all)
include_contact_info: Include email addresses
days_threshold: Days since assignment for urgency calculation
|
| get_peer_review_commentsA | Retrieve actual comment text for peer reviews on an assignment. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
include_reviewer_info: Include reviewer details
include_reviewee_info: Include reviewee details
include_submission_context: Include submission details
anonymize_students: Replace names with anonymous IDs
|
| analyze_peer_review_qualityA | Analyze the quality and content of peer review comments. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
analysis_criteria: JSON string of custom criteria
generate_report: Generate detailed analysis report
|
| identify_problematic_peer_reviewsB | Flag reviews that may need instructor attention. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
criteria: JSON string of custom flagging criteria
|
| extract_peer_review_datasetA | Export all peer review data in various formats for analysis. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
output_format: Output format (csv, json, xlsx)
include_analytics: Include quality analytics
anonymize_data: Anonymize student data
save_locally: Save file locally
filename: Custom filename
|
| generate_peer_review_feedback_reportB | Create instructor-ready reports on peer review quality. Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
report_type: Report type (comprehensive, summary, individual)
include_student_names: Include student names
format_type: Output format (markdown, html, text)
|
| send_conversationA | Send messages to students via Canvas conversations.
Args:
course_identifier: Course code or Canvas ID
recipient_ids: List of Canvas user IDs
subject: Message subject (max 255 chars)
body: Message content
group_conversation: Create group conversation (required for custom subjects)
bulk_message: Send individual messages with same subject to each recipient
context_code: Course context (e.g., "course_60366")
mode: "sync" or "async" (use async for >100 recipients)
force_new: Force new conversation even if one exists
attachment_ids: Optional attachment IDs
|
| send_peer_review_remindersA | Send peer review completion reminders to specific students.
Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
recipient_ids: List of Canvas user IDs needing reminders
custom_message: Custom message (uses default template if None)
include_assignment_link: Include direct link to assignment
subject_prefix: Prefix for message subject
|
| send_bulk_messages_from_listB | Send customized messages to multiple recipients using templates.
Args:
course_identifier: Course code or Canvas ID
recipient_data: List of dicts with recipient info and template variables
subject_template: Subject with placeholders (e.g., "Reminder - {missing_count} reviews")
body_template: Body with placeholders (e.g., "Hi {name}, you have {missing_count}...")
context_code: Course context
mode: "sync" or "async"
|
| send_peer_review_followup_campaignC | Complete workflow: analyze peer reviews and send targeted reminders.
Args:
course_identifier: Course code or Canvas ID
assignment_id: Canvas assignment ID
|
| fetch_ufixit_reportB | Fetch UFIXIT accessibility report from Canvas course pages. Args:
course_identifier: Course code or Canvas ID
page_title: Title of the UFIXIT report page (default: "UFIXIT")
|
| parse_ufixit_violationsA | Parse UFIXIT report content to extract accessibility violations. Args:
report_json: JSON string from fetch_ufixit_report
|
| format_accessibility_summaryA | Format parsed violations into a human-readable summary. Args:
violations_json: JSON string from parse_ufixit_violations
|
| scan_course_content_accessibilityA | Scan Canvas course content for basic accessibility issues. Args:
course_identifier: Course code or Canvas ID
content_types: Comma-separated types to scan: pages, assignments, discussions, syllabus
|
| fix_accessibility_issuesA | Auto-fix accessibility issues in Canvas course content. Applies automated fixes for issues flagged as auto_fixable by the scanner.
Run scan_course_content_accessibility first to see what will be fixed.
Default is dry_run=True (preview only). Set dry_run=False to apply changes.
Args:
course_identifier: Course code or Canvas ID
fix_types: Comma-separated fix types to apply:
th_scope - Add scope="col" to <th> without scope
low_contrast - Fix white text on #ff5f05 orange backgrounds
legacy_designplus - Migrate kl_ classes to dp- equivalents
redundant_alt_prefix - Remove "image of" prefix from alt text
content_types: Comma-separated types to fix: pages, assignments
dry_run: If True, preview changes without applying. Set False to apply.
|
| execute_typescriptA | Execute TypeScript code in a Node.js environment with access to Canvas API. IMPORTANT: This achieves 99.7% token savings for bulk operations!
Code runs in a sandboxed Node.js environment with Canvas API credentials,
all TypeScript modules in src/canvas_mcp/code_api/, and standard Node.js modules.
IMPORTANT: Security is best-effort unless container sandboxing is available.
Code runs in a temp file (deleted after), with optional network allowlist,
timeout, memory, and CPU limits.
Args:
code: TypeScript code to execute; can import from './canvas/*' modules.
timeout: Max execution time in seconds (default: 120).
|
| list_code_api_modulesA | List all available TypeScript modules in the code execution API. Shows importable TypeScript files for execute_typescript, organized by
category with descriptions. Use to discover available bulk operations.
|
| get_anonymization_statusA | Get current data anonymization status and statistics. |
| list_groupsA | List all groups and their members for a specific course. Args:
course_identifier: Course code or Canvas ID
|
| list_usersA | List users enrolled in a specific course. Args:
course_identifier: Course code or Canvas ID
|
| get_student_analyticsA | Get per-student engagement analytics: page views, participations, and on-time/late/missing assignment counts. Uses Canvas's /analytics/student_summaries endpoint to return a ranked table of every
student in the course with an engagement score (0-100) useful for identifying disengaged
students in participation/presentation-driven courses.
Args:
course_identifier: Course code or Canvas ID
include_participation: Include participation counts (default: True)
include_assignment_stats: Include on-time/late/missing counts (default: True)
include_access_stats: Include page view counts (default: True)
sort_by: Sort order — "engagement_score" (default, ascending), "page_views", "participations", or "name"
|
| create_student_anonymization_mapB | Create a local CSV file mapping real student data to anonymous IDs for a course. Args:
course_identifier: Course code or Canvas ID
|