Canvas课程管理平台
一种模型上下文协议服务器,可实现与Canvas学习管理系统API的交互,使用户能够在Canvas中管理课程、作业、注册和成绩。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"canvas-mcp-server": {
"args": [
"-y",
"canvas-mcp-server"
],
"command": "npx",
"env": {
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_DOMAIN": "your_school.instructure.com"
}
}
}
}
该服务需要配置环境变量:CANVAS_API_TOKEN、CANVAS_DOMAIN
服务介绍
Canvas MCP 服务器
一个用于与 Canvas API 交互的模型上下文协议 (MCP) 服务器。此服务器允许您在 Canvas 中管理课程、作业、注册和成绩。
先决条件
- Node.js: 版本 18 或更高
- Canvas API Token: 从您的 Canvas 账户中获取
- Canvas 域名: 通常是
canvas.instructure.com
设置
-
克隆仓库
git clone https://github.com/yourusername/canvas-mcp-server.git cd canvas-mcp-server -
安装依赖
npm install -
配置环境变量
复制示例环境文件:
#0编辑
.env文件,并将占位符值替换为您实际的 Canvas API token 和域名。构建项目
#1 -
运行服务器
npm start服务器将启动并通过 stdio 监听 MCP 请求。
连接到 Claude 桌面版
-
更新 Claude 配置
将 MCP 服务器配置添加到您的
claude_desktop_config.json中:#2重启 Claude 桌面版
- 完全退出 Claude 桌面版。
- 再次启动 Claude 桌面版。
- 导航到 🔌 菜单,找到并连接您的 Canvas MCP 服务器。
可用工具(更多面向学生的功能即将推出)
canvas_create_course: 在 Canvas 中创建新课程。canvas_update_course: 更新 Canvas 中现有的课程。canvas_create_assignment: 在 Canvas 课程中创建新作业。canvas_update_assignment: 更新现有作业。canvas_submit_grade: 提交学生的作业成绩。canvas_enroll_user: 注册用户参加课程。
错误处理
工具返回带有 isError: true 的错误消息以指示问题。
确保设置所有必需的环境变量以避免运行时错误。
故障排除
-
构建错误:
检查 TypeScript 版本:
npx tsc --version
清理并重建:rm -rf build/ && npm run build -
运行时错误:
查看日志以获取详细的错误消息。
确保环境变量正确设置。 -
类型错误:
使用 TypeScript 的类型检查进行验证:
npx tsc --noEmit
贡献
欢迎贡献!请针对任何改进或错误修复打开问题或提交拉取请求。
许可证
该项目根据 MIT 许可证发布。
附加说明
-
类型安全:
types.ts文件确保了与 Canvas API 的所有交互都是类型安全的,减少了运行时错误并提高了代码的可维护性。 -
错误处理:服务器通过带有
isError标志返回有意义的消息来优雅地处理错误,使客户端(例如 Claude Desktop)能够理解并做出适当的反应。 -
环境变量:通过环境变量管理敏感信息(如 API 令牌),增强了不同环境下的安全性和灵活性。
-
模块化:将关注点分离到不同的文件中(
types.ts、client.ts、index.ts),使代码库更易于导航和维护。
请根据您项目的具体需求自由调整文件路径和配置。如果您需要进一步的帮助,请告诉我!