
Canvas MCP Server
一个本地服务器,可以通过 Claude Desktop 与 Canvas 学习管理系统 API 交互,允许用户管理课程、访问作业、查看公告和检索课程材料。
README
Canvas MCP 服务器
此仓库包含一个消息控制协议 (MCP) 服务器实现,用于与 Canvas 学习管理系统 API 交互。该服务器设计用于与 Claude Desktop 以及潜在的其他 MCP 客户端一起使用。
概述
Canvas MCP 服务器提供了一个 Canvas LMS API 的本地接口,允许您:
- 列出和管理课程
- 访问作业和提交
- 查看公告
- 检索课程大纲和模块
- 管理用户和注册
- 生成课程摘要
前提条件
- Python 3.x
- 虚拟环境 (venv)
- Canvas API Token
- 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 # 在 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 Token (如何获取您的 Canvas API token)
- 您大学的 Canvas API URL
2. 配置启动脚本
start_canvas_server.sh
脚本已经配置为:
- 从
.env
文件加载环境变量 - 激活虚拟环境
- 运行缓存的服务器实现
使启动脚本可执行:
chmod +x start_canvas_server.sh
3. Claude Desktop 配置
-
如果您还没有安装 Claude Desktop,请安装。
-
创建或编辑 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 工具(锤子图标 🔨)
- 您可以要求 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 操作- 其他用于编码和联网的标准库
故障排除
如果您遇到问题:
-
服务器无法启动
- 检查您的
.env
文件是否存在并包含有效的凭据 - 验证
start_canvas_server.sh
中的虚拟环境路径 - 确保已安装所有依赖项
- 检查您的
-
身份验证错误
- 验证您的 Canvas API token 是否有效且未过期
- 检查您是否在 Canvas 中具有必要的权限
-
连接问题
- 确保您的 Canvas API URL 正确
- 检查您的互联网连接
- 验证您的机构是否限制了 API 访问
-
调试
- 检查 Claude Desktop 控制台中的服务器日志
- 尝试手动运行服务器以查看错误输出
安全注意事项
- 您的 Canvas API token 授予对您的 Canvas 帐户的访问权限
- 永远不要将您的
.env
文件提交到版本控制 - 如果可能,请考虑使用具有有限权限的 token
- 该服务器在您的本地计算机上运行,不会在外部暴露您的凭据
贡献
欢迎贡献! 随意:
- 提交错误或功能请求的问题
- 创建包含改进的 pull 请求
- 分享您的用例和反馈
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参见 LICENSE 文件。
由 Vishal Sachdev 创建
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。