d

defsolmcp

@defsolmcp/canvas-mcp-server
0 Stars 295 次浏览 defsolmcp 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Canvas MCP 服务器

一个用于与 Canvas LMS API 交互的 Model Context Protocol (MCP) 服务器。该服务器提供了管理课程、用户、内容和评估的工具。

功能

  • 认证:使用 Canvas API 令牌进行安全认证
  • 课程管理:获取课程信息、列出课程、更新课程设置
  • 用户管理:获取用户信息、列出课程用户、管理注册
  • 内容管理:创建和管理页面、模块和模块项
  • 评估管理:创建和管理作业、评分提交、创建公告
  • 测验管理:创建和管理测验、测验题目以及评分测验提交

前提条件

  • Node.js 16 或更高版本
  • 一个 Canvas LMS 实例
  • 具有适当权限的 Canvas API 令牌

安装

  1. 克隆仓库:
    bash
    git clone https://github.com/yourusername/canvas-mcp-server.git
    cd canvas-mcp-server

  2. 安装依赖:
    bash
    npm install

  3. 根据 .env.example 文件创建一个 .env 文件:
    bash
    cp .env.example .env

  4. 编辑 .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

  5. 构建项目:
    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 配置中添加以下内容:

  1. 在 Anything LLM 界面中导航到设置 > MCP
  2. 添加一个新的 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

致谢

相关 MCP 服务