Canvas MCP Server 使用说明
项目简介
Canvas MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在连接 AI 助手(如 Claude)和 Canvas 学习管理系统 (LMS)。通过此服务器,AI 助手可以安全地访问和操作 Canvas LMS 中的数据,例如课程信息、公告、评分细则、作业和学生信息,从而扩展 AI 助手在教育领域的应用能力。
主要功能点
- 课程管理: 列出当前用户参与的课程及其详细信息。
- 公告发布: 在指定课程中发布新的公告。
- 评分标准查看: 查看课程的评分标准 (Rubrics)。
- 学生信息获取: 获取课程中学生 enrollment 信息。
- 作业管理: 访问作业详情和提交状态。
- 提交记录查看: 查看学生的作业提交历史和评论。
- 数据分析: 分析评分标准的统计数据,并生成可视化报告(Prompt 功能)。
安装步骤
- 克隆仓库并安装依赖:
git clone https://github.com/r-huijts/canvas-mcp cd canvas-mcp npm install - 构建项目:
npm run build - 配置环境变量:
- 在项目根目录下创建 '.env' 文件。
- 添加 Canvas API Token:
CANVAS_API_TOKEN=你的Canvas API Token - (可选)设置 Canvas 域名 (默认为 "https://fhict.instructure.com"):
CANVAS_DOMAIN=你的Canvas域名 - 注意: Canvas API Token 需要在 Canvas LMS 中生成,并确保具有访问课程信息的权限。请妥善保管 API Token,避免泄露。
服务器配置
要将 Canvas MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到此服务器。以下是 Claude Desktop 客户端的配置示例,您需要将以下 JSON 配置添加到 Claude Desktop 的配置文件 'claude_desktop_config.json' 中。
配置信息 (JSON 格式):
{ "mcpServers": { "canvas": { "command": "node", "args": [ "/path/to/canvas-mcp/build/index.js" // 请替换为 canvas-mcp 项目 build 目录下的 index.js 文件的绝对路径 ], "env": { "CANVAS_API_TOKEN": "你的Canvas API Token", // 请替换为您的 Canvas API Token,或者确保在运行环境中已设置 CANVAS_API_TOKEN 环境变量 "CANVAS_DOMAIN": "https://your-canvas-instance.com" // 请替换为您的 Canvas 域名,或者确保在运行环境中已设置 CANVAS_DOMAIN 环境变量 } } } }
配置参数说明:
- 'server name': '"canvas"' (服务器名称,在客户端中用于标识和调用)
- 'command': '"node"' (启动服务器的命令,这里使用 Node.js 运行时)
- 'args': '["/path/to/canvas-mcp/build/index.js"]' (命令参数,指向编译后的服务器入口文件 'index.js' 的绝对路径)
- 'env': (环境变量配置)
- 'CANVAS_API_TOKEN': 您的 Canvas API Token,用于服务器访问 Canvas LMS API。
- 'CANVAS_DOMAIN': 您的 Canvas LMS 实例的域名。
请务必将 '/path/to/canvas-mcp/build/index.js' 替换为实际的 'index.js' 文件在您系统中的绝对路径。 您可以通过在终端中进入 'canvas-mcp/build' 目录,然后输入 'pwd' 命令来获取当前目录的绝对路径。
完成配置后,重启 Claude Desktop 客户端使配置生效。
基本使用方法
成功配置并启动 Canvas MCP Server 后,您可以在 MCP 客户端(如 Claude)中使用以下工具 (Tools) 和 Prompt:
可用工具 (Tools):
- 'list-courses': 列出所有可用的课程。
- 'post-announcement': 在指定课程发布公告,需要 'courseId', 'title', 'message' 参数。
- 'list-rubrics': 列出指定课程的评分标准,需要 'courseId' 参数。
- 'list-students': 列出指定课程的学生,需要 'courseId' 参数,可选 'includeEmail' 参数。
- 'list-assignments': 列出指定课程的作业,需要 'courseId' 参数,可选 'studentId', 'includeSubmissionHistory' 参数。
- 'list-assignment-submissions': 列出指定课程特定作业的提交,需要 'courseId', 'assignmentId' 参数,可选 'includeComments' 参数。
- 'list-section-submissions': 列出指定课程特定 section 中特定作业的提交,需要 'courseId', 'assignmentId', 'sectionId' 参数,可选 'includeComments' 参数。
- 'list-sections': 列出指定课程的 section,需要 'courseId' 参数,可选 'includeStudentCount' 参数。
- 'post-submission-comment': 对学生的作业提交添加评论,需要 'courseId', 'assignmentId', 'studentId', 'comment' 参数。
- 'get-rubric-statistics': 获取指定课程特定作业的评分标准统计信息,需要 'courseId', 'assignmentId' 参数,可选 'includePointDistribution' 参数。
可用 Prompt (Prompts):
- 'analyze-rubric-statistics': 分析课程中形成性作业的评分标准统计数据,并创建可视化报告,需要 'courseName' 参数。
您可以通过自然语言指示 AI 助手使用这些工具和 Prompt,例如:
- "列出我的课程" (对应 'list-courses' 工具)
- "在课程 ID 为 123 的课程中发布标题为 '重要通知',内容为 '下周考试'" (对应 'post-announcement' 工具)
- "分析 '高等数学' 课程的评分标准统计数据" (对应 'analyze-rubric-statistics' Prompt)
请参考仓库的 'README.md' 文件获取更详细的工具和 Prompt 参数信息。
信息
分类
生产力应用