Token导航 LogoToken导航TokenDH.com
MCP Canvas Hackathon logo
运维云端stdio官方级别未说明来源级核验

MCP Canvas Hackathon

MCP Server

一个用于与Canvas学习管理系统API交互的Message Control Protocol (MCP)服务器实现,提供课程管理、作业访问、用户管理等功能。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
教育技术PythonClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

jpablomm

提供方

jpablomm

最后核验

2026/5/17 20:21

运行时

Python

快速接入

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

命令预览

python -m venv canvas-mcp

详细介绍

Canvas MCP服务器

此存储库包含用于与Canvas学习管理系统API交互的消息控制协议(MCP)服务器实现。该服务器旨在与Claude Desktop和其他MCP客户端协同工作。

概述

Canvas MCP服务器为Canvas LMS API提供本地接口,允许您:

  • 列出并管理课程
  • 访问分配和提交
  • 查看公告
  • 检索课程大纲和模块
  • 管理用户和注册
  • 生成课程摘要

先决条件

  • Python 3.x
  • 虚拟环境(venv)
  • Canvas API代币
  • Canvas API URL(例如。,https://canvas.illinois.edu/api/v1)

安装

  1. 克隆此存储库:
git clone https://github.com/vishalsachdev/canvas-mcp.git
cd canvas-mcp
  1. 创建并激活虚拟环境:
python -m venv canvas-mcp
source canvas-mcp/bin/activate  # On Unix/macOS
  1. 安装依赖项:
pip install -r requirements.txt

配置

1.创建环境文件

创建一个 .env 根目录中的文件,包含以下变量:

CANVAS_API_TOKEN=your_canvas_api_token_here
CANVAS_API_URL=https://canvas.youruniversity.edu/api/v1

将这些值替换为:

2.配置启动脚本

start_canvas_server.sh 脚本已配置为:

  • 从加载环境变量 .env 文件
  • 激活虚拟环境
  • 运行缓存的服务器实现

使启动脚本可执行:

chmod +x start_canvas_server.sh

3.克劳德桌面配置

  1. 安装 克劳德桌面 如果你还没有。
  1. 创建或编辑Claude Desktop配置文件:
vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. 添加Canvas MCP服务器配置:
{
  "mcpServers": [
    {
      "name": "canvas-api",
      "command": "/Users/YOUR_USERNAME/path/to/canvas-mcp/start_canvas_server.sh"
    }
  ]
}

替换 /Users/YOUR_USERNAME/path/to/canvas-mcp 带有克隆此存储库的绝对路径。

  1. 重新启动Claude Desktop以加载新配置。

可用工具

服务器为Canvas LMS交互提供了以下工具:

课程管理

  • list_courses:列出经过身份验证的用户的所有课程
  • get_course_details:获取特定课程的详细信息
  • summarize_course:生成课程的综合摘要

作业

  • list_assignments:列出课程的所有作业
  • get_assignment_details:获取特定任务的详细信息
  • get_assignment_description:获取作业的完整描述

提交

  • list_submissions:列出特定任务的所有提交内容

用户

  • list_users:列出已注册课程的所有用户

资源

  • list_announcements:列出课程的所有公告
  • get_course_syllabus获取一门课程的教学大纲
  • get_course_modules:获取课程的所有模块

使用Claude Desktop

此MCP服务器旨在与Claude Desktop无缝协作:

  1. Claude Desktop将在需要时自动启动服务器
  2. 您将在Claude Desktop界面(锤子图标)中看到Canvas API工具🔨)
  3. 你可以让克劳德执行Canvas操作,比如“给我看我的课程”或“获取我的生物学课程大纲”

对于手动测试,您可以直接启动服务器:

./start_canvas_server.sh

技术细节

服务器实现

服务器使用:

  • fastmcp:用于构建MCP服务器的Python库
  • httpx:对于Canvas API的异步HTTP请求
  • 提高课程查找性能的缓存机制

主要实现文件是 canvas_server_cached.py,它提供:

  • 高效缓存课程信息
  • Canvas API请求的分页处理
  • 错误处理和报告
  • 支持课程ID和课程代码

依赖项

服务器需要以下Python包:

  • httpx:对于HTTP请求
  • fastmcp:用于MCP服务器实施
  • requests:对于某些HTTP操作
  • 其他用于编码和网络的标准库

故障排除

如果您遇到问题:

  1. 服务器无法启动

- 检查你的 .env 文件存在并且包含有效凭据 - 验证中的虚拟环境路径 start_canvas_server.sh - 确保安装了所有依赖项

  1. 身份验证错误

- 验证Canvas API令牌是否有效且未过期 - 检查您在Canvas中是否具有必要的权限

  1. 连接问题

- 确保Canvas API URL正确无误 - 检查您的互联网连接 - 验证您的机构没有限制API访问

  1. 调试

- 在Claude Desktop控制台中检查服务器日志 - 尝试手动运行服务器以查看错误输出

安全考虑

  • 您的Canvas API令牌授予对Canvas帐户的访问权限
  • 永远不要承诺你的 .env 文件到版本控制
  • 如果可能的话,考虑使用权限有限的令牌
  • 服务器在您的计算机上本地运行,不会向外部公开您的凭据

贡献

欢迎投稿!请随意:

  • 提交错误或功能请求的问题
  • 通过改进创建拉取请求
  • 分享您的用例和反馈

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

______________________________________________________________________

由...创建 维沙尔·萨克德夫

目录标签

目录标签

教育技术PythonClaude学习管理系统本地部署API接口课程管理作业管理

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP