Skip to main content
Glama

Canvas MCP 服务器

此存储库包含一个消息控制协议 (MCP) 服务器实现,用于与 Canvas 学习管理系统 API 交互。该服务器旨在与 Claude Desktop 以及其他可能的 MCP 客户端配合使用。

概述

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

  • 列出和管理课程

  • 访问作业和提交内容

  • 查看公告

  • 检索课程大纲和模块

  • 管理用户和注册

  • 生成课程摘要

Related MCP server: Canvas MCP Server V2.0

先决条件

  • 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.Claude桌面配置

  1. 如果尚未安装Claude Desktop ,请安装它。

  2. 创建或编辑 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 桌面界面中看到 Canvas API 工具(锤子图标🔨)

  3. 您可以要求 Claude 执行 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中的虚拟环境路径

    • 确保所有依赖项都已安装

  2. 身份验证错误

    • 验证您的 Canvas API 令牌是否有效且未过期

    • 检查您是否拥有 Canvas 中的必要权限

  3. 连接问题

    • 确保您的 Canvas API URL 正确

    • 检查您的互联网连接

    • 验证您的机构是否限制 API 访问

  4. 调试

    • 在 Claude Desktop 控制台中检查服务器日志

    • 尝试手动运行服务器以查看错误输出

安全注意事项

  • 您的 Canvas API 令牌授予您访问 Canvas 帐户的权限

  • 永远不要将.env文件提交到版本控制

  • 如果可能的话,考虑使用具有有限权限的令牌

  • 服务器在您的计算机上本地运行,不会在外部暴露您的凭据

贡献

欢迎贡献!请随意:

  • 提交错误或功能请求问题

  • 创建具有改进的拉取请求

  • 分享您的用例和反馈

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。


Vishal Sachdev创建

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vishalsachdev/canvas-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server