canvas-peer-review-manager
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCanvas 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 in the Canvas MCP server environment to anonymize student names. When enabled, names render as
ENABLE_DATA_ANONYMIZATION=truehashes while preserving functional user IDs for messaging.Student_xxxxxxxx
- Canvas MCP server必须处于运行状态,并已连接至Agent的MCP客户端(如Claude Code、Cursor、Codex、OpenCode)。
- 已认证用户在目标Canvas课程中必须拥有教育工作者或教师角色。
- 该作业在Canvas中必须启用同行评审功能(手动或自动分配均可)。
- FERPA合规性:在Canvas MCP服务器环境中设置以匿名化学生姓名。启用后,姓名将显示为
ENABLE_DATA_ANONYMIZATION=true哈希值,同时保留功能性用户ID用于消息发送。Student_xxxxxxxx
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 and to help the user find the right identifiers.
list_courseslist_assignments询问用户要管理哪门课程和作业的同行评审。接受课程代码、Canvas ID或课程名称,以及作业名称或ID。
如果用户未指定,提示:
你想检查哪门课程和作业的同行评审情况?
使用和工具帮助用户找到正确的标识符。
list_courseslist_assignments2. Check Peer Review Completion
2. 检查同行评审完成情况
Call with the course identifier and assignment ID. This returns:
get_peer_review_completion_analytics- 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:
| Metric | What It Tells You |
|---|---|
| Completion rate | Overall health of the peer review cycle |
| "None complete" count | Students who haven't started -- highest priority for reminders |
| "Partial complete" count | Students who started but didn't finish |
| Per-student breakdown | Exactly who needs follow-up |
调用工具,传入课程标识符和作业ID。该工具将返回:
get_peer_review_completion_analytics- 整体完成率(百分比)
- 已完成所有评审、部分完成和未开始评审的学生人数
- 按学生细分的完成情况,展示已完成与已分配的评审数量对比
需要重点关注的数据点:
| 指标 | 说明 |
|---|---|
| 完成率 | 同行评审周期的整体健康状况 |
| "未开始"人数 | 尚未启动评审的学生——是发送提醒的最高优先级群体 |
| "部分完成"人数 | 已开始但未完成评审的学生 |
| 按学生细分的完成情况 | 明确需要跟进的具体学生 |
3. Review the Assignment Mapping
3. 查看作业分配映射
If the user wants to understand who is reviewing whom, call with:
get_peer_review_assignments- for human-readable output
include_names=true - for submission context
include_submission_details=true
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 to retrieve actual comment text. Parameters:
get_peer_review_comments- -- who wrote the comment
include_reviewer_info=true - -- who received the comment
include_reviewee_info=true - -- recommended when sharing results or working with sensitive data
anonymize_students=true
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 to generate quality metrics across all reviews. The analysis includes:
analyze_peer_review_quality- 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 as a JSON string to customize what counts as high/low quality.
analysis_criteria调用工具以生成所有评审的质量指标。分析内容包括:
analyze_peer_review_quality- 平均质量得分(1-5分制)
- 字数统计(平均值、中位数、范围)
- 建设性分析(建设性反馈、通用评论、具体建议的占比)
- 情感分布(正面、中性、负面)
- 标记有问题的评审——低于质量阈值的评审
可选传入参数(JSON字符串格式)来自定义高质量/低质量的判定标准。
analysis_criteria6. Flag Problematic Reviews
6. 标记有问题的评审
Call to automatically flag reviews needing instructor attention. Flagging criteria include:
identify_problematic_peer_reviews- 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 as a JSON string to override default thresholds.
criteria调用工具以自动标记需要教师关注的评审。标记标准包括:
identify_problematic_peer_reviews- 极短或空的评论
- 通用回复(如“看起来不错”、“做得好”)
- 缺乏建设性反馈
- 可能是复制粘贴或完全相同的评审
可传入自定义参数(JSON字符串格式)以覆盖默认阈值。
criteria7. Get the Follow-up List
7. 获取跟进列表
Call to get a prioritized list of students requiring action:
get_peer_review_followup_list- -- students with zero reviews completed
priority_filter="urgent" - -- students with partial completion
priority_filter="medium" - -- everyone who needs follow-up
priority_filter="all" - -- adjusts urgency calculation based on days since assignment
days_threshold=3
调用工具以获取需要采取行动的学生优先级列表:
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 with:
send_peer_review_reminders- -- list of Canvas user IDs from the analytics results
recipient_ids - -- optional custom text (a default template is used if omitted)
custom_message - -- defaults to "Peer Review Reminder"
subject_prefix
Example flow:
- Get incomplete reviewers from step 2
- Extract their user IDs
- Review the recipient list with the user
- Send reminders after confirmation
For a fully automated pipeline, call with just the course identifier and assignment ID. This tool:
send_peer_review_followup_campaign- Runs completion analytics automatically
- Segments students into "urgent" (none complete) and "partial" groups
- Sends appropriately toned reminders to each group
- 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- ——来自分析结果的Canvas用户ID列表
recipient_ids - ——可选自定义文本(若省略则使用默认模板)
custom_message - ——默认值为“Peer Review Reminder”
subject_prefix
示例流程:
- 从步骤2获取未完成评审的学生
- 提取他们的用户ID
- 与用户确认收件人列表
- 确认后发送提醒
如需全自动化流程,仅需传入课程标识符和作业ID,调用工具。该工具将:
send_peer_review_followup_campaign- 自动运行完成情况分析
- 将学生分为“紧急”(未完成任何评审)和“部分完成”群体
- 向每个群体发送语气合适的提醒
- 返回合并后的分析结果和消息发送情况
警告: 该营销活动工具会发送真实消息。运行前务必与教师确认。
9. Export Data
9. 导出数据
Call to export all peer review data for external analysis:
extract_peer_review_dataset- or
output_format="csv"output_format="json" - -- appends quality metrics to the export
include_analytics=true - -- recommended for sharing or archival
anonymize_data=true - -- saves to a local file; set to
save_locally=trueto return data inlinefalse
调用工具以导出所有同行评审数据用于外部分析:
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 for a formatted, shareable report:
generate_peer_review_feedback_report- -- full analysis with samples of low-quality reviews
report_type="comprehensive" - -- executive overview only
report_type="summary" - -- per-student breakdown
report_type="individual" - -- recommended for FERPA compliance
include_student_names=false
For a completion-focused report (rather than quality-focused), use with options for executive summary, student details, action items, and timeline analysis. This report can be saved to a file with .
generate_peer_review_reportsave_to_file=true调用工具以获取格式化的可共享报告:
generate_peer_review_feedback_report- ——完整分析,包含低质量评审示例
report_type="comprehensive" - ——仅执行摘要
report_type="summary" - ——按学生细分的详细情况
report_type="individual" - ——为符合FERPA合规性推荐启用
include_student_names=false
如需以完成为重点的报告(而非质量重点),使用工具,可选择执行摘要、学生详情、行动项和时间线分析等选项。该报告可通过设置保存至文件。
generate_peer_review_reportsave_to_file=trueUse 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 . List the students who need follow-up.
priority_filter="urgent""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 and for a FERPA-safe dataset.
output_format="csv"anonymize_data=true"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,设置和以获取符合FERPA合规性的数据集。
output_format="csv"anonymize_data=trueMCP Tools Used
使用的MCP工具
| Tool | Purpose |
|---|---|
| Discover active courses |
| Find assignments with peer reviews enabled |
| Full reviewer-to-reviewee mapping |
| Completion rates and per-student breakdown |
| Extract actual comment text |
| Quality metrics (scores, word counts, constructiveness) |
| Flag low-quality or empty reviews |
| Prioritized list of students needing follow-up |
| Send targeted reminder messages |
| Automated analytics-to-messaging pipeline |
| Export data as CSV or JSON |
| Quality-focused instructor report |
| Completion-focused instructor report |
| 工具 | 用途 |
|---|---|
| 发现活跃课程 |
| 查找已启用同行评审的作业 |
| 获取完整的评审者与被评审者映射关系 |
| 获取完成率和按学生细分的完成情况 |
| 提取实际评论文本 |
| 生成质量指标(得分、字数、建设性) |
| 标记低质量或空评审 |
| 获取需要跟进的学生优先级列表 |
| 发送针对性提醒消息 |
| 自动化分析-消息发送流程 |
| 以CSV或JSON格式导出数据 |
| 生成以质量为重点的教师报告 |
| 生成以完成为重点的教师报告 |
Example
示例
User: "How are peer reviews going for Assignment 3 in BADM 350?"
Agent: Calls and presents:
get_peer_review_completion_analyticsundefined用户: "How are peer reviews going for Assignment 3 in BADM 350?"
Agent: 调用工具并展示:
get_peer_review_completion_analyticsundefinedPeer 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 or
anonymize_students=truewhen reviewing data in shared contexts.anonymize_data=true - 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 tool combines analytics and messaging into one call -- powerful but sends real messages. Use it only after confirming intent with the instructor.
send_peer_review_followup_campaign - 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 for a full course health overview that includes peer review status alongside submission rates and grade distribution.
canvas-morning-check
- 必须先在Canvas中为作业启用同行评审功能,这些工具才能返回数据。
- 工具将分析和消息发送整合为一次调用——功能强大但会发送真实消息。仅在与教师确认意图后使用。
send_peer_review_followup_campaign - 质量分析使用启发式算法(字数、关键词匹配、情感分析)。它能识别可能的低质量评审,但不能替代教师的判断。
- 该技能与搭配使用效果极佳,可实现完整的课程健康状况概览,包括同行评审状态、提交率和成绩分布。
canvas-morning-check