一个模型上下文协议(MCP)服务器,使像Claude这样的AI助手能够与Canvas LMS进行交互。该服务器提供了通过Canvas API管理课程、公告、评分标准、作业、模块、页面和学生数据的工具。
🚀 现已作为Claude桌面扩展程序提供一键安装!
Canvas MCP服务器现在作为Claude桌面扩展程序提供,以实现终极用户体验:
非常适合希望获得强大Canvas集成而无需处理技术复杂性的教育工作者!
此Canvas MCP服务器包含以隐私为中心的匿名化功能,用于学生数据。默认情况下,所有学生姓名和电子邮件地址都会被匿名化以保护隐私,但您可以通过自然语言请求实际数据。
默认行为(匿名):
学生1,学生2等。student1@example.com,student2@example.com自然语言控制: 您可以轻松地通过自然语言切换到实际数据:
❌ 匿名(默认):
"列出课程123中的所有学生"
→ 返回:学生1,学生2,student1@example.com
✅ 非匿名:
"列出课程123中的所有学生,并显示他们的实际姓名和电子邮件"
"获取带有真实学生姓名的作业提交"
"显示具有实际身份的学生数据"
→ 返回:John Smith,Jane Doe,john.smith@university.edu
以下工具支持匿名化控制:
list-students - 学生注册数据list-assignments - 当包含学生提交数据时list-assignment-submissions - 所有提交数据list-section-submissions - 按部分筛选的提交list-rubric-assessments - 评分标准评估数据🔒 默认隐私:除非明确要求,否则所有学生数据都是匿名化的
🗣️ 自然语言:需要时只需询问“实际姓名”
👨🏫 教师保护:教师/管理员姓名永远不会被匿名化
🔄 一致映射:同一学生在所有调用中都使用相同的假名
🎯 选择性:仅匿名化学生数据,保留所有其他信息
匿名化系统特别针对学生隐私,同时保留教育背景:
🎓 教育理由:
📝 实例:
作业评论(启用匿名化):
✅ "对数据分析趋势的出色分析! - Johnson教授"
❌ "我发现这一节很困惑 - 学生1"
❌ "感谢您的反馈! - 学生2"
🔍 技术实现:
author.role字段('student','teacher','admin','ta')role === 'student'的作者会被匿名化这种设计确保了学生的隐私,同时保持了知道哪位讲师提供了特定反馈的教育价值。如果您需要完全匿名化包括员工,请修改匿名器逻辑或请求此功能增强。
每个处理学生数据的工具都包含一个anonymous参数:
anonymous: true(优先考虑隐私)anonymous: false示例说明Claude如何解释您的请求:
anonymous: falseanonymous: falseanonymous: true(默认)anonymous: true全新! 使用Claude桌面扩展程序的一键安装:
.mcpb文件以使用Claude桌面打开优点:
使用此MCP服务器最简单的方法是通过npm:
npm install -g @r-huijts/canvas-mcp
或者直接使用npx(无需安装):
npx @r-huijts/canvas-mcp
克隆此仓库并安装依赖项:
git clone <repository-url>
cd canvas-mcp
npm install
在项目根目录创建一个.env文件:
CANVAS_API_TOKEN=your_canvas_api_token_here
CANVAS_BASE_URL=https://your-canvas-instance.instructure.com
构建TypeScript项目:
npm run build
启动服务器:
npm start
打开Claude桌面的配置文件:
MacOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
code %AppData%\Claude\claude_desktop_config.json
添加Canvas MCP服务器配置:
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": [
"-y",
"@r-huijts/canvas-mcp"
],
"env": {
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_BASE_URL": "https://your-canvas-instance.com"
}
}
}
}
{
"mcpServers": {
"canvas": {
"command": "node",
"args": [
"/path/to/canvas-mcp/build/index.js"
],
"env": {
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_BASE_URL": "https://your-canvas-instance.com"
}
}
}
}
重启Claude桌面以应用更改
NPM包安装的好处:
-y标志自动接受包安装提示解决NPX问题:
列出认证用户的所有活跃课程
向特定课程发布公告
列出特定课程的所有评分标准
获取课程中所有注册学生的完整列表
获取课程中所有作业及其提交状态
获取特定作业的所有学生提交
获取特定作业按部分筛选的所有学生提交
获取课程中所有部分的列表
在学生的作业提交上发表评论
获取作业评分标准的统计数据
列出课程中的所有模块,可选包括内联项目
列出特定模块中的所有项目
切换模块的发布/未发布状态
按URL别名列出课程中的所有页面
通过URL别名获取特定页面的内容(HTML/正文)
通过URL别名更新(或创建)页面
列出页面的所有修订
将页面恢复到之前的修订
列出课程中的所有测验
获取单个测验的元数据
在课程中创建新的测验
更新现有测验
删除测验
列出测验中的所有问题
获取单个测验问题
为测验创建新的问题
更新测验问题
删除测验问题
列出测验中的所有问题组
获取单个测验问题组
为测验创建新的问题组
更新测验问题组
删除测验问题组
分析课程中形成性作业的评分标准统计数据,并创建可视化图表