ranver
服务介绍
Canvas MCP 服务器
一个模型上下文协议(MCP)服务器,使像 Claude 这样的 AI 助手能够与 Canvas LMS 交互。该服务器通过 Canvas API 提供了管理课程、公告、评分标准、作业和学生数据的工具。
特性
- 列出活跃课程及其详细信息
- 向课程发布公告
- 查看课程评分标准
- 获取学生注册信息
- 访问作业详情和提交内容
- 查看学生的提交历史记录和评论
先决条件
- Node.js (v16 或更高版本)
- 一个 Canvas API 令牌
- Canvas 实例 URL (默认为 "https://fhict.instructure.com")
安装
-
克隆此仓库并安装依赖项:
bash
git clone
cd canvas-mcp
npm install -
构建 TypeScript 项目:
bash
npm run build -
配置环境变量:
bash创建 .env 文件
echo "CANVAS_API_TOKEN=your_token_here" > .env
可选:设置自定义 Canvas URL
echo "CANVAS_DOMAIN=https://your-canvas-instance.com" >> .env
Claude 桌面集成
-
打开 Claude 桌面配置文件:
MacOS:
bash
code ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
bash
code %AppData%Claudeclaude_desktop_config.json -
添加 Canvas MCP 服务器配置:
json
{
"mcpServers": {
"canvas": {
"command": "node",
"args": [
"/path/to/canvas-mcp/build/index.js"
],
"env": {
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_DOMAIN": "https://your-canvas-instance.com"
}
}
}
} -
重启 Claude 桌面以应用更改
可用工具
list-courses
列出已认证用户的所有活跃课程
- 不需要参数
- 返回课程名称、ID 和学期信息
post-announcement
向特定课程发布公告
- 必需参数:
- courseId: string
- title: string
- message: string
list-rubrics
列出特定课程的所有评分标准
- 必需参数:
- courseId: string
- 返回评分标准标题、ID 和描述
list-students
获取课程中所有注册学生列表
- 必需参数:
- courseId: string
- 可选参数:
- includeEmail: boolean (默认: false)
- 返回学生姓名、ID 和可选电子邮件地址
list-assignments
获取课程中的所有作业及其提交状态
- 必需参数:
- courseId: string
- 可选参数:
- studentId: string
- includeSubmissionHistory: boolean (默认: false)
- 返回作业详情和提交状态
list-assignment-submissions
获取特定作业的所有学生提交
- 必需参数:
- courseId: string
- assignmentId: string
- 可选参数:
- includeComments: boolean (默认: true)
- 返回提交详情、成绩和评论
可用提示
analyze-rubric-statistics
分析课程中形成性作业的评分标准统计数据并创建可视化图表
- 必需参数:
- courseName: string (要分析的课程名称)
- 创建两个全面的可视化图表:
- 分组堆叠条形图显示每个标准在所有作业中的得分分布
- 分组条形图显示所有作业中每个标准的平均得分
- 提供跨作业和标准的比较分析
- 包括进展分析和趋势识别
故障排除
常见问题
-
服务器未出现在 Claude 桌面上:
- 验证配置文件语法
- 确保文件路径是绝对路径
- 确保 Canvas API 令牌有效
- 重启 Claude 桌面
-
连接错误:
- 检查 Canvas API 令牌权限
- 确认 Canvas 实例可访问
- 查看 Claude 的 MCP 日志:
bashMacOS
tail -f ~/Library/Logs/Claude/mcp*.logWindows
type %AppData%ClaudeLogsmcp*.log### 调试日志
服务器将错误记录到 stderr。这些错误可以在 Claude Desktop 的日志中查看,或者在手动运行时重定向:
bash
node build/index.js 2> debug.log
安全注意事项
-
API 令牌安全:
- 切勿将 Canvas API 令牌提交到版本控制系统
- 使用环境变量或安全配置
- 定期轮换您的 API 令牌
-
权限:
- 使用具有最小必要权限的令牌
- 定期审查 Canvas API 访问日志
许可证
MIT 许可证
版权所有 (c) 2024
特此授予任何人免费获得本软件及其相关文档文件(“软件”)副本的权利,可以不受限制地使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向其提供软件的人也这样做,但须遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按“原样”提供,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人都不对因使用或无法使用本软件而引起的任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他情况下。