canvas-peer-review-manager

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Canvas Peer Review Manager

Canvas 同行评审管理器

A complete peer review management workflow for educators using Canvas LMS. Monitor completion, analyze quality, identify students who need follow-up, send reminders, and export data -- all through MCP tool calls against the Canvas API.
这是为使用Canvas LMS的教育工作者打造的完整同行评审管理工作流。你可以通过调用MCP工具对接Canvas API,完成监控评审进度、分析评审质量、识别需要跟进的学生、发送提醒以及导出数据等操作。

Prerequisites

前提条件

  • Canvas MCP server must be running and connected to the agent's MCP client (e.g., Claude Code, Cursor, Codex, OpenCode).
  • The authenticated user must have an educator or instructor role in the target Canvas course.
  • The assignment must have peer reviews enabled in Canvas (either manual or automatic assignment).
  • FERPA compliance: Set
    ENABLE_DATA_ANONYMIZATION=true
    in the Canvas MCP server environment to anonymize student names. When enabled, names render as
    Student_xxxxxxxx
    hashes while preserving functional user IDs for messaging.
  • Canvas MCP server必须处于运行状态,并已连接至Agent的MCP客户端(如Claude Code、Cursor、Codex、OpenCode)。
  • 已认证用户在目标Canvas课程中必须拥有教育工作者或教师角色
  • 该作业在Canvas中必须启用同行评审功能(手动或自动分配均可)。
  • FERPA合规性:在Canvas MCP服务器环境中设置
    ENABLE_DATA_ANONYMIZATION=true
    以匿名化学生姓名。启用后,姓名将显示为
    Student_xxxxxxxx
    哈希值,同时保留功能性用户ID用于消息发送。

Steps

操作步骤

1. Identify the Assignment

1. 确定作业

Ask the user which course and assignment to manage peer reviews for. Accept a course code, Canvas ID, or course name, plus an assignment name or ID.
If the user does not specify, prompt:
Which course and assignment would you like to check peer reviews for?
Use
list_courses
and
list_assignments
to help the user find the right identifiers.
询问用户要管理哪门课程和作业的同行评审。接受课程代码、Canvas ID或课程名称,以及作业名称或ID。
如果用户未指定,提示:
你想检查哪门课程和作业的同行评审情况?
使用
list_courses
list_assignments
工具帮助用户找到正确的标识符。

2. Check Peer Review Completion

2. 检查同行评审完成情况

Call
get_peer_review_completion_analytics
with the course identifier and assignment ID. This returns:
  • Overall completion rate (percentage)
  • Number of students with all reviews complete, partial, and none complete
  • Per-student breakdown showing completed vs. assigned reviews
Key data points to surface:
MetricWhat It Tells You
Completion rateOverall health of the peer review cycle
"None complete" countStudents who haven't started -- highest priority for reminders
"Partial complete" countStudents who started but didn't finish
Per-student breakdownExactly who needs follow-up
调用
get_peer_review_completion_analytics
工具,传入课程标识符和作业ID。该工具将返回:
  • 整体完成率(百分比)
  • 已完成所有评审、部分完成和未开始评审的学生人数
  • 按学生细分的完成情况,展示已完成与已分配的评审数量对比
需要重点关注的数据点:
指标说明
完成率同行评审周期的整体健康状况
"未开始"人数尚未启动评审的学生——是发送提醒的最高优先级群体
"部分完成"人数已开始但未完成评审的学生
按学生细分的完成情况明确需要跟进的具体学生

3. Review the Assignment Mapping

3. 查看作业分配映射

If the user wants to understand who is reviewing whom, call
get_peer_review_assignments
with:
  • include_names=true
    for human-readable output
  • include_submission_details=true
    for submission context
This shows the full reviewer-to-reviewee mapping with completion status.
如果用户想了解谁在评审谁,调用
get_peer_review_assignments
工具,并传入:
  • include_names=true
    以获取易读的输出结果
  • include_submission_details=true
    以获取提交上下文信息
该工具将展示完整的评审者与被评审者映射关系及完成状态。

4. Extract and Read Comments

4. 提取并查看评论内容

Call
get_peer_review_comments
to retrieve actual comment text. Parameters:
  • include_reviewer_info=true
    -- who wrote the comment
  • include_reviewee_info=true
    -- who received the comment
  • anonymize_students=true
    -- recommended when sharing results or working with sensitive data
This reveals what students actually wrote in their reviews.
调用
get_peer_review_comments
工具以获取实际的评论文本。参数包括:
  • include_reviewer_info=true
    ——显示评论作者信息
  • include_reviewee_info=true
    ——显示评论接收者信息
  • anonymize_students=true
    ——在共享结果或处理敏感数据时推荐启用
该工具将揭示学生在评审中实际撰写的内容。

5. Analyze Comment Quality

5. 分析评论质量

Call
analyze_peer_review_quality
to generate quality metrics across all reviews. The analysis includes:
  • Average quality score (1-5 scale)
  • Word count statistics (mean, median, range)
  • Constructiveness analysis (constructive feedback vs. generic comments vs. specific suggestions)
  • Sentiment distribution (positive, neutral, negative)
  • Flagged reviews that fall below quality thresholds
Optionally pass
analysis_criteria
as a JSON string to customize what counts as high/low quality.
调用
analyze_peer_review_quality
工具以生成所有评审的质量指标。分析内容包括:
  • 平均质量得分(1-5分制)
  • 字数统计(平均值、中位数、范围)
  • 建设性分析(建设性反馈、通用评论、具体建议的占比)
  • 情感分布(正面、中性、负面)
  • 标记有问题的评审——低于质量阈值的评审
可选传入
analysis_criteria
参数(JSON字符串格式)来自定义高质量/低质量的判定标准。

6. Flag Problematic Reviews

6. 标记有问题的评审

Call
identify_problematic_peer_reviews
to automatically flag reviews needing instructor attention. Flagging criteria include:
  • Very short or empty comments
  • Generic responses (e.g., "looks good", "nice work")
  • Lack of constructive feedback
  • Potential copy-paste or identical reviews
Pass custom
criteria
as a JSON string to override default thresholds.
调用
identify_problematic_peer_reviews
工具以自动标记需要教师关注的评审。标记标准包括:
  • 极短或空的评论
  • 通用回复(如“看起来不错”、“做得好”)
  • 缺乏建设性反馈
  • 可能是复制粘贴或完全相同的评审
可传入自定义
criteria
参数(JSON字符串格式)以覆盖默认阈值。

7. Get the Follow-up List

7. 获取跟进列表

Call
get_peer_review_followup_list
to get a prioritized list of students requiring action:
  • priority_filter="urgent"
    -- students with zero reviews completed
  • priority_filter="medium"
    -- students with partial completion
  • priority_filter="all"
    -- everyone who needs follow-up
  • days_threshold=3
    -- adjusts urgency calculation based on days since assignment
调用
get_peer_review_followup_list
工具以获取需要采取行动的学生优先级列表:
  • priority_filter="urgent"
    ——未完成任何评审的学生
  • priority_filter="medium"
    ——部分完成评审的学生
  • priority_filter="all"
    ——所有需要跟进的学生
  • days_threshold=3
    ——根据作业截止后的天数调整紧急程度计算

8. Send Reminders

8. 发送提醒

Always use a dry run or review step before sending messages.
For targeted reminders, call
send_peer_review_reminders
with:
  • recipient_ids
    -- list of Canvas user IDs from the analytics results
  • custom_message
    -- optional custom text (a default template is used if omitted)
  • subject_prefix
    -- defaults to "Peer Review Reminder"
Example flow:
  1. Get incomplete reviewers from step 2
  2. Extract their user IDs
  3. Review the recipient list with the user
  4. Send reminders after confirmation
For a fully automated pipeline, call
send_peer_review_followup_campaign
with just the course identifier and assignment ID. This tool:
  1. Runs completion analytics automatically
  2. Segments students into "urgent" (none complete) and "partial" groups
  3. Sends appropriately toned reminders to each group
  4. Returns combined analytics and messaging results
Warning: The campaign tool sends real messages. Always confirm with the instructor before running it.
在发送消息前务必进行试运行或审核步骤。
如需发送针对性提醒,调用
send_peer_review_reminders
工具,并传入:
  • recipient_ids
    ——来自分析结果的Canvas用户ID列表
  • custom_message
    ——可选自定义文本(若省略则使用默认模板)
  • subject_prefix
    ——默认值为“Peer Review Reminder”
示例流程:
  1. 从步骤2获取未完成评审的学生
  2. 提取他们的用户ID
  3. 与用户确认收件人列表
  4. 确认后发送提醒
如需全自动化流程,仅需传入课程标识符和作业ID,调用
send_peer_review_followup_campaign
工具。该工具将:
  1. 自动运行完成情况分析
  2. 将学生分为“紧急”(未完成任何评审)和“部分完成”群体
  3. 向每个群体发送语气合适的提醒
  4. 返回合并后的分析结果和消息发送情况
警告: 该营销活动工具会发送真实消息。运行前务必与教师确认。

9. Export Data

9. 导出数据

Call
extract_peer_review_dataset
to export all peer review data for external analysis:
  • output_format="csv"
    or
    output_format="json"
  • include_analytics=true
    -- appends quality metrics to the export
  • anonymize_data=true
    -- recommended for sharing or archival
  • save_locally=true
    -- saves to a local file; set to
    false
    to return data inline
调用
extract_peer_review_dataset
工具以导出所有同行评审数据用于外部分析:
  • output_format="csv"
    output_format="json"
  • include_analytics=true
    ——在导出数据中附加质量指标
  • anonymize_data=true
    ——共享或存档时推荐启用
  • save_locally=true
    ——保存至本地文件;设置为
    false
    则直接返回数据

10. Generate Instructor Reports

10. 生成教师报告

Call
generate_peer_review_feedback_report
for a formatted, shareable report:
  • report_type="comprehensive"
    -- full analysis with samples of low-quality reviews
  • report_type="summary"
    -- executive overview only
  • report_type="individual"
    -- per-student breakdown
  • include_student_names=false
    -- recommended for FERPA compliance
For a completion-focused report (rather than quality-focused), use
generate_peer_review_report
with options for executive summary, student details, action items, and timeline analysis. This report can be saved to a file with
save_to_file=true
.
调用
generate_peer_review_feedback_report
工具以获取格式化的可共享报告:
  • report_type="comprehensive"
    ——完整分析,包含低质量评审示例
  • report_type="summary"
    ——仅执行摘要
  • report_type="individual"
    ——按学生细分的详细情况
  • include_student_names=false
    ——为符合FERPA合规性推荐启用
如需以完成为重点的报告(而非质量重点),使用
generate_peer_review_report
工具,可选择执行摘要、学生详情、行动项和时间线分析等选项。该报告可通过设置
save_to_file=true
保存至文件。

Use Cases

使用场景

"How are peer reviews going?" Run steps 1-2. Present completion rate, highlight any concerning patterns (e.g., "Only 60% complete, 8 students haven't started").
"Who hasn't done their reviews?" Run steps 1-2, then step 7 with
priority_filter="urgent"
. List the students who need follow-up.
"Are the reviews any good?" Run steps 4-6. Present quality scores, flag generic or low-effort reviews, and surface recommendations.
"Send reminders to stragglers" Run steps 1-2 to identify incomplete reviewers, then step 8. Always confirm the recipient list before sending.
"Give me a full report" Run steps 2, 5, 6, and 10. Combine completion analytics with quality analysis into a comprehensive instructor report.
"Export everything for my records" Run step 9 with
output_format="csv"
and
anonymize_data=true
for a FERPA-safe dataset.
"How are peer reviews going?" 执行步骤1-2。展示完成率,突出任何值得关注的模式(例如:“仅60%完成,8名学生尚未开始”)。
"Who hasn't done their reviews?" 执行步骤1-2,然后执行步骤7并设置
priority_filter="urgent"
。列出需要跟进的学生。
"Are the reviews any good?" 执行步骤4-6。展示质量得分,标记通用或低投入的评审,并给出建议。
"Send reminders to stragglers" 执行步骤1-2以识别未完成评审的学生,然后执行步骤8。发送前务必确认收件人列表。
"Give me a full report" 执行步骤2、5、6和10。将完成情况分析与质量分析整合为一份完整的教师报告。
"Export everything for my records" 执行步骤9,设置
output_format="csv"
anonymize_data=true
以获取符合FERPA合规性的数据集。

MCP Tools Used

使用的MCP工具

ToolPurpose
list_courses
Discover active courses
list_assignments
Find assignments with peer reviews enabled
get_peer_review_assignments
Full reviewer-to-reviewee mapping
get_peer_review_completion_analytics
Completion rates and per-student breakdown
get_peer_review_comments
Extract actual comment text
analyze_peer_review_quality
Quality metrics (scores, word counts, constructiveness)
identify_problematic_peer_reviews
Flag low-quality or empty reviews
get_peer_review_followup_list
Prioritized list of students needing follow-up
send_peer_review_reminders
Send targeted reminder messages
send_peer_review_followup_campaign
Automated analytics-to-messaging pipeline
extract_peer_review_dataset
Export data as CSV or JSON
generate_peer_review_feedback_report
Quality-focused instructor report
generate_peer_review_report
Completion-focused instructor report
工具用途
list_courses
发现活跃课程
list_assignments
查找已启用同行评审的作业
get_peer_review_assignments
获取完整的评审者与被评审者映射关系
get_peer_review_completion_analytics
获取完成率和按学生细分的完成情况
get_peer_review_comments
提取实际评论文本
analyze_peer_review_quality
生成质量指标(得分、字数、建设性)
identify_problematic_peer_reviews
标记低质量或空评审
get_peer_review_followup_list
获取需要跟进的学生优先级列表
send_peer_review_reminders
发送针对性提醒消息
send_peer_review_followup_campaign
自动化分析-消息发送流程
extract_peer_review_dataset
以CSV或JSON格式导出数据
generate_peer_review_feedback_report
生成以质量为重点的教师报告
generate_peer_review_report
生成以完成为重点的教师报告

Example

示例

User: "How are peer reviews going for Assignment 3 in BADM 350?"
Agent: Calls
get_peer_review_completion_analytics
and presents:
undefined
用户: "How are peer reviews going for Assignment 3 in BADM 350?"
Agent: 调用
get_peer_review_completion_analytics
工具并展示:
undefined

Peer Review Status: Assignment 3

Peer Review Status: Assignment 3

  • Completion rate: 72% (23/32 students fully complete)
  • Partial: 5 students (started but not finished)
  • Not started: 4 students
  • Completion rate: 72% (23/32 students fully complete)
  • Partial: 5 students (started but not finished)
  • Not started: 4 students

Students Needing Follow-up

Students Needing Follow-up

Not started (urgent):
  • Student_a8f7e23 (0 of 3 reviews done)
  • Student_b2c91d4 (0 of 3 reviews done)
  • Student_f5e67a1 (0 of 3 reviews done)
  • Student_d9c34b2 (0 of 3 reviews done)
Partial (needs nudge):
  • Student_c1d82e5 (1 of 3 reviews done)
  • Student_e4f03a9 (2 of 3 reviews done)

**User:** "Send reminders to the ones who haven't started"

**Agent:** Confirms the 4 recipients, then calls `send_peer_review_reminders` with their user IDs.

**User:** "Now check if the completed reviews are any good"

**Agent:** Calls `analyze_peer_review_quality` and presents quality scores, flags 3 reviews as too short, and recommends the instructor follow up with specific students.
Not started (urgent):
  • Student_a8f7e23 (0 of 3 reviews done)
  • Student_b2c91d4 (0 of 3 reviews done)
  • Student_f5e67a1 (0 of 3 reviews done)
  • Student_d9c34b2 (0 of 3 reviews done)
Partial (needs nudge):
  • Student_c1d82e5 (1 of 3 reviews done)
  • Student_e4f03a9 (2 of 3 reviews done)

**用户:** "Send reminders to the ones who haven't started"

**Agent:** 确认4名收件人,然后调用`send_peer_review_reminders`工具并传入他们的用户ID。

**用户:** "Now check if the completed reviews are any good"

**Agent:** 调用`analyze_peer_review_quality`工具并展示质量得分,标记3篇过短的评审,并建议教师跟进特定学生。

Safety Guidelines

安全指南

  • Confirm before sending -- Always present the recipient list and message content to the instructor before calling any messaging tool.
  • Use dry runs -- When testing workflows, start with a single recipient or confirm the output of analytics tools before acting on the data.
  • Anonymize by default -- Use
    anonymize_students=true
    or
    anonymize_data=true
    when reviewing data in shared contexts.
  • Respect rate limits -- The Canvas API allows roughly 700 requests per 10 minutes. For large courses, the messaging tools send messages sequentially with built-in delays.
  • FERPA compliance -- Never display student names in logs, shared screens, or exported files unless the instructor has explicitly confirmed the context is appropriate.
  • 发送前确认——在调用任何消息发送工具前,务必向教师展示收件人列表和消息内容并获得确认。
  • 使用试运行模式——测试工作流时,先从单个收件人开始,或在根据数据分析采取行动前先确认分析工具的输出结果。
  • 默认启用匿名化——在共享环境中查看数据时,使用
    anonymize_students=true
    anonymize_data=true
    参数。
  • 遵守速率限制——Canvas API允许每10分钟约700次请求。对于大型课程,消息发送工具会按顺序发送消息并内置延迟。
  • FERPA合规性——除非教师明确确认场景合适,否则切勿在日志、共享屏幕或导出文件中显示学生姓名。

Notes

注意事项

  • Peer reviews must be enabled on the assignment in Canvas before any of these tools return data.
  • The
    send_peer_review_followup_campaign
    tool combines analytics and messaging into one call -- powerful but sends real messages. Use it only after confirming intent with the instructor.
  • Quality analysis uses heuristics (word count, keyword matching, sentiment). It identifies likely low-quality reviews but is not a substitute for instructor judgment.
  • This skill pairs well with
    canvas-morning-check
    for a full course health overview that includes peer review status alongside submission rates and grade distribution.
  • 必须先在Canvas中为作业启用同行评审功能,这些工具才能返回数据。
  • send_peer_review_followup_campaign
    工具将分析和消息发送整合为一次调用——功能强大但会发送真实消息。仅在与教师确认意图后使用。
  • 质量分析使用启发式算法(字数、关键词匹配、情感分析)。它能识别可能的低质量评审,但不能替代教师的判断。
  • 该技能与
    canvas-morning-check
    搭配使用效果极佳,可实现完整的课程健康状况概览,包括同行评审状态、提交率和成绩分布。