# johnnyrobot
## 基本信息
- Slug: `johnnyrobot-claude-canvas-mcp`
- Source: modelscope
- Publisher: @johnnyrobot/claude-canvas-mcp
- Categories: education-and-learning-tools / app-automation
- Hosted: No
- License: Unknown
- Source URL: https://www.modelscope.cn/mcp/servers/@johnnyrobot/claude-canvas-mcp
## 简介
暂无描述。
## MCP Server 详情

# Claude Canvas MCP

一个模型上下文协议（MCP）服务器，使Claude能够与Canvas LMS进行交互。该服务器通过Canvas API提供了管理课程、公告、作业、学生等功能的工具。

## 功能

- 列出活跃课程及其详细信息
- 检索课程模块、页面和内容
- 查看作业、测验和讨论
- 访问学生注册信息
- 发布公告和评论
- 查看提交详情和成绩
- 上传和下载文件
- 管理评分标准和成绩

## 前提条件

- Node.js (v16 或更高版本)
- 一个Canvas API令牌
- Canvas实例URL（默认为"http://canvas.docker/"）
- Claude桌面应用程序

## 安装

1. 克隆此仓库并安装依赖项：

bash
git clone https://github.com/johnnyrobot/claude-canvas-mcp.git
cd claude-canvas-mcp
npm install


2. 构建TypeScript项目：

bash
npm run build


3. 配置环境变量：

bash
# 复制示例环境文件
cp .env.example .env

# 使用您的Canvas信息编辑.env文件
nano .env


## Claude桌面集成

1. 打开Claude桌面配置文件：

**MacOS**:

bash
code ~/Library/Application Support/Claude/claude_desktop_config.json


**Windows**:

bash
code %AppData%Claudeclaude_desktop_config.json


2. 添加Canvas MCP服务器配置：

json
{
  "mcpServers": {
    "canvas": {
      "command": "node",
      "args": [
        "/path/to/claude-canvas-mcp/build/index.js"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your_token_here",
        "CANVAS_DOMAIN": "http://canvas.docker/"
      }
    }
  }
}


3. 重启Claude桌面以应用更改

## 可用工具

### list-courses

列出经过身份验证用户的所有活跃课程
- 不需要参数
- 返回课程名称、ID和学期信息

### get-course

获取特定课程的详细信息
- 必需参数：
  - courseId: string

### list-modules

列出课程中的所有模块
- 必需参数：
  - courseId: string

### list-module-items

列出模块中的所有项目
- 必需参数：
  - courseId: string
  - moduleId: string

### list-assignments

获取课程中的所有作业
- 必需参数：
  - courseId: string
- 可选参数：
  - includeContent: boolean (默认: false)

### get-assignment

获取关于作业的详细信息
- 必需参数：
  - courseId: string
  - assignmentId: string

### list-students

获取课程中注册学生的完整列表
- 必需参数：
  - courseId: string
- 可选参数：
  - includeEmail: boolean (默认: false)

### post-announcement

向特定课程发布公告
- 必需参数：
  - courseId: string
  - title: string
  - message: string

### list-submissions

获取作业的所有学生提交
- 必需参数：
  - courseId: string
  - assignmentId: string

### get-submission

获取特定学生对作业的提交
- 必需参数：
  - courseId: string
  - assignmentId: string
  - studentId: string

### post-submission-comment

在学生的提交上发表评论
- 必需参数：
  - courseId: string
  - assignmentId: string
  - studentId: string
  - comment: string

### list-files

列出课程中的文件
- 必需参数：
  - courseId: string
- 可选参数：
  - folderId: string

### upload-file

将文件上传到课程
- 必需参数：
  - courseId: string
  - fileName: string
  - fileContent: string
- 可选参数：
  - folderId: string

## 许可证

MIT许可证

