local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides access to Canvas Learning Management System API, allowing users to list and manage courses, access assignments and submissions, view announcements, retrieve course syllabi and modules, manage users and enrollments, and generate course summaries
Canvas MCP 服务器
此存储库包含一个消息控制协议 (MCP) 服务器实现,用于与 Canvas 学习管理系统 API 交互。该服务器旨在与 Claude Desktop 以及其他可能的 MCP 客户端配合使用。
概述
Canvas MCP 服务器为 Canvas LMS API 提供本地接口,允许您:
- 列出和管理课程
- 访问作业和提交内容
- 查看公告
- 检索课程大纲和模块
- 管理用户和注册
- 生成课程摘要
先决条件
- 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文件。
This server cannot be installed
本地服务器可通过 Claude Desktop 与 Canvas 学习管理系统 API 进行交互,允许用户管理课程、访问作业、查看公告和检索课程材料。
- Overview
- Prerequisites
- Installation
- Configuration
- Available Tools
- Usage with Claude Desktop
- Technical Details
- Troubleshooting
- Security Considerations
- Contributing
- License