mcpField
C
canvas-peer-review-manager

canvas-peer-review-manager

github.com/vishalsachdev生产力308212 次安装1 天前更新
代码仓库

关于 canvas-peer-review-manager

面向 Canvas LMS 教师的同伴互评管理技能,可检查完成情况、分析评论质量并生成跟进名单。它还支持提醒、数据导出和报告,并要求发送消息前预览收件人并获得确认。

主要功能

  1. 01查看互评完成率与分配关系
  2. 02提取评论并分析质量
  3. 03标记低质量或未完成互评
  4. 04生成优先跟进名单并发送提醒
  5. 05导出数据及生成报告

适用场景

  1. 01查找尚未完成互评的学生
  2. 02识别简短或缺乏建设性的评论
  3. 03确认提醒对象后发送站内消息
  4. 04匿名导出互评数据或生成报告

MCP 相关

通过 Canvas MCP 服务的工具调用 Canvas API,管理课程互评;包括分析、导出和发送提醒。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vishalsachdev/canvas-mcp --skill canvas-peer-review-manager

安装后在 Claude Code 中输入/canvas-peer-review-manager确认已加载。

详细介绍

Canvas 同伴评审管理器

面向使用 Canvas LMS 的教育工作者的完整同伴评审管理工作流。通过针对 Canvas API 的 MCP 工具调用,监控完成情况、分析质量、找出需要跟进的学生、发送提醒并导出数据。

前提条件

  • Canvas MCP 服务必须正在运行,并已连接到 Agent 的 MCP 客户端(例如 Claude Code、Cursor、Codex、OpenCode)。
  • 已通过身份验证的用户必须在目标 Canvas 课程中具有教育工作者或教师角色。
  • Canvas 中必须为该作业启用同伴评审(手动或自动分配均可)。
  • 符合 FERPA 要求的数据处理:在 Canvas MCP 服务环境中设置 ENABLE_DATA_ANONYMIZATION=true,以对受支持的学生身份字段进行匿名化。启用后,姓名会显示为 Student_xxxxxxxx 哈希值,同时保留用于发送消息的功能性用户 ID。此设置本身并不能确保合规。

步骤

1. 确认作业

询问用户要管理哪个课程和作业的同伴评审。接受课程代码、Canvas ID 或课程名称,以及作业名称或 ID。

如果用户未指定,请提示:

您想查看哪个课程和作业的同伴评审?

使用 list_courses 和 list_assignments 帮助用户找到正确的标识符。

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

使用课程标识符和作业 ID 调用 get_peer_review_completion_analytics。该工具会返回:

  • 总体完成率(百分比)
  • 已完成所有评审、部分完成和未完成任何评审的学生人数
  • 每位学生已完成和已分配评审数量的明细

需要重点呈现的数据:

指标含义
完成率同伴评审周期的总体情况
“未完成任何评审”人数尚未开始的学生——提醒优先级最高
“部分完成”人数已开始但未完成的学生
每位学生的明细需要跟进的具体对象
3. 查看作业分配情况

如果用户想了解谁在评审谁,请调用 get_peer_review_assignments,并使用以下参数:

  • include_names=true,获取易于阅读的输出
  • include_submission_details=true,获取提交内容的上下文

这会显示完整的评审者与被评审者对应关系及完成状态。

4. 提取并阅读评论

调用 get_peer_review_comments 获取实际评论文本。参数:

  • include_reviewer_info=true——显示评论撰写者
  • include_reviewee_info=true——显示评论接收者
  • anonymize_students=true——分享结果或处理敏感数据时建议启用

这会展示学生在评审中实际写下的内容。

5. 分析评论质量

调用 analyze_peer_review_quality,生成所有评审的质量指标。分析包括:

  • 平均质量分数(1-5 分)
  • 字数统计(均值、中位数、范围)
  • 建设性分析(建设性反馈、泛泛评论和具体建议)
  • 情绪分布(正面、中性、负面)
  • 低于质量阈值的标记评审

也可以将 analysis_criteria 作为 JSON 字符串传入,自定义高质量和低质量的判定标准。

6. 标记有问题的评审

调用 identify_problematic_peer_reviews,自动标记需要教师关注的评审。标记条件包括:

  • 评论过短或为空
  • 泛泛而谈的回复(例如,“看起来不错”“做得好”)
  • 缺少建设性反馈
  • 可能存在复制粘贴或内容相同的评审

将自定义 criteria 作为 JSON 字符串传入,可覆盖默认阈值。

7. 获取待跟进列表

调用 get_peer_review_followup_list,获取需要采取行动的学生优先级列表:

  • priority_filter="urgent" —— 尚未完成任何评审的学生
  • priority_filter="medium" —— 部分完成的学生
  • priority_filter="all" —— 所有需要跟进的学生
  • days_threshold=3 —— 根据布置任务至今的天数调整紧急程度计算
8. 发送提醒

这两个发送工具都采用两次调用的方式:第一次调用会返回预览和 confirmation_token,不会发送任何内容;先向教师展示预览,再使用该令牌(以及完全相同的参数)再次调用以发送。

如需发送定向的直接 Inbox 消息,请调用 send_peer_review_inbox_messages,并提供:

  • recipient_ids —— 来自分析结果的 Canvas 用户 ID 列表
  • custom_message —— 可选的自定义文本(若省略,则使用默认模板)
  • subject_prefix —— 默认为 "Peer Review Reminder"

示例流程:

  1. 从步骤 2 获取尚未完成评审的学生
  2. 提取其用户 ID
  3. 与用户核对收件人列表
  4. 确认后发送提醒

如需使用自动化流水线,请调用 send_peer_review_followup_campaign,并提供课程标识符和作业 ID;第一次调用会返回分析结果,以及针对紧急和温和提醒对象的预览和令牌。此工具会:

  1. 自动运行完成情况分析
  2. 将学生划分为“紧急”(无人完成)和“部分完成”两组
  3. 仅在使用令牌确认的调用中发送提醒
  4. 返回汇总的分析和消息发送结果

警告: 活动工具会发送真实消息。运行前务必先征得教师确认。

9. 导出数据

调用 extract_peer_review_dataset,导出所有互评数据以供外部分析:

  • output_format="csv" 或 output_format="json"
  • include_analytics=true —— 在导出数据中附加质量指标
  • anonymize_data=true —— 分享或存档时建议启用
  • save_locally=true —— 保存到本地文件;设为 false 可直接返回数据
10. 生成教师报告

调用 generate_peer_review_feedback_report,生成格式化、便于分享的报告:

  • report_type="comprehensive" —— 完整分析,并附上低质量评审示例
  • report_type="summary" —— 仅提供执行摘要
  • report_type="individual" —— 按学生分别列出详情
  • include_student_names=false —— 注重隐私的报告建议设为 false

如需生成侧重完成情况(而非质量)的报告,请使用 generate_peer_review_report,并设置执行摘要、学生详情、待办事项和时间线分析等选项。此报告可通过 save_to_file=true 保存到文件。

使用场景

“互评进展如何?” 运行步骤 1-2。展示完成率,并指出值得关注的情况(例如:“仅 60% 已完成,8 名学生尚未开始”)。

“谁还没完成评审?” 运行步骤 1-2,然后在步骤 7 中设置 priority_filter="urgent"。列出需要跟进的学生。

“评审质量怎么样?” 运行步骤 4-6。展示质量评分,标记内容笼统或投入不足的评审,并提出建议。

“给拖延的学生发送提醒” 运行步骤 1-2,找出尚未完成评审的学生,然后运行步骤 8。发送前务必确认收件人列表。

“给我一份完整报告” 运行步骤 2、5、6 和 10。将完成情况分析与质量分析结合起来,生成完整的教师报告。

“导出所有数据以供存档” 运行步骤 9,设置 output_format="csv" 和 anonymize_data=true,导出注重隐私的数据集。

使用的 MCP 工具

工具用途
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_inbox_messages发送定向的 Canvas 收件箱私信
send_peer_review_followup_campaign自动化的分析到消息发送流程
extract_peer_review_dataset将数据导出为 CSV 或 JSON
generate_peer_review_feedback_report生成侧重质量的教师报告
generate_peer_review_report生成侧重完成情况的教师报告

示例

用户:“BADM 350 的作业 3 同伴评审进展如何?”

**Agent:**调用 get_peer_review_completion_analytics 并展示:

## Peer Review Status: Assignment 3

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

### 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)

用户:“提醒还没开始评审的学生”

**Agent:**确认 4 位收件人,然后调用 send_peer_review_inbox_messages,并传入他们的用户 ID。

用户:“现在看看已完成的评审质量如何”

**Agent:**调用 analyze_peer_review_quality 并展示质量评分,将 3 份评审标记为过短,并建议教师跟进特定学生。

安全指南

  • 发送前确认——调用任何消息发送工具前,始终向教师展示收件人列表和消息内容。
  • 默认匿名化——在共享环境中查看数据时,使用 anonymize_students=true 或 anonymize_data=true。
  • 遵守速率限制——Canvas API 每 10 分钟大约允许 700 次请求。对于大型课程,消息工具会按顺序发送消息,并内置延迟。
  • 谨慎处理 FERPA 相关信息——除非教师已明确确认当前情境适合,否则切勿在日志、共享屏幕或导出文件中显示学生姓名。

备注

  • 在 Canvas 中启用作业的同伴评审后,这些工具才能返回数据。
  • send_peer_review_followup_campaign 工具会结合分析和消息发送:首次调用会预览收件人并返回令牌;第二次调用(附带令牌)会发送实际消息。仅在教师批准预览后才进行第二次调用。
  • 质量分析使用启发式方法(字数、关键词匹配、情感)。它可以识别可能质量较低的评审,但不能替代教师判断。
  • 此技能与 canvas-morning-check 配合使用效果很好,可全面查看课程状况,包括同伴评审状态、提交率和成绩分布。

评论

支持 Markdown