defsolmcp
服务介绍
Canvas MCP 服务器
一个用于与 Canvas LMS API 交互的 Model Context Protocol (MCP) 服务器。该服务器提供了管理课程、用户、内容和评估的工具。
功能
- 认证:使用 Canvas API 令牌进行安全认证
- 课程管理:获取课程信息、列出课程、更新课程设置
- 用户管理:获取用户信息、列出课程用户、管理注册
- 内容管理:创建和管理页面、模块和模块项
- 评估管理:创建和管理作业、评分提交、创建公告
- 测验管理:创建和管理测验、测验题目以及评分测验提交
前提条件
- Node.js 16 或更高版本
- 一个 Canvas LMS 实例
- 具有适当权限的 Canvas API 令牌
安装
-
克隆仓库:
bash
git clone https://github.com/yourusername/canvas-mcp-server.git
cd canvas-mcp-server -
安装依赖:
bash
npm install -
根据
.env.example文件创建一个.env文件:
bash
cp .env.example .env -
编辑
.env文件,填入你的 Canvas API 令牌和 URL:CANVAS_API_TOKEN=your_canvas_api_token_here
CANVAS_API_URL=https://your-institution.instructure.com/api/v1
MCP_SERVER_NAME=canvas-mcp -
构建项目:
bash
npm run build
使用
运行服务器
bash
npm start
与 Claude for Desktop 配置
要将此 MCP 服务器与 Claude for Desktop 一起使用,请在您的 Claude for Desktop 配置文件中添加以下内容:
json
{
"mcpServers": {
"canvas-mcp": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/canvas-mcp-server/dist/index.js"
]
}
}
}
将 /ABSOLUTE/PATH/TO/ 替换为实际的 canvas-mcp-server 目录路径。
与 Anything LLM 配置
要将此 MCP 服务器与 Anything LLM 一起使用,请在您的 Anything LLM MCP 配置中添加以下内容:
- 在 Anything LLM 界面中导航到设置 > MCP
- 添加一个新的 MCP 服务器,并使用以下配置:
json
{
"name": "canvas-mcp",
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/canvas-mcp-server/dist/index.js"
]
}
将 /ABSOLUTE/PATH/TO/ 替换为实际的 canvas-mcp-server 目录路径。
有关更多信息,请参阅 Anything LLM MCP 文档。
可用工具
课程管理
get_course: 获取关于 Canvas 课程的信息list_courses: 列出当前用户的 Canvas 课程update_course: 更新 Canvas 课程设置get_course_modules: 获取 Canvas 课程的模块get_course_assignments: 获取 Canvas 课程的作业
用户管理
get_user: 获取关于 Canvas 用户的信息get_self: 获取关于当前 Canvas 用户的信息list_course_users: 列出注册了 Canvas 课程的用户enroll_user: 注册用户到 Canvas 课程remove_enrollment: 从 Canvas 课程中移除用户注册send_message: 向 Canvas 用户发送消息
内容管理
get_course_pages: 获取 Canvas 课程的页面get_page_content: 获取 Canvas 页面的内容create_or_update_page: 创建或更新 Canvas 页面delete_page: 删除 Canvas 页面create_module: 在 Canvas 课程中创建新模块add_module_item: 向 Canvas 课程中的模块添加项
评估管理
create_assignment: 在 Canvas 课程中创建新作业update_assignment: 更新 Canvas 课程中的现有作业grade_submission: 对作业的学生提交进行评分get_submissions: 获取作业的学生提交create_announcement: 在 Canvas 课程中创建新公告
测验管理
list_quizzes: 列出 Canvas 课程中的测验-get_quiz: 获取特定测验的详细信息create_quiz: 在Canvas课程中创建新的测验update_quiz: 更新Canvas课程中的现有测验delete_quiz: 从Canvas课程中删除测验get_quiz_questions: 获取特定测验的问题create_quiz_question: 为测验创建新问题update_quiz_question: 更新现有测验问题delete_quiz_question: 从测验中删除问题get_quiz_submissions: 获取特定测验的提交grade_quiz_submission: 评分测验提交
开发
项目结构
canvas-mcp-server/
├── src/
│ ├── index.ts # 主入口点
│ ├── auth/ # 认证处理
│ ├── api/ # Canvas API 客户端
│ │ └── client.ts # 带有分页和速率限制的API客户端
│ ├── tools/ # MCP工具实现
│ │ ├── courses.ts # 与课程相关的工具
│ │ ├── users.ts # 与用户相关的工具
│ │ ├── content.ts # 与内容相关的工具
│ │ ├── assessments.ts # 与评估相关的工具
│ │ └── quizzes.ts # 与测验相关的工具
│ └── utils/
│ ├── logging.ts # 日志工具
│ └── error.ts # 错误处理工具
├── dist/ # 编译后的JavaScript文件
├── .env # 环境变量
└── package.json # 项目依赖
以开发模式运行
bash
npm run dev
许可证
MIT