Canvas+Ed讨论MCP服务器
   
用于访问Canvas LMS和Ed Discussion平台的MCP服务器
______________________________________________________________________
特性
画布功能
- canvas_list_courses -获取Canvas课程列表
- canvas_get_course -获取课程详细信息
- canvas_list_公告 -获取课程公告
- canvas_list_任务 -获取作业列表
Ed讨论功能
- ed_get_user_info -获取Ed用户信息(验证令牌)
- ed_list_courses -获取Ed课程列表
- ed_list_线程 -获取讨论话题列表
- ed_get_thread -获取线程详细信息和回复
- ed_search_threads -搜索线索
安装
1.安装依赖项
pip install mcp httpx pydantic2.配置克劳德桌面
编辑Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"canvas-ed-mcp": {
"command": "python",
"args": [
"/your/full/path/canvas_ed_mcp.py"
],
"env": {
"CANVAS_API_TOKEN": "your_Canvas_API_Token",
"ED_API_TOKEN": "your_Ed_API_Token"
}
}
}
}3.重新启动克劳德桌面
用法示例
画布操作
List all my Canvas coursesGet announcements for course ID 12345View my assignment listEd讨论操作
List my Ed Discussion coursesGet the latest discussion threads for Ed course ID 12345Search for threads about "assignment" in Ed courseGet detailed content and replies for Ed thread ID 67890API代币信息
Canvas API代币
- 来源:Canvas→ 账户→ 设置→ 已批准的集成→ + 新访问令牌
- 有效期至:2026年3月18日
Ed讨论API代币
- 来源:Ed讨论→ 设置→ API
- 注:Ed API是非官方测试版,端点可能会更改
工作流示例
查看所有课程讨论
- 首先获取Ed课程列表:
ed_list_courses - 记下你感兴趣的课程的Ed课程ID
- 获取该课程的主题:
ed_list_threads(使用课程ID) - 查看特定线程详细信息:
ed_get_thread(使用线程ID)
检查作业截止日期
- 获取Canvas课程列表:
canvas_list_courses - 获取课程作业:
canvas_list_assignments(使用Canvas课程ID)
故障排除
Ed API错误
401身份验证失败
- 检查Ed API令牌是否正确
- 确认令牌尚未过期
404找不到资源
- Ed课程ID和Canvas课程ID不同
- 使用
ed_list_courses获取正确的Ed课程ID
Canvas API错误
404找不到资源
- 检查Canvas课程ID是否正确
- 确认您有权访问该课程
技术说明
Ed API终点
Ed Discussion API是非官方的,基于逆向工程。主要终点:
GET /api/user-获取用户信息和课程列表GET /api/courses/{id}/threads-获取课程主题GET /api/threads/{id}-获取线程详细信息
数据格式
Ed Discussion使用一种特殊的XML格式来存储线程内容。MCP服务器会自动将其解析为纯文本。
项目结构
canvas-ed-mcp/
├── canvas_ed_mcp.py # Full MCP server (Canvas + Ed)
├── canvas_api_mcp.py # Canvas-only version
├── requirements.txt # Python dependencies
├── claude_desktop_config_full.json # Full configuration example
└── README.md # This document安全提醒
- 不要 将API令牌提交到版本控制系统
- 不要 与他人分享您的代币
- 令牌相当于您的帐户密码
______________________________________________________________________
中文
功能特性
Canvas 功能
- canvas_list_courses - 获取 Canvas 课程列表
- canvas_get_course - 获取课程详情
- canvas_list_公告 - 获取课程公告
- canvas_list_任务 - 获取作业列表
Ed Discussion 功能
- ed_get_user_info - 获取 Ed 用户信息(验证令牌)
- ed_list_courses - 获取 Ed 课程列表
- ed_list_线程 - 获取讨论帖列表
- ed_get_thread - 获取帖子详情和回复
- ed_search_threads - 搜索帖子
安装步骤
1. 安装依赖
pip install mcp httpx pydantic2. 配置 Claude Desktop
编辑 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
3. 重启 Claude Desktop
安全提醒
- 不要 将 API 令牌提交到版本控制系统
- 不要 与他人分享你的令牌
- 令牌相当于你的账户密码
______________________________________________________________________
许可证
仅用于教育目的。Ed API是一个非官方的测试版,使用风险自负。
______________________________________________________________________
作者
瑞奇 -悉尼大学CS学生
](https://github.com/r1ckyIn)
对云工程和DevOps感兴趣
