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.创建环境文件
在根目录中创建一个.env文件,其中包含以下变量:
将值替换为:
您的 Canvas API 令牌( 如何获取您的 Canvas API 令牌)
您所在大学的 Canvas API URL
2.配置启动脚本
start_canvas_server.sh脚本已配置为:
从
.env文件加载环境变量激活虚拟环境
运行缓存服务器实现
使启动脚本可执行:
3.Claude桌面配置
如果尚未安装Claude Desktop ,请安装它。
创建或编辑 Claude Desktop 配置文件:
添加 Canvas MCP 服务器配置:
将/Users/YOUR_USERNAME/path/to/canvas-mcp替换为您克隆此存储库的绝对路径。
重新启动 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 无缝协作:
Claude Desktop 将在需要时自动启动服务器
您将在 Claude 桌面界面中看到 Canvas API 工具(锤子图标🔨)
您可以要求 Claude 执行 Canvas 操作,例如“显示我的课程”或“获取我的生物学课程的教学大纲”
对于手动测试,您可以直接启动服务器:
技术细节
服务器实现
服务器使用:
fastmcp:用于构建 MCP 服务器的 Python 库httpx:用于向 Canvas API 发出异步 HTTP 请求缓存机制可提高课程查找的性能
主要实现文件是canvas_server_cached.py ,它提供:
高效缓存课程信息
Canvas API 请求的分页处理
错误处理和报告
支持课程 ID 和课程代码
依赖项
该服务器需要以下 Python 包:
httpx:用于 HTTP 请求fastmcp:用于 MCP 服务器实现requests:用于某些 HTTP 操作用于编码和网络的其他标准库
故障排除
如果您遇到问题:
服务器无法启动
检查你的
.env文件是否存在并包含有效的凭证验证
start_canvas_server.sh中的虚拟环境路径确保所有依赖项都已安装
身份验证错误
验证您的 Canvas API 令牌是否有效且未过期
检查您是否拥有 Canvas 中的必要权限
连接问题
确保您的 Canvas API URL 正确
检查您的互联网连接
验证您的机构是否限制 API 访问
调试
在 Claude Desktop 控制台中检查服务器日志
尝试手动运行服务器以查看错误输出
安全注意事项
您的 Canvas API 令牌授予您访问 Canvas 帐户的权限
永远不要将
.env文件提交到版本控制如果可能的话,考虑使用具有有限权限的令牌
服务器在您的计算机上本地运行,不会在外部暴露您的凭据
贡献
欢迎贡献!请随意:
提交错误或功能请求问题
创建具有改进的拉取请求
分享您的用例和反馈
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。