Token导航 LogoToken导航TokenDH.com
MCP Canvas (mcp-canvas) logo
AI代理stdio官方级别未说明来源级核验

MCP Canvas (mcp-canvas)

MCP Server

一个为Canvas LMS提供全面集成的FastMCP服务器,使AI助手能够从学生角度访问Canvas的所有功能。

工具数

41

提示词数

0

GitHub Stars

0

资源数

0
教育技术PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

443pablo

提供方

443pablo

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Canvas LMS MCP服务器

全面的 FastMCP Canvas LMS集成服务器,为AI助手提供从学生角度完全访问Canvas功能的权限。

![Deploy to Render](https://render.com/deploy?repo=https://github.com/443pablo/mcp-canvas)

概述

此MCP(模型上下文协议)服务器使AI助手能够代表学生与Canvas LMS进行交互。它提供了50多种工具,涵盖了Canvas的所有主要功能,包括课程、作业、讨论、测验、成绩、文件等。

特性

课程管理

  • list_courses -列出所有已注册的课程
  • get_course -获取详细的课程信息
  • get_course_教学大纲 -查看课程大纲

作业

  • list_任务 -列出课程中的所有作业
  • 获取分配 -获取任务详细信息
  • 提交任务 -提交作业(文本、URL或文件)
  • get_提交 -查看提交状态和成绩
  • get_assignment_rubricc -查看评分标准

模块

  • list_modules -列出课程模块
  • get_module_items -获取模块中的项目
  • mark_module_item_done -跟踪模块进度

讨论

  • list_讨论 -列出讨论主题
  • get_discussion -查看讨论线索
  • create_discession_entry -发布和回复讨论

测验

  • list_测验 -列出所有测验
  • get_quiz -获取测验详细信息
  • 开始_暂停_提交 -开始测验尝试
  • get_quiz_问题 -查看测验问题
  • 回答问题 -提交测验答案
  • 完成_提问_提交 -完成测验提交

成绩

  • get_course_grades -查看课程成绩
  • 用户_分配_有_等级 -查看所有已评分的作业

文件和内容

  • list_course_files -浏览课程文件
  • 获取文件 -获取文件详细信息并下载URL
  • list_course_folders -查看文件夹结构
  • 列表_页面 -列出课程页面
  • get_page -查看页面内容

日历和任务

  • list_calendar_events -查看日历事件
  • get_calendar_event -获取活动详细信息
  • get_upcoming_分配 -查看即将到期的日期
  • get_todo_items -查看待办事项列表

公告

  • 列表_公告 -查看课程公告

沟通

  • list_conversations -查看消息
  • get_对话 -阅读对话详情
  • create_conversation -发送消息

个人资料和组

  • get_user_profile -查看用户资料
  • get_user_enrollments -列出注册信息
  • get_user_active_stream -查看最近的活动
  • list_user_groups -列出组
  • get_group -获取组详细信息

学习成果

  • list_course_outcomes -查看课程学习成果

先决条件

  • Python 3.13或更高版本
  • Canvas LMS帐户
  • Canvas API令牌

获取Canvas API代币

  1. 登录您的Canvas帐户
  2. 转到帐户→ 设置
  3. 向下滚动到“已批准的集成”
  4. 点击“+新访问令牌”
  5. 输入目的(例如“MCP服务器”)
  6. 设置到期日期(可选)
  7. 点击“生成令牌”
  8. 立即复制令牌(您将不会再看到它!)

本地开发

设置

分叉repo,然后运行:

git clone 
cd mcp-canvas
conda create -n mcp-canvas python=3.13
conda activate mcp-canvas
pip install -r requirements.txt

配置

设置环境变量:

export CANVAS_API_URL="https://your-institution.instructure.com/api/v1"
export CANVAS_API_TOKEN="your_token_here"

或者创建一个 .env 文件(不要提交!):

CANVAS_API_URL=https://your-institution.instructure.com/api/v1
CANVAS_API_TOKEN=your_token_here

注: 替换 your-institution.instructure.com 使用您的Canvas实例URL(例如。, canvas.harvard.edu, canvas.stanford.edu,或者只是 canvas.instructure.com 免费帐户)。

测试

python src/server.py
# then in another terminal run:
npx @modelcontextprotocol/inspector

打开http://localhost:3000并连接到 http://localhost:8000/mcp 使用“流式HTTP”传输(注意 /mcp!).

示例用法

连接后,您可以测试以下工具:

# List all your courses
list_courses(enrollment_state="active")

# Get assignments for a course
list_assignments(course_id=12345, include="submission")

# View your grades
get_course_grades(course_id=12345)

# Submit an assignment
submit_assignment(
    course_id=12345,
    assignment_id=67890,
    submission_type="online_text_entry",
    body="My assignment submission..."
)

# Post to a discussion
create_discussion_entry(
    course_id=12345,
    topic_id=54321,
    message="Great point! I think..."
)

部署

选项1:一键部署渲染

单击上面的“部署到渲染”按钮,然后:

  1. 设置 CANVAS_API_URL 环境变量
  2. 设置 CANVAS_API_TOKEN 环境变量
  3. 点击“应用”

您的服务器将在 https://your-service-name.onrender.com/mcp (注意 /mcp!)

选项2:手动部署以渲染

  1. 分叉此存储库
  2. 将您的GitHub帐户连接到Render
  3. 在Render上创建新的Web服务
  4. 连接您的分叉存储库
  5. 添加环境变量:

- CANVAS_API_URL -您的Canvas API URL - CANVAS_API_TOKEN -您的Canvas API代币 - ENVIRONMENT -设置为 production

  1. 渲染将自动检测 render.yaml 配置

选项3:部署到其他平台

服务器可以部署到任何支持Python web应用程序的平台上:

Heroku:

heroku create your-canvas-mcp
heroku config:set CANVAS_API_URL="https://your-canvas-url/api/v1"
heroku config:set CANVAS_API_TOKEN="your_token"
git push heroku main

铁路:

  1. 连接您的GitHub仓库
  2. 在设置中添加环境变量
  3. 部署

Fly.io:

fly launch
fly secrets set CANVAS_API_URL="https://your-canvas-url/api/v1"
fly secrets set CANVAS_API_TOKEN="your_token"
fly deploy

与AI助手集成

克劳德桌面版

添加到您的Claude Desktop配置文件中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "canvas": {
      "url": "https://your-server.onrender.com/mcp",
      "transport": "http"
    }
  }
}

您可以将MCP服务器连接到Poke poke.com/设置/连接.

要显式测试连接,请向Poke询问以下内容: Tell the subagent to use the "canvas" integration's "list_courses" tool.

如果您遇到Poke没有调用正确的MCP的持续问题(例如,在您重命名连接后),请发送 clearhistory 点击可删除所有消息历史记录并重新开始。

其他MCP客户端

此服务器通过HTTP实现了标准的MCP协议,因此它可以与任何兼容MCP的客户端一起工作。配置它:

  • 网址: https://your-server-url/mcp
  • 传输:HTTP(流式传输)

用例

此MCP服务器使AI助手能够帮助学生:

  • 课程管理:查看课程、教学大纲和课程材料
  • 作业帮助:检查截止日期,查看要求,提交工作
  • 学习计划:跟踪即将到来的作业并制定学习计划
  • 讨论参与:阅读并回应课堂讨论
  • 成绩跟踪:监控成绩和学业进展
  • 测验准备:查看测验细节和时间限制
  • 文件访问:查找和访问课程文件和资源
  • 沟通:向老师和同学发送信息
  • 日历管理:查看和组织学术日历
  • 小组工作:访问组信息并协作

API覆盖范围

该服务器从学生的角度实现Canvas LMS REST API,基于 画布API文档。它包括:

  • ✅ API课程
  • ✅ 分配API
  • ✅ 提交API
  • ✅ 模块API
  • ✅ 讨论主题API
  • ✅ API测验
  • ✅ 文件API
  • ✅ 页面API
  • ✅ API公告
  • ✅ 日历事件API
  • ✅ 用户API
  • ✅ 注册API
  • ✅ API组
  • ✅ 对话API
  • ✅ API评价准则
  • ✅ 结果API
  • ✅ 待办事项API

安全注意事项

  • 永远不要提交Canvas API令牌 到版本控制
  • 将令牌存储在环境变量中或进行安全的秘密管理
  • 使用令牌到期日期来限制风险敞口
  • 定期旋转令牌
  • 共享部署的服务器URL时要小心
  • 考虑为生产使用实施额外的身份验证
  • 审查Canvas API费率限制并实施适当的节流

故障排除

“未设置CANVAS_API_TOKEN环境变量”

确保您已设置 CANVAS_API_TOKEN Canvas API令牌的环境变量。

“未经授权”或401错误

  • 检查您的API令牌是否有效且尚未过期
  • 验证您在Canvas中具有正确的权限
  • 确保令牌已在您的环境中正确设置

“未找到”或404错误

  • 验证Canvas API URL是否适用于您的机构
  • 检查课程ID、作业ID等是否有效
  • 确保您已注册您尝试访问的课程

连接错误

  • 验证您的Canvas实例URL是否可访问
  • 检查网络连接
  • 确认API端点路径正确

发展

添加新工具

要添加新的Canvas API端点,请执行以下操作:

@mcp.tool(description="Your tool description here")
async def your_tool_name(param1: type1, param2: type2) -> ReturnType:
    """
    Detailed documentation.
    
    Args:
        param1: Description of param1
        param2: Description of param2
    """
    result = await make_canvas_request("GET", "endpoint/path", params={...})
    return result

测试

使用MCP检查器或直接向正在运行的服务器发出请求来测试单个工具。

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

资源

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持

对于问题和疑问:

致谢

______________________________________________________________________

注: 这是一个非官方的Canvas集成。它不隶属于股份有限公司Instructionre,Inc.,也不由其背书或支持。

目录标签

目录标签

教育技术PythonClaude本地部署学习管理系统AI助手课程管理作业提交

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

41

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP