使用说明
Claude的Canvas LMS MCP服务器
一个MCP(模型上下文协议)服务器,将Claude连接到Canvas LMS,让您通过自然对话管理您的课程作业。
问克劳德这样的问题:
- “本周我有什么作业要交?”
- “给我看看我论文作业的评分标准”
- “我的教授在反馈中说了什么?”
- “列出我的所有课程”
- “是否有逾期未交的作业?”
快速开始
1.获取Canvas API代币
- 登录Canvas
- 点击您的 头像 → 设置
- 滚动到 已批准的集成
- 点击 +新访问令牌
- 命名(例如“Claude”)并单击 生成令牌
- 复制令牌 -你不会再看到它了!
2.安装MCP服务器
# Clone this repository
git clone https://github.com/lucanardinocchi/canvas-mcp.git
cd canvas-mcp
# Install dependencies
npm install
# Build the project
npm run build
3.配置克劳德桌面
打开Claude Desktop的配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
添加(或合并)此配置:
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/FULL/PATH/TO/canvas-mcp/dist/index.js"],
"env": {
"CANVAS_API_TOKEN": "YOUR_TOKEN_HERE",
"CANVAS_BASE_URL": "https://your-school.instructure.com"
}
}
}
}
替换:
/FULL/PATH/TO/canvas-mcp使用克隆此仓库的实际路径YOUR_TOKEN_HERE使用Canvas API代币https://your-school.instructure.com使用您的Canvas URL
常见画布URL:
| 大学 | 画布URL |
|---|---|
| 悉尼大学 | https://canvas.sydney.edu.au |
| 通用说明书 | https://canvas.instructure.com |
| 您的学校 | 登录Canvas时检查浏览器 |
4.重新启动克劳德桌面
完全退出克劳德桌面(Cmd+Q/Alt+F4)并重新打开。
您现在应该可以在Claude中看到Canvas工具了!
它能做什么?
📚 课程
- 列出您注册的所有课程
- 获取课程详情和教学大纲
📝 作业
- 列出作业(按即将完成、逾期等进行筛选)
- 查看完整的作业详细信息和说明
- 见量规和评分标准
- 检查你的成绩和提交状态
💬 讨论
- 查看讨论板
- 发布新的讨论条目
- 回复同学
📤 提交
- 直接提交文本作业
- 上传文件以供提交
- 查看讲师反馈和评论
🔍 搜索
- 按截止日期查找作业
- 搜索课程内容
- 获取所有课程中即将进行的所有工作
所有可用工具
| 工具 | 它做什么 |
|---|---|
list_courses |
列出您注册的课程 |
get_course |
获取特定课程的详细信息 |
list_assignments |
列出作业(带过滤器) |
get_assignment |
获取完整的作业细节+评分标准 |
get_rubric |
获取作业的评分标准 |
get_submission |
查看您的提交和反馈 |
submit_assignment |
向作业提交文本或URL |
upload_file |
上传文件以供提交 |
list_modules |
浏览课程模块 |
list_announcements |
获取课程公告 |
list_discussions |
查看讨论主题 |
get_discussion_entries |
阅读讨论帖子 |
post_discussion_entry |
发布到讨论 |
reply_to_discussion |
回复讨论帖子 |
find_assignments_by_due_date |
查找日期范围内的作业 |
get_upcoming_assignments |
在接下来的N天内完成工作 |
get_overdue_assignments |
查找逾期工作 |
search_course_content |
搜索模块和作业 |
get_all_upcoming_work |
所有课程即将开展的工作 |
故障排除
“画布工具未显示”
- 确保您完全重新启动了Claude Desktop
- 检查配置中的路径是否正确
- 验证您的
claude_desktop_config.json是有效的JSON
“401未经授权”错误
您的API令牌无效或已过期。在Canvas设置中生成一个新的。
“403禁止”错误
您无权访问该资源。课程可能已经结束,或者你没有注册。
“连接被拒绝”或网络错误
检查你的 CANVAS_BASE_URL 正确(没有尾随斜线)。
安全说明
⚠️ 对您的API代币保密!
- 永远不要将代币提交给git
- 不要与他人共享您的令牌
- 创建令牌时设置过期日期
- 撤销您不再使用的令牌(画布设置→ 已批准的集成)
您的API代币与Canvas帐户具有相同的访问权限-任何拥有该代币的人都可以查看您的成绩、提交作业等。
发展
# Install dependencies
npm install
# Build once
npm run build
# Watch mode (auto-rebuild on changes)
npm run dev
项目结构
canvas-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── canvas-client.ts # Canvas API wrapper
│ ├── tools/ # Tool implementations
│ │ ├── courses.ts
│ │ ├── assignments.ts
│ │ ├── submissions.ts
│ │ ├── discussions.ts
│ │ ├── modules.ts
│ │ └── search.ts
│ └── types/
│ └── canvas.ts # TypeScript types
├── dist/ # Compiled output
├── package.json
└── tsconfig.json
贡献
欢迎投稿!请随意:
- 报告错误
- 建议新功能
- 提交拉取请求
许可证
麻省理工学院-随心所欲地使用它!
致谢
内置: