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)
安装
- 克隆此存储库:
git clone https://github.com/vishalsachdev/canvas-mcp.git
cd canvas-mcp- 创建并激活虚拟环境:
python -m venv canvas-mcp
source canvas-mcp/bin/activate # On Unix/macOS- 安装依赖项:
pip install -r requirements.txt配置
1.创建环境文件
创建一个 .env 根目录中的文件,包含以下变量:
CANVAS_API_TOKEN=your_canvas_api_token_here
CANVAS_API_URL=https://canvas.youruniversity.edu/api/v1将这些值替换为:
- 您的Canvas API代币(如何获取Canvas API代币)
- 您所在大学的Canvas API URL
2.配置启动脚本
这 start_canvas_server.sh 脚本已配置为:
- 从加载环境变量
.env文件 - 激活虚拟环境
- 运行缓存的服务器实现
使启动脚本可执行:
chmod +x start_canvas_server.sh3.克劳德桌面配置
- 安装 克劳德桌面 如果你还没有。
- 创建或编辑Claude Desktop配置文件:
vim ~/Library/Application\ Support/Claude/claude_desktop_config.json- 添加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 带有克隆此存储库的绝对路径。
- 重新启动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 Desktop界面(锤子图标)中看到Canvas API工具🔨)
- 你可以让克劳德执行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操作- 其他用于编码和网络的标准库
故障排除
如果您遇到问题:
- 服务器无法启动
- 检查你的 .env 文件存在并且包含有效凭据 - 验证中的虚拟环境路径 start_canvas_server.sh - 确保安装了所有依赖项
- 身份验证错误
- 验证Canvas API令牌是否有效且未过期 - 检查您在Canvas中是否具有必要的权限
- 连接问题
- 确保Canvas API URL正确无误 - 检查您的互联网连接 - 验证您的机构没有限制API访问
- 调试
- 在Claude Desktop控制台中检查服务器日志 - 尝试手动运行服务器以查看错误输出
安全考虑
- 您的Canvas API令牌授予对Canvas帐户的访问权限
- 永远不要承诺你的
.env文件到版本控制 - 如果可能的话,考虑使用权限有限的令牌
- 服务器在您的计算机上本地运行,不会向外部公开您的凭据
贡献
欢迎投稿!请随意:
- 提交错误或功能请求的问题
- 通过改进创建拉取请求
- 分享您的用例和反馈
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
由...创建 维沙尔·萨克德夫
