johnnyrobot
服务介绍
Claude Canvas MCP
一个模型上下文协议(MCP)服务器,使Claude能够与Canvas LMS进行交互。该服务器通过Canvas API提供了管理课程、公告、作业、学生等功能的工具。
功能
- 列出活跃课程及其详细信息
- 检索课程模块、页面和内容
- 查看作业、测验和讨论
- 访问学生注册信息
- 发布公告和评论
- 查看提交详情和成绩
- 上传和下载文件
- 管理评分标准和成绩
前提条件
- Node.js (v16 或更高版本)
- 一个Canvas API令牌
- Canvas实例URL(默认为"http://canvas.docker/")
- Claude桌面应用程序
安装
- 克隆此仓库并安装依赖项:
bash
git clone https://github.com/johnnyrobot/claude-canvas-mcp.git
cd claude-canvas-mcp
npm install
- 构建TypeScript项目:
bash
npm run build
- 配置环境变量:
bash
复制示例环境文件
cp .env.example .env
使用您的Canvas信息编辑.env文件
nano .env
Claude桌面集成
- 打开Claude桌面配置文件:
MacOS:
bash
code ~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
bash
code %AppData%Claudeclaude_desktop_config.json
- 添加Canvas MCP服务器配置:
json
{
"mcpServers": {
"canvas": {
"command": "node",
"args": [
"/path/to/claude-canvas-mcp/build/index.js"
],
"env": {
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_DOMAIN": "http://canvas.docker/"
}
}
}
}
- 重启Claude桌面以应用更改
可用工具
list-courses
列出经过身份验证用户的所有活跃课程
- 不需要参数
- 返回课程名称、ID和学期信息
get-course
获取特定课程的详细信息
- 必需参数:
- courseId: string
list-modules
列出课程中的所有模块
- 必需参数:
- courseId: string
list-module-items
列出模块中的所有项目
- 必需参数:
- courseId: string
- moduleId: string
list-assignments
获取课程中的所有作业
- 必需参数:
- courseId: string
- 可选参数:
- includeContent: boolean (默认: false)
get-assignment
获取关于作业的详细信息
- 必需参数:
- courseId: string
- assignmentId: string
list-students
获取课程中注册学生的完整列表
- 必需参数:
- courseId: string
- 可选参数:
- includeEmail: boolean (默认: false)
post-announcement
向特定课程发布公告
- 必需参数:
- courseId: string
- title: string
- message: string
list-submissions
获取作业的所有学生提交
- 必需参数:
- courseId: string
- assignmentId: string
get-submission
获取特定学生对作业的提交
- 必需参数:
- courseId: string
- assignmentId: string
- studentId: string
post-submission-comment
在学生的提交上发表评论
- 必需参数:
- courseId: string
- assignmentId: string
- studentId: string
- comment: string
list-files
列出课程中的文件
- 必需参数:
- courseId: string
- 可选参数:
- folderId: string
upload-file
将文件上传到课程
- 必需参数:
- courseId: string
- fileName: string
- fileContent: string
- 可选参数:
- folderId: string
许可证
MIT许可证